From b1713734c1d9cba9702a96eb2f24ee2a460f0455 Mon Sep 17 00:00:00 2001 From: Ash Date: Fri, 19 Apr 2024 16:21:08 +0100 Subject: [PATCH 01/29] feat(sanity): allow `extractSchema` worker to emit schemas for all workspaces --- .../cli/actions/schema/extractAction.ts | 6 ++++ .../_internal/cli/threads/extractSchema.ts | 29 ++++++++++--------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/packages/sanity/src/_internal/cli/actions/schema/extractAction.ts b/packages/sanity/src/_internal/cli/actions/schema/extractAction.ts index a9b4eb9ddd9..df9aada02d4 100644 --- a/packages/sanity/src/_internal/cli/actions/schema/extractAction.ts +++ b/packages/sanity/src/_internal/cli/actions/schema/extractAction.ts @@ -33,6 +33,12 @@ export default async function extractAction( throw new Error('Could not find root directory for `sanity` package') } + if (flags.workspace === undefined) { + throw new Error( + `Multiple workspaces found. Please specify which workspace to use with '--workspace'.`, + ) + } + const workerPath = join( dirname(rootPkgPath), 'lib', diff --git a/packages/sanity/src/_internal/cli/threads/extractSchema.ts b/packages/sanity/src/_internal/cli/threads/extractSchema.ts index 8fb02fc00df..0ae1f762b8f 100644 --- a/packages/sanity/src/_internal/cli/threads/extractSchema.ts +++ b/packages/sanity/src/_internal/cli/threads/extractSchema.ts @@ -34,16 +34,24 @@ async function main() { const workspaces = await getStudioWorkspaces({basePath: opts.workDir}) - const workspace = getWorkspace({workspaces, workspaceName: opts.workspaceName}) - - const schema = extractSchema(workspace.schema, { - enforceRequiredFields: opts.enforceRequiredFields, - }) + const postSchema = (workspace: Workspace): void => { + parentPort?.postMessage({ + schema: extractSchema(workspace.schema, { + enforceRequiredFields: opts.enforceRequiredFields, + }), + } satisfies ExtractSchemaWorkerResult) + } - parentPort?.postMessage({ - schema, - } satisfies ExtractSchemaWorkerResult) + if (opts.workspaceName) { + const workspace = getWorkspace({workspaces, workspaceName: opts.workspaceName}) + postSchema(workspace) + } else { + for (const workspace of workspaces) { + postSchema(workspace) + } + } } finally { + parentPort?.close() cleanup() } } @@ -65,11 +73,6 @@ function getWorkspace({ return workspaces[0] } - if (workspaceName === undefined) { - throw new Error( - `Multiple workspaces found. Please specify which workspace to use with '--workspace'.`, - ) - } const workspace = workspaces.find((w) => w.name === workspaceName) if (!workspace) { throw new Error(`Could not find workspace "${workspaceName}"`) From bd8486faf346a0095b4bc91e379675cb1cb63cda Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 22 Apr 2024 16:59:15 +0100 Subject: [PATCH 02/29] feat(sanity): include workspace and dataset names when extracting schema --- .../sanity/src/_internal/cli/threads/extractSchema.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/sanity/src/_internal/cli/threads/extractSchema.ts b/packages/sanity/src/_internal/cli/threads/extractSchema.ts index 0ae1f762b8f..61608deef35 100644 --- a/packages/sanity/src/_internal/cli/threads/extractSchema.ts +++ b/packages/sanity/src/_internal/cli/threads/extractSchema.ts @@ -15,7 +15,7 @@ export interface ExtractSchemaWorkerData { } /** @internal */ -export interface ExtractSchemaWorkerResult { +export interface ExtractSchemaWorkerResult extends Pick { schema: ReturnType } @@ -34,8 +34,10 @@ async function main() { const workspaces = await getStudioWorkspaces({basePath: opts.workDir}) - const postSchema = (workspace: Workspace): void => { + const postWorkspace = (workspace: Workspace): void => { parentPort?.postMessage({ + name: workspace.name, + dataset: workspace.dataset, schema: extractSchema(workspace.schema, { enforceRequiredFields: opts.enforceRequiredFields, }), @@ -44,10 +46,10 @@ async function main() { if (opts.workspaceName) { const workspace = getWorkspace({workspaces, workspaceName: opts.workspaceName}) - postSchema(workspace) + postWorkspace(workspace) } else { for (const workspace of workspaces) { - postSchema(workspace) + postWorkspace(workspace) } } } finally { From 5d6d98a19a9863d4712eace3665342d4f90f1f0b Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 22 Apr 2024 16:49:41 +0100 Subject: [PATCH 03/29] feat(cli): add `manifest` commands --- .../@sanity/cli/src/util/noSuchCommandText.ts | 1 + packages/sanity/package.json | 3 +- .../manifest/extractManifestsAction.ts | 151 ++++++++++++++++++ .../actions/manifest/listManifestsAction.ts | 9 ++ .../src/_internal/cli/commands/index.ts | 6 + .../manifest/extractManifestsCommand.ts | 30 ++++ .../commands/manifest/listManifestsCommand.ts | 30 ++++ .../cli/commands/manifest/manifestGroup.ts | 10 ++ pnpm-lock.yaml | 52 ++++++ 9 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts create mode 100644 packages/sanity/src/_internal/cli/actions/manifest/listManifestsAction.ts create mode 100644 packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts create mode 100644 packages/sanity/src/_internal/cli/commands/manifest/listManifestsCommand.ts create mode 100644 packages/sanity/src/_internal/cli/commands/manifest/manifestGroup.ts diff --git a/packages/@sanity/cli/src/util/noSuchCommandText.ts b/packages/@sanity/cli/src/util/noSuchCommandText.ts index 07b94d6b1ce..4aef2271d04 100644 --- a/packages/@sanity/cli/src/util/noSuchCommandText.ts +++ b/packages/@sanity/cli/src/util/noSuchCommandText.ts @@ -17,6 +17,7 @@ const coreCommands = [ 'exec', 'graphql', 'hook', + 'manifest', 'migration', 'preview', 'schema', diff --git a/packages/sanity/package.json b/packages/sanity/package.json index 9ed27f21689..59b2b613843 100644 --- a/packages/sanity/package.json +++ b/packages/sanity/package.json @@ -248,7 +248,8 @@ "use-hot-module-reload": "^2.0.0", "use-sync-external-store": "^1.2.0", "vite": "^4.5.1", - "yargs": "^17.3.0" + "yargs": "^17.3.0", + "zod": "^3.22.4" }, "devDependencies": { "@jest/expect": "^29.7.0", diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts new file mode 100644 index 00000000000..aa78b837dd9 --- /dev/null +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts @@ -0,0 +1,151 @@ +import {mkdir, writeFile} from 'node:fs/promises' +import {dirname, join, resolve} from 'node:path' +import {Worker} from 'node:worker_threads' + +import {type CliCommandAction} from '@sanity/cli' +import readPkgUp from 'read-pkg-up' +import z from 'zod' + +import { + type ExtractSchemaWorkerData, + type ExtractSchemaWorkerResult, +} from '../../threads/extractSchema' + +const MANIFEST_FILENAME = 'v1.studiomanifest.json' +const SCHEMA_FILENAME_PREFIX = 'schema-' + +const ManifestSchema = z.object({manifestVersion: z.number()}) + +const ManifestV1WorkspaceSchema = z.object({ + name: z.string(), + dataset: z.string(), + schema: z.string(), +}) + +type ManifestV1Workspace = z.infer + +const ManifestV1Schema = ManifestSchema.extend({ + createdAt: z.date(), + workspaces: z.array(ManifestV1WorkspaceSchema), +}) + +type ManifestV1 = z.infer + +const extractManifests: CliCommandAction = async (_args, context) => { + const {output, workDir, chalk} = context + + const defaultOutputDir = resolve(join(workDir, 'dist')) + // const outputDir = resolve(args.argsWithoutOptions[0] || defaultOutputDir) + const outputDir = resolve(defaultOutputDir) + const staticPath = join(outputDir, 'static') + const path = join(staticPath, MANIFEST_FILENAME) + + const rootPkgPath = readPkgUp.sync({cwd: __dirname})?.path + if (!rootPkgPath) { + throw new Error('Could not find root directory for `sanity` package') + } + + const workerPath = join( + dirname(rootPkgPath), + 'lib', + '_internal', + 'cli', + 'threads', + 'extractSchema.js', + ) + + const spinner = output.spinner({}).start('Extracting manifest') + + // const trace = telemetry.trace(SchemaExtractedTrace) + // trace.start() + + const worker = new Worker(workerPath, { + workerData: { + workDir, + enforceRequiredFields: false, + format: 'groq-type-nodes', + } satisfies ExtractSchemaWorkerData, + // eslint-disable-next-line no-process-env + env: process.env, + }) + + try { + const schemas = await new Promise((resolveSchemas, reject) => { + const schemaBuffer: ExtractSchemaWorkerResult[] = [] + worker.addListener('message', (message) => schemaBuffer.push(message)) + worker.addListener('exit', () => resolveSchemas(schemaBuffer)) + worker.addListener('error', reject) + }) + + spinner.text = `Writing manifest to ${chalk.cyan(path)}` + + await mkdir(staticPath, {recursive: true}) + + const manifestWorkspaces = await externalizeSchemas(schemas, staticPath) + + const manifestV1: ManifestV1 = { + manifestVersion: 1, + createdAt: new Date(), + workspaces: manifestWorkspaces, + } + + // trace.log({ + // schemaAllTypesCount: schema.length, + // schemaDocumentTypesCount: schema.filter((type) => type.type === 'document').length, + // schemaTypesCount: schema.filter((type) => type.type === 'type').length, + // enforceRequiredFields, + // schemaFormat: formatFlag, + // }) + + // const path = flags.path || join(process.cwd(), 'schema.json') + // const path = 'test-manifest.json' + + await writeFile(path, JSON.stringify(manifestV1, null, 2)) + + // trace.complete() + + spinner.succeed('Extracted manifest') + } catch (err) { + // trace.error(err) + spinner.fail('Failed to extract manifest') + throw err + } + + output.print(`Extracted manifest to ${chalk.cyan(path)}`) +} + +export default extractManifests + +function externalizeSchemas( + schemas: ExtractSchemaWorkerResult[], + staticPath: string, +): Promise[]> { + const output = schemas.reduce[]>((workspaces, workspace) => { + return [...workspaces, externalizeSchema(workspace, staticPath)] + }, []) + + return Promise.all(output) +} + +async function externalizeSchema( + workspace: ExtractSchemaWorkerResult, + staticPath: string, +): Promise> { + const encoder = new TextEncoder() + const schemaString = JSON.stringify(workspace.schema, null, 2) + const hash = await crypto.subtle.digest('SHA-1', encoder.encode(schemaString)) + const filename = `${SCHEMA_FILENAME_PREFIX}${hexFromBuffer(hash).slice(0, 8)}.json` + + await writeFile(join(staticPath, filename), schemaString) + + return { + ...workspace, + schema: filename, + } +} + +function hexFromBuffer(buffer: ArrayBuffer): string { + return Array.prototype.map + .call(new Uint8Array(buffer), (x) => `00${x.toString(16)}`.slice(-2)) + .join('') +} diff --git a/packages/sanity/src/_internal/cli/actions/manifest/listManifestsAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/listManifestsAction.ts new file mode 100644 index 00000000000..fdec597f09e --- /dev/null +++ b/packages/sanity/src/_internal/cli/actions/manifest/listManifestsAction.ts @@ -0,0 +1,9 @@ +import {type CliCommandAction} from '@sanity/cli' + +const listManifests: CliCommandAction = async (_args, context) => { + const {output} = context + + output.print('Here are the manifests for this project:') +} + +export default listManifests diff --git a/packages/sanity/src/_internal/cli/commands/index.ts b/packages/sanity/src/_internal/cli/commands/index.ts index e27daee4cce..af739380ceb 100644 --- a/packages/sanity/src/_internal/cli/commands/index.ts +++ b/packages/sanity/src/_internal/cli/commands/index.ts @@ -41,6 +41,9 @@ import hookGroup from './hook/hookGroup' import listHookLogsCommand from './hook/listHookLogsCommand' import listHooksCommand from './hook/listHooksCommand' import printHookAttemptCommand from './hook/printHookAttemptCommand' +import extractManifestsCommand from './manifest/extractManifestsCommand' +import listManifestsCommand from './manifest/listManifestsCommand' +import manifestGroup from './manifest/manifestGroup' import createMigrationCommand from './migration/createMigrationCommand' import listMigrationsCommand from './migration/listMigrationsCommand' import migrationGroup from './migration/migrationGroup' @@ -87,6 +90,9 @@ const commands: (CliCommandDefinition | CliCommandGroupDefinition)[] = [ createHookCommand, migrationGroup, createMigrationCommand, + manifestGroup, + extractManifestsCommand, + listManifestsCommand, runMigrationCommand, listMigrationsCommand, deleteHookCommand, diff --git a/packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts b/packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts new file mode 100644 index 00000000000..cf6b8741c0d --- /dev/null +++ b/packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts @@ -0,0 +1,30 @@ +import {type CliCommandDefinition} from '@sanity/cli' + +// TODO: Switch to lazy import. +import mod from '../../actions/manifest/extractManifestsAction' + +const description = 'Extracts a JSON representation of a Sanity schema within a Studio context.' + +const helpText = ` +**Note**: This command is experimental and subject to change. + +Examples + # Extracts manifests + sanity manifest extract +` + +const extractManifestsCommand: CliCommandDefinition = { + name: 'extract', + group: 'manifest', + signature: '', + description, + helpText, + action: async (args, context) => { + // const mod = await import('../../actions/manifest/extractManifestsAction') + // + // return mod.default(args, context) + return mod(args, context) + }, +} + +export default extractManifestsCommand diff --git a/packages/sanity/src/_internal/cli/commands/manifest/listManifestsCommand.ts b/packages/sanity/src/_internal/cli/commands/manifest/listManifestsCommand.ts new file mode 100644 index 00000000000..34b65655129 --- /dev/null +++ b/packages/sanity/src/_internal/cli/commands/manifest/listManifestsCommand.ts @@ -0,0 +1,30 @@ +import {type CliCommandDefinition} from '@sanity/cli' + +// TODO: Switch to lazy import. +import mod from '../../actions/manifest/listManifestsAction' + +const description = 'TODO' + +const helpText = ` +**Note**: This command is experimental and subject to change. + +Examples + # Lists manifests that have been extracted + sanity manifest list +` + +const listManifestsCommand: CliCommandDefinition = { + name: 'list', + group: 'manifest', + signature: '', + description, + helpText, + action: async (args, context) => { + // const mod = await import('../../actions/manifest/listManifestsAction') + // + // return mod.default(args, context) + return mod(args, context) + }, +} + +export default listManifestsCommand diff --git a/packages/sanity/src/_internal/cli/commands/manifest/manifestGroup.ts b/packages/sanity/src/_internal/cli/commands/manifest/manifestGroup.ts new file mode 100644 index 00000000000..2bc68864241 --- /dev/null +++ b/packages/sanity/src/_internal/cli/commands/manifest/manifestGroup.ts @@ -0,0 +1,10 @@ +import {type CliCommandGroupDefinition} from '@sanity/cli' + +const manifestGroup: CliCommandGroupDefinition = { + name: 'manifest', + signature: '[COMMAND]', + isGroupRoot: true, + description: 'TODO', +} + +export default manifestGroup diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cc6760fe02..7e30d9f5133 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1040,6 +1040,55 @@ importers: specifier: ^3.0.2 version: 3.0.2 + packages/@sanity/manifest: + dependencies: + '@sanity/generate-help-url': + specifier: ^3.0.0 + version: 3.0.0 + '@sanity/types': + specifier: 3.38.0 + version: link:../types + arrify: + specifier: ^1.0.1 + version: 1.0.1 + groq-js: + specifier: ^1.7.0 + version: 1.7.0 + humanize-list: + specifier: ^1.0.1 + version: 1.0.1 + leven: + specifier: ^3.1.0 + version: 3.1.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + object-inspect: + specifier: ^1.13.1 + version: 1.13.1 + devDependencies: + '@jest/globals': + specifier: ^29.7.0 + version: 29.7.0 + '@repo/package.config': + specifier: workspace:* + version: link:../../@repo/package.config + '@sanity/icons': + specifier: ^2.11.8 + version: 2.11.8(react@18.2.0) + '@types/arrify': + specifier: ^1.0.4 + version: 1.0.4 + '@types/object-inspect': + specifier: ^1.13.0 + version: 1.13.0 + '@types/react': + specifier: ^18.2.78 + version: 18.2.78 + rimraf: + specifier: ^3.0.2 + version: 3.0.2 + packages/@sanity/migrate: dependencies: '@bjoerge/mutiny': @@ -1802,6 +1851,9 @@ importers: yargs: specifier: ^17.3.0 version: 17.7.2 + zod: + specifier: ^3.22.4 + version: 3.22.4 devDependencies: '@jest/expect': specifier: ^29.7.0 From 11ca4147152470678cfeacf2cf190c13d372d8c1 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 22 Apr 2024 17:29:30 +0100 Subject: [PATCH 04/29] feat(manifest): add `@sanity/manifest` package --- .github/CODEOWNERS | 4 + dev/aliases.cjs | 1 + dev/tsconfig.dev.json | 2 + examples/tsconfig.json | 2 + packages/@repo/test-exports/.depcheckrc.json | 1 + packages/@repo/test-exports/package.json | 1 + packages/@sanity/manifest/.depcheckrc.json | 3 + packages/@sanity/manifest/.eslintrc.cjs | 11 + packages/@sanity/manifest/.gitignore | 15 + packages/@sanity/manifest/README.md | 1 + packages/@sanity/manifest/jest.config.cjs | 8 + packages/@sanity/manifest/package.config.ts | 4 + packages/@sanity/manifest/package.json | 48 + .../@sanity/manifest/src/_exports/index.ts | 1 + packages/@sanity/manifest/src/schema/v1.ts | 18 + packages/@sanity/manifest/tsconfig.json | 10 + packages/@sanity/manifest/tsconfig.lib.json | 8 + packages/@sanity/manifest/turbo.json | 9 + packages/sanity/package.json | 9 +- packages/sanity/tsconfig.json | 2 + pnpm-lock.yaml | 2802 +++++++++++++---- 21 files changed, 2265 insertions(+), 695 deletions(-) create mode 100644 packages/@sanity/manifest/.depcheckrc.json create mode 100644 packages/@sanity/manifest/.eslintrc.cjs create mode 100644 packages/@sanity/manifest/.gitignore create mode 100644 packages/@sanity/manifest/README.md create mode 100644 packages/@sanity/manifest/jest.config.cjs create mode 100644 packages/@sanity/manifest/package.config.ts create mode 100644 packages/@sanity/manifest/package.json create mode 100644 packages/@sanity/manifest/src/_exports/index.ts create mode 100644 packages/@sanity/manifest/src/schema/v1.ts create mode 100644 packages/@sanity/manifest/tsconfig.json create mode 100644 packages/@sanity/manifest/tsconfig.lib.json create mode 100644 packages/@sanity/manifest/turbo.json diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7bcf59ede15..39f6990aa01 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -99,3 +99,7 @@ packages/sanity/src/core/studio/upsell/ @sanity-io/studio-ex /packages/sanity/src/structure/panes/documentList/PaneContainer.tsx @sanity-io/ecosystem @sanity-io/studio-dx /packages/sanity/src/structure/StructureToolProvider.tsx @sanity-io/ecosystem @sanity-io/studio-dx /packages/sanity/src/structure/types.ts @sanity-io/ecosystem @sanity-io/studio-dx + +# -- Manifest -- +/packages/@sanity/manifest @sanity-io/studio-dx + diff --git a/dev/aliases.cjs b/dev/aliases.cjs index 6d7fd230966..f964f9e8354 100644 --- a/dev/aliases.cjs +++ b/dev/aliases.cjs @@ -22,6 +22,7 @@ const devAliases = { '@sanity/mutator': './packages/@sanity/mutator/src', '@sanity/portable-text-editor': './packages/@sanity/portable-text-editor/src', '@sanity/schema': './packages/@sanity/schema/src/_exports', + '@sanity/manifest': './packages/@sanity/manifrst/src/_exports', '@sanity/migrate': './packages/@sanity/migrate/src/_exports', '@sanity/types': './packages/@sanity/types/src', '@sanity/util': './packages/@sanity/util/src/_exports', diff --git a/dev/tsconfig.dev.json b/dev/tsconfig.dev.json index a0dc008a8dd..6b4892e7dfd 100644 --- a/dev/tsconfig.dev.json +++ b/dev/tsconfig.dev.json @@ -10,6 +10,8 @@ "@sanity/cli": ["./packages/@sanity/cli/src/index.ts"], "@sanity/codegen": ["./packages/@sanity/codegen/src/_exports/index.ts"], "@sanity/mutator": ["./packages/@sanity/mutator/src/index.ts"], + "@sanity/manifest/*": ["./packages/@sanity/manifest/src/_exports/*"], + "@sanity/manifest": ["./packages/@sanity/manifest/src/_exports/index.ts"], "@sanity/portable-text-editor": ["./packages/@sanity/portable-text-editor/src/index.ts"], "@sanity/schema/*": ["./packages/@sanity/schema/src/_exports/*"], "@sanity/schema": ["./packages/@sanity/schema/src/_exports/index.ts"], diff --git a/examples/tsconfig.json b/examples/tsconfig.json index a0dc008a8dd..6b4892e7dfd 100644 --- a/examples/tsconfig.json +++ b/examples/tsconfig.json @@ -10,6 +10,8 @@ "@sanity/cli": ["./packages/@sanity/cli/src/index.ts"], "@sanity/codegen": ["./packages/@sanity/codegen/src/_exports/index.ts"], "@sanity/mutator": ["./packages/@sanity/mutator/src/index.ts"], + "@sanity/manifest/*": ["./packages/@sanity/manifest/src/_exports/*"], + "@sanity/manifest": ["./packages/@sanity/manifest/src/_exports/index.ts"], "@sanity/portable-text-editor": ["./packages/@sanity/portable-text-editor/src/index.ts"], "@sanity/schema/*": ["./packages/@sanity/schema/src/_exports/*"], "@sanity/schema": ["./packages/@sanity/schema/src/_exports/index.ts"], diff --git a/packages/@repo/test-exports/.depcheckrc.json b/packages/@repo/test-exports/.depcheckrc.json index e13737c7d56..67eee4900be 100644 --- a/packages/@repo/test-exports/.depcheckrc.json +++ b/packages/@repo/test-exports/.depcheckrc.json @@ -5,6 +5,7 @@ "@sanity/cli", "@sanity/codegen", "@sanity/diff", + "@sanity/manifest", "@sanity/migrate", "@sanity/mutator", "@sanity/portable-text-editor", diff --git a/packages/@repo/test-exports/package.json b/packages/@repo/test-exports/package.json index 9af40c88317..00808d20ae9 100644 --- a/packages/@repo/test-exports/package.json +++ b/packages/@repo/test-exports/package.json @@ -14,6 +14,7 @@ "@sanity/cli": "workspace:*", "@sanity/codegen": "workspace:*", "@sanity/diff": "workspace:*", + "@sanity/manifest": "workspace:*", "@sanity/migrate": "workspace:*", "@sanity/mutator": "workspace:*", "@sanity/portable-text-editor": "workspace:*", diff --git a/packages/@sanity/manifest/.depcheckrc.json b/packages/@sanity/manifest/.depcheckrc.json new file mode 100644 index 00000000000..35f1b4badf9 --- /dev/null +++ b/packages/@sanity/manifest/.depcheckrc.json @@ -0,0 +1,3 @@ +{ + "ignores": ["@repo/tsconfig", "@sanity/pkg-utils"] +} diff --git a/packages/@sanity/manifest/.eslintrc.cjs b/packages/@sanity/manifest/.eslintrc.cjs new file mode 100644 index 00000000000..99fd6c69224 --- /dev/null +++ b/packages/@sanity/manifest/.eslintrc.cjs @@ -0,0 +1,11 @@ +'use strict' + +const path = require('path') + +const ROOT_PATH = path.resolve(__dirname, '../../..') + +module.exports = { + rules: { + 'import/no-extraneous-dependencies': ['error', {packageDir: [ROOT_PATH, __dirname]}], + }, +} diff --git a/packages/@sanity/manifest/.gitignore b/packages/@sanity/manifest/.gitignore new file mode 100644 index 00000000000..cd7c1010a8d --- /dev/null +++ b/packages/@sanity/manifest/.gitignore @@ -0,0 +1,15 @@ +# Logs +/logs +*.log + +# Coverage directory used by tools like istanbul +/coverage + +# Dependency directories +/node_modules + +# Compiled code +/lib + +# Legacy exports +/_internal.js diff --git a/packages/@sanity/manifest/README.md b/packages/@sanity/manifest/README.md new file mode 100644 index 00000000000..0532c79425c --- /dev/null +++ b/packages/@sanity/manifest/README.md @@ -0,0 +1 @@ +# Sanity Manifest diff --git a/packages/@sanity/manifest/jest.config.cjs b/packages/@sanity/manifest/jest.config.cjs new file mode 100644 index 00000000000..51ecfb62217 --- /dev/null +++ b/packages/@sanity/manifest/jest.config.cjs @@ -0,0 +1,8 @@ +'use strict' + +const {createJestConfig} = require('../../../test/config.cjs') + +module.exports = createJestConfig({ + displayName: require('./package.json').name, + testEnvironment: 'node', +}) diff --git a/packages/@sanity/manifest/package.config.ts b/packages/@sanity/manifest/package.config.ts new file mode 100644 index 00000000000..c43051dd053 --- /dev/null +++ b/packages/@sanity/manifest/package.config.ts @@ -0,0 +1,4 @@ +import baseConfig from '@repo/package.config' +import {defineConfig} from '@sanity/pkg-utils' + +export default defineConfig(baseConfig) diff --git a/packages/@sanity/manifest/package.json b/packages/@sanity/manifest/package.json new file mode 100644 index 00000000000..354d980af66 --- /dev/null +++ b/packages/@sanity/manifest/package.json @@ -0,0 +1,48 @@ +{ + "name": "@sanity/manifest", + "version": "3.39.1", + "description": "", + "keywords": ["sanity", "cms", "headless", "realtime", "content", "schema"], + "homepage": "https://www.sanity.io/", + "bugs": { + "url": "https://github.com/sanity-io/sanity/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sanity-io/sanity.git", + "directory": "packages/@sanity/manifest" + }, + "license": "MIT", + "author": "Sanity.io ", + "sideEffects": false, + "exports": { + ".": { + "source": "./src/_exports/index.ts", + "import": "./lib/index.mjs", + "require": "./lib/index.js", + "default": "./lib/index.js" + }, + "./package.json": "./package.json" + }, + "main": "./lib/index.js", + "module": "./lib/index.esm.js", + "types": "./lib/index.d.ts", + "files": ["lib", "src"], + "scripts": { + "build": "pkg-utils build --strict --check --clean", + "check:types": "tsc --project tsconfig.lib.json", + "clean": "rimraf lib", + "lint": "eslint .", + "prepublishOnly": "turbo run build", + "test": "jest", + "test:watch": "jest --watchAll", + "watch": "pkg-utils watch" + }, + "dependencies": { + "zod": "^3.22.4" + }, + "devDependencies": { + "@repo/package.config": "workspace:*", + "rimraf": "^3.0.2" + } +} diff --git a/packages/@sanity/manifest/src/_exports/index.ts b/packages/@sanity/manifest/src/_exports/index.ts new file mode 100644 index 00000000000..3c2ef6c7f95 --- /dev/null +++ b/packages/@sanity/manifest/src/_exports/index.ts @@ -0,0 +1 @@ +export * from '../schema/v1' diff --git a/packages/@sanity/manifest/src/schema/v1.ts b/packages/@sanity/manifest/src/schema/v1.ts new file mode 100644 index 00000000000..9d49c4b77bc --- /dev/null +++ b/packages/@sanity/manifest/src/schema/v1.ts @@ -0,0 +1,18 @@ +import z from 'zod' + +export const ManifestSchema = z.object({manifestVersion: z.number()}) + +export const ManifestV1WorkspaceSchema = z.object({ + name: z.string(), + dataset: z.string(), + schema: z.string(), +}) + +export type ManifestV1Workspace = z.infer + +export const ManifestV1Schema = ManifestSchema.extend({ + createdAt: z.date(), + workspaces: z.array(ManifestV1WorkspaceSchema), +}) + +export type ManifestV1 = z.infer diff --git a/packages/@sanity/manifest/tsconfig.json b/packages/@sanity/manifest/tsconfig.json new file mode 100644 index 00000000000..8d4a1d085ad --- /dev/null +++ b/packages/@sanity/manifest/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "@repo/tsconfig/base.json", + "include": ["./example", "./src", "./test", "./typings", "./node_modules/@sanity/types/src"], + "compilerOptions": { + "rootDir": ".", + "paths": { + "@sanity/types": ["./node_modules/@sanity/types/src"] + } + } +} diff --git a/packages/@sanity/manifest/tsconfig.lib.json b/packages/@sanity/manifest/tsconfig.lib.json new file mode 100644 index 00000000000..18d75ddfa7f --- /dev/null +++ b/packages/@sanity/manifest/tsconfig.lib.json @@ -0,0 +1,8 @@ +{ + "extends": "@repo/tsconfig/build.json", + "include": ["./example", "./src", "./typings"], + "compilerOptions": { + "rootDir": ".", + "outDir": "./lib" + } +} diff --git a/packages/@sanity/manifest/turbo.json b/packages/@sanity/manifest/turbo.json new file mode 100644 index 00000000000..cbf3c2a667c --- /dev/null +++ b/packages/@sanity/manifest/turbo.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "pipeline": { + "build": { + "outputs": ["lib/**", "index.js"] + } + } +} diff --git a/packages/sanity/package.json b/packages/sanity/package.json index 59b2b613843..49085d3260e 100644 --- a/packages/sanity/package.json +++ b/packages/sanity/package.json @@ -2,13 +2,7 @@ "name": "sanity", "version": "3.43.0", "description": "Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches", - "keywords": [ - "sanity", - "cms", - "headless", - "realtime", - "content" - ], + "keywords": ["sanity", "cms", "headless", "realtime", "content"], "homepage": "https://www.sanity.io/", "bugs": { "url": "https://github.com/sanity-io/sanity/issues" @@ -159,6 +153,7 @@ "@sanity/image-url": "^1.0.2", "@sanity/import": "^3.37.3", "@sanity/logos": "^2.1.4", + "@sanity/manifest": "3.39.1", "@sanity/migrate": "3.43.0", "@sanity/mutator": "3.43.0", "@sanity/portable-text-editor": "3.43.0", diff --git a/packages/sanity/tsconfig.json b/packages/sanity/tsconfig.json index ffddd6e4518..3e72becfacb 100644 --- a/packages/sanity/tsconfig.json +++ b/packages/sanity/tsconfig.json @@ -12,6 +12,7 @@ "./node_modules/@sanity/cli/src", "./node_modules/@sanity/cli/typings/deepSortObject.d.ts", "./node_modules/@sanity/codegen/src", + "./node_modules/@sanity/manifest/src", "./node_modules/@sanity/mutator/src", "./node_modules/@sanity/portable-text-editor/src", "./node_modules/@sanity/schema/src", @@ -28,6 +29,7 @@ "@sanity/diff": ["./node_modules/@sanity/diff/src/index.ts"], "@sanity/cli": ["./node_modules/@sanity/cli/src/index.ts"], "@sanity/codegen": ["./node_modules/@sanity/codegen/src/_exports/index.ts"], + "@sanity/manifest": ["./node_modules/@sanity/manifest/src/index.ts"], "@sanity/mutator": ["./node_modules/@sanity/mutator/src/index.ts"], "@sanity/portable-text-editor": ["./node_modules/@sanity/portable-text-editor/src/index.ts"], "@sanity/schema/*": ["./node_modules/@sanity/schema/src/_exports/*"], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e30d9f5133..75820400be1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,7 +33,7 @@ importers: version: 0.5.3 '@google-cloud/storage': specifier: ^7.11.0 - version: 7.11.0 + version: 7.11.1 '@jest/globals': specifier: ^29.7.0 version: 29.7.0 @@ -90,10 +90,10 @@ importers: version: 17.0.32 '@typescript-eslint/eslint-plugin': specifier: ^7.8.0 - version: 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5) + version: 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': specifier: ^7.8.0 - version: 7.9.0(eslint@8.57.0)(typescript@5.4.5) + version: 7.10.0(eslint@8.57.0)(typescript@5.4.5) '@vitejs/plugin-react': specifier: ^4.3.0 version: 4.3.0(vite@4.5.3) @@ -126,16 +126,16 @@ importers: version: 9.1.0(eslint@8.57.0) eslint-config-sanity: specifier: ^7.1.2 - version: 7.1.2(@typescript-eslint/eslint-plugin@7.9.0)(@typescript-eslint/parser@7.9.0)(eslint-plugin-import@2.29.1)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.1)(eslint@8.57.0) + version: 7.1.2(@typescript-eslint/eslint-plugin@7.10.0)(@typescript-eslint/parser@7.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.1)(eslint@8.57.0) eslint-import-resolver-typescript: specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@7.9.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + version: 3.6.1(@typescript-eslint/parser@7.10.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) eslint-plugin-boundaries: specifier: ^4.2.0 - version: 4.2.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + version: 4.2.0(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + version: 2.29.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-prettier: specifier: ^5.1.3 version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5) @@ -159,7 +159,7 @@ importers: version: 52.0.0(eslint@8.57.0) eslint-plugin-unused-imports: specifier: ^3.2.0 - version: 3.2.0(@typescript-eslint/eslint-plugin@7.9.0)(eslint@8.57.0) + version: 3.2.0(@typescript-eslint/eslint-plugin@7.10.0)(eslint@8.57.0) execa: specifier: ^2.0.0 version: 2.1.0 @@ -213,7 +213,7 @@ importers: version: link:packages/sanity semver: specifier: ^7.3.5 - version: 7.6.2 + version: 7.6.0 turbo: specifier: ^1.13.3 version: 1.13.3 @@ -239,7 +239,7 @@ importers: version: 2.11.8(react@18.3.1) '@sanity/ui': specifier: ^2.1.11 - version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8) react: specifier: ^18.3.1 version: 18.3.1 @@ -251,13 +251,13 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) dev/embedded-studio: dependencies: '@sanity/ui': specifier: ^2.1.11 - version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8) react: specifier: ^18.3.1 version: 18.3.1 @@ -269,7 +269,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) devDependencies: '@types/react': specifier: ^18.3.2 @@ -291,7 +291,7 @@ importers: dependencies: next: specifier: ^14.0.0 - version: 14.2.3(@babel/core@7.24.5)(@playwright/test@1.41.2)(react-dom@18.3.1)(react@18.3.1) + version: 14.2.1(@babel/core@7.24.5)(@playwright/test@1.41.2)(react-dom@18.3.1)(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -303,7 +303,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) dev/starter-studio: dependencies: @@ -318,7 +318,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) dev/strict-studio: dependencies: @@ -333,19 +333,19 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) dev/studio-e2e-testing: dependencies: '@sanity/google-maps-input': specifier: ^4.0.0 - version: 4.0.1(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) + version: 4.0.1(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.8) '@sanity/icons': specifier: ^2.11.0 version: 2.11.8(react@18.3.1) '@sanity/ui': specifier: ^2.1.11 - version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8) '@sanity/vision': specifier: 3.43.0 version: link:../../packages/@sanity/vision @@ -360,13 +360,13 @@ importers: version: link:../../packages/sanity sanity-plugin-mux-input: specifier: ^2.2.1 - version: 2.3.4(@types/react@18.3.2)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) + version: 2.3.4(@types/react@18.3.2)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.8) sanity-test-studio: specifier: workspace:* version: link:../test-studio styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) dev/test-next-studio: dependencies: @@ -405,16 +405,16 @@ importers: version: 3.0.18(react@18.3.1) '@react-three/cannon': specifier: ^6.5.2 - version: 6.6.0(@react-three/fiber@8.16.6)(react@18.3.1)(three@0.164.1)(typescript@5.4.5) + version: 6.6.0(@react-three/fiber@8.16.1)(react@18.3.1)(three@0.164.1)(typescript@5.4.5) '@react-three/drei': specifier: ^9.80.1 - version: 9.105.6(@react-three/fiber@8.16.6)(@types/react@18.3.2)(@types/three@0.164.1)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + version: 9.105.4(@react-three/fiber@8.16.1)(@types/react@18.3.2)(@types/three@0.164.1)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) '@react-three/fiber': specifier: ^8.13.6 - version: 8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + version: 8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) '@sanity/assist': specifier: ^3.0.2 - version: 3.0.4(@sanity/mutator@packages+@sanity+mutator)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) + version: 3.0.3(@sanity/mutator@packages+@sanity+mutator)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) '@sanity/block-tools': specifier: 3.43.0 version: link:../../packages/@sanity/block-tools @@ -450,7 +450,7 @@ importers: version: 1.2.4(sanity@packages+sanity) '@sanity/logos': specifier: ^2.1.2 - version: 2.1.11(@sanity/color@3.0.6)(react@18.3.1) + version: 2.1.10(@sanity/color@3.0.6)(react@18.3.1) '@sanity/migrate': specifier: workspace:* version: link:../../packages/@sanity/migrate @@ -459,10 +459,10 @@ importers: version: link:../../packages/@sanity/portable-text-editor '@sanity/preview-url-secret': specifier: ^1.6.1 - version: 1.6.13(@sanity/client@6.18.2) + version: 1.6.10(@sanity/client@6.18.2) '@sanity/react-loader': specifier: ^1.8.3 - version: 1.9.19(@sanity/client@6.18.2)(react@18.3.1) + version: 1.9.13(@sanity/client@6.18.2)(react@18.3.1) '@sanity/tsdoc': specifier: 1.0.64 version: 1.0.64(@types/node@18.19.31)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) @@ -510,7 +510,7 @@ importers: version: 5.3.0 lamina: specifier: ^1.1.23 - version: 1.1.23(@react-three/fiber@8.16.6)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + version: 1.1.23(@react-three/fiber@8.16.1)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) lodash: specifier: ^4.17.21 version: 4.17.21 @@ -552,7 +552,7 @@ importers: version: 0.164.1 three-stdlib: specifier: ^2.24.2 - version: 2.30.0(three@0.164.1) + version: 2.29.6(three@0.164.1) devDependencies: vite: specifier: ^4.5.3 @@ -571,7 +571,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) examples/clean-studio: dependencies: @@ -586,7 +586,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) examples/ecommerce-studio: dependencies: @@ -595,7 +595,7 @@ importers: version: link:../../packages/@sanity/cli '@sanity/ui': specifier: ^2.1.11 - version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8) react: specifier: ^18.3.1 version: 18.3.1 @@ -610,13 +610,13 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) examples/movies-studio: dependencies: '@sanity/google-maps-input': specifier: ^4.0.0 - version: 4.0.1(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) + version: 4.0.1(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.8) react: specifier: ^18.3.1 version: 18.3.1 @@ -628,7 +628,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) packages/@repo/package.bundle: {} @@ -660,6 +660,9 @@ importers: '@sanity/diff': specifier: workspace:* version: link:../../@sanity/diff + '@sanity/manifest': + specifier: workspace:* + version: link:../../@sanity/manifest '@sanity/migrate': specifier: workspace:* version: link:../../@sanity/migrate @@ -738,7 +741,7 @@ importers: dependencies: '@babel/traverse': specifier: ^7.23.5 - version: 7.24.5 + version: 7.24.1 '@sanity/client': specifier: ^6.18.2 version: 6.18.2(debug@4.3.4) @@ -747,7 +750,7 @@ importers: version: link:../codegen '@sanity/telemetry': specifier: ^0.7.7 - version: 0.7.8(react@18.3.1) + version: 0.7.7 '@sanity/util': specifier: 3.43.0 version: link:../util @@ -783,7 +786,7 @@ importers: version: 3.2.5 semver: specifier: ^7.3.5 - version: 7.6.2 + version: 7.6.0 silver-fleece: specifier: 1.1.0 version: 1.1.0 @@ -958,28 +961,28 @@ importers: dependencies: '@babel/core': specifier: ^7.23.9 - version: 7.24.5 + version: 7.24.4 '@babel/generator': specifier: ^7.23.6 - version: 7.24.5 + version: 7.24.4 '@babel/preset-env': specifier: ^7.23.8 - version: 7.24.5(@babel/core@7.24.5) + version: 7.24.4(@babel/core@7.24.4) '@babel/preset-react': specifier: ^7.23.3 - version: 7.24.1(@babel/core@7.24.5) + version: 7.24.1(@babel/core@7.24.4) '@babel/preset-typescript': specifier: ^7.23.3 - version: 7.24.1(@babel/core@7.24.5) + version: 7.24.1(@babel/core@7.24.4) '@babel/register': specifier: ^7.23.7 - version: 7.23.7(@babel/core@7.24.5) + version: 7.23.7(@babel/core@7.24.4) '@babel/traverse': specifier: ^7.23.5 - version: 7.24.5 + version: 7.24.1 '@babel/types': specifier: ^7.23.9 - version: 7.24.5 + version: 7.24.0 debug: specifier: ^4.3.4 version: 4.3.4(supports-color@9.4.0) @@ -1000,7 +1003,7 @@ importers: version: 4.2.0 zod: specifier: ^3.22.4 - version: 3.23.8 + version: 3.23.0 devDependencies: '@jest/globals': specifier: ^29.7.0 @@ -1042,49 +1045,13 @@ importers: packages/@sanity/manifest: dependencies: - '@sanity/generate-help-url': - specifier: ^3.0.0 - version: 3.0.0 - '@sanity/types': - specifier: 3.38.0 - version: link:../types - arrify: - specifier: ^1.0.1 - version: 1.0.1 - groq-js: - specifier: ^1.7.0 - version: 1.7.0 - humanize-list: - specifier: ^1.0.1 - version: 1.0.1 - leven: - specifier: ^3.1.0 - version: 3.1.0 - lodash: - specifier: ^4.17.21 - version: 4.17.21 - object-inspect: - specifier: ^1.13.1 - version: 1.13.1 + zod: + specifier: ^3.22.4 + version: 3.23.0 devDependencies: - '@jest/globals': - specifier: ^29.7.0 - version: 29.7.0 '@repo/package.config': specifier: workspace:* version: link:../../@repo/package.config - '@sanity/icons': - specifier: ^2.11.8 - version: 2.11.8(react@18.2.0) - '@types/arrify': - specifier: ^1.0.4 - version: 1.0.4 - '@types/object-inspect': - specifier: ^1.13.0 - version: 1.13.0 - '@types/react': - specifier: ^18.2.78 - version: 18.2.78 rimraf: specifier: ^3.0.2 version: 3.0.2 @@ -1285,7 +1252,7 @@ importers: version: 6.1.11(react-dom@18.3.1)(react@18.3.1) tsx: specifier: ^4.10.3 - version: 4.10.5 + version: 4.11.0 vite: specifier: ^4.5.3 version: 4.5.3(@types/node@18.19.31) @@ -1346,7 +1313,7 @@ importers: version: 6.18.2 '@types/react': specifier: ^18.0.25 - version: 18.3.2 + version: 18.2.78 devDependencies: '@jest/globals': specifier: ^29.7.0 @@ -1435,7 +1402,7 @@ importers: version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) '@uiw/react-codemirror': specifier: ^4.11.4 - version: 4.21.25(@babel/runtime@7.24.5)(@codemirror/autocomplete@6.16.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.7.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.3)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1) + version: 4.21.25(@babel/runtime@7.24.4)(@codemirror/autocomplete@6.16.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.3)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1) is-hotkey-esm: specifier: ^1.0.0 version: 1.0.0 @@ -1568,7 +1535,7 @@ importers: version: 5.0.2 '@sanity/export': specifier: ^3.37.4 - version: 3.38.1 + version: 3.37.4 '@sanity/icons': specifier: ^2.11.0 version: 2.11.8(react@18.3.1) @@ -1577,10 +1544,13 @@ importers: version: 1.0.2 '@sanity/import': specifier: ^3.37.3 - version: 3.37.4 + version: 3.37.3 '@sanity/logos': specifier: ^2.1.4 - version: 2.1.11(@sanity/color@3.0.6)(react@18.3.1) + version: 2.1.10(@sanity/color@3.0.6)(react@18.3.1) + '@sanity/manifest': + specifier: 3.39.1 + version: link:../@sanity/manifest '@sanity/migrate': specifier: 3.43.0 version: link:../@sanity/migrate @@ -1592,19 +1562,19 @@ importers: version: link:../@sanity/portable-text-editor '@sanity/presentation': specifier: 1.15.8 - version: 1.15.8(@sanity/client@6.18.2)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + version: 1.15.8(@sanity/client@6.18.2)(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(styled-components@6.1.11) '@sanity/schema': specifier: 3.43.0 version: link:../@sanity/schema '@sanity/telemetry': specifier: ^0.7.7 - version: 0.7.8(react@18.3.1) + version: 0.7.7 '@sanity/types': specifier: 3.43.0 version: link:../@sanity/types '@sanity/ui': specifier: ^2.1.11 - version: 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + version: 2.1.11(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(styled-components@6.1.11) '@sanity/util': specifier: 3.43.0 version: link:../@sanity/util @@ -1613,7 +1583,7 @@ importers: version: 3.0.2 '@tanstack/react-table': specifier: ^8.16.0 - version: 8.16.0(react-dom@18.3.1)(react@18.3.1) + version: 8.17.3(react-dom@18.3.1)(react@18.3.1) '@tanstack/react-virtual': specifier: 3.0.0-beta.54 version: 3.0.0-beta.54(react@18.3.1) @@ -1622,7 +1592,7 @@ importers: version: 5.0.7 '@types/react-is': specifier: ^18.2.0 - version: 18.3.0 + version: 18.2.4 '@types/shallow-equals': specifier: ^1.0.0 version: 1.0.3 @@ -1637,7 +1607,7 @@ importers: version: 0.0.6 '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.3.0(vite@4.5.3) + version: 4.2.1(vite@4.5.3) archiver: specifier: ^7.0.0 version: 7.0.1 @@ -1706,7 +1676,7 @@ importers: version: 5.3.0 i18next: specifier: ^23.2.7 - version: 23.11.2 + version: 23.11.1 import-fresh: specifier: ^3.3.0 version: 3.3.0 @@ -1784,13 +1754,13 @@ importers: version: 3.2.2 react-focus-lock: specifier: ^2.8.1 - version: 2.12.1(@types/react@18.3.2)(react@18.3.1) + version: 2.11.3(@types/react@18.3.2)(react@18.3.1) react-i18next: specifier: ^13.0.1 - version: 13.5.0(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1) + version: 13.5.0(i18next@23.11.1)(react-dom@18.3.1)(react@18.3.1) react-is: specifier: ^18.2.0 - version: 18.3.1 + version: 18.2.0 react-refractor: specifier: ^2.1.6 version: 2.1.7(react@18.3.1) @@ -1823,7 +1793,7 @@ importers: version: 3.1.0 semver: specifier: ^7.3.5 - version: 7.6.2 + version: 7.6.0 shallow-equals: specifier: ^1.0.0 version: 1.0.0 @@ -1844,7 +1814,7 @@ importers: version: 2.0.0(react@18.3.1) use-sync-external-store: specifier: ^1.2.0 - version: 1.2.2(react@18.3.1) + version: 1.2.0(react@18.3.1) vite: specifier: ^4.5.1 version: 4.5.3(@types/node@18.19.31) @@ -1853,7 +1823,7 @@ importers: version: 17.7.2 zod: specifier: ^3.22.4 - version: 3.22.4 + version: 3.23.8 devDependencies: '@jest/expect': specifier: ^29.7.0 @@ -1881,7 +1851,7 @@ importers: version: 6.8.18(@types/node@18.19.31)(debug@4.3.4)(typescript@5.4.5) '@sanity/tsdoc': specifier: 1.0.65 - version: 1.0.65(@types/node@18.19.31)(debug@4.3.4)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) + version: 1.0.65(@types/node@18.19.31)(debug@4.3.4)(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11) '@sanity/ui-workshop': specifier: ^1.2.11 version: 1.2.11(@sanity/icons@2.11.8)(@sanity/ui@2.1.11)(@types/node@18.19.31)(react-dom@18.3.1)(react@18.3.1)(styled-components@6.1.11) @@ -1893,7 +1863,7 @@ importers: version: 13.4.0(react-dom@18.3.1)(react@18.3.1) '@testing-library/user-event': specifier: ^13.0.16 - version: 13.5.0(@testing-library/dom@10.1.0) + version: 13.5.0(@testing-library/dom@10.0.0) '@types/archiver': specifier: ^6.0.2 version: 6.0.2 @@ -1977,7 +1947,7 @@ importers: version: link:../../packages/sanity styled-components: specifier: ^6.1.0 - version: 6.1.11(react-dom@18.3.1)(react@18.3.1) + version: 6.1.8(react-dom@18.3.1)(react@18.3.1) perf/tests: dependencies: @@ -2078,6 +2048,28 @@ packages: resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} engines: {node: '>=6.9.0'} + /@babel/core@7.24.4: + resolution: {integrity: sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helpers': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + convert-source-map: 2.0.0 + debug: 4.3.4(supports-color@9.4.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + /@babel/core@7.24.5: resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} engines: {node: '>=6.9.0'} @@ -2100,14 +2092,14 @@ packages: transitivePeerDependencies: - supports-color - /@babel/eslint-parser@7.24.1(@babel/core@7.24.5)(eslint@8.57.0): + /@babel/eslint-parser@7.24.1(@babel/core@7.24.4)(eslint@8.57.0): resolution: {integrity: sha512-d5guuzMlPeDfZIbpQ8+g1NaCNuAGBBGNECh0HVqz1sjOeVLh2CEaifuOysCH18URW6R7pqXINvf5PaR/dC6jLQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 eslint: 8.57.0 eslint-visitor-keys: 2.1.0 @@ -2117,13 +2109,22 @@ packages: /@babel/generator@7.2.0: resolution: {integrity: sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 jsesc: 2.5.2 lodash: 4.17.21 source-map: 0.5.7 trim-right: 1.0.1 dev: false + /@babel/generator@7.24.4: + resolution: {integrity: sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + /@babel/generator@7.24.5: resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} engines: {node: '>=6.9.0'} @@ -2137,13 +2138,13 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 /@babel/helper-compilation-targets@7.23.6: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} @@ -2155,6 +2156,41 @@ packages: lru-cache: 5.1.1 semver: 6.3.1 + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + + /@babel/helper-create-class-features-plugin@7.24.4(@babel/core@7.24.5): + resolution: {integrity: sha512-lG75yeuUSVu0pIcbhiYMXBXANHrpUPaOfu7ryAzskCgKUHuAxRQI5ssrtmF0X9UXldPlvT0XM/A4F44OXRt6iQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + semver: 6.3.1 + dev: true + /@babel/helper-create-class-features-plugin@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-uRc4Cv8UQWnE4NXlYTIIdM7wfFkOqlFztcC/gVXDKohKoVB3OyonfelUBaJzSwpBntZ2KYGF/9S7asCHsXwW6g==} engines: {node: '>=6.9.0'} @@ -2171,6 +2207,18 @@ packages: '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.24.5 semver: 6.3.1 + dev: true + + /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.4): + resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.1 /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.24.5): resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} @@ -2182,20 +2230,36 @@ packages: '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 + dev: true - /@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.24.5): - resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.4): + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + debug: 4.3.4(supports-color@9.4.0) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + /@babel/helper-define-polyfill-provider@0.6.1(@babel/core@7.24.5): + resolution: {integrity: sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 debug: 4.3.4(supports-color@9.4.0) lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: - supports-color + dev: true /@babel/helper-environment-visitor@7.22.20: resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} @@ -2206,25 +2270,59 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 /@babel/helper-hoist-variables@7.22.5: resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + + /@babel/helper-member-expression-to-functions@7.23.0: + resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 /@babel/helper-member-expression-to-functions@7.24.5: resolution: {integrity: sha512-4owRteeihKWKamtqg4JmWSsEZU445xpFRXPEwp44HbgbxdWlUV1b4Agg4lkA806Lil5XM/e+FJyS0vj5T6vmcA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.24.5 + dev: true /@babel/helper-module-imports@7.24.3: resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.4): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.24.5): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + dev: true /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} @@ -2243,12 +2341,27 @@ packages: resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + + /@babel/helper-plugin-utils@7.24.0: + resolution: {integrity: sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==} + engines: {node: '>=6.9.0'} /@babel/helper-plugin-utils@7.24.5: resolution: {integrity: sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==} engines: {node: '>=6.9.0'} + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.4): + resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-wrap-function': 7.22.20 + /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.24.5): resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} engines: {node: '>=6.9.0'} @@ -2258,7 +2371,19 @@ packages: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.24.5 + '@babel/helper-wrap-function': 7.22.20 + dev: true + + /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-member-expression-to-functions': 7.23.0 + '@babel/helper-optimise-call-expression': 7.22.5 /@babel/helper-replace-supers@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==} @@ -2268,8 +2393,15 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.24.5 + '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 /@babel/helper-simple-access@7.24.5: resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} @@ -2281,7 +2413,13 @@ packages: resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.24.0 /@babel/helper-split-export-declaration@7.24.5: resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} @@ -2293,6 +2431,10 @@ packages: resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier@7.24.5: resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} engines: {node: '>=6.9.0'} @@ -2301,13 +2443,23 @@ packages: resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.24.5: - resolution: {integrity: sha512-/xxzuNvgRl4/HLNKvnFwdhdgN3cpLxgLROeLDl83Yx0AJ1SGvq1ak0OszTOjDfiB8Vx03eJbeDWh9r+jCCWttw==} + /@babel/helper-wrap-function@7.22.20: + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-function-name': 7.23.0 '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + + /@babel/helpers@7.24.4: + resolution: {integrity: sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.1 + '@babel/types': 7.24.0 + transitivePeerDependencies: + - supports-color /@babel/helpers@7.24.5: resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} @@ -2323,11 +2475,18 @@ packages: resolution: {integrity: sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.22.20 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.0.0 + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + /@babel/parser@7.24.5: resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} engines: {node: '>=6.0.0'} @@ -2335,6 +2494,16 @@ packages: dependencies: '@babel/types': 7.24.5 + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-qpl6vOOEEzTLLcsuqYYo8yDtrTocmu2xkGvgNebvPjT9DTtfFYGmgDqY+rBYXNlqL4s9qLDn6xkrJv4RxAPiTA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + /@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-LdXRi1wEMTrHVR4Zc9F8OewC3vdm5h4QB6L71zy6StmYeqGi1b3ttIO8UC+BfZKcH9jdr4aI249rBkm+3+YvHw==} engines: {node: '>=6.9.0'} @@ -2344,6 +2513,16 @@ packages: '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==} @@ -2352,7 +2531,19 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==} @@ -2361,9 +2552,20 @@ packages: '@babel/core': ^7.13.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.24.5(@babel/core@7.24.5) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.5) + dev: true + + /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==} @@ -2373,7 +2575,8 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.24.5): resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} @@ -2383,54 +2586,90 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.5): + /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.24.4): resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4): resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.5): + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.5): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.4): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.24.5): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 dev: true + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.4): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.5): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.4): + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -2439,7 +2678,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} @@ -2447,7 +2695,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} @@ -2455,7 +2712,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-import-assertions@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==} @@ -2464,7 +2731,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-import-attributes@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==} @@ -2473,7 +2750,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -2481,7 +2767,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} @@ -2489,7 +2784,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-jsx@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==} @@ -2498,7 +2803,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -2506,7 +2820,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -2514,7 +2837,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -2522,7 +2854,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -2530,7 +2871,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -2538,7 +2888,16 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.4): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.5): resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -2546,7 +2905,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.4): + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -2555,7 +2924,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.4): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.5): resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -2564,7 +2943,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-typescript@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==} @@ -2573,7 +2962,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.4): + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.5): resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} @@ -2583,7 +2983,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-arrow-functions@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==} @@ -2592,7 +3002,20 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.4): + resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) /@babel/plugin-transform-async-generator-functions@7.24.3(@babel/core@7.24.5): resolution: {integrity: sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==} @@ -2602,9 +3025,21 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.4) /@babel/plugin-transform-async-to-generator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==} @@ -2614,8 +3049,18 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-block-scoped-functions@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==} @@ -2624,7 +3069,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-block-scoping@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-nIFUZIpGKDf9O9ttyRXpHFpKC+X3Y5mtshZONuEUYBomAKoM4y029Jr+uB1bHGPhNmK8YXHevDtKDOLmtRrp6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-block-scoping@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-sMfBc3OxghjC95BkYrYocHL3NaOplrcaunblzwXhGmlPwpmfsxr4vK+mBBt49r+S240vahmv+kUxkeKgs+haCw==} @@ -2634,6 +3089,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-class-properties@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==} @@ -2642,8 +3108,20 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) /@babel/plugin-transform-class-static-block@7.24.4(@babel/core@7.24.5): resolution: {integrity: sha512-B8q7Pz870Hz/q9UgP8InNpY01CSLDSCyqX7zcRuv3FcPl87A2G17lASroHWaCtbdIcbYzOZ7kWmXFKbijMSmFg==} @@ -2652,9 +3130,26 @@ packages: '@babel/core': ^7.12.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-classes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) + '@babel/helper-split-export-declaration': 7.22.6 + globals: 11.12.0 /@babel/plugin-transform-classes@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-gWkLP25DFj2dwe9Ck8uwMOpko4YsqyfZJrOmqqcegeDYEbp7rmn4U6UQZNj08UF6MaX39XenSpKRCvpDRBtZ7Q==} @@ -2671,6 +3166,17 @@ packages: '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) '@babel/helper-split-export-declaration': 7.24.5 globals: 11.12.0 + dev: true + + /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/template': 7.24.0 /@babel/plugin-transform-computed-properties@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==} @@ -2679,8 +3185,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/template': 7.24.0 + dev: true + + /@babel/plugin-transform-destructuring@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-destructuring@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-SZuuLyfxvsm+Ah57I/i1HVjveBENYK9ue8MJ7qkc7ndoNjqquJiElzA7f5yaAXjyW2hKojosOTAQQRX50bPSVg==} @@ -2690,6 +3206,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-dotall-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==} @@ -2699,7 +3226,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-duplicate-keys@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==} @@ -2708,7 +3245,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) /@babel/plugin-transform-dynamic-import@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==} @@ -2717,8 +3265,19 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-exponentiation-operator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==} @@ -2728,7 +3287,18 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) /@babel/plugin-transform-export-namespace-from@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==} @@ -2737,8 +3307,19 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 /@babel/plugin-transform-for-of@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==} @@ -2747,8 +3328,20 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-function-name@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==} @@ -2759,7 +3352,18 @@ packages: '@babel/core': 7.24.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) /@babel/plugin-transform-json-strings@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==} @@ -2768,8 +3372,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==} @@ -2778,7 +3392,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) /@babel/plugin-transform-logical-assignment-operators@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==} @@ -2787,8 +3412,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-member-expression-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==} @@ -2797,7 +3432,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-modules-amd@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==} @@ -2806,8 +3452,20 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 /@babel/plugin-transform-modules-commonjs@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==} @@ -2816,9 +3474,22 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-simple-access': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-simple-access': 7.22.5 + dev: true + + /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-identifier': 7.22.20 /@babel/plugin-transform-modules-systemjs@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==} @@ -2828,9 +3499,20 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-modules-umd@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==} @@ -2839,8 +3521,19 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.24.5): resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} @@ -2850,7 +3543,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-new-target@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==} @@ -2859,7 +3562,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) /@babel/plugin-transform-nullish-coalescing-operator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==} @@ -2868,8 +3582,19 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) /@babel/plugin-transform-numeric-separator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==} @@ -2878,8 +3603,21 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-object-rest-spread@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) /@babel/plugin-transform-object-rest-spread@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-7EauQHszLGM3ay7a161tTQH7fj+3vVM/gThlz5HpFtnygTxjrlvoeq7MPVA1Vy9Q555OB8SnAOsMkLShNkkrHA==} @@ -2892,6 +3630,17 @@ packages: '@babel/helper-plugin-utils': 7.24.5 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) '@babel/plugin-transform-parameters': 7.24.5(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.4) /@babel/plugin-transform-object-super@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==} @@ -2900,8 +3649,19 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-replace-supers': 7.24.1(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) /@babel/plugin-transform-optional-catch-binding@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==} @@ -2910,8 +3670,32 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + + /@babel/plugin-transform-optional-chaining@7.24.1(@babel/core@7.24.5): + resolution: {integrity: sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + dev: true /@babel/plugin-transform-optional-chaining@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-xWCkmwKT+ihmA6l7SSTpk8e4qQl/274iNbSKRRS8mpqFR32ksy36+a+LWY8OXCCEefF8WFlnOHVsaDI2231wBg==} @@ -2923,6 +3707,16 @@ packages: '@babel/helper-plugin-utils': 7.24.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-parameters@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-parameters@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-9Co00MqZ2aoky+4j2jhofErthm6QVLKbpQrvz20c3CH9KQCLHyNB+t2ya4/UrRpQGR+Wrwjg9foopoeSdnHOkA==} @@ -2932,6 +3726,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-private-methods@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==} @@ -2940,8 +3745,21 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-private-property-in-object@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) /@babel/plugin-transform-private-property-in-object@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-JM4MHZqnWR04jPMujQDTBVRnqxpLLpx2tkn7iPn+Hmsc0Gnb79yvRWOkvqFOx3Z7P7VxiRIR22c4eGSNj87OBQ==} @@ -2954,6 +3772,16 @@ packages: '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) '@babel/helper-plugin-utils': 7.24.5 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-property-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==} @@ -2962,7 +3790,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-react-display-name@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-mvoQg2f9p2qlpDQRBC7M3c3XTr0k7cp/0+kFKKO/7Gtu0LSw16eKB+Fabe2bDT/UpsyasTBBkAnbdsLrkD5XMw==} @@ -2971,7 +3809,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.4): + resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) /@babel/plugin-transform-react-jsx-development@7.22.5(@babel/core@7.24.5): resolution: {integrity: sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==} @@ -2981,6 +3829,17 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-react-jsx-self@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-kDJgnPujTmAZ/9q2CN4m2/lRsUUPDvsG3+tSHWUJIzMGTt5U/b/fwWd3RO3n+5mjLrsBrVa5eKFRVSQbi3dF1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + dev: false /@babel/plugin-transform-react-jsx-self@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w==} @@ -2991,14 +3850,37 @@ packages: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.5 + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.5 + dev: false + /@babel/plugin-transform-react-jsx-source@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/core': 7.24.5 + '@babel/helper-plugin-utils': 7.24.5 + + /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.4): + resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-module-imports': 7.24.3 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.24.5): resolution: {integrity: sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==} @@ -3009,9 +3891,20 @@ packages: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-module-imports': 7.24.3 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 + dev: true + + /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-react-pure-annotations@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-+pWEAaDJvSm9aFvJNpLiM2+ktl2Sn2U5DdyiWdZBxmLc6+xGt88dvFqsHiAiDS+8WqUwbDfkKz9jRxK3M0k+kA==} @@ -3021,7 +3914,18 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + regenerator-transform: 0.15.2 /@babel/plugin-transform-regenerator@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==} @@ -3030,8 +3934,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 regenerator-transform: 0.15.2 + dev: true + + /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-reserved-words@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==} @@ -3040,7 +3954,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-shorthand-properties@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==} @@ -3049,7 +3973,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 /@babel/plugin-transform-spread@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==} @@ -3058,8 +3993,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: true + + /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-sticky-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==} @@ -3068,7 +4013,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-template-literals@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==} @@ -3077,7 +4032,17 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-typeof-symbol@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-typeof-symbol@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-UTGnhYVZtTAjdwOTzT+sCyXmTn8AhaxOS/MjG9REclZ6ULHWF9KoCZur0HSGU7hk8PdBFKKbYe6+gqdXWz84Jg==} @@ -3087,6 +4052,20 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-plugin-utils': 7.24.5 + dev: true + + /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + dev: false /@babel/plugin-transform-typescript@7.24.4(@babel/core@7.24.5): resolution: {integrity: sha512-79t3CQ8+oBGk/80SQ8MN3Bs3obf83zJ0YZjDmDaEZN8MqhMI760apl5z6a20kFeMXBwJX99VpKT8CKxEBp5H1g==} @@ -3096,9 +4075,19 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.24.5(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-create-class-features-plugin': 7.24.4(@babel/core@7.24.5) + '@babel/helper-plugin-utils': 7.24.0 '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) + dev: true + + /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-unicode-escapes@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==} @@ -3107,7 +4096,18 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-unicode-property-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==} @@ -3117,7 +4117,18 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-unicode-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==} @@ -3127,7 +4138,18 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.4) + '@babel/helper-plugin-utils': 7.24.0 /@babel/plugin-transform-unicode-sets-regex@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==} @@ -3137,7 +4159,99 @@ packages: dependencies: '@babel/core': 7.24.5 '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.24.5) - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + dev: true + + /@babel/preset-env@7.24.4(@babel/core@7.24.4): + resolution: {integrity: sha512-7Kl6cSmYkak0FK/FXjSEnLJ1N9T/WA2RkMhu17gZ/dsxKJUuTYNIylahPTzqpLyJN4WhDif8X0XK1R8Wsguo/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-compilation-targets': 7.23.6 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.24.4) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-import-assertions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-attributes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.24.4) + '@babel/plugin-transform-arrow-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-async-generator-functions': 7.24.3(@babel/core@7.24.4) + '@babel/plugin-transform-async-to-generator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoped-functions': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-block-scoping': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-class-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-class-static-block': 7.24.4(@babel/core@7.24.4) + '@babel/plugin-transform-classes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-computed-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-destructuring': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dotall-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-duplicate-keys': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-dynamic-import': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-exponentiation-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-export-namespace-from': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-for-of': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-function-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-json-strings': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-logical-assignment-operators': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-member-expression-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-amd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-systemjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-umd': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-new-target': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-nullish-coalescing-operator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-numeric-separator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-rest-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-object-super': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-catch-binding': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-optional-chaining': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-parameters': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-methods': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-private-property-in-object': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-property-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-regenerator': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-reserved-words': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-shorthand-properties': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-spread': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-sticky-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-template-literals': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typeof-symbol': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-escapes': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-property-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.4) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.4) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.4) + babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.4) + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.4) + core-js-compat: 3.36.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color /@babel/preset-env@7.24.5(@babel/core@7.24.5): resolution: {integrity: sha512-UGK2ifKtcC8i5AI4cH+sbLLuLc2ktYSFJgBAXorKAsHUZmrQ1q6aQ6i3BvU24wWs2AAKqQB6kq3N9V9Gw1HiMQ==} @@ -3222,13 +4336,24 @@ packages: '@babel/plugin-transform-unicode-regex': 7.24.1(@babel/core@7.24.5) '@babel/plugin-transform-unicode-sets-regex': 7.24.1(@babel/core@7.24.5) '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.24.5) - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.24.5) + babel-plugin-polyfill-corejs2: 0.4.10(@babel/core@7.24.5) babel-plugin-polyfill-corejs3: 0.10.4(@babel/core@7.24.5) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.24.5) - core-js-compat: 3.37.0 + babel-plugin-polyfill-regenerator: 0.6.1(@babel/core@7.24.5) + core-js-compat: 3.36.1 semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true + + /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.4): + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 + esutils: 2.0.3 /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.24.5): resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} @@ -3236,9 +4361,24 @@ packages: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 - '@babel/types': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/types': 7.24.0 esutils: 2.0.3 + dev: true + + /@babel/preset-react@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.4) + '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.4) /@babel/preset-react@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-eFa8up2/8cZXLIpkafhaADTXSnl7IsUFCYenRWrARBz0/qZwcT0RBXpys0LJU4+WfPoF2ZG6ew6s2V6izMCwRA==} @@ -3247,12 +4387,27 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-option': 7.23.5 '@babel/plugin-transform-react-display-name': 7.24.1(@babel/core@7.24.5) '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.24.5) '@babel/plugin-transform-react-jsx-development': 7.22.5(@babel/core@7.24.5) '@babel/plugin-transform-react-pure-annotations': 7.24.1(@babel/core@7.24.5) + dev: true + + /@babel/preset-typescript@7.24.1(@babel/core@7.24.4): + resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-plugin-utils': 7.24.0 + '@babel/helper-validator-option': 7.23.5 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.4) + dev: false /@babel/preset-typescript@7.24.1(@babel/core@7.24.5): resolution: {integrity: sha512-1DBaMmRDpuYQBPWD8Pf/WEwCrtgRHxsZnP4mIy9G/X+hFfbI47Q2G4t1Paakld84+qsk2fSsUPMKg71jkoOOaQ==} @@ -3261,19 +4416,20 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@babel/helper-validator-option': 7.23.5 '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) '@babel/plugin-transform-modules-commonjs': 7.24.1(@babel/core@7.24.5) '@babel/plugin-transform-typescript': 7.24.4(@babel/core@7.24.5) + dev: true - /@babel/register@7.23.7(@babel/core@7.24.5): + /@babel/register@7.23.7(@babel/core@7.24.4): resolution: {integrity: sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 clone-deep: 4.0.1 find-cache-dir: 2.1.0 make-dir: 2.1.0 @@ -3284,8 +4440,8 @@ packages: /@babel/regjsgen@0.8.0: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - /@babel/runtime@7.24.5: - resolution: {integrity: sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==} + /@babel/runtime@7.24.4: + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 @@ -3295,8 +4451,25 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + + /@babel/traverse@7.24.1: + resolution: {integrity: sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.24.2 + '@babel/generator': 7.24.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + debug: 4.3.4(supports-color@9.4.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color /@babel/traverse@7.24.5: resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} @@ -3315,6 +4488,14 @@ packages: transitivePeerDependencies: - supports-color + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.24.1 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + /@babel/types@7.24.5: resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} @@ -3363,7 +4544,7 @@ packages: dependencies: '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.7.1 + '@codemirror/lint': 6.5.0 '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 '@lezer/common': 1.2.1 @@ -3381,8 +4562,8 @@ packages: style-mod: 4.1.2 dev: false - /@codemirror/lint@6.7.1: - resolution: {integrity: sha512-rELba6QJD20/bNXWP/cKTGLrwVEcpa2ViwULCV03ONcY1Je85++7sczVRUlnE4TJMjatx3IJTz6HX4NXi+moXw==} + /@codemirror/lint@6.5.0: + resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==} dependencies: '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 @@ -3495,6 +4676,12 @@ packages: '@emotion/memoize': 0.7.4 optional: true + /@emotion/is-prop-valid@1.2.1: + resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} + dependencies: + '@emotion/memoize': 0.8.1 + dev: false + /@emotion/is-prop-valid@1.2.2: resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} dependencies: @@ -3508,6 +4695,10 @@ packages: /@emotion/memoize@0.8.1: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} + /@emotion/unitless@0.8.0: + resolution: {integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==} + dev: false + /@emotion/unitless@0.8.1: resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} @@ -4292,8 +5483,19 @@ packages: '@floating-ui/core': 1.6.0 '@floating-ui/utils': 0.2.1 - /@floating-ui/react-dom@2.0.9(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-q0umO0+LQK4+p6aGyvzASqKbKOJcAHJ7ycE9CuUvfx3s9zTHWmGJTPOIlM/hmSBfUfg/XfY5YhLBLR/LHwShQQ==} + /@floating-ui/react-dom@2.0.8(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@floating-ui/dom': 1.6.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + dev: false + + /@floating-ui/react-dom@2.1.0(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} peerDependencies: react: '*' react-dom: '*' @@ -4305,8 +5507,8 @@ packages: /@floating-ui/utils@0.2.1: resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} - /@google-cloud/paginator@5.0.0: - resolution: {integrity: sha512-87aeg6QQcEPxGCOthnpUjvw4xAZ57G7pL8FS0C4e/81fr3FjkpUpibf1s2v5XGyGhUVGF4Jfg7yEcxqn2iUw1w==} + /@google-cloud/paginator@5.0.1: + resolution: {integrity: sha512-CjuvUWnEHgunUa1/9gP31eaBmiq/yAvUAjn+un0X2E6gRGSwzI6yxO0eEtZY0fE3uaOX/18ngmNyEmYV6eaX7A==} engines: {node: '>=14.0.0'} dependencies: arrify: 2.0.1 @@ -4323,19 +5525,19 @@ packages: engines: {node: '>=14'} dev: true - /@google-cloud/storage@7.11.0: - resolution: {integrity: sha512-W+OPOCgq7a3aAMANALbJAlEnpMV9fy681JWIm7dYe5W/+nRhq/UvA477TJT5/oPNA5DgiAdMEdiitdoLpZqhJg==} + /@google-cloud/storage@7.11.1: + resolution: {integrity: sha512-tibLSvgw7nDohMyIelt26kBpJ59YGWA2Rzep++DFNzEzKaSuCSp56Se9iM13ZlM3j5nLzR21IBkpRN58CmvCIw==} engines: {node: '>=14'} dependencies: - '@google-cloud/paginator': 5.0.0 + '@google-cloud/paginator': 5.0.1 '@google-cloud/projectify': 4.0.0 '@google-cloud/promisify': 4.0.0 abort-controller: 3.0.0 async-retry: 1.3.3 duplexify: 4.1.3 - fast-xml-parser: 4.3.6 - gaxios: 6.5.0 - google-auth-library: 9.9.0 + fast-xml-parser: 4.4.0 + gaxios: 6.6.0 + google-auth-library: 9.10.0 html-entities: 2.5.2 mime: 3.0.0 p-limit: 3.1.0 @@ -4585,13 +5787,6 @@ packages: wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 - /@isaacs/fs-minipass@4.0.1: - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} - dependencies: - minipass: 7.1.1 - dev: false - /@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -4793,7 +5988,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -4928,7 +6123,7 @@ packages: read-package-json: 6.0.4 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.6.2 + semver: 7.6.0 signal-exit: 3.0.7 slash: 3.0.0 ssri: 9.0.1 @@ -5113,16 +6308,16 @@ packages: xhr: 2.6.0 dev: false - /@next/env@14.2.3: - resolution: {integrity: sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA==} + /@next/env@14.2.1: + resolution: {integrity: sha512-qsHJle3GU3CmVx7pUoXcghX4sRN+vINkbLdH611T8ZlsP//grzqVW87BSUgOZeSAD4q7ZdZicdwNe/20U2janA==} dev: false /@next/env@14.3.0-canary.78: resolution: {integrity: sha512-M3nMIFaQUH3/lTsT5S2cHFY9E9+2twhYXkPeVmr1KCHcedAY5nIIixR09ALxLQRb1qxFddg6lVcrgiSiqZxp6Q==} dev: false - /@next/swc-darwin-arm64@14.2.3: - resolution: {integrity: sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A==} + /@next/swc-darwin-arm64@14.2.1: + resolution: {integrity: sha512-kGjnjcIJehEcd3rT/3NAATJQndAEELk0J9GmGMXHSC75TMnvpOhONcjNHbjtcWE5HUQnIHy5JVkatrnYm1QhVw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -5139,8 +6334,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@14.2.3: - resolution: {integrity: sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA==} + /@next/swc-darwin-x64@14.2.1: + resolution: {integrity: sha512-dAdWndgdQi7BK2WSXrx4lae7mYcOYjbHJUhvOUnJjMNYrmYhxbbvJ2xElZpxNxdfA6zkqagIB9He2tQk+l16ew==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -5157,8 +6352,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@14.2.3: - resolution: {integrity: sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA==} + /@next/swc-linux-arm64-gnu@14.2.1: + resolution: {integrity: sha512-2ZctfnyFOGvTkoD6L+DtQtO3BfFz4CapoHnyLTXkOxbZkVRgg3TQBUjTD/xKrO1QWeydeo8AWfZRg8539qNKrg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5175,8 +6370,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@14.2.3: - resolution: {integrity: sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw==} + /@next/swc-linux-arm64-musl@14.2.1: + resolution: {integrity: sha512-jazZXctiaanemy4r+TPIpFP36t1mMwWCKMsmrTRVChRqE6putyAxZA4PDujx0SnfvZHosjdkx9xIq9BzBB5tWg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -5193,8 +6388,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@14.2.3: - resolution: {integrity: sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w==} + /@next/swc-linux-x64-gnu@14.2.1: + resolution: {integrity: sha512-VjCHWCjsAzQAAo8lkBOLEIkBZFdfW+Z18qcQ056kL4KpUYc8o59JhLDCBlhg+hINQRgzQ2UPGma2AURGOH0+Qg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -5211,8 +6406,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@14.2.3: - resolution: {integrity: sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ==} + /@next/swc-linux-x64-musl@14.2.1: + resolution: {integrity: sha512-7HZKYKvAp4nAHiHIbY04finRqjeYvkITOGOurP1aLMexIFG/1+oCnqhGogBdc4lao/lkMW1c+AkwWSzSlLasqw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -5229,8 +6424,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@14.2.3: - resolution: {integrity: sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A==} + /@next/swc-win32-arm64-msvc@14.2.1: + resolution: {integrity: sha512-YGHklaJ/Cj/F0Xd8jxgj2p8po4JTCi6H7Z3Yics3xJhm9CPIqtl8erlpK1CLv+HInDqEWfXilqatF8YsLxxA2Q==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -5247,8 +6442,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@14.2.3: - resolution: {integrity: sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw==} + /@next/swc-win32-ia32-msvc@14.2.1: + resolution: {integrity: sha512-o+ISKOlvU/L43ZhtAAfCjwIfcwuZstiHVXq/BDsZwGqQE0h/81td95MPHliWCnFoikzWcYqh+hz54ZB2FIT8RA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -5265,8 +6460,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@14.2.3: - resolution: {integrity: sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA==} + /@next/swc-win32-x64-msvc@14.2.1: + resolution: {integrity: sha512-GmRoTiLcvCLifujlisknv4zu9/C4i9r0ktsA8E51EMqJL4bD4CpO7lDYr7SrUxCR0tS4RVcrqKmCak24T0ohaw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -5330,7 +6525,7 @@ packages: agent-base: 7.1.1 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.4 - lru-cache: 10.2.2 + lru-cache: 10.2.0 socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color @@ -5340,7 +6535,7 @@ packages: resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.6.2 + semver: 7.6.0 dev: true /@npmcli/git@5.0.6: @@ -5348,12 +6543,12 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/promise-spawn': 7.0.1 - lru-cache: 10.2.2 + lru-cache: 10.2.0 npm-pick-manifest: 9.0.0 proc-log: 4.0.0 promise-inflight: 1.0.1 promise-retry: 2.0.1 - semver: 7.6.2 + semver: 7.6.0 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -5428,7 +6623,7 @@ packages: enquirer: 2.3.6 ignore: 5.3.1 nx: 18.2.4 - semver: 7.6.2 + semver: 7.6.0 tmp: 0.2.3 tslib: 2.6.2 yargs-parser: 21.1.1 @@ -5618,7 +6813,7 @@ packages: '@octokit/request-error': 3.0.3 '@octokit/types': 9.3.2 is-plain-object: 5.0.0 - node-fetch: 2.7.0 + node-fetch: 2.6.7 universal-user-agent: 6.0.1 transitivePeerDependencies: - encoding @@ -5773,7 +6968,7 @@ packages: /@radix-ui/primitive@1.0.1: resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 dev: false /@radix-ui/react-arrow@1.0.3(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1): @@ -5789,7 +6984,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -5805,7 +7000,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/react': 18.3.2 react: 18.3.1 dev: false @@ -5819,7 +7014,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/react': 18.3.2 react: 18.3.1 dev: false @@ -5837,7 +7032,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) @@ -5857,7 +7052,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -5876,8 +7071,8 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 - '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1)(react@18.3.1) + '@babel/runtime': 7.24.4 + '@floating-ui/react-dom': 2.0.8(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-arrow': 1.0.3(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) @@ -5905,7 +7100,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -5925,7 +7120,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 @@ -5946,7 +7141,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-slot': 1.0.2(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -5962,7 +7157,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -5981,7 +7176,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/primitive': 1.0.1 '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@radix-ui/react-context': 1.0.1(@types/react@18.3.2)(react@18.3.1) @@ -6008,7 +7203,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/react': 18.3.2 react: 18.3.1 dev: false @@ -6022,7 +7217,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -6037,7 +7232,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -6052,7 +7247,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/react': 18.3.2 react: 18.3.1 dev: false @@ -6066,7 +7261,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/rect': 1.0.1 '@types/react': 18.3.2 react: 18.3.1 @@ -6081,7 +7276,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.2)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -6100,7 +7295,7 @@ packages: '@types/react-dom': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@radix-ui/react-primitive': 1.0.3(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) '@types/react': 18.3.2 react: 18.3.1 @@ -6110,7 +7305,7 @@ packages: /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 dev: false /@react-spring/animated@9.6.1(react@18.3.1): @@ -6149,7 +7344,7 @@ packages: react: 18.3.1 dev: false - /@react-spring/three@9.6.1(@react-three/fiber@8.16.6)(react@18.3.1)(three@0.164.1): + /@react-spring/three@9.6.1(@react-three/fiber@8.16.1)(react@18.3.1)(three@0.164.1): resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} peerDependencies: '@react-three/fiber': '>=6.0' @@ -6160,7 +7355,7 @@ packages: '@react-spring/core': 9.6.1(react@18.3.1) '@react-spring/shared': 9.6.1(react@18.3.1) '@react-spring/types': 9.6.1 - '@react-three/fiber': 8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + '@react-three/fiber': 8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) react: 18.3.1 three: 0.164.1 dev: false @@ -6169,7 +7364,7 @@ packages: resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} dev: false - /@react-three/cannon@6.6.0(@react-three/fiber@8.16.6)(react@18.3.1)(three@0.164.1)(typescript@5.4.5): + /@react-three/cannon@6.6.0(@react-three/fiber@8.16.1)(react@18.3.1)(three@0.164.1)(typescript@5.4.5): resolution: {integrity: sha512-lP9rJoVHQi0w+dYF8FJAm2xr5eLfNEckb04j72kjqndUkuOPr26N4rSBhQbHl5b5N3tEnhQaIMungAvHkcY8/A==} peerDependencies: '@react-three/fiber': '>=8' @@ -6177,7 +7372,7 @@ packages: three: '>=0.139' dependencies: '@pmndrs/cannon-worker-api': 2.4.0(three@0.164.1) - '@react-three/fiber': 8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + '@react-three/fiber': 8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) cannon-es: 0.20.0 cannon-es-debugger: 1.0.0(cannon-es@0.20.0)(three@0.164.1)(typescript@5.4.5) react: 18.3.1 @@ -6186,8 +7381,8 @@ packages: - typescript dev: false - /@react-three/drei@9.105.6(@react-three/fiber@8.16.6)(@types/react@18.3.2)(@types/three@0.164.1)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1): - resolution: {integrity: sha512-JBgYeV36N9N9f1c3o1ZfLYW4rXZA7UQTq32Y8s3DEF6lwj1/y+RP/yq2VG5I8OzUPl7gsmWdy8fpWZgrlAqUpQ==} + /@react-three/drei@9.105.4(@react-three/fiber@8.16.1)(@types/react@18.3.2)(@types/three@0.164.1)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1): + resolution: {integrity: sha512-pBZQmaV4yuBXP/TMcWJc5RNm3v9CykOqQDg2tyjZHijV4aa8jf38ae7WyQa5zDjuZcrHlQd2IGMX0Ia2UTHEUA==} peerDependencies: '@react-three/fiber': '>=8.0' react: '*' @@ -6197,11 +7392,11 @@ packages: react-dom: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@mediapipe/tasks-vision': 0.10.8 '@monogrid/gainmap-js': 3.0.5(three@0.164.1) - '@react-spring/three': 9.6.1(@react-three/fiber@8.16.6)(react@18.3.1)(three@0.164.1) - '@react-three/fiber': 8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + '@react-spring/three': 9.6.1(@react-three/fiber@8.16.1)(react@18.3.1)(three@0.164.1) + '@react-three/fiber': 8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) '@use-gesture/react': 10.3.1(react@18.3.1) camera-controls: 2.8.3(three@0.164.1) cross-env: 7.0.3 @@ -6218,7 +7413,7 @@ packages: suspend-react: 0.1.3(react@18.3.1) three: 0.164.1 three-mesh-bvh: 0.7.4(three@0.164.1) - three-stdlib: 2.30.0(three@0.164.1) + three-stdlib: 2.29.6(three@0.164.1) troika-three-text: 0.49.1(three@0.164.1) tunnel-rat: 0.1.2(@types/react@18.3.2)(react@18.3.1) utility-types: 3.11.0 @@ -6230,8 +7425,8 @@ packages: - immer dev: false - /@react-three/fiber@8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1): - resolution: {integrity: sha512-sKEqocYKRI3deW7z9CAVjedDID1an2i8FwxQVv2reMJxzIxIlyxCYXMIAqXBCgHTFtVX2hWGTZYhLL5nyne8kA==} + /@react-three/fiber@8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1): + resolution: {integrity: sha512-Rgjn+xcR+6Do2Ic4b6RROIvCGs3RhoVJEamfmtMSfkgIRH3PeiPdqRxcfJlO9y6KDvYA5fIUGruz9h/sTeLlpw==} peerDependencies: expo: '>=43.0' expo-asset: '>=8.4' @@ -6255,9 +7450,9 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/react-reconciler': 0.26.7 - '@types/webxr': 0.5.16 + '@types/webxr': 0.5.15 base64-js: 1.5.1 buffer: 6.0.3 its-fine: 1.2.5(react@18.3.1) @@ -6332,6 +7527,24 @@ packages: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) rollup: 4.18.0 + /@rollup/plugin-commonjs@25.0.7(rollup@4.18.0): + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0(rollup@4.18.0) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.9 + rollup: 4.18.0 + dev: false + /@rollup/plugin-commonjs@25.0.8(rollup@4.18.0): resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} engines: {node: '>=14.0.0'} @@ -6348,6 +7561,7 @@ packages: is-reference: 1.2.1 magic-string: 0.30.9 rollup: 4.18.0 + dev: true /@rollup/plugin-json@6.1.0(rollup@4.18.0): resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} @@ -6641,8 +7855,8 @@ packages: engines: {node: '>=10'} dev: false - /@sanity/assist@3.0.4(@sanity/mutator@packages+@sanity+mutator)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11): - resolution: {integrity: sha512-2UBznX9EjDwptMjby9x2zNQUoSR3sdgRSpD+AcnfTcnzjBytLTEnXxHr9hWzfRfPO4EDrr8UuxVaRTzHjnRb4Q==} + /@sanity/assist@3.0.3(@sanity/mutator@packages+@sanity+mutator)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11): + resolution: {integrity: sha512-pI84Rn2d0SdxUv6Tfc0nyXdcllse05Dtk+5YlfTwXChDuruPTAwDRkizlpVRwYxtMCZbM1p/Tr31Xjlr+vCGuw==} engines: {node: '>=14'} peerDependencies: '@sanity/mutator': ^3.36.4 @@ -6702,11 +7916,11 @@ packages: resolution: {integrity: sha512-2TjYEvOftD0v7ukx3Csdh9QIu44P2z7NDJtlC3qITJRYV36J7R6Vfd3trVhFnN77/7CZrGjqngrtohv8VqO5nw==} engines: {node: '>=18.0.0'} - /@sanity/core-loader@1.6.14(@sanity/client@6.18.2): - resolution: {integrity: sha512-gjTcwGpMjwsexylrdfMTJ4A2ipcLgt3RE55/C6O9ICdd7F+X4folIF91OMUWPUnWpll6mnadSEGceNllR3vA0g==} + /@sanity/core-loader@1.6.8(@sanity/client@6.18.2): + resolution: {integrity: sha512-P6hvwh2PiFxAvZ+rb4sOk8tN5G7H4w5MtsSWzCrAaUbzbxQd8eQ74rrA89g7XWpH/oc1cLnSaQbenJKlOQI1PA==} engines: {node: '>=18'} peerDependencies: - '@sanity/client': ^6.18.2 + '@sanity/client': ^6.15.19 dependencies: '@sanity/client': 6.18.2 dev: false @@ -6720,7 +7934,7 @@ packages: dependencies: '@rushstack/eslint-patch': 1.10.2 '@sanity/eslint-plugin-i18n': 1.1.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) eslint-plugin-i18next: 6.0.3 transitivePeerDependencies: - eslint @@ -6731,17 +7945,17 @@ packages: /@sanity/eslint-config-studio@4.0.0(eslint@8.57.0)(typescript@5.4.5): resolution: {integrity: sha512-7NLgYv94NofaMV1yPmzjEcMUWgAcOaXOrcrED8Pno1DXDda4y3ux55cIi+Q/0fw5PbWOjsM8AY9lSIm5Oq+w/A==} dependencies: - '@babel/core': 7.24.5 - '@babel/eslint-parser': 7.24.1(@babel/core@7.24.5)(eslint@8.57.0) - '@babel/preset-env': 7.24.5(@babel/core@7.24.5) - '@babel/preset-react': 7.24.1(@babel/core@7.24.5) + '@babel/core': 7.24.4 + '@babel/eslint-parser': 7.24.1(@babel/core@7.24.4)(eslint@8.57.0) + '@babel/preset-env': 7.24.4(@babel/core@7.24.4) + '@babel/preset-react': 7.24.1(@babel/core@7.24.4) '@rushstack/eslint-patch': 1.10.2 - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) confusing-browser-globals: 1.0.11 eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) eslint-plugin-react: 7.34.1(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) transitivePeerDependencies: - eslint - supports-color @@ -6760,11 +7974,10 @@ packages: event-source-polyfill: 1.0.31 eventsource: 2.0.2 - /@sanity/export@3.38.1: - resolution: {integrity: sha512-n5aKX8aKcUGFl41D+MY+356a/DX/HE7NLkFyv/CZ3X3MXwwc/g75GQrV6kWFRIZMpNfJ+jyRcjao6SM8xHXi7g==} + /@sanity/export@3.37.4: + resolution: {integrity: sha512-Zi/KOTScltV/WVXPmJ3fu846XHw2LddVCRsS7zJPGyOPlCVSmSh7xyzE9mspjHfVFWvKj482EdFdPGfbQsmapg==} engines: {node: '>=18'} dependencies: - '@sanity/client': 6.18.2(debug@4.3.4) '@sanity/util': 3.37.2(debug@4.3.4) archiver: 7.0.1 debug: 4.3.4(supports-color@9.4.0) @@ -6774,8 +7987,6 @@ packages: p-queue: 2.4.2 rimraf: 3.0.2 split2: 4.2.0 - tar: 7.1.0 - yaml: 2.4.2 transitivePeerDependencies: - supports-color dev: false @@ -6803,6 +8014,26 @@ packages: - react-is dev: false + /@sanity/google-maps-input@4.0.1(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.8): + resolution: {integrity: sha512-lYxK1Jfb2Xk3lVVcK/MUdK562qAC3LfSatjbvpDTP4LNwQ1NVvvgwsS2QGiGSQvgSXxGPOaiS40MSMb26X1Vhg==} + engines: {node: '>=14'} + peerDependencies: + react: '*' + sanity: ^3.19.0 + styled-components: ^6.1 + dependencies: + '@sanity/icons': 2.11.8(react@18.3.1) + '@sanity/incompatible-plugin': 1.0.4(react-dom@18.3.1)(react@18.3.1) + '@sanity/ui': 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8) + lodash: 4.17.21 + react: 18.3.1 + sanity: link:packages/sanity + styled-components: 6.1.8(react-dom@18.3.1)(react@18.3.1) + transitivePeerDependencies: + - react-dom + - react-is + dev: false + /@sanity/icons@1.3.10(react@18.3.1): resolution: {integrity: sha512-5wVG/vIiGuGrSmq+Bl3PY7XDgQrGv0fyHdJI64FSulnr2wH3NMqZ6C59UFxnrZ93sr7kOt0zQFoNv2lkPBi0Cg==} peerDependencies: @@ -6824,13 +8055,40 @@ packages: engines: {node: '>=10.0.0'} dev: false - /@sanity/import@3.37.4: - resolution: {integrity: sha512-jXI18OWKcbN4C3GVNuwAbAWz73Ju/9KvOxZFRhn1qDK9liVvJX1O+BWJNAOFSoAAnra0aqAg1ydUMvktEQ1e7g==} + /@sanity/import@3.37.2: + resolution: {integrity: sha512-gU+YxBDSWL1rMz6Rj/n2WmMkLIFvvAiiMvxPsgXqO3AurYkjNVNISFKI2ojuemHtuZOVe8/g4TqGImyaliKaLQ==} + engines: {node: '>=18'} + dependencies: + '@sanity/asset-utils': 1.3.0 + '@sanity/generate-help-url': 3.0.0 + '@sanity/mutator': 3.37.2 + '@sanity/uuid': 3.0.2 + debug: 4.3.4(supports-color@9.4.0) + file-url: 2.0.2 + get-it: 8.4.30(debug@4.3.4) + get-uri: 2.0.4 + globby: 10.0.2 + gunzip-maybe: 1.4.2 + is-tar: 1.0.0 + lodash: 4.17.21 + mississippi: 4.0.0 + p-map: 1.2.0 + peek-stream: 1.1.3 + rimraf: 3.0.2 + split2: 4.2.0 + tar-fs: 2.1.1 + transitivePeerDependencies: + - supports-color + dev: false + + /@sanity/import@3.37.3: + resolution: {integrity: sha512-MexzckmxvX+PrmvAASFWeeaa12VuKK/1ghu53Ow+2dk1Kw10Umneph9Hfuk8T/AbLi6czPfeIl5CJGmgGoO3uw==} engines: {node: '>=18'} hasBin: true dependencies: '@sanity/asset-utils': 1.3.0 '@sanity/generate-help-url': 3.0.0 + '@sanity/import': 3.37.2 '@sanity/mutator': 3.37.2 '@sanity/uuid': 3.0.2 debug: 4.3.4(supports-color@9.4.0) @@ -6906,8 +8164,8 @@ packages: sanity: link:packages/sanity dev: false - /@sanity/logos@2.1.11(@sanity/color@3.0.6)(react@18.3.1): - resolution: {integrity: sha512-hgLnNCBV4BAfI+3ScD+48ZUwhk8xjALg/60tm3G5v2UYysi0N+S4xTnUNS9KFpDq+j9tOxKHanuSFWT2DCsQmw==} + /@sanity/logos@2.1.10(@sanity/color@3.0.6)(react@18.3.1): + resolution: {integrity: sha512-VqbEjcnm9Ky8K9kK3lHOAF6sdG4kGyD2bZzJ8MX9Fmu9tlUJCGS0tVVqGfGZcwy5UDUdJjMooTN02IsIOkpLAw==} engines: {node: '>=14.0.0'} peerDependencies: '@sanity/color': ^2.0 || ^3.0 || ^3.0.0-beta @@ -6942,7 +8200,7 @@ packages: '@optimize-lodash/rollup-plugin': 4.0.4(rollup@4.18.0) '@rollup/plugin-alias': 5.1.0(rollup@4.18.0) '@rollup/plugin-babel': 6.0.4(@babel/core@7.24.5)(rollup@4.18.0) - '@rollup/plugin-commonjs': 25.0.8(rollup@4.18.0) + '@rollup/plugin-commonjs': 25.0.7(rollup@4.18.0) '@rollup/plugin-json': 6.1.0(rollup@4.18.0) '@rollup/plugin-node-resolve': 15.2.3(rollup@4.18.0) '@rollup/plugin-replace': 5.0.5(rollup@4.18.0) @@ -7093,7 +8351,7 @@ packages: - supports-color dev: true - /@sanity/presentation@1.15.8(@sanity/client@6.18.2)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11): + /@sanity/presentation@1.15.8(@sanity/client@6.18.2)(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(styled-components@6.1.11): resolution: {integrity: sha512-SY2lBMl3x48WytJ0fGVFBP48hxN2dJHdWFoqV4cud7mkYOaqKnMz5E2vgYsyKv50/dU+5AzwXg03OrjZHgryvw==} engines: {node: '>=16.14'} peerDependencies: @@ -7102,7 +8360,7 @@ packages: '@sanity/client': 6.18.2(debug@4.3.4) '@sanity/icons': 2.11.8(react@18.3.1) '@sanity/preview-url-secret': 1.6.13(@sanity/client@6.18.2) - '@sanity/ui': 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + '@sanity/ui': 2.1.11(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(styled-components@6.1.11) '@sanity/uuid': 3.0.2 '@types/lodash.isequal': 4.5.8 fast-deep-equal: 3.1.3 @@ -7129,6 +8387,16 @@ packages: prettier-plugin-packagejson: 2.5.0(prettier@3.2.5) dev: true + /@sanity/preview-url-secret@1.6.10(@sanity/client@6.18.2): + resolution: {integrity: sha512-ZQO+B+QCKpwOP3VEBIW7HpKaLxNjr8zCd3ue66l5Y0HZz6owd3lTp1SkCKW+qATdktNeNd1hgalGTMDKvS8CGw==} + engines: {node: '>=18'} + peerDependencies: + '@sanity/client': ^6.15.19 + dependencies: + '@sanity/client': 6.18.2 + '@sanity/uuid': 3.0.2 + dev: false + /@sanity/preview-url-secret@1.6.13(@sanity/client@6.18.2): resolution: {integrity: sha512-3ZAadWN0bKtoa5A0ZDTerjaBRbxUNpIWWKEl/FF5s6rH84+Hx5ugtqVt0hjzK8SnWwHiq5KQsPuB8T+lqFomGA==} engines: {node: '>=18'} @@ -7139,26 +8407,25 @@ packages: '@sanity/uuid': 3.0.2 dev: false - /@sanity/react-loader@1.9.19(@sanity/client@6.18.2)(react@18.3.1): - resolution: {integrity: sha512-ZbB0uU+WPzmnDCRghKMEmE3WURQZPd2Sx+rXz7EkUt6YlyEqOaHuW+uebeEvRijzON7qllBIDHf3EcIgrFcr1A==} + /@sanity/react-loader@1.9.13(@sanity/client@6.18.2)(react@18.3.1): + resolution: {integrity: sha512-OuiH6RDcPmZ7Oj9cZwGNdS2N6gjuQHnk4JjXrGni/j85HjydA7hqLaLByCuz91/TwiLV0mwU9QpP9G/Bn76dYw==} engines: {node: '>=18'} peerDependencies: - '@sanity/client': ^6.18.2 + '@sanity/client': ^6.15.19 react: '*' dependencies: '@sanity/client': 6.18.2 - '@sanity/core-loader': 1.6.14(@sanity/client@6.18.2) + '@sanity/core-loader': 1.6.8(@sanity/client@6.18.2) react: 18.3.1 dev: false - /@sanity/telemetry@0.7.8(react@18.3.1): - resolution: {integrity: sha512-9TWC61EKsFpTOBC2dqmPgy+ZvO1eV/rxuYR1ZIj/1AhtBSI2FQXqO8CtXPKJ3u0zoIxngoBqtaoP1ZKS9nZyTA==} + /@sanity/telemetry@0.7.7: + resolution: {integrity: sha512-YUoAMrl0XEf5C4Jt0n+wmJAR7gDrraic3u7yxog0U2QukgeOn9BDhXF5rF9jMuDllGZmUbBaFq+mh5sW/tACWw==} engines: {node: '>=16.0.0'} - peerDependencies: - react: '*' dependencies: lodash: 4.17.21 react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) rxjs: 7.8.1 typeid-js: 0.3.0 dev: false @@ -7236,7 +8503,7 @@ packages: - terser dev: false - /@sanity/tsdoc@1.0.65(@types/node@18.19.31)(debug@4.3.4)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11): + /@sanity/tsdoc@1.0.65(@types/node@18.19.31)(debug@4.3.4)(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.11): resolution: {integrity: sha512-JMlL612nGqOu+m9WDVuKdczEEgEWJv+LYHSaRJWnPaV/A+b2pELixIzpSGvAkw03WNqbFJAwf/LK+qzVT/Kf1Q==} engines: {node: '>=14.0.0'} hasBin: true @@ -7256,7 +8523,7 @@ packages: '@sanity/color': 3.0.6 '@sanity/icons': 2.11.8(react@18.3.1) '@sanity/pkg-utils': 6.8.18(@types/node@18.19.31)(debug@4.3.4)(typescript@5.4.5) - '@sanity/ui': 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11) + '@sanity/ui': 2.1.11(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(styled-components@6.1.11) '@types/cpx': 1.5.5 '@vitejs/plugin-react': 4.3.0(vite@5.2.11) cac: 6.7.14 @@ -7415,6 +8682,26 @@ packages: - supports-color - terser + /@sanity/ui@2.1.11(react-dom@18.3.1)(react-is@18.2.0)(react@18.3.1)(styled-components@6.1.11): + resolution: {integrity: sha512-4iEfzMb6+fkqnSy+n5is5DUjziA/FJcwLEKzKKhJF5WJ3w15rajSK9n0k4+0lT+BouB6LHVgbg+uBBLQxD0PvQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '*' + react-dom: '*' + react-is: ^18 + styled-components: ^5.2 || ^6 + dependencies: + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@sanity/color': 3.0.6 + '@sanity/icons': 2.11.8(react@18.3.1) + csstype: 3.1.3 + framer-motion: 11.0.8(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.2.0 + react-refractor: 2.1.7(react@18.3.1) + styled-components: 6.1.11(react-dom@18.3.1)(react@18.3.1) + /@sanity/ui@2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.11): resolution: {integrity: sha512-4iEfzMb6+fkqnSy+n5is5DUjziA/FJcwLEKzKKhJF5WJ3w15rajSK9n0k4+0lT+BouB6LHVgbg+uBBLQxD0PvQ==} engines: {node: '>=14.0.0'} @@ -7424,7 +8711,7 @@ packages: react-is: ^18 styled-components: ^5.2 || ^6 dependencies: - '@floating-ui/react-dom': 2.0.9(react-dom@18.3.1)(react@18.3.1) + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1) '@sanity/color': 3.0.6 '@sanity/icons': 2.11.8(react@18.3.1) csstype: 3.1.3 @@ -7435,6 +8722,27 @@ packages: react-refractor: 2.1.7(react@18.3.1) styled-components: 6.1.11(react-dom@18.3.1)(react@18.3.1) + /@sanity/ui@2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8): + resolution: {integrity: sha512-4iEfzMb6+fkqnSy+n5is5DUjziA/FJcwLEKzKKhJF5WJ3w15rajSK9n0k4+0lT+BouB6LHVgbg+uBBLQxD0PvQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '*' + react-dom: '*' + react-is: ^18 + styled-components: ^5.2 || ^6 + dependencies: + '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1)(react@18.3.1) + '@sanity/color': 3.0.6 + '@sanity/icons': 2.11.8(react@18.3.1) + csstype: 3.1.3 + framer-motion: 11.0.8(react-dom@18.3.1)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.3.1 + react-refractor: 2.1.7(react@18.3.1) + styled-components: 6.1.8(react-dom@18.3.1)(react@18.3.1) + dev: false + /@sanity/util@3.37.2(debug@4.3.4): resolution: {integrity: sha512-hq0eLjyV2iaOm9ivtPw12YTQ4QsE3jnV/Ui0zhclEhu8Go5JiaEhFt2+WM2lLGRH6qcSA414QbsCNCcyhJL6rA==} engines: {node: '>=18'} @@ -7634,14 +8942,14 @@ packages: tslib: 2.6.2 dev: false - /@tanstack/react-table@8.16.0(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-rKRjnt8ostqN2fercRVOIH/dq7MAmOENCMvVlKx6P9Iokhh6woBGnIZEkqsY/vEJf1jN3TqLOb34xQGLVRuhAg==} + /@tanstack/react-table@8.17.3(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-5gwg5SvPD3lNAXPuJJz1fOCEZYk9/GeBFH3w/hCgnfyszOIzwkwgp5I7Q4MJtn0WECp84b5STQUDdmvGi8m3nA==} engines: {node: '>=12'} peerDependencies: react: '*' react-dom: '*' dependencies: - '@tanstack/table-core': 8.16.0 + '@tanstack/table-core': 8.17.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -7655,8 +8963,8 @@ packages: react: 18.3.1 dev: false - /@tanstack/table-core@8.16.0: - resolution: {integrity: sha512-dCG8vQGk4js5v88/k83tTedWOwjGnIyONrKpHpfmSJB8jwFHl8GSu1sBBxbtACVAPtAQgwNxl0rw1d3RqRM1Tg==} + /@tanstack/table-core@8.17.3: + resolution: {integrity: sha512-mPBodDGVL+fl6d90wUREepHa/7lhsghg2A3vFpakEhrhtbIlgNAZiMr7ccTgak5qbHqF14Fwy+W1yFWQt+WmYQ==} engines: {node: '>=12'} dev: false @@ -7664,12 +8972,12 @@ packages: resolution: {integrity: sha512-jtkwqdP2rY2iCCDVAFuaNBH3fiEi29aTn2RhtIoky8DTTiCdc48plpHHreLwmv1PICJ4AJUUESaq3xa8fZH8+g==} dev: false - /@testing-library/dom@10.1.0: - resolution: {integrity: sha512-wdsYKy5zupPyLCW2Je5DLHSxSfbIp6h80WoHOQc+RPtmPGA52O9x5MJEkv92Sjonpq+poOAtUKhh1kBGAXBrNA==} + /@testing-library/dom@10.0.0: + resolution: {integrity: sha512-PmJPnogldqoVFf+EwbHvbBJ98MmqASV8kLrBYgsDNxQcFMeIS7JFL48sfyXvuMtgmWO/wMhh25odr+8VhDmn4g==} engines: {node: '>=18'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -7683,7 +8991,7 @@ packages: engines: {node: '>=12'} dependencies: '@babel/code-frame': 7.24.2 - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -7714,7 +9022,7 @@ packages: optional: true dependencies: '@adobe/css-tools': 4.3.3 - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@jest/globals': 29.7.0 aria-query: 5.3.0 chalk: 3.0.0 @@ -7732,21 +9040,21 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@testing-library/dom': 8.20.1 '@types/react-dom': 18.3.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: true - /@testing-library/user-event@13.5.0(@testing-library/dom@10.1.0): + /@testing-library/user-event@13.5.0(@testing-library/dom@10.0.0): resolution: {integrity: sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==} engines: {node: '>=10', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@babel/runtime': 7.24.5 - '@testing-library/dom': 10.1.0 + '@babel/runtime': 7.24.4 + '@testing-library/dom': 10.0.0 dev: true /@tootallnate/once@2.0.0: @@ -7831,8 +9139,8 @@ packages: '@turf/meta': 5.2.0 dev: false - /@tweenjs/tween.js@23.1.2: - resolution: {integrity: sha512-kMCNaZCJugWI86xiEHaY338CU5JpD0B97p1j1IKNn/Zto8PgACjQx0UxbHjmOcLl/dDOBnItwD07KmCs75pxtQ==} + /@tweenjs/tween.js@23.1.1: + resolution: {integrity: sha512-ZpboH7pCPPeyBWKf8c7TJswtCEQObFo3bOBYalm99NzZarATALYCo5OhbCa/n4RQyJyHfhkdx+hNrdL5ByFYDw==} dev: false /@types/archiver@6.0.2: @@ -7862,8 +9170,8 @@ packages: /@types/babel__core@7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.5 @@ -7871,7 +9179,7 @@ packages: /@types/babel__generator@7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 /@types/babel__register@7.17.3: resolution: {integrity: sha512-hy9H39BUIGO0C88bLxQD5rqBvqMgjPjDnA8Mx+fjAqtOi4OG7qYaZUMlDHfLOx5G9WtBzhfchzxKl37LTsVRbA==} @@ -7882,13 +9190,13 @@ packages: /@types/babel__template@7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 /@types/babel__traverse@7.20.5: resolution: {integrity: sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==} dependencies: - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 /@types/body-parser@1.19.5: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} @@ -7935,8 +9243,8 @@ packages: '@types/node': 18.19.31 dev: true - /@types/draco3d@1.4.10: - resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==} + /@types/draco3d@1.4.9: + resolution: {integrity: sha512-4MMUjMQb4yA5fJ4osXx+QxGHt0/ZSy4spT6jL1HM7Tn8OJEC35siqdnpOo+HxPhYjqEFumKfGVF9hJfdyKBIBA==} dev: false /@types/estree@1.0.5: @@ -8140,8 +9448,8 @@ packages: '@types/react': 18.3.2 dev: true - /@types/react-is@18.3.0: - resolution: {integrity: sha512-KZJpHUkAdzyKj/kUHJDc6N7KyidftICufJfOFpiG6haL/BDQNQt5i4n1XDUL/nDZAtGLHDSWRYpLzKTAKSvX6w==} + /@types/react-is@18.2.4: + resolution: {integrity: sha512-wBc7HgmbCcrvw0fZjxbgz/xrrlZKzEqmABBMeSvpTvdm25u6KI6xdIi9pRE2G0C1Lw5ETFdcn4UbYZ4/rpqUYw==} dependencies: '@types/react': 18.3.2 dev: false @@ -8158,6 +9466,13 @@ packages: '@types/react': 18.3.2 dev: false + /@types/react@18.2.78: + resolution: {integrity: sha512-qOwdPnnitQY4xKlKayt42q5W5UQrSHjgoXNVEtxeqdITJ99k4VXJOP3vt8Rkm9HmgJpH50UNU+rlqfkfWOqp0A==} + dependencies: + '@types/prop-types': 15.7.12 + csstype: 3.1.3 + dev: false + /@types/react@18.3.2: resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==} dependencies: @@ -8242,6 +9557,10 @@ packages: resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} dev: false + /@types/stylis@4.2.0: + resolution: {integrity: sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==} + dev: false + /@types/stylis@4.2.5: resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} @@ -8267,9 +9586,9 @@ packages: /@types/three@0.163.0: resolution: {integrity: sha512-uIdDhsXRpQiBUkflBS/i1l3JX14fW6Ot9csed60nfbZNXHDTRsnV2xnTVwXcgbvTiboAR4IW+t+lTL5f1rqIqA==} dependencies: - '@tweenjs/tween.js': 23.1.2 + '@tweenjs/tween.js': 23.1.1 '@types/stats.js': 0.17.3 - '@types/webxr': 0.5.16 + '@types/webxr': 0.5.15 fflate: 0.8.2 meshoptimizer: 0.18.1 dev: false @@ -8277,9 +9596,9 @@ packages: /@types/three@0.164.1: resolution: {integrity: sha512-dR/trWDhyaNqJV38rl1TonlCA9DpnX7OPYDWD81bmBGn/+uEc3+zNalFxQcV4FlPTeDBhCY3SFWKvK6EJwL88g==} dependencies: - '@tweenjs/tween.js': 23.1.2 + '@tweenjs/tween.js': 23.1.1 '@types/stats.js': 0.17.3 - '@types/webxr': 0.5.16 + '@types/webxr': 0.5.15 fflate: 0.8.2 meshoptimizer: 0.18.1 dev: false @@ -8308,8 +9627,8 @@ packages: resolution: {integrity: sha512-dLhCHEIjf9++/vHaHCo/ngJzGqGGbPh/f7HKwznEk3WFL64t/VKuRiVpyQH4afX93YkCV94I9M0Cx+DBLk1Dsg==} dev: true - /@types/webxr@0.5.16: - resolution: {integrity: sha512-0E0Cl84FECtzrB4qG19TNTqpunw0F1YF0QZZnFMF6pDw1kNKJtrlTKlVB34stGIsHbZsYQ7H0tNjPfZftkHHoA==} + /@types/webxr@0.5.15: + resolution: {integrity: sha512-nC9116Gd4N+CqTxqo6gvCfhAMAzgRcfS8ZsciNodHq8uwW4JCVKwhagw8yN0XmC7mHrLnWqniJpoVEiR+72Drw==} dev: false /@types/which@2.0.2: @@ -8337,8 +9656,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-6e+X0X3sFe/G/54aC3jt0txuMTURqLyekmEHViqyA2VnxhLMpvA6nqmcjIy+Cr9tLDHPssA74BP5Mx9HQIxBEA==} + /@typescript-eslint/eslint-plugin@7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.8.0 @@ -8349,11 +9668,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/type-utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/type-utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 @@ -8364,8 +9683,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-qHMJfkL5qvgQB2aLvhUSXxbK7OLnDkwPzFalg458pxQgfxKDfT1ZDbHQM/I6mDIf/svlMkj21kzKuQ2ixJlatQ==} + /@typescript-eslint/parser@7.10.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -8374,10 +9693,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.10.0 debug: 4.3.4(supports-color@9.4.0) eslint: 8.57.0 typescript: 5.4.5 @@ -8385,16 +9704,16 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager@7.9.0: - resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} + /@typescript-eslint/scope-manager@7.10.0: + resolution: {integrity: sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 dev: true - /@typescript-eslint/type-utils@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-6Qy8dfut0PFrFRAZsGzuLoM4hre4gjzWJB6sUvdunCYZsYemTkzZNwF1rnGea326PHPT3zn5Lmg32M/xfJfByA==} + /@typescript-eslint/type-utils@7.10.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -8403,8 +9722,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) - '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.10.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4(supports-color@9.4.0) eslint: 8.57.0 ts-api-utils: 1.3.0(typescript@5.4.5) @@ -8413,13 +9732,13 @@ packages: - supports-color dev: true - /@typescript-eslint/types@7.9.0: - resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} + /@typescript-eslint/types@7.10.0: + resolution: {integrity: sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==} engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5): - resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} + /@typescript-eslint/typescript-estree@7.10.0(typescript@5.4.5): + resolution: {integrity: sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -8427,44 +9746,44 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/visitor-keys': 7.9.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/visitor-keys': 7.10.0 debug: 4.3.4(supports-color@9.4.0) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.4 - semver: 7.6.2 + semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.4.5): - resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} + /@typescript-eslint/utils@7.10.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.9.0 - '@typescript-eslint/types': 7.9.0 - '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.10.0 + '@typescript-eslint/types': 7.10.0 + '@typescript-eslint/typescript-estree': 7.10.0(typescript@5.4.5) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@7.9.0: - resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} + /@typescript-eslint/visitor-keys@7.10.0: + resolution: {integrity: sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.9.0 + '@typescript-eslint/types': 7.10.0 eslint-visitor-keys: 3.4.3 dev: true - /@uiw/codemirror-extensions-basic-setup@4.21.25(@codemirror/autocomplete@6.16.0)(@codemirror/commands@6.5.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.7.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3): + /@uiw/codemirror-extensions-basic-setup@4.21.25(@codemirror/autocomplete@6.16.0)(@codemirror/commands@6.5.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3): resolution: {integrity: sha512-eeUKlmEE8aSoSgelS8OR2elcPGntpRo669XinAqPCLa0eKorT2B0d3ts+AE+njAeGk744tiyAEbHb2n+6OQmJw==} peerDependencies: '@codemirror/autocomplete': '>=6.0.0' @@ -8478,13 +9797,13 @@ packages: '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/commands': 6.5.0 '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.7.1 + '@codemirror/lint': 6.5.0 '@codemirror/search': 6.5.6 '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 dev: false - /@uiw/react-codemirror@4.21.25(@babel/runtime@7.24.5)(@codemirror/autocomplete@6.16.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.7.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.3)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1): + /@uiw/react-codemirror@4.21.25(@babel/runtime@7.24.4)(@codemirror/autocomplete@6.16.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.26.3)(codemirror@6.0.1)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-mBrCoiffQ+hbTqV1JoixFEcH7BHXkS3PjTyNH7dE8Gzf3GSBRazhtSM5HrAFIiQ5FIRGFs8Gznc4UAdhtevMmw==} peerDependencies: '@babel/runtime': '>=7.11.0' @@ -8495,12 +9814,12 @@ packages: react: '*' react-dom: '*' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@codemirror/commands': 6.5.0 '@codemirror/state': 6.4.1 '@codemirror/theme-one-dark': 6.1.2 '@codemirror/view': 6.26.3 - '@uiw/codemirror-extensions-basic-setup': 4.21.25(@codemirror/autocomplete@6.16.0)(@codemirror/commands@6.5.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.7.1)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3) + '@uiw/codemirror-extensions-basic-setup': 4.21.25(@codemirror/autocomplete@6.16.0)(@codemirror/commands@6.5.0)(@codemirror/language@6.10.1)(@codemirror/lint@6.5.0)(@codemirror/search@6.5.6)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3) codemirror: 6.0.1(@lezer/common@1.2.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8563,6 +9882,22 @@ packages: /@vercel/stega@0.1.2: resolution: {integrity: sha512-P7mafQXjkrsoyTRppnt0N21udKS9wUmLXHRyP9saLXLHw32j/FgUJ3FscSWgvSqRs4cj7wKZtwqJEvWJ2jbGmA==} + /@vitejs/plugin-react@4.2.1(vite@4.5.3): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/plugin-transform-react-jsx-self': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-transform-react-jsx-source': 7.24.1(@babel/core@7.24.4) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 4.5.3(@types/node@18.19.31) + transitivePeerDependencies: + - supports-color + dev: false + /@vitejs/plugin-react@4.3.0(vite@4.5.3): resolution: {integrity: sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -8596,7 +9931,7 @@ packages: /@vue/compiler-core@3.4.21: resolution: {integrity: sha512-MjXawxZf2SbZszLPYxaFCjxfibYrzr3eYbKxwpLR9EQN+oaziSu3qKVbwBERj1IFIB8OLUewxB5m/BFzi613og==} dependencies: - '@babel/parser': 7.24.5 + '@babel/parser': 7.24.4 '@vue/shared': 3.4.21 entities: 4.5.0 estree-walker: 2.0.2 @@ -8613,7 +9948,7 @@ packages: /@vue/compiler-sfc@3.4.21: resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==} dependencies: - '@babel/parser': 7.24.5 + '@babel/parser': 7.24.4 '@vue/compiler-core': 3.4.21 '@vue/compiler-dom': 3.4.21 '@vue/compiler-ssr': 3.4.21 @@ -8869,7 +10204,7 @@ packages: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} engines: {node: '>= 14'} dependencies: - glob: 10.3.16 + glob: 10.3.12 graceful-fs: 4.2.11 is-stream: 2.0.1 lazystream: 1.0.1 @@ -9166,17 +10501,17 @@ packages: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} dev: false - /babel-jest@29.7.0(@babel/core@7.24.5): + /babel-jest@29.7.0(@babel/core@7.24.4): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.24.5) + babel-preset-jest: 29.6.3(@babel/core@7.24.4) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -9188,7 +10523,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.24.5 + '@babel/helper-plugin-utils': 7.24.0 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -9202,22 +10537,46 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.24.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.5 dev: true - /babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.5): - resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.4): + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/compat-data': 7.24.4 + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /babel-plugin-polyfill-corejs2@0.4.10(@babel/core@7.24.5): + resolution: {integrity: sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/compat-data': 7.24.4 '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true + + /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.4): + resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) + core-js-compat: 3.36.1 + transitivePeerDependencies: + - supports-color /babel-plugin-polyfill-corejs3@0.10.4(@babel/core@7.24.5): resolution: {integrity: sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==} @@ -9225,62 +10584,74 @@ packages: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) - core-js-compat: 3.37.0 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) + core-js-compat: 3.36.1 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.4): + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + dependencies: + '@babel/core': 7.24.4 + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.4) transitivePeerDependencies: - supports-color - /babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.24.5): - resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + /babel-plugin-polyfill-regenerator@0.6.1(@babel/core@7.24.5): + resolution: {integrity: sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 dependencies: '@babel/core': 7.24.5 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.24.5) + '@babel/helper-define-polyfill-provider': 0.6.1(@babel/core@7.24.5) transitivePeerDependencies: - supports-color + dev: true /babel-plugin-react-compiler@0.0.0-experimental-592953e-20240517: resolution: {integrity: sha512-OjG1SVaeQZaJrqkMFJatg8W/MTow8Ak5rx2SI0ETQBO1XvOk/XZGMbltNCPdFJLKghBYoBjC+Y3Ap/Xr7B01mA==} dependencies: '@babel/generator': 7.2.0 - '@babel/types': 7.24.5 + '@babel/types': 7.24.0 chalk: 4.1.2 invariant: 2.2.4 pretty-format: 24.9.0 - zod: 3.23.8 - zod-validation-error: 2.1.0(zod@3.23.8) + zod: 3.23.4 + zod-validation-error: 2.1.0(zod@3.23.4) dev: false - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.5): + /babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.4): resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.5) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.5) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.5) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.5) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.5) - dev: true - - /babel-preset-jest@29.6.3(@babel/core@7.24.5): + '@babel/core': 7.24.4 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.4) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.4) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.4) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.4) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.4) + dev: true + + /babel-preset-jest@29.6.3(@babel/core@7.24.4): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) dev: true /babel-runtime@6.26.0: @@ -9455,7 +10826,7 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001612 + caniuse-lite: 1.0.30001609 electron-to-chromium: 1.4.736 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.23.0) @@ -9519,7 +10890,7 @@ packages: /builtins@5.1.0: resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} dependencies: - semver: 7.6.2 + semver: 7.6.0 dev: true /busboy@1.6.0: @@ -9548,9 +10919,9 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.16 + glob: 10.3.12 lru-cache: 7.18.3 - minipass: 7.1.1 + minipass: 7.0.4 minipass-collect: 1.0.2 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -9566,9 +10937,9 @@ packages: dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.16 - lru-cache: 10.2.2 - minipass: 7.1.1 + glob: 10.3.12 + lru-cache: 10.2.0 + minipass: 7.0.4 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -9639,8 +11010,8 @@ packages: three: 0.164.1 dev: false - /caniuse-lite@1.0.30001612: - resolution: {integrity: sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==} + /caniuse-lite@1.0.30001609: + resolution: {integrity: sha512-JFPQs34lHKx1B5t1EpQpWH4c+29zIyn/haGsbpfq3suuV9v56enjFt23zqijxGTMwy1p/4H2tjnQMY+p1WoAyA==} /cannon-es-debugger@1.0.0(cannon-es@0.20.0)(three@0.164.1)(typescript@5.4.5): resolution: {integrity: sha512-sE9lDOBAYFKlh+0w+cvWKwUhJef8HYnUSVPWPL0jD15MAuVRQKno4QYZSGxgOoJkMR3mQqxL4bxys2b3RSWH8g==} @@ -9762,11 +11133,6 @@ packages: engines: {node: '>=10'} dev: true - /chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} - dev: false - /ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -9920,7 +11286,7 @@ packages: '@codemirror/autocomplete': 6.16.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.1)(@codemirror/view@6.26.3)(@lezer/common@1.2.1) '@codemirror/commands': 6.5.0 '@codemirror/language': 6.10.1 - '@codemirror/lint': 6.7.1 + '@codemirror/lint': 6.5.0 '@codemirror/search': 6.5.6 '@codemirror/state': 6.4.1 '@codemirror/view': 6.26.3 @@ -9956,7 +11322,6 @@ packages: /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - requiresBuild: true /color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} @@ -10149,7 +11514,7 @@ packages: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 8.1.2 - semver: 7.6.2 + semver: 7.6.0 split: 1.0.1 dev: true @@ -10207,8 +11572,8 @@ packages: toggle-selection: 1.0.6 dev: false - /core-js-compat@3.37.0: - resolution: {integrity: sha512-vYq4L+T8aS5UuFg4UwDhc7YNRWVeVZwltad9C/jV3R2LgVOpS9BDr7l/WL6BN0dbV3k1XejPTHqqEzJgsa0frA==} + /core-js-compat@3.36.1: + resolution: {integrity: sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==} dependencies: browserslist: 4.23.0 @@ -10396,6 +11761,10 @@ packages: dependencies: rrweb-cssom: 0.6.0 + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + dev: false + /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -10487,7 +11856,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 /date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} @@ -10742,8 +12111,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - '@babel/parser': 7.24.5 - '@babel/traverse': 7.24.5 + '@babel/parser': 7.24.4 + '@babel/traverse': 7.24.1 '@vue/compiler-sfc': 3.4.21 callsite: 1.0.0 camelcase: 6.3.0 @@ -10763,7 +12132,7 @@ packages: require-package-name: 2.0.1 resolve: 1.22.8 resolve-from: 5.0.0 - semver: 7.6.2 + semver: 7.6.0 yargs: 16.2.0 transitivePeerDependencies: - supports-color @@ -11366,7 +12735,7 @@ packages: eslint: 8.57.0 dev: true - /eslint-config-sanity@7.1.2(@typescript-eslint/eslint-plugin@7.9.0)(@typescript-eslint/parser@7.9.0)(eslint-plugin-import@2.29.1)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.1)(eslint@8.57.0): + /eslint-config-sanity@7.1.2(@typescript-eslint/eslint-plugin@7.10.0)(@typescript-eslint/parser@7.10.0)(eslint-plugin-import@2.29.1)(eslint-plugin-react-hooks@4.6.2)(eslint-plugin-react@7.34.1)(eslint@8.57.0): resolution: {integrity: sha512-7Na1kh3OiteeFmeQkUqtIjThsKWIIiK/TLNUby0pOkGHhWV3AKYFsMEIhH7VuOIEOeTE53Ix/04Z6XWyvsHcuQ==} engines: {node: '>=14.0.0'} peerDependencies: @@ -11388,10 +12757,10 @@ packages: eslint-plugin-react-hooks: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-react: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) eslint-plugin-simple-import-sort: 12.1.0(eslint@8.57.0) @@ -11407,7 +12776,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.9.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.10.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -11417,10 +12786,10 @@ packages: debug: 4.3.4(supports-color@9.4.0) enhanced-resolve: 5.16.0 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 - get-tsconfig: 4.7.5 + get-tsconfig: 4.7.3 is-core-module: 2.13.1 is-glob: 4.0.3 transitivePeerDependencies: @@ -11430,7 +12799,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -11451,16 +12820,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.9.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.10.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: @@ -11481,16 +12850,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.9.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.10.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-boundaries@4.2.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-plugin-boundaries@4.2.0(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-JPHxeL8R3G3urwewE8TwAjPhwmd78xmXt0MlW6YwSo+MQypOsrTCudEtFgLFe+gOxylxIi6pC1EEiPlSUeAr5w==} engines: {node: '>=14.0.0'} peerDependencies: @@ -11499,7 +12868,7 @@ packages: chalk: 4.1.2 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) is-core-module: 2.13.1 micromatch: 4.0.5 transitivePeerDependencies: @@ -11517,7 +12886,7 @@ packages: requireindex: 1.1.0 dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -11527,7 +12896,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.9.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.10.0(eslint@8.57.0)(typescript@5.4.5) array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 @@ -11536,7 +12905,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.10.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -11558,7 +12927,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 aria-query: 5.3.0 array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 @@ -11604,17 +12973,26 @@ packages: peerDependencies: eslint: '>=7' dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.24.5) + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.24.4) eslint: 8.57.0 hermes-parser: 0.20.1 zod: 3.23.8 - zod-validation-error: 3.3.0(zod@3.23.8) + zod-validation-error: 3.2.0(zod@3.23.8) transitivePeerDependencies: - supports-color dev: true + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.57.0 + dev: true + /eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} engines: {node: '>=10'} @@ -11672,12 +13050,12 @@ packages: peerDependencies: eslint: '>=8.56.0' dependencies: - '@babel/helper-validator-identifier': 7.24.5 + '@babel/helper-validator-identifier': 7.22.20 '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint/eslintrc': 2.1.4 ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.37.0 + core-js-compat: 3.36.1 eslint: 8.57.0 esquery: 1.5.0 indent-string: 4.0.0 @@ -11687,13 +13065,13 @@ packages: read-pkg-up: 7.0.1 regexp-tree: 0.1.27 regjsparser: 0.10.0 - semver: 7.6.2 + semver: 7.6.0 strip-indent: 3.0.0 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.9.0)(eslint@8.57.0): + /eslint-plugin-unused-imports@3.2.0(@typescript-eslint/eslint-plugin@7.10.0)(eslint@8.57.0): resolution: {integrity: sha512-6uXyn6xdINEpxE1MtDjxQsyXB37lfyO2yKGVVgtD7WEWQGORSOZjgrD6hBhvGv4/SO+TOlS+UnC6JppRqbuwGQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -11703,7 +13081,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 7.9.0(@typescript-eslint/parser@7.9.0)(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 7.10.0(@typescript-eslint/parser@7.10.0)(eslint@8.57.0)(typescript@5.4.5) eslint: 8.57.0 eslint-rule-composer: 0.3.0 dev: true @@ -12103,8 +13481,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fast-xml-parser@4.3.6: - resolution: {integrity: sha512-M2SovcRxD4+vC493Uc2GZVcZaj66CCJhWurC4viynVSTvrpErCShNcDz1lAho6n9REQKvL/ll4A4/fw6Y9z8nw==} + /fast-xml-parser@4.4.0: + resolution: {integrity: sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg==} hasBin: true dependencies: strnum: 1.0.5 @@ -12496,7 +13874,7 @@ packages: resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 7.1.1 + minipass: 7.0.4 dev: true /fs.realpath@1.0.0: @@ -12568,8 +13946,8 @@ packages: wide-align: 1.1.5 dev: true - /gaxios@6.5.0: - resolution: {integrity: sha512-R9QGdv8j4/dlNoQbX3hSaK/S0rkMijqjVvW3YM06CoBdbU/VdKd159j4hePpng0KuE6Lh6JJ7UdmVGJZFcAG1w==} + /gaxios@6.6.0: + resolution: {integrity: sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ==} engines: {node: '>=14'} dependencies: extend: 3.0.2 @@ -12586,7 +13964,7 @@ packages: resolution: {integrity: sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg==} engines: {node: '>=14'} dependencies: - gaxios: 6.5.0 + gaxios: 6.6.0 json-bigint: 1.0.0 transitivePeerDependencies: - encoding @@ -12646,7 +14024,7 @@ packages: get-it: 8.4.30 registry-auth-token: 5.0.2 registry-url: 5.1.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - debug @@ -12657,7 +14035,7 @@ packages: get-it: 8.4.30(debug@4.3.4) registry-auth-token: 5.0.2 registry-url: 5.1.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - debug dev: true @@ -12734,6 +14112,12 @@ packages: get-intrinsic: 1.2.4 dev: true + /get-tsconfig@4.7.3: + resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} dependencies: @@ -12797,7 +14181,7 @@ packages: hasBin: true dependencies: meow: 8.1.2 - semver: 7.6.2 + semver: 7.6.0 dev: true /git-up@7.0.0: @@ -12865,16 +14249,16 @@ packages: find-index: 0.1.1 dev: true - /glob@10.3.16: - resolution: {integrity: sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==} - engines: {node: '>=16 || 14 >=14.18'} + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 3.1.2 + jackspeak: 2.3.6 minimatch: 9.0.4 - minipass: 7.1.1 - path-scurry: 1.11.1 + minipass: 7.0.4 + path-scurry: 1.10.2 /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -12914,7 +14298,7 @@ packages: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.11.1 + path-scurry: 1.10.2 /global-dirs@3.0.1: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} @@ -13068,13 +14452,13 @@ packages: through2: 0.6.5 dev: false - /google-auth-library@9.9.0: - resolution: {integrity: sha512-9l+zO07h1tDJdIHN74SpnWIlNR+OuOemXlWJlLP9pXy6vFtizgpEzMuwJa4lqY9UAdiAv5DVd5ql0Am916I+aA==} + /google-auth-library@9.10.0: + resolution: {integrity: sha512-ol+oSa5NbcGdDqA+gZ3G3mev59OHBZksBTxY/tYwjtcp1H/scAFwJfSQU9/1RALoyZ7FslNbke8j4i3ipwlyuQ==} engines: {node: '>=14'} dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.5.0 + gaxios: 6.6.0 gcp-metadata: 6.1.0 gtoken: 7.1.0 jws: 4.0.0 @@ -13118,7 +14502,7 @@ packages: resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} dependencies: - gaxios: 6.5.0 + gaxios: 6.6.0 jws: 4.0.0 transitivePeerDependencies: - encoding @@ -13252,7 +14636,7 @@ packages: /history@5.3.0: resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 /hls.js@1.3.5: resolution: {integrity: sha512-uybAvKS6uDe0MnWNEPnO0krWVr+8m2R0hJ/viql8H3MVK+itq8gGQuIYoFHL3rECkIpNH98Lw8YuuWMKZxp3Ew==} @@ -13296,7 +14680,7 @@ packages: resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - lru-cache: 10.2.2 + lru-cache: 10.2.0 dev: true /hotscript@1.0.13: @@ -13403,10 +14787,10 @@ packages: hasBin: true dev: true - /i18next@23.11.2: - resolution: {integrity: sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA==} + /i18next@23.11.1: + resolution: {integrity: sha512-mXw4A24BiPZKRsbb9ewgSvjYd6fxFCNwJyfK6nYfSTIAX2GkCWcb598m3DFkDZmqADatvuASrKo6qwORz3VwTQ==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 dev: false /iconv-lite@0.4.24: @@ -13480,7 +14864,6 @@ packages: /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -13504,7 +14887,7 @@ packages: promzard: 1.0.1 read: 2.1.0 read-package-json: 6.0.4 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-license: 3.0.4 validate-npm-package-name: 5.0.0 dev: true @@ -14115,8 +15498,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -14128,11 +15511,11 @@ packages: resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 + '@babel/core': 7.24.4 + '@babel/parser': 7.24.4 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -14184,8 +15567,8 @@ packages: react: 18.3.1 dev: false - /jackspeak@3.1.2: - resolution: {integrity: sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==} + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -14282,11 +15665,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.24.4 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 18.19.31 - babel-jest: 29.7.0(@babel/core@7.24.5) + babel-jest: 29.7.0(@babel/core@7.24.4) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -14560,15 +15943,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.24.5 - '@babel/generator': 7.24.5 - '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.5) - '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.5) - '@babel/types': 7.24.5 + '@babel/core': 7.24.4 + '@babel/generator': 7.24.4 + '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.24.4) + '@babel/plugin-syntax-typescript': 7.24.1(@babel/core@7.24.4) + '@babel/types': 7.24.0 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.5) + babel-preset-current-node-syntax: 1.0.1(@babel/core@7.24.4) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -14579,7 +15962,7 @@ packages: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.6.2 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -14845,7 +16228,6 @@ packages: /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - requiresBuild: true /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} @@ -14959,7 +16341,7 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - /lamina@1.1.23(@react-three/fiber@8.16.6)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1): + /lamina@1.1.23(@react-three/fiber@8.16.1)(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1)(three@0.164.1): resolution: {integrity: sha512-sxcoOyws9fK73tHJFsXgZlIJho++nf+FwWzpbvAheUvayl30DyJmPd0U0Q6v/ECcJuuujb7Txcr4SLOZrdDPJA==} peerDependencies: '@react-three/fiber': '>=8.0' @@ -14974,7 +16356,7 @@ packages: react-dom: optional: true dependencies: - '@react-three/fiber': 8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + '@react-three/fiber': 8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) glsl-token-descope: 1.0.2 glsl-token-functions: 1.0.1 glsl-token-string: 1.0.1 @@ -14983,7 +16365,7 @@ packages: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) three: 0.164.1 - three-custom-shader-material: 4.0.0(@react-three/fiber@8.16.6)(react@18.3.1)(three@0.164.1) + three-custom-shader-material: 4.0.0(@react-three/fiber@8.16.1)(react@18.3.1)(three@0.164.1) transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -15070,7 +16452,7 @@ packages: read-package-json: 6.0.4 resolve-from: 5.0.0 rimraf: 4.4.1 - semver: 7.6.2 + semver: 7.6.0 signal-exit: 3.0.7 slash: 3.0.0 ssri: 9.0.1 @@ -15150,7 +16532,7 @@ packages: npm-package-arg: 10.1.0 npm-registry-fetch: 14.0.5 proc-log: 3.0.0 - semver: 7.6.2 + semver: 7.6.0 sigstore: 1.9.0 ssri: 10.0.5 transitivePeerDependencies: @@ -15343,8 +16725,8 @@ packages: dependencies: js-tokens: 4.0.0 - /lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} /lru-cache@5.1.1: @@ -15408,7 +16790,7 @@ packages: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.6.2 + semver: 7.6.0 dev: true /make-error@1.3.6: @@ -15446,7 +16828,7 @@ packages: cacache: 18.0.2 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 - minipass: 7.1.1 + minipass: 7.0.4 minipass-fetch: 3.0.4 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -15752,14 +17134,14 @@ packages: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - minipass: 7.1.1 + minipass: 7.0.4 dev: true /minipass-fetch@3.0.4: resolution: {integrity: sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 7.1.1 + minipass: 7.0.4 minipass-sized: 1.0.3 minizlib: 2.1.2 optionalDependencies: @@ -15810,8 +17192,8 @@ packages: engines: {node: '>=8'} dev: true - /minipass@7.1.1: - resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} /minizlib@2.1.2: @@ -15822,14 +17204,6 @@ packages: yallist: 4.0.0 dev: true - /minizlib@3.0.1: - resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} - engines: {node: '>= 18'} - dependencies: - minipass: 7.1.1 - rimraf: 5.0.7 - dev: false - /mississippi@4.0.0: resolution: {integrity: sha512-7PujJ3Te6GGg9lG1nfw5jYCPV6/BsoAT0nCQwb6w+ROuromXYxI6jc/CQSlD82Z/OUMSBX1SoaqhTE+vXiLQzQ==} engines: {node: '>=4.0.0'} @@ -15986,8 +17360,8 @@ packages: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true - /next@14.2.3(@babel/core@7.24.5)(@playwright/test@1.41.2)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A==} + /next@14.2.1(@babel/core@7.24.5)(@playwright/test@1.41.2)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-SF3TJnKdH43PMkCcErLPv+x/DY1YCklslk3ZmwaVoyUfDgHKexuKlf9sEfBQ69w+ue8jQ3msLb+hSj1T19hGag==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -16004,26 +17378,26 @@ packages: sass: optional: true dependencies: - '@next/env': 14.2.3 + '@next/env': 14.2.1 '@playwright/test': 1.41.2 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001612 + caniuse-lite: 1.0.30001609 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.24.5)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.3 - '@next/swc-darwin-x64': 14.2.3 - '@next/swc-linux-arm64-gnu': 14.2.3 - '@next/swc-linux-arm64-musl': 14.2.3 - '@next/swc-linux-x64-gnu': 14.2.3 - '@next/swc-linux-x64-musl': 14.2.3 - '@next/swc-win32-arm64-msvc': 14.2.3 - '@next/swc-win32-ia32-msvc': 14.2.3 - '@next/swc-win32-x64-msvc': 14.2.3 + '@next/swc-darwin-arm64': 14.2.1 + '@next/swc-darwin-x64': 14.2.1 + '@next/swc-linux-arm64-gnu': 14.2.1 + '@next/swc-linux-arm64-musl': 14.2.1 + '@next/swc-linux-x64-gnu': 14.2.1 + '@next/swc-linux-x64-musl': 14.2.1 + '@next/swc-win32-arm64-msvc': 14.2.1 + '@next/swc-win32-ia32-msvc': 14.2.1 + '@next/swc-win32-x64-msvc': 14.2.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -16055,7 +17429,7 @@ packages: '@swc/helpers': 0.5.11 babel-plugin-react-compiler: 0.0.0-experimental-592953e-20240517 busboy: 1.6.0 - caniuse-lite: 1.0.30001612 + caniuse-lite: 1.0.30001609 graceful-fs: 4.2.11 postcss: 8.4.31 react: 19.0.0-beta-04b058868c-20240508 @@ -16112,12 +17486,12 @@ packages: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.16 + glob: 10.3.12 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 - semver: 7.6.2 + semver: 7.6.0 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -16137,7 +17511,7 @@ packages: dependencies: growly: 1.3.0 is-wsl: 2.2.0 - semver: 7.6.2 + semver: 7.6.0 shellwords: 0.1.1 uuid: 8.3.2 which: 2.0.2 @@ -16180,7 +17554,7 @@ packages: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-license: 3.0.4 /normalize-package-data@5.0.0: @@ -16189,17 +17563,17 @@ packages: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-license: 3.0.4 dev: true - /normalize-package-data@6.0.1: - resolution: {integrity: sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==} + /normalize-package-data@6.0.0: + resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: hosted-git-info: 7.0.1 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-license: 3.0.4 dev: true @@ -16231,7 +17605,7 @@ packages: resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - semver: 7.6.2 + semver: 7.6.0 dev: true /npm-normalize-package-bin@1.0.1: @@ -16249,7 +17623,7 @@ packages: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-name: 5.0.0 dev: true @@ -16259,7 +17633,7 @@ packages: dependencies: hosted-git-info: 7.0.1 proc-log: 4.0.0 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-name: 5.0.0 dev: true @@ -16268,7 +17642,7 @@ packages: engines: {node: '>=10'} dependencies: hosted-git-info: 3.0.8 - semver: 7.6.2 + semver: 7.6.0 validate-npm-package-name: 3.0.0 dev: true @@ -16297,7 +17671,7 @@ packages: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.2 - semver: 7.6.2 + semver: 7.6.0 dev: true /npm-registry-fetch@14.0.5: @@ -16321,7 +17695,7 @@ packages: dependencies: '@npmcli/redact': 1.1.0 make-fetch-happen: 13.0.0 - minipass: 7.1.1 + minipass: 7.0.4 minipass-fetch: 3.0.4 minipass-json-stream: 1.0.1 minizlib: 2.1.2 @@ -16413,7 +17787,7 @@ packages: npm-run-path: 4.0.1 open: 8.4.2 ora: 5.3.0 - semver: 7.6.2 + semver: 7.6.0 string-width: 4.2.3 strong-log-transformer: 2.1.0 tar-stream: 2.2.0 @@ -16819,7 +18193,7 @@ packages: '@npmcli/run-script': 7.0.2 cacache: 18.0.2 fs-minipass: 3.0.3 - minipass: 7.1.1 + minipass: 7.0.4 npm-package-arg: 11.0.2 npm-packlist: 8.0.2 npm-pick-manifest: 9.0.0 @@ -16973,12 +18347,12 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 10.2.2 - minipass: 7.1.1 + lru-cache: 10.2.0 + minipass: 7.0.4 /path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -17131,7 +18505,7 @@ packages: resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} engines: {node: '>=10'} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 dev: false /posix-character-classes@0.1.1: @@ -17242,7 +18616,7 @@ packages: dependencies: '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 - react-is: 18.3.1 + react-is: 18.3.0 dev: true /pretty-ms@7.0.1: @@ -17475,7 +18849,7 @@ packages: peerDependencies: react: '*' dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 react: 18.3.1 dev: false @@ -17542,8 +18916,8 @@ packages: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false - /react-focus-lock@2.12.1(@types/react@18.3.2)(react@18.3.1): - resolution: {integrity: sha512-lfp8Dve4yJagkHiFrC1bGtib3mF2ktqwPJw4/WGcgPW+pJ/AVQA5X2vI7xgp13FcxFEpYBBHpXai/N2DBNC0Jw==} + /react-focus-lock@2.11.3(@types/react@18.3.2)(react@18.3.1): + resolution: {integrity: sha512-CfWYS86y6KvAIGxYzO1/HlWI2zGON9Fa3L2xfREDGMNFAtYj3m/ZRvnsMH4H75dj5FpgDy2LWA1Vyx+twV80vw==} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 react: '*' @@ -17551,7 +18925,7 @@ packages: '@types/react': optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 '@types/react': 18.3.2 focus-lock: 1.3.5 prop-types: 15.8.1 @@ -17561,7 +18935,7 @@ packages: use-sidecar: 1.1.2(@types/react@18.3.2)(react@18.3.1) dev: false - /react-i18next@13.5.0(i18next@23.11.2)(react-dom@18.3.1)(react@18.3.1): + /react-i18next@13.5.0(i18next@23.11.1)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} peerDependencies: i18next: '>= 23.2.3' @@ -17574,9 +18948,9 @@ packages: react-native: optional: true dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 html-parse-stringify: 3.0.1 - i18next: 23.11.2 + i18next: 23.11.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) dev: false @@ -17588,6 +18962,13 @@ packages: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + + /react-is@18.3.0: + resolution: {integrity: sha512-wRiUsea88TjKDc4FBEn+sLvIDesp6brMbGWnJGjew2waAc9evdhja/2LvePc898HJbHw0L+MTWy7NhpnELAvLQ==} + dev: true + /react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} @@ -17617,6 +18998,11 @@ packages: unist-util-filter: 2.0.3 unist-util-visit-parents: 3.1.1 + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: false + /react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} @@ -17630,7 +19016,7 @@ packages: observable-callback: 1.0.3(rxjs@7.8.1) react: 18.3.1 rxjs: 7.8.1 - use-sync-external-store: 1.2.2(react@18.3.1) + use-sync-external-store: 1.2.0(react@18.3.1) dev: false /react-style-proptype@3.2.2: @@ -17677,9 +19063,8 @@ packages: /read-package-json@6.0.4: resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - deprecated: This package is no longer supported. Please use @npmcli/package-json instead. dependencies: - glob: 10.3.16 + glob: 10.3.12 json-parse-even-better-errors: 3.0.1 normalize-package-data: 5.0.0 npm-normalize-package-bin: 3.0.1 @@ -17690,9 +19075,9 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} deprecated: This package is no longer supported. Please use @npmcli/package-json instead. dependencies: - glob: 10.3.16 + glob: 10.3.12 json-parse-even-better-errors: 3.0.1 - normalize-package-data: 6.0.1 + normalize-package-data: 6.0.0 npm-normalize-package-bin: 3.0.1 dev: true @@ -17871,7 +19256,7 @@ packages: /regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} dependencies: - '@babel/runtime': 7.24.5 + '@babel/runtime': 7.24.4 /regex-cache@0.4.4: resolution: {integrity: sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==} @@ -18118,14 +19503,6 @@ packages: dependencies: glob: 9.3.5 - /rimraf@5.0.7: - resolution: {integrity: sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==} - engines: {node: '>=14.18'} - hasBin: true - dependencies: - glob: 10.3.16 - dev: false - /rollup-plugin-esbuild@6.1.1(esbuild@0.21.3)(rollup@4.18.0): resolution: {integrity: sha512-CehMY9FAqJD5OUaE/Mi1r5z0kNeYxItmRO2zG4Qnv2qWKF09J2lTy5GUzjJR354ZPrLkCj4fiBN41lo8PzBUhw==} engines: {node: '>=14.18.0'} @@ -18316,6 +19693,40 @@ packages: - react-dom dev: false + /sanity-plugin-mux-input@2.3.4(@types/react@18.3.2)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(sanity@packages+sanity)(styled-components@6.1.8): + resolution: {integrity: sha512-GHIFWKXDzYIZreeC/ExEsaIBU7ATgAfjacB8Yo9SN2K1C9YMhdHYbl8S+aCa2QcmrmvHtkAKG3oukg/U0JfUCQ==} + engines: {node: '>=14'} + peerDependencies: + react: '*' + react-is: ^18 + sanity: ^3 + styled-components: ^6 + dependencies: + '@mux/mux-player-react': 2.4.1(@types/react@18.3.2)(react-dom@18.3.1)(react@18.3.1) + '@mux/upchunk': 3.3.2 + '@sanity/icons': 2.11.8(react@18.3.1) + '@sanity/incompatible-plugin': 1.0.4(react-dom@18.3.1)(react@18.3.1) + '@sanity/ui': 2.1.11(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1)(styled-components@6.1.8) + '@sanity/uuid': 3.0.2 + iso-639-1: 3.1.2 + jsonwebtoken-esm: 1.0.5 + lodash: 4.17.21 + react: 18.3.1 + react-is: 18.3.1 + react-rx: 2.1.3(react@18.3.1)(rxjs@7.8.1) + rxjs: 7.8.1 + sanity: link:packages/sanity + scroll-into-view-if-needed: 3.1.0 + styled-components: 6.1.8(react-dom@18.3.1)(react@18.3.1) + suspend-react: 0.1.3(react@18.3.1) + swr: 2.2.5(react@18.3.1) + type-fest: 4.15.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - react-dom + dev: false + /saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -18377,10 +19788,12 @@ packages: dependencies: lru-cache: 6.0.0 - /semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true + dependencies: + lru-cache: 6.0.0 /send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} @@ -18475,7 +19888,7 @@ packages: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.6.2 + semver: 7.6.0 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.4 '@img/sharp-darwin-x64': 0.33.4 @@ -18750,7 +20163,7 @@ packages: git-hooks-list: 3.1.0 globby: 13.2.2 is-plain-obj: 4.1.0 - semver: 7.6.2 + semver: 7.6.0 sort-object-keys: 1.1.3 dev: true @@ -18866,7 +20279,7 @@ packages: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - minipass: 7.1.1 + minipass: 7.0.4 dev: true /ssri@9.0.1: @@ -19178,6 +20591,26 @@ packages: tslib: 2.6.2 dev: false + /styled-components@6.1.8(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw==} + engines: {node: '>= 16'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@emotion/is-prop-valid': 1.2.1 + '@emotion/unitless': 0.8.0 + '@types/stylis': 4.2.0 + css-to-react-native: 3.2.0 + csstype: 3.1.2 + postcss: 8.4.31 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + shallowequal: 1.1.0 + stylis: 4.3.1 + tslib: 2.5.0 + dev: false + /styled-jsx@5.1.1(@babel/core@7.24.5)(react@18.3.1): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -19214,6 +20647,10 @@ packages: react: 19.0.0-beta-04b058868c-20240508 dev: false + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} + dev: false + /stylis@4.3.2: resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} @@ -19264,7 +20701,7 @@ packages: dependencies: client-only: 0.0.1 react: 18.3.1 - use-sync-external-store: 1.2.2(react@18.3.1) + use-sync-external-store: 1.2.0(react@18.3.1) /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -19342,18 +20779,6 @@ packages: yallist: 4.0.0 dev: true - /tar@7.1.0: - resolution: {integrity: sha512-ENhg4W6BmjYxl8GTaE7/h99f0aXiSWv4kikRZ9n2/JRxypZniE84ILZqimAhxxX7Zb8Px6pFdheW3EeHfhnXQQ==} - engines: {node: '>=18'} - dependencies: - '@isaacs/fs-minipass': 4.0.1 - chownr: 3.0.0 - minipass: 7.1.1 - minizlib: 3.0.1 - mkdirp: 3.0.1 - yallist: 5.0.0 - dev: false - /teeny-request@9.0.0: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} @@ -19406,7 +20831,7 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /three-custom-shader-material@4.0.0(@react-three/fiber@8.16.6)(react@18.3.1)(three@0.164.1): + /three-custom-shader-material@4.0.0(@react-three/fiber@8.16.1)(react@18.3.1)(three@0.164.1): resolution: {integrity: sha512-oMlHSANeKJdpXiLnQTQILF0tY6p2q6tgzQiR5UzMtC9oCa+EQgMXh28dvzsnqtWVnnv6FGwXRfNFgqcv+mHW7Q==} peerDependencies: '@react-three/fiber': '>=8.0' @@ -19418,7 +20843,7 @@ packages: react: optional: true dependencies: - '@react-three/fiber': 8.16.6(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) + '@react-three/fiber': 8.16.1(react-dom@18.3.1)(react@18.3.1)(three@0.164.1) glsl-token-functions: 1.0.1 glsl-token-string: 1.0.1 glsl-tokenizer: 2.1.5 @@ -19435,14 +20860,14 @@ packages: three: 0.164.1 dev: false - /three-stdlib@2.30.0(three@0.164.1): - resolution: {integrity: sha512-ALL7rn57jq/MovDRk5hGjeWCvOeZlZhFCWIdpbBAQNudCO3nMwxEba5ZulsMgiI1ymQMzUzTMcxhLTCVlUaKDw==} + /three-stdlib@2.29.6(three@0.164.1): + resolution: {integrity: sha512-nj9bHkzhhwfmqQcM/keC2RDb0bHhbw6bRXTy81ehzi8F1rtp6pJ5eS0/vl1Eg5RMFqXOMyxJ6sDHPoLU+IrVZg==} peerDependencies: three: '>=0.128.0' dependencies: - '@types/draco3d': 1.4.10 + '@types/draco3d': 1.4.9 '@types/offscreencanvas': 2019.7.3 - '@types/webxr': 0.5.16 + '@types/webxr': 0.5.15 draco3d: 1.5.7 fflate: 0.6.10 potpack: 1.0.2 @@ -19691,11 +21116,15 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + dev: false + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsx@4.10.5: - resolution: {integrity: sha512-twDSbf7Gtea4I2copqovUiNTEDrT8XNFXsuHpfGbdpW/z9ZW4fTghzzhAG0WfrCuJmJiOEY1nLIjq4u3oujRWQ==} + /tsx@4.11.0: + resolution: {integrity: sha512-vzGGELOgAupsNVssAmZjbUDfdm/pWP4R+Kg8TVdsonxbXk0bEpE1qh0yV6/QxUVXaVlNemgcPajGdJJ82n3stg==} engines: {node: '>=18.0.0'} hasBin: true dependencies: @@ -20069,7 +21498,6 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - requiresBuild: true dependencies: punycode: 2.3.1 @@ -20137,14 +21565,6 @@ packages: react: '*' dependencies: react: 18.3.1 - dev: false - - /use-sync-external-store@1.2.2(react@18.3.1): - resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} - peerDependencies: - react: '*' - dependencies: - react: 18.3.1 /use@3.1.1: resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} @@ -20669,22 +22089,11 @@ packages: /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - /yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} - dev: false - /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} dev: true - /yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} - engines: {node: '>= 14'} - hasBin: true - dev: false - /yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -20755,15 +22164,24 @@ packages: readable-stream: 4.5.2 dev: false - /zod-validation-error@2.1.0(zod@3.23.8): + /zod-validation-error@2.1.0(zod@3.23.4): resolution: {integrity: sha512-VJh93e2wb4c3tWtGgTa0OF/dTt/zoPCPzXq4V11ZjxmEAFaPi/Zss1xIZdEB5RD8GD00U0/iVXgqkF77RV7pdQ==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.18.0 dependencies: - zod: 3.23.8 + zod: 3.23.4 dev: false + /zod-validation-error@3.2.0(zod@3.23.8): + resolution: {integrity: sha512-cYlPR6zuyrgmu2wRTdumEAJGuwI7eHVHGT+VyneAQxmRAKtGRL1/7pjz4wfLhz4J05f5qoSZc3rGacswgyTjjw==} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + dependencies: + zod: 3.23.8 + dev: true + /zod-validation-error@3.3.0(zod@3.23.8): resolution: {integrity: sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==} engines: {node: '>=18.0.0'} @@ -20772,6 +22190,14 @@ packages: dependencies: zod: 3.23.8 + /zod@3.23.0: + resolution: {integrity: sha512-OFLT+LTocvabn6q76BTwVB0hExEBS0IduTr3cqZyMqEDbOnYmcU+y0tUAYbND4uwclpBGi4I4UUBGzylWpjLGA==} + dev: false + + /zod@3.23.4: + resolution: {integrity: sha512-/AtWOKbBgjzEYYQRNfoGKHObgfAZag6qUJX1VbHo2PRBgS+wfWagEY2mizjfyAPcGesrJOcx/wcl0L9WnVrHFw==} + dev: false + /zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} From 37e7b310267eeb6070148de623f1ee90caf4c27f Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 22 Apr 2024 17:31:43 +0100 Subject: [PATCH 05/29] refactor(sanity): use manifest schemas from `@sanity/manifest` --- packages/sanity/package.json | 3 +-- .../manifest/extractManifestsAction.ts | 23 +++---------------- pnpm-lock.yaml | 3 --- 3 files changed, 4 insertions(+), 25 deletions(-) diff --git a/packages/sanity/package.json b/packages/sanity/package.json index 49085d3260e..508a9f2add7 100644 --- a/packages/sanity/package.json +++ b/packages/sanity/package.json @@ -243,8 +243,7 @@ "use-hot-module-reload": "^2.0.0", "use-sync-external-store": "^1.2.0", "vite": "^4.5.1", - "yargs": "^17.3.0", - "zod": "^3.22.4" + "yargs": "^17.3.0" }, "devDependencies": { "@jest/expect": "^29.7.0", diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts index aa78b837dd9..8c12dc193cd 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts @@ -3,8 +3,8 @@ import {dirname, join, resolve} from 'node:path' import {Worker} from 'node:worker_threads' import {type CliCommandAction} from '@sanity/cli' +import {type ManifestV1, type ManifestV1Workspace} from '@sanity/manifest' import readPkgUp from 'read-pkg-up' -import z from 'zod' import { type ExtractSchemaWorkerData, @@ -14,23 +14,6 @@ import { const MANIFEST_FILENAME = 'v1.studiomanifest.json' const SCHEMA_FILENAME_PREFIX = 'schema-' -const ManifestSchema = z.object({manifestVersion: z.number()}) - -const ManifestV1WorkspaceSchema = z.object({ - name: z.string(), - dataset: z.string(), - schema: z.string(), -}) - -type ManifestV1Workspace = z.infer - -const ManifestV1Schema = ManifestSchema.extend({ - createdAt: z.date(), - workspaces: z.array(ManifestV1WorkspaceSchema), -}) - -type ManifestV1 = z.infer - const extractManifests: CliCommandAction = async (_args, context) => { const {output, workDir, chalk} = context @@ -119,7 +102,7 @@ export default extractManifests function externalizeSchemas( schemas: ExtractSchemaWorkerResult[], staticPath: string, -): Promise[]> { +): Promise { const output = schemas.reduce[]>((workspaces, workspace) => { return [...workspaces, externalizeSchema(workspace, staticPath)] }, []) @@ -130,7 +113,7 @@ function externalizeSchemas( async function externalizeSchema( workspace: ExtractSchemaWorkerResult, staticPath: string, -): Promise> { +): Promise { const encoder = new TextEncoder() const schemaString = JSON.stringify(workspace.schema, null, 2) const hash = await crypto.subtle.digest('SHA-1', encoder.encode(schemaString)) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 75820400be1..44c21cc4eed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1821,9 +1821,6 @@ importers: yargs: specifier: ^17.3.0 version: 17.7.2 - zod: - specifier: ^3.22.4 - version: 3.23.8 devDependencies: '@jest/expect': specifier: ^29.7.0 From eb6873237f37e873f084ead55d5834dadbfa15e3 Mon Sep 17 00:00:00 2001 From: Ash Date: Tue, 23 Apr 2024 12:52:41 +0100 Subject: [PATCH 06/29] chore: format files --- packages/@sanity/manifest/package.json | 14 ++++++++++++-- packages/sanity/package.json | 8 +++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/@sanity/manifest/package.json b/packages/@sanity/manifest/package.json index 354d980af66..e45c87a0948 100644 --- a/packages/@sanity/manifest/package.json +++ b/packages/@sanity/manifest/package.json @@ -2,7 +2,14 @@ "name": "@sanity/manifest", "version": "3.39.1", "description": "", - "keywords": ["sanity", "cms", "headless", "realtime", "content", "schema"], + "keywords": [ + "sanity", + "cms", + "headless", + "realtime", + "content", + "schema" + ], "homepage": "https://www.sanity.io/", "bugs": { "url": "https://github.com/sanity-io/sanity/issues" @@ -27,7 +34,10 @@ "main": "./lib/index.js", "module": "./lib/index.esm.js", "types": "./lib/index.d.ts", - "files": ["lib", "src"], + "files": [ + "lib", + "src" + ], "scripts": { "build": "pkg-utils build --strict --check --clean", "check:types": "tsc --project tsconfig.lib.json", diff --git a/packages/sanity/package.json b/packages/sanity/package.json index 508a9f2add7..b5cc7f65fc7 100644 --- a/packages/sanity/package.json +++ b/packages/sanity/package.json @@ -2,7 +2,13 @@ "name": "sanity", "version": "3.43.0", "description": "Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches", - "keywords": ["sanity", "cms", "headless", "realtime", "content"], + "keywords": [ + "sanity", + "cms", + "headless", + "realtime", + "content" + ], "homepage": "https://www.sanity.io/", "bugs": { "url": "https://github.com/sanity-io/sanity/issues" From 04df37febb4c359a6651a606fd4599175860514b Mon Sep 17 00:00:00 2001 From: Ash Date: Tue, 23 Apr 2024 17:03:29 +0100 Subject: [PATCH 07/29] feat(schema): include `title`, `description`, and `deprecated` attributes when extracting schema --- .../schema/src/sanity/extractSchema.ts | 14 ++++- .../__snapshots__/extractSchema.test.ts.snap | 63 +++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) diff --git a/packages/@sanity/schema/src/sanity/extractSchema.ts b/packages/@sanity/schema/src/sanity/extractSchema.ts index 17a6ff6339d..bd804704fc4 100644 --- a/packages/@sanity/schema/src/sanity/extractSchema.ts +++ b/packages/@sanity/schema/src/sanity/extractSchema.ts @@ -27,6 +27,9 @@ import { type UnknownTypeNode, } from 'groq-js' +type Metadata = Type & + Pick + const documentDefaultFields = (typeName: string): Record => ({ _id: { type: 'objectAttribute', @@ -89,7 +92,7 @@ export function extractSchema( function convertBaseType( schemaType: SanitySchemaType, - ): DocumentSchemaType | TypeDeclarationSchemaType | null { + ): Metadata | null { let typeName: string | undefined if (schemaType.type) { typeName = schemaType.type.name @@ -97,6 +100,12 @@ export function extractSchema( typeName = schemaType.jsonType } + const metadata: Metadata = { + title: schemaType.title, + description: schemaType.description, + deprecated: schemaType.deprecated, + } + if (typeName === 'document' && isObjectType(schemaType)) { const defaultAttributes = documentDefaultFields(schemaType.name) @@ -106,6 +115,7 @@ export function extractSchema( } return { + ...metadata, name: schemaType.name, type: 'document', attributes: { @@ -121,6 +131,7 @@ export function extractSchema( } if (value.type === 'object') { return { + ...metadata, name: schemaType.name, type: 'type', value: { @@ -140,6 +151,7 @@ export function extractSchema( } return { + ...metadata, name: schemaType.name, type: 'type', value, diff --git a/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap b/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap index 33462c01a18..1435b6e89e7 100644 --- a/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap +++ b/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap @@ -3,7 +3,10 @@ exports[`Extract schema test Extracts schema general 1`] = ` Array [ Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.imagePaletteSwatch", + "title": "Image palette swatch", "type": "type", "value": Object { "attributes": Object { @@ -47,7 +50,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.imagePalette", + "title": "Image palette", "type": "type", "value": Object { "attributes": Object { @@ -119,7 +125,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.imageDimensions", + "title": "Image dimensions", "type": "type", "value": Object { "attributes": Object { @@ -156,7 +165,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "geopoint", + "title": "Geographical Point", "type": "type", "value": Object { "attributes": Object { @@ -193,7 +205,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "slug", + "title": "Slug", "type": "type", "value": Object { "attributes": Object { @@ -223,7 +238,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "someTextType", + "title": "Text", "type": "type", "value": Object { "type": "string", @@ -362,11 +380,17 @@ Array [ }, }, }, + "deprecated": undefined, + "description": undefined, "name": "sanity.fileAsset", + "title": "File", "type": "document", }, Object { + "deprecated": undefined, + "description": undefined, "name": "code", + "title": "Code", "type": "type", "value": Object { "attributes": Object { @@ -389,14 +413,20 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "customStringType", + "title": "My custom string type", "type": "type", "value": Object { "type": "string", }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "blocksTest", + "title": "Blocks test", "type": "type", "value": Object { "attributes": Object { @@ -3416,7 +3446,10 @@ Array [ }, }, }, + "deprecated": undefined, + "description": undefined, "name": "book", + "title": "Book", "type": "document", }, Object { @@ -3536,11 +3569,17 @@ Array [ }, }, }, + "deprecated": undefined, + "description": undefined, "name": "author", + "title": "Author", "type": "document", }, Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.imageCrop", + "title": "Image crop", "type": "type", "value": Object { "attributes": Object { @@ -3584,7 +3623,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.imageHotspot", + "title": "Image hotspot", "type": "type", "value": Object { "attributes": Object { @@ -3768,11 +3810,17 @@ Array [ }, }, }, + "deprecated": undefined, + "description": undefined, "name": "sanity.imageAsset", + "title": "Image", "type": "document", }, Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.assetSourceData", + "title": "Asset Source Data", "type": "type", "value": Object { "attributes": Object { @@ -3809,7 +3857,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "sanity.imageMetadata", + "title": "Image metadata", "type": "type", "value": Object { "attributes": Object { @@ -4291,7 +4342,10 @@ Array [ }, }, }, + "deprecated": undefined, + "description": undefined, "name": "validDocument", + "title": "Valid document", "type": "document", }, Object { @@ -4335,11 +4389,17 @@ Array [ }, }, }, + "deprecated": undefined, + "description": undefined, "name": "otherValidDocument", + "title": "Other valid document", "type": "document", }, Object { + "deprecated": undefined, + "description": undefined, "name": "manuscript", + "title": "Manuscript", "type": "type", "value": Object { "attributes": Object { @@ -4422,7 +4482,10 @@ Array [ }, }, Object { + "deprecated": undefined, + "description": undefined, "name": "obj", + "title": "Obj", "type": "type", "value": Object { "attributes": Object { From 1526173ecad07ee7ad9bdf57fdbbd029b734d8f7 Mon Sep 17 00:00:00 2001 From: Ash Date: Wed, 24 Apr 2024 16:59:51 +0100 Subject: [PATCH 08/29] feat(sanity): add `direct` schema format to schema extractor --- .../manifest/extractManifestsAction.ts | 20 ++++---- .../_internal/cli/threads/extractSchema.ts | 48 +++++++++++++------ 2 files changed, 45 insertions(+), 23 deletions(-) diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts index 8c12dc193cd..db0f2b73270 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts @@ -46,19 +46,21 @@ const extractManifests: CliCommandAction = async (_args, context) => { workerData: { workDir, enforceRequiredFields: false, - format: 'groq-type-nodes', + format: 'direct', } satisfies ExtractSchemaWorkerData, // eslint-disable-next-line no-process-env env: process.env, }) try { - const schemas = await new Promise((resolveSchemas, reject) => { - const schemaBuffer: ExtractSchemaWorkerResult[] = [] - worker.addListener('message', (message) => schemaBuffer.push(message)) - worker.addListener('exit', () => resolveSchemas(schemaBuffer)) - worker.addListener('error', reject) - }) + const schemas = await new Promise[]>( + (resolveSchemas, reject) => { + const schemaBuffer: ExtractSchemaWorkerResult<'direct'>[] = [] + worker.addListener('message', (message) => schemaBuffer.push(message)) + worker.addListener('exit', () => resolveSchemas(schemaBuffer)) + worker.addListener('error', reject) + }, + ) spinner.text = `Writing manifest to ${chalk.cyan(path)}` @@ -100,7 +102,7 @@ const extractManifests: CliCommandAction = async (_args, context) => { export default extractManifests function externalizeSchemas( - schemas: ExtractSchemaWorkerResult[], + schemas: ExtractSchemaWorkerResult<'direct'>[], staticPath: string, ): Promise { const output = schemas.reduce[]>((workspaces, workspace) => { @@ -111,7 +113,7 @@ function externalizeSchemas( } async function externalizeSchema( - workspace: ExtractSchemaWorkerResult, + workspace: ExtractSchemaWorkerResult<'direct'>, staticPath: string, ): Promise { const encoder = new TextEncoder() diff --git a/packages/sanity/src/_internal/cli/threads/extractSchema.ts b/packages/sanity/src/_internal/cli/threads/extractSchema.ts index 61608deef35..b0dbd2daadd 100644 --- a/packages/sanity/src/_internal/cli/threads/extractSchema.ts +++ b/packages/sanity/src/_internal/cli/threads/extractSchema.ts @@ -1,47 +1,63 @@ import {isMainThread, parentPort, workerData as _workerData} from 'node:worker_threads' import {extractSchema} from '@sanity/schema/_internal' -import {type Workspace} from 'sanity' +import {type SchemaType} from 'groq-js' +import {type SchemaTypeDefinition, type Workspace} from 'sanity' import {getStudioWorkspaces} from '../util/getStudioWorkspaces' import {mockBrowserEnvironment} from '../util/mockBrowserEnvironment' +const formats = ['direct', 'groq-type-nodes'] as const +type Format = (typeof formats)[number] + /** @internal */ export interface ExtractSchemaWorkerData { workDir: string workspaceName?: string enforceRequiredFields?: boolean - format: 'groq-type-nodes' | string + format: Format | string } -/** @internal */ -export interface ExtractSchemaWorkerResult extends Pick { - schema: ReturnType +type WorkspaceTransformer = (workspace: Workspace) => ExtractSchemaWorkerResult + +const workspaceTransformers: Record = { + 'direct': (workspace) => ({ + name: workspace.name, + dataset: workspace.dataset, + schema: JSON.parse(JSON.stringify(workspace.schema._original?.types)), + }), + 'groq-type-nodes': (workspace) => ({ + schema: extractSchema(workspace.schema, { + enforceRequiredFields: opts.enforceRequiredFields, + }), + }), } +/** @internal */ +export type ExtractSchemaWorkerResult = { + 'direct': Pick & {schema: SchemaTypeDefinition[]} + 'groq-type-nodes': {schema: SchemaType} +}[TargetFormat] + if (isMainThread || !parentPort) { throw new Error('This module must be run as a worker thread') } const opts = _workerData as ExtractSchemaWorkerData +const {format} = opts const cleanup = mockBrowserEnvironment(opts.workDir) async function main() { try { - if (opts.format !== 'groq-type-nodes') { - throw new Error(`Unsupported format: "${opts.format}"`) + if (!isFormat(format)) { + throw new Error(`Unsupported format: "${format}"`) } const workspaces = await getStudioWorkspaces({basePath: opts.workDir}) const postWorkspace = (workspace: Workspace): void => { - parentPort?.postMessage({ - name: workspace.name, - dataset: workspace.dataset, - schema: extractSchema(workspace.schema, { - enforceRequiredFields: opts.enforceRequiredFields, - }), - } satisfies ExtractSchemaWorkerResult) + const transformer = workspaceTransformers[format] + parentPort?.postMessage(transformer(workspace)) } if (opts.workspaceName) { @@ -81,3 +97,7 @@ function getWorkspace({ } return workspace } + +function isFormat(maybeFormat: string): maybeFormat is Format { + return formats.includes(maybeFormat as Format) +} From 45f81a5ae6b1fc70f82c07cb991e7aab42afc1ec Mon Sep 17 00:00:00 2001 From: Ash Date: Wed, 24 Apr 2024 17:03:51 +0100 Subject: [PATCH 09/29] Revert "feat(schema): include `title`, `description`, and `deprecated` attributes when extracting schema" This reverts commit 60cb576290e56bde8e688522f2d27ba1cd81e5e7. --- .../schema/src/sanity/extractSchema.ts | 14 +---- .../__snapshots__/extractSchema.test.ts.snap | 63 ------------------- 2 files changed, 1 insertion(+), 76 deletions(-) diff --git a/packages/@sanity/schema/src/sanity/extractSchema.ts b/packages/@sanity/schema/src/sanity/extractSchema.ts index bd804704fc4..17a6ff6339d 100644 --- a/packages/@sanity/schema/src/sanity/extractSchema.ts +++ b/packages/@sanity/schema/src/sanity/extractSchema.ts @@ -27,9 +27,6 @@ import { type UnknownTypeNode, } from 'groq-js' -type Metadata = Type & - Pick - const documentDefaultFields = (typeName: string): Record => ({ _id: { type: 'objectAttribute', @@ -92,7 +89,7 @@ export function extractSchema( function convertBaseType( schemaType: SanitySchemaType, - ): Metadata | null { + ): DocumentSchemaType | TypeDeclarationSchemaType | null { let typeName: string | undefined if (schemaType.type) { typeName = schemaType.type.name @@ -100,12 +97,6 @@ export function extractSchema( typeName = schemaType.jsonType } - const metadata: Metadata = { - title: schemaType.title, - description: schemaType.description, - deprecated: schemaType.deprecated, - } - if (typeName === 'document' && isObjectType(schemaType)) { const defaultAttributes = documentDefaultFields(schemaType.name) @@ -115,7 +106,6 @@ export function extractSchema( } return { - ...metadata, name: schemaType.name, type: 'document', attributes: { @@ -131,7 +121,6 @@ export function extractSchema( } if (value.type === 'object') { return { - ...metadata, name: schemaType.name, type: 'type', value: { @@ -151,7 +140,6 @@ export function extractSchema( } return { - ...metadata, name: schemaType.name, type: 'type', value, diff --git a/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap b/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap index 1435b6e89e7..33462c01a18 100644 --- a/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap +++ b/packages/@sanity/schema/test/extractSchema/__snapshots__/extractSchema.test.ts.snap @@ -3,10 +3,7 @@ exports[`Extract schema test Extracts schema general 1`] = ` Array [ Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.imagePaletteSwatch", - "title": "Image palette swatch", "type": "type", "value": Object { "attributes": Object { @@ -50,10 +47,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.imagePalette", - "title": "Image palette", "type": "type", "value": Object { "attributes": Object { @@ -125,10 +119,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.imageDimensions", - "title": "Image dimensions", "type": "type", "value": Object { "attributes": Object { @@ -165,10 +156,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "geopoint", - "title": "Geographical Point", "type": "type", "value": Object { "attributes": Object { @@ -205,10 +193,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "slug", - "title": "Slug", "type": "type", "value": Object { "attributes": Object { @@ -238,10 +223,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "someTextType", - "title": "Text", "type": "type", "value": Object { "type": "string", @@ -380,17 +362,11 @@ Array [ }, }, }, - "deprecated": undefined, - "description": undefined, "name": "sanity.fileAsset", - "title": "File", "type": "document", }, Object { - "deprecated": undefined, - "description": undefined, "name": "code", - "title": "Code", "type": "type", "value": Object { "attributes": Object { @@ -413,20 +389,14 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "customStringType", - "title": "My custom string type", "type": "type", "value": Object { "type": "string", }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "blocksTest", - "title": "Blocks test", "type": "type", "value": Object { "attributes": Object { @@ -3446,10 +3416,7 @@ Array [ }, }, }, - "deprecated": undefined, - "description": undefined, "name": "book", - "title": "Book", "type": "document", }, Object { @@ -3569,17 +3536,11 @@ Array [ }, }, }, - "deprecated": undefined, - "description": undefined, "name": "author", - "title": "Author", "type": "document", }, Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.imageCrop", - "title": "Image crop", "type": "type", "value": Object { "attributes": Object { @@ -3623,10 +3584,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.imageHotspot", - "title": "Image hotspot", "type": "type", "value": Object { "attributes": Object { @@ -3810,17 +3768,11 @@ Array [ }, }, }, - "deprecated": undefined, - "description": undefined, "name": "sanity.imageAsset", - "title": "Image", "type": "document", }, Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.assetSourceData", - "title": "Asset Source Data", "type": "type", "value": Object { "attributes": Object { @@ -3857,10 +3809,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "sanity.imageMetadata", - "title": "Image metadata", "type": "type", "value": Object { "attributes": Object { @@ -4342,10 +4291,7 @@ Array [ }, }, }, - "deprecated": undefined, - "description": undefined, "name": "validDocument", - "title": "Valid document", "type": "document", }, Object { @@ -4389,17 +4335,11 @@ Array [ }, }, }, - "deprecated": undefined, - "description": undefined, "name": "otherValidDocument", - "title": "Other valid document", "type": "document", }, Object { - "deprecated": undefined, - "description": undefined, "name": "manuscript", - "title": "Manuscript", "type": "type", "value": Object { "attributes": Object { @@ -4482,10 +4422,7 @@ Array [ }, }, Object { - "deprecated": undefined, - "description": undefined, "name": "obj", - "title": "Obj", "type": "type", "value": Object { "attributes": Object { From 03df4edd92167d92b33ae1caa7cd5e4a41af4559 Mon Sep 17 00:00:00 2001 From: Ash Date: Fri, 26 Apr 2024 15:21:55 +0100 Subject: [PATCH 10/29] feat(sanity): export `ConcreteRuleClass` class --- packages/sanity/src/core/index.ts | 6 +++- packages/sanity/src/core/validation/Rule.ts | 34 ++++++++++++--------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/sanity/src/core/index.ts b/packages/sanity/src/core/index.ts index 56606120212..83140342883 100644 --- a/packages/sanity/src/core/index.ts +++ b/packages/sanity/src/core/index.ts @@ -33,5 +33,9 @@ export * from './templates' export * from './theme' export * from './user-color' export * from './util' -export {validateDocument, type ValidateDocumentOptions} from './validation' +export { + Rule as ConcreteRuleClass, + validateDocument, + type ValidateDocumentOptions, +} from './validation' export * from './version' diff --git a/packages/sanity/src/core/validation/Rule.ts b/packages/sanity/src/core/validation/Rule.ts index d9379e23400..f8956e050de 100644 --- a/packages/sanity/src/core/validation/Rule.ts +++ b/packages/sanity/src/core/validation/Rule.ts @@ -54,21 +54,25 @@ const ruleConstraintTypes: RuleTypeConstraint[] = [ 'String', ] -// Note: `RuleClass` and `Rule` are split to fit the current `@sanity/types` -// setup. Classes are a bit weird in the `@sanity/types` package because classes -// create an actual javascript class while simultaneously creating a type -// definition. -// -// This implicitly creates two types: -// 1. the instance type — `Rule` and -// 2. the static/class type - `RuleClass` -// -// The `RuleClass` type contains the static methods and the `Rule` instance -// contains the instance methods. -// -// This package exports the RuleClass as a value without implicitly exporting -// an instance definition. This should help reminder downstream users to import -// from the `@sanity/types` package. +/** + * Note: `RuleClass` and `Rule` are split to fit the current `@sanity/types` + * setup. Classes are a bit weird in the `@sanity/types` package because classes + * create an actual javascript class while simultaneously creating a type + * definition. + * + * This implicitly creates two types: + * 1. the instance type — `Rule` and + * 2. the static/class type - `RuleClass` + * + * The `RuleClass` type contains the static methods and the `Rule` instance + * contains the instance methods. + * + * This package exports the RuleClass as a value without implicitly exporting + * an instance definition. This should help reminder downstream users to import + * from the `@sanity/types` package. + * + * @internal + */ export const Rule: RuleClass = class Rule implements IRule { static readonly FIELD_REF = FIELD_REF static array = (def?: SchemaType): Rule => new Rule(def).type('Array') From 568d9254de8621b7e022006ace9348134412d70d Mon Sep 17 00:00:00 2001 From: Ash Date: Fri, 26 Apr 2024 17:05:08 +0100 Subject: [PATCH 11/29] feat(sanity): include validation rules in manifests --- .../_internal/cli/threads/extractSchema.ts | 74 +++++++++++++++++-- 1 file changed, 68 insertions(+), 6 deletions(-) diff --git a/packages/sanity/src/_internal/cli/threads/extractSchema.ts b/packages/sanity/src/_internal/cli/threads/extractSchema.ts index b0dbd2daadd..ef46f17e540 100644 --- a/packages/sanity/src/_internal/cli/threads/extractSchema.ts +++ b/packages/sanity/src/_internal/cli/threads/extractSchema.ts @@ -2,7 +2,12 @@ import {isMainThread, parentPort, workerData as _workerData} from 'node:worker_t import {extractSchema} from '@sanity/schema/_internal' import {type SchemaType} from 'groq-js' -import {type SchemaTypeDefinition, type Workspace} from 'sanity' +import { + ConcreteRuleClass, + type SchemaTypeDefinition, + type SchemaValidationValue, + type Workspace, +} from 'sanity' import {getStudioWorkspaces} from '../util/getStudioWorkspaces' import {mockBrowserEnvironment} from '../util/mockBrowserEnvironment' @@ -21,11 +26,20 @@ export interface ExtractSchemaWorkerData { type WorkspaceTransformer = (workspace: Workspace) => ExtractSchemaWorkerResult const workspaceTransformers: Record = { - 'direct': (workspace) => ({ - name: workspace.name, - dataset: workspace.dataset, - schema: JSON.parse(JSON.stringify(workspace.schema._original?.types)), - }), + 'direct': (workspace) => { + return { + name: workspace.name, + dataset: workspace.dataset, + schema: JSON.parse( + JSON.stringify(workspace.schema._original, (key, value) => { + if (key === 'validation' && isSchemaValidationValue(value)) { + return serializeValidation(value) + } + return value + }), + ), + } + }, 'groq-type-nodes': (workspace) => ({ schema: extractSchema(workspace.schema, { enforceRequiredFields: opts.enforceRequiredFields, @@ -101,3 +115,51 @@ function getWorkspace({ function isFormat(maybeFormat: string): maybeFormat is Format { return formats.includes(maybeFormat as Format) } + +// TODO: Simplify output format. +function serializeValidation(validation: SchemaValidationValue): SchemaValidationValue[] { + const validationArray = Array.isArray(validation) ? validation : [validation] + + return validationArray + .reduce((output, validationValue) => { + if (typeof validationValue === 'function') { + const rule = new ConcreteRuleClass() + const applied = validationValue(rule) + + // TODO: Deduplicate by flag. + // TODO: Handle merging of validation rules for array items. + return [...output, applied] + } + return output + }, []) + .flat() +} + +function isSchemaValidationValue( + maybeSchemaValidationValue: unknown, +): maybeSchemaValidationValue is SchemaValidationValue { + if (Array.isArray(maybeSchemaValidationValue)) { + return maybeSchemaValidationValue.every(isSchemaValidationValue) + } + + // TODO: Errors with `fields() can only be called on an object type` when it encounters + // the `fields` validation rule on a type that is not directly an `object`. This mayb be + // because the validation rules aren't normalized. + try { + return ( + maybeSchemaValidationValue === false || + typeof maybeSchemaValidationValue === 'undefined' || + maybeSchemaValidationValue instanceof ConcreteRuleClass || + (typeof maybeSchemaValidationValue === 'function' && + isSchemaValidationValue(maybeSchemaValidationValue(new ConcreteRuleClass()))) + ) + } catch (error) { + const hasMessage = 'message' in error + + if (!hasMessage || error.message !== 'fields() can only be called on an object type') { + throw error + } + } + + return false +} From aad87f3f79118cf1ea63e381e47e53a314dd9d48 Mon Sep 17 00:00:00 2001 From: Ash Date: Sat, 27 Apr 2024 17:56:11 +0100 Subject: [PATCH 12/29] refactor(sanity): move manifest extraction code --- .../_internal/cli/threads/extractSchema.ts | 72 +---------------- .../src/_internal/manifest/extractManifest.ts | 77 +++++++++++++++++++ 2 files changed, 81 insertions(+), 68 deletions(-) create mode 100644 packages/sanity/src/_internal/manifest/extractManifest.ts diff --git a/packages/sanity/src/_internal/cli/threads/extractSchema.ts b/packages/sanity/src/_internal/cli/threads/extractSchema.ts index ef46f17e540..c6482fc9fbd 100644 --- a/packages/sanity/src/_internal/cli/threads/extractSchema.ts +++ b/packages/sanity/src/_internal/cli/threads/extractSchema.ts @@ -2,13 +2,9 @@ import {isMainThread, parentPort, workerData as _workerData} from 'node:worker_t import {extractSchema} from '@sanity/schema/_internal' import {type SchemaType} from 'groq-js' -import { - ConcreteRuleClass, - type SchemaTypeDefinition, - type SchemaValidationValue, - type Workspace, -} from 'sanity' +import {type SchemaTypeDefinition, type Workspace} from 'sanity' +import {extractWorkspace} from '../../manifest/extractManifest' import {getStudioWorkspaces} from '../util/getStudioWorkspaces' import {mockBrowserEnvironment} from '../util/mockBrowserEnvironment' @@ -26,20 +22,8 @@ export interface ExtractSchemaWorkerData { type WorkspaceTransformer = (workspace: Workspace) => ExtractSchemaWorkerResult const workspaceTransformers: Record = { - 'direct': (workspace) => { - return { - name: workspace.name, - dataset: workspace.dataset, - schema: JSON.parse( - JSON.stringify(workspace.schema._original, (key, value) => { - if (key === 'validation' && isSchemaValidationValue(value)) { - return serializeValidation(value) - } - return value - }), - ), - } - }, + // @ts-expect-error FIXME + 'direct': extractWorkspace, 'groq-type-nodes': (workspace) => ({ schema: extractSchema(workspace.schema, { enforceRequiredFields: opts.enforceRequiredFields, @@ -115,51 +99,3 @@ function getWorkspace({ function isFormat(maybeFormat: string): maybeFormat is Format { return formats.includes(maybeFormat as Format) } - -// TODO: Simplify output format. -function serializeValidation(validation: SchemaValidationValue): SchemaValidationValue[] { - const validationArray = Array.isArray(validation) ? validation : [validation] - - return validationArray - .reduce((output, validationValue) => { - if (typeof validationValue === 'function') { - const rule = new ConcreteRuleClass() - const applied = validationValue(rule) - - // TODO: Deduplicate by flag. - // TODO: Handle merging of validation rules for array items. - return [...output, applied] - } - return output - }, []) - .flat() -} - -function isSchemaValidationValue( - maybeSchemaValidationValue: unknown, -): maybeSchemaValidationValue is SchemaValidationValue { - if (Array.isArray(maybeSchemaValidationValue)) { - return maybeSchemaValidationValue.every(isSchemaValidationValue) - } - - // TODO: Errors with `fields() can only be called on an object type` when it encounters - // the `fields` validation rule on a type that is not directly an `object`. This mayb be - // because the validation rules aren't normalized. - try { - return ( - maybeSchemaValidationValue === false || - typeof maybeSchemaValidationValue === 'undefined' || - maybeSchemaValidationValue instanceof ConcreteRuleClass || - (typeof maybeSchemaValidationValue === 'function' && - isSchemaValidationValue(maybeSchemaValidationValue(new ConcreteRuleClass()))) - ) - } catch (error) { - const hasMessage = 'message' in error - - if (!hasMessage || error.message !== 'fields() can only be called on an object type') { - throw error - } - } - - return false -} diff --git a/packages/sanity/src/_internal/manifest/extractManifest.ts b/packages/sanity/src/_internal/manifest/extractManifest.ts new file mode 100644 index 00000000000..f79fd1a89fa --- /dev/null +++ b/packages/sanity/src/_internal/manifest/extractManifest.ts @@ -0,0 +1,77 @@ +import {type ManifestV1Workspace} from '@sanity/manifest' +import {ConcreteRuleClass, type SchemaValidationValue, type Workspace} from 'sanity' + +export function extractWorkspace(workspace: Workspace): ManifestV1Workspace { + return { + name: workspace.name, + dataset: workspace.dataset, + schema: JSON.parse( + JSON.stringify(workspace.schema._original, (key, value) => { + if (key === 'validation' && isSchemaValidationValue(value)) { + return serializeValidation(value) + } + return value + }), + ), + } +} + +// TODO: Type output. +export function extractSchema(workspace: Workspace): any { + return JSON.parse( + JSON.stringify(workspace.schema._original, (key, value) => { + if (key === 'validation' && isSchemaValidationValue(value)) { + return serializeValidation(value) + } + return value + }), + ) +} + +// TODO: Simplify output format. +function serializeValidation(validation: SchemaValidationValue): SchemaValidationValue[] { + const validationArray = Array.isArray(validation) ? validation : [validation] + + return validationArray + .reduce((output, validationValue) => { + if (typeof validationValue === 'function') { + const rule = new ConcreteRuleClass() + const applied = validationValue(rule) + + // TODO: Deduplicate by flag. + // TODO: Handle merging of validation rules for array items. + return [...output, applied] + } + return output + }, []) + .flat() +} + +function isSchemaValidationValue( + maybeSchemaValidationValue: unknown, +): maybeSchemaValidationValue is SchemaValidationValue { + if (Array.isArray(maybeSchemaValidationValue)) { + return maybeSchemaValidationValue.every(isSchemaValidationValue) + } + + // TODO: Errors with `fields() can only be called on an object type` when it encounters + // the `fields` validation rule on a type that is not directly an `object`. This mayb be + // because the validation rules aren't normalized. + try { + return ( + maybeSchemaValidationValue === false || + typeof maybeSchemaValidationValue === 'undefined' || + maybeSchemaValidationValue instanceof ConcreteRuleClass || + (typeof maybeSchemaValidationValue === 'function' && + isSchemaValidationValue(maybeSchemaValidationValue(new ConcreteRuleClass()))) + ) + } catch (error) { + const hasMessage = 'message' in error + + if (!hasMessage || error.message !== 'fields() can only be called on an object type') { + throw error + } + } + + return false +} From 9aa3a2b30cd49e5e182f6e868d96b2f5b9f84020 Mon Sep 17 00:00:00 2001 From: Ash Date: Sun, 28 Apr 2024 10:35:13 +0100 Subject: [PATCH 13/29] feat(sanity): extract manifest during build --- .../src/_internal/cli/actions/build/buildAction.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts index 6b144438fa4..84663cd156c 100644 --- a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts +++ b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts @@ -13,6 +13,8 @@ import {checkStudioDependencyVersions} from '../../util/checkStudioDependencyVer import {checkRequiredDependencies} from '../../util/checkRequiredDependencies' import {getTimer} from '../../util/timing' import {BuildTrace} from './build.telemetry' +import extractManifest from '../manifest/extractManifestsAction' +import {pick} from 'lodash' const rimraf = promisify(rimrafCallback) @@ -124,6 +126,16 @@ export default async function buildSanityStudio( const buildDuration = timer.end('bundleStudio') spin.text = `Build Sanity Studio (${buildDuration.toFixed()}ms)` + + await extractManifest( + { + ...pick(args, ['argsWithoutOptions', 'argv', 'groupOrCommand']), + extOptions: {}, + extraArguments: [], + }, + context, + ) + spin.succeed() trace.complete() if (flags.stats) { From e99e860eb20b8d4887221f515eca015f8f1dea3a Mon Sep 17 00:00:00 2001 From: Ash Date: Sun, 28 Apr 2024 17:46:06 +0100 Subject: [PATCH 14/29] feat(sanity): adopt `.studioschema.json` filename suffix for manifest schemas --- .../_internal/cli/actions/manifest/extractManifestsAction.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts index db0f2b73270..a6dbdf0e9b9 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts @@ -12,7 +12,7 @@ import { } from '../../threads/extractSchema' const MANIFEST_FILENAME = 'v1.studiomanifest.json' -const SCHEMA_FILENAME_PREFIX = 'schema-' +const SCHEMA_FILENAME_SUFFIX = '.studioschema.json' const extractManifests: CliCommandAction = async (_args, context) => { const {output, workDir, chalk} = context @@ -119,7 +119,7 @@ async function externalizeSchema( const encoder = new TextEncoder() const schemaString = JSON.stringify(workspace.schema, null, 2) const hash = await crypto.subtle.digest('SHA-1', encoder.encode(schemaString)) - const filename = `${SCHEMA_FILENAME_PREFIX}${hexFromBuffer(hash).slice(0, 8)}.json` + const filename = `${hexFromBuffer(hash).slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` await writeFile(join(staticPath, filename), schemaString) From 13a817b0d302ef06e5b1465e6f18cd4c8e2e79b2 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 09:21:39 +0100 Subject: [PATCH 15/29] refactor(sanity): rename manifest extraction functions (remove plural) --- .../sanity/src/_internal/cli/actions/build/buildAction.ts | 2 +- ...extractManifestsAction.ts => extractManifestAction.ts} | 4 ++-- packages/sanity/src/_internal/cli/commands/index.ts | 4 ++-- ...tractManifestsCommand.ts => extractManifestCommand.ts} | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) rename packages/sanity/src/_internal/cli/actions/manifest/{extractManifestsAction.ts => extractManifestAction.ts} (97%) rename packages/sanity/src/_internal/cli/commands/manifest/{extractManifestsCommand.ts => extractManifestCommand.ts} (77%) diff --git a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts index 84663cd156c..f47631685df 100644 --- a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts +++ b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts @@ -13,7 +13,7 @@ import {checkStudioDependencyVersions} from '../../util/checkStudioDependencyVer import {checkRequiredDependencies} from '../../util/checkRequiredDependencies' import {getTimer} from '../../util/timing' import {BuildTrace} from './build.telemetry' -import extractManifest from '../manifest/extractManifestsAction' +import extractManifest from '../manifest/extractManifestAction' import {pick} from 'lodash' const rimraf = promisify(rimrafCallback) diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts similarity index 97% rename from packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts rename to packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts index a6dbdf0e9b9..50093cb0915 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestsAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts @@ -14,7 +14,7 @@ import { const MANIFEST_FILENAME = 'v1.studiomanifest.json' const SCHEMA_FILENAME_SUFFIX = '.studioschema.json' -const extractManifests: CliCommandAction = async (_args, context) => { +const extractManifest: CliCommandAction = async (_args, context) => { const {output, workDir, chalk} = context const defaultOutputDir = resolve(join(workDir, 'dist')) @@ -99,7 +99,7 @@ const extractManifests: CliCommandAction = async (_args, context) => { output.print(`Extracted manifest to ${chalk.cyan(path)}`) } -export default extractManifests +export default extractManifest function externalizeSchemas( schemas: ExtractSchemaWorkerResult<'direct'>[], diff --git a/packages/sanity/src/_internal/cli/commands/index.ts b/packages/sanity/src/_internal/cli/commands/index.ts index af739380ceb..4b41a210e52 100644 --- a/packages/sanity/src/_internal/cli/commands/index.ts +++ b/packages/sanity/src/_internal/cli/commands/index.ts @@ -41,7 +41,7 @@ import hookGroup from './hook/hookGroup' import listHookLogsCommand from './hook/listHookLogsCommand' import listHooksCommand from './hook/listHooksCommand' import printHookAttemptCommand from './hook/printHookAttemptCommand' -import extractManifestsCommand from './manifest/extractManifestsCommand' +import extractManifestCommand from './manifest/extractManifestCommand' import listManifestsCommand from './manifest/listManifestsCommand' import manifestGroup from './manifest/manifestGroup' import createMigrationCommand from './migration/createMigrationCommand' @@ -91,7 +91,7 @@ const commands: (CliCommandDefinition | CliCommandGroupDefinition)[] = [ migrationGroup, createMigrationCommand, manifestGroup, - extractManifestsCommand, + extractManifestCommand, listManifestsCommand, runMigrationCommand, listMigrationsCommand, diff --git a/packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts b/packages/sanity/src/_internal/cli/commands/manifest/extractManifestCommand.ts similarity index 77% rename from packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts rename to packages/sanity/src/_internal/cli/commands/manifest/extractManifestCommand.ts index cf6b8741c0d..ec381d701a3 100644 --- a/packages/sanity/src/_internal/cli/commands/manifest/extractManifestsCommand.ts +++ b/packages/sanity/src/_internal/cli/commands/manifest/extractManifestCommand.ts @@ -1,7 +1,7 @@ import {type CliCommandDefinition} from '@sanity/cli' // TODO: Switch to lazy import. -import mod from '../../actions/manifest/extractManifestsAction' +import mod from '../../actions/manifest/extractManifestAction' const description = 'Extracts a JSON representation of a Sanity schema within a Studio context.' @@ -13,18 +13,18 @@ Examples sanity manifest extract ` -const extractManifestsCommand: CliCommandDefinition = { +const extractManifestCommand: CliCommandDefinition = { name: 'extract', group: 'manifest', signature: '', description, helpText, action: async (args, context) => { - // const mod = await import('../../actions/manifest/extractManifestsAction') + // const mod = await import('../../actions/manifest/extractManifestAction') // // return mod.default(args, context) return mod(args, context) }, } -export default extractManifestsCommand +export default extractManifestCommand From 9d688b51f5a3b7fb9df581ded74a61802ad4a946 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 10:02:00 +0100 Subject: [PATCH 16/29] fix(sanity): remove redundant success message --- .../_internal/cli/actions/manifest/extractManifestAction.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts index 50093cb0915..69f0bff11f9 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts @@ -89,14 +89,12 @@ const extractManifest: CliCommandAction = async (_args, context) => { // trace.complete() - spinner.succeed('Extracted manifest') + spinner.succeed(`Extracted manifest to ${chalk.cyan(path)}`) } catch (err) { // trace.error(err) spinner.fail('Failed to extract manifest') throw err } - - output.print(`Extracted manifest to ${chalk.cyan(path)}`) } export default extractManifest From cd1917e873b8549eb7f5b48e7f8ab96816b0a996 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 12:11:47 +0100 Subject: [PATCH 17/29] fix(sanity): stop build spinner before starting manifest extraction --- packages/sanity/src/_internal/cli/actions/build/buildAction.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts index f47631685df..655b105bf04 100644 --- a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts +++ b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts @@ -126,6 +126,7 @@ export default async function buildSanityStudio( const buildDuration = timer.end('bundleStudio') spin.text = `Build Sanity Studio (${buildDuration.toFixed()}ms)` + spin.succeed() await extractManifest( { @@ -136,7 +137,6 @@ export default async function buildSanityStudio( context, ) - spin.succeed() trace.complete() if (flags.stats) { output.print('\nLargest module files:') From 74a504f05a5e9a949447d8530ba6c99966b2baaa Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 12:44:19 +0100 Subject: [PATCH 18/29] feat(sanity): add `unstable_extractManifestOnBuild` CLI config option --- packages/@sanity/cli/src/types.ts | 7 +++++++ .../_internal/cli/actions/build/buildAction.ts | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/packages/@sanity/cli/src/types.ts b/packages/@sanity/cli/src/types.ts index b68b3379d05..4d96558819c 100644 --- a/packages/@sanity/cli/src/types.ts +++ b/packages/@sanity/cli/src/types.ts @@ -310,6 +310,13 @@ export interface CliConfig { graphql?: GraphQLAPIConfig[] vite?: UserViteConfig + + /** + * Extracts a Studio manifest to the `dist/static` directory when building (or deploying) the project. + * + * Optional, defaults to `false`. + */ + unstable_extractManifestOnBuild?: boolean } export type UserViteConfig = diff --git a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts index 655b105bf04..b44ac1d1b0c 100644 --- a/packages/sanity/src/_internal/cli/actions/build/buildAction.ts +++ b/packages/sanity/src/_internal/cli/actions/build/buildAction.ts @@ -128,14 +128,16 @@ export default async function buildSanityStudio( spin.text = `Build Sanity Studio (${buildDuration.toFixed()}ms)` spin.succeed() - await extractManifest( - { - ...pick(args, ['argsWithoutOptions', 'argv', 'groupOrCommand']), - extOptions: {}, - extraArguments: [], - }, - context, - ) + if (context.cliConfig && 'unstable_extractManifestOnBuild' in context.cliConfig && context.cliConfig.unstable_extractManifestOnBuild) { + await extractManifest( + { + ...pick(args, ['argsWithoutOptions', 'argv', 'groupOrCommand']), + extOptions: {}, + extraArguments: [], + }, + context, + ) + } trace.complete() if (flags.stats) { From 69563756d448a434499ae760d1955cce9a8f9e4a Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 12:45:02 +0100 Subject: [PATCH 19/29] feat(test-studio): enable `unstable_extractManifestOnBuild` --- dev/test-studio/sanity.cli.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev/test-studio/sanity.cli.ts b/dev/test-studio/sanity.cli.ts index 7128a76f7ff..160d0a575f3 100644 --- a/dev/test-studio/sanity.cli.ts +++ b/dev/test-studio/sanity.cli.ts @@ -9,6 +9,8 @@ export default defineCliConfig({ dataset: 'test', }, + unstable_extractManifestOnBuild: true, + // Can be overriden by: // A) `SANITY_STUDIO_REACT_STRICT_MODE=false pnpm dev` // B) creating a `.env` file locally that sets the same env variable as above From 99f8fc48d3590eb4af6b2ee720b6376e6ffa5c4a Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 13:54:41 +0100 Subject: [PATCH 20/29] fix(sanity): switch to node crypto for node 18 compatibility --- .../cli/actions/manifest/extractManifestAction.ts | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts index 69f0bff11f9..f7867ef8672 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts @@ -1,3 +1,4 @@ +import {createHash} from 'node:crypto' import {mkdir, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' import {Worker} from 'node:worker_threads' @@ -114,10 +115,9 @@ async function externalizeSchema( workspace: ExtractSchemaWorkerResult<'direct'>, staticPath: string, ): Promise { - const encoder = new TextEncoder() const schemaString = JSON.stringify(workspace.schema, null, 2) - const hash = await crypto.subtle.digest('SHA-1', encoder.encode(schemaString)) - const filename = `${hexFromBuffer(hash).slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` + const hash = createHash('sha1').update(schemaString).digest('hex') + const filename = `${hash.slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` await writeFile(join(staticPath, filename), schemaString) @@ -126,9 +126,3 @@ async function externalizeSchema( schema: filename, } } - -function hexFromBuffer(buffer: ArrayBuffer): string { - return Array.prototype.map - .call(new Uint8Array(buffer), (x) => `00${x.toString(16)}`.slice(-2)) - .join('') -} From 74fd8776da65b7a4e0d0ebf88e0bda76c68e2707 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 16:43:00 +0100 Subject: [PATCH 21/29] feat(cli): add `unstable_staticAssetsPath` CLI configuration option --- packages/@sanity/cli/src/types.ts | 12 ++++++++++++ .../cli/actions/manifest/extractManifestAction.ts | 12 ++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/packages/@sanity/cli/src/types.ts b/packages/@sanity/cli/src/types.ts index 4d96558819c..01a4f224f76 100644 --- a/packages/@sanity/cli/src/types.ts +++ b/packages/@sanity/cli/src/types.ts @@ -317,6 +317,18 @@ export interface CliConfig { * Optional, defaults to `false`. */ unstable_extractManifestOnBuild?: boolean + + /** + * The path Sanity CLI will write static assets (such as the Studio Manifest) to when used inside + * an embedded Studio project. Relative to the CLI config file. + * + * Sanity CLI will attempt to create this path if it does not exist. + * + * You should not define a value if your Studio is not embedded. + * + * Optional, defaults to `dist/static`. + */ + unstable_staticAssetsPath?: string } export type UserViteConfig = diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts index f7867ef8672..bc5ecd7c205 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts @@ -16,12 +16,20 @@ const MANIFEST_FILENAME = 'v1.studiomanifest.json' const SCHEMA_FILENAME_SUFFIX = '.studioschema.json' const extractManifest: CliCommandAction = async (_args, context) => { - const {output, workDir, chalk} = context + const {output, workDir, chalk, cliConfig} = context const defaultOutputDir = resolve(join(workDir, 'dist')) // const outputDir = resolve(args.argsWithoutOptions[0] || defaultOutputDir) const outputDir = resolve(defaultOutputDir) - const staticPath = join(outputDir, 'static') + const defaultStaticPath = join(outputDir, 'static') + + const staticPath = + cliConfig && + 'unstable_staticAssetsPath' in cliConfig && + typeof cliConfig.unstable_staticAssetsPath !== 'undefined' + ? resolve(join(workDir, cliConfig.unstable_staticAssetsPath)) + : defaultStaticPath + const path = join(staticPath, MANIFEST_FILENAME) const rootPkgPath = readPkgUp.sync({cwd: __dirname})?.path From ef5478aae4252fa5cdd64aa7c277230f6f3975c5 Mon Sep 17 00:00:00 2001 From: Ash Date: Mon, 29 Apr 2024 16:45:23 +0100 Subject: [PATCH 22/29] chore(cli): refine `unstable_extractManifestOnBuild` CLI configuration option description --- packages/@sanity/cli/src/types.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/@sanity/cli/src/types.ts b/packages/@sanity/cli/src/types.ts index 01a4f224f76..b27a52ff285 100644 --- a/packages/@sanity/cli/src/types.ts +++ b/packages/@sanity/cli/src/types.ts @@ -312,7 +312,8 @@ export interface CliConfig { vite?: UserViteConfig /** - * Extracts a Studio manifest to the `dist/static` directory when building (or deploying) the project. + * Whether or not to extract a Studio Manifest to the static assets directory when building + * (or deploying) the project. * * Optional, defaults to `false`. */ From deecb68539b4008d5c5048e0023bc79971388c97 Mon Sep 17 00:00:00 2001 From: Ash Date: Tue, 30 Apr 2024 11:26:37 +0100 Subject: [PATCH 23/29] feat(sanity): remove extraneous `types` wrapper from manifests --- packages/sanity/src/_internal/manifest/extractManifest.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/sanity/src/_internal/manifest/extractManifest.ts b/packages/sanity/src/_internal/manifest/extractManifest.ts index f79fd1a89fa..4ca7e0b76f9 100644 --- a/packages/sanity/src/_internal/manifest/extractManifest.ts +++ b/packages/sanity/src/_internal/manifest/extractManifest.ts @@ -6,7 +6,7 @@ export function extractWorkspace(workspace: Workspace): ManifestV1Workspace { name: workspace.name, dataset: workspace.dataset, schema: JSON.parse( - JSON.stringify(workspace.schema._original, (key, value) => { + JSON.stringify(workspace.schema._original?.types, (key, value) => { if (key === 'validation' && isSchemaValidationValue(value)) { return serializeValidation(value) } From a65d6f11126a6b049c8d88909477a17a189937ca Mon Sep 17 00:00:00 2001 From: Ash Date: Thu, 23 May 2024 08:08:30 +0100 Subject: [PATCH 24/29] debug(test-studio): remove Mux plugin to unblock typegen --- dev/test-studio/sanity.config.ts | 3 --- dev/test-studio/schema/index.ts | 2 -- 2 files changed, 5 deletions(-) diff --git a/dev/test-studio/sanity.config.ts b/dev/test-studio/sanity.config.ts index 1c233d13e9c..be24b8ada18 100644 --- a/dev/test-studio/sanity.config.ts +++ b/dev/test-studio/sanity.config.ts @@ -14,7 +14,6 @@ import {defineConfig, definePlugin, type WorkspaceOptions} from 'sanity' import {presentationTool} from 'sanity/presentation' import {structureTool} from 'sanity/structure' import {imageHotspotArrayPlugin} from 'sanity-plugin-hotspot-array' -import {muxInput} from 'sanity-plugin-mux-input' import {imageAssetSource} from './assetSources' import { @@ -130,8 +129,6 @@ const sharedSettings = definePlugin({ visionTool({ defaultApiVersion: '2022-08-08', }), - // eslint-disable-next-line camelcase - muxInput({mp4_support: 'standard'}), imageHotspotArrayPlugin(), presenceTool(), routerDebugTool(), diff --git a/dev/test-studio/schema/index.ts b/dev/test-studio/schema/index.ts index a408b5eb47f..2fd912e4c76 100644 --- a/dev/test-studio/schema/index.ts +++ b/dev/test-studio/schema/index.ts @@ -76,7 +76,6 @@ import {virtualizationInObject} from './debug/virtualizationInObject' import {demos3d} from './demos/3d' import {v3docs} from './docs/v3' import markdown from './externalPlugins/markdown' -import mux from './externalPlugins/mux' import playlist from './playlist' import playlistTrack from './playlistTrack' import code from './plugins/code' @@ -261,7 +260,6 @@ export const schemaTypes = [ // Test documents with 3rd party plugin inputs markdown, - mux, // Other documents author, From 1d7132bbe83a2cacffd4d23ae937dd5bc3a560d1 Mon Sep 17 00:00:00 2001 From: Ash Date: Thu, 23 May 2024 08:10:04 +0100 Subject: [PATCH 25/29] feat(embedded-studio): enable manifest extraction --- dev/embedded-studio/package.json | 2 +- dev/embedded-studio/sanity.cli.ts | 9 ++++++ dev/embedded-studio/sanity.config.ts | 34 ++++++++++++++++++++++ dev/embedded-studio/src/App.tsx | 42 ++-------------------------- 4 files changed, 46 insertions(+), 41 deletions(-) create mode 100644 dev/embedded-studio/sanity.cli.ts create mode 100644 dev/embedded-studio/sanity.config.ts diff --git a/dev/embedded-studio/package.json b/dev/embedded-studio/package.json index 560c4d5de5b..d2f7617809c 100644 --- a/dev/embedded-studio/package.json +++ b/dev/embedded-studio/package.json @@ -3,7 +3,7 @@ "version": "3.43.0", "private": true, "scripts": { - "build": "tsc && vite build", + "build": "tsc && vite build && sanity manifest extract", "dev": "vite", "preview": "vite preview" }, diff --git a/dev/embedded-studio/sanity.cli.ts b/dev/embedded-studio/sanity.cli.ts new file mode 100644 index 00000000000..5f8416de33d --- /dev/null +++ b/dev/embedded-studio/sanity.cli.ts @@ -0,0 +1,9 @@ +import {defineCliConfig} from 'sanity/cli' + +export default defineCliConfig({ + api: { + projectId: 'ppsg7ml5', + dataset: 'test', + }, + unstable_staticAssetsPath: './dist/assets', +}) diff --git a/dev/embedded-studio/sanity.config.ts b/dev/embedded-studio/sanity.config.ts new file mode 100644 index 00000000000..c49026536a2 --- /dev/null +++ b/dev/embedded-studio/sanity.config.ts @@ -0,0 +1,34 @@ +import {defineConfig, defineType} from 'sanity' +import {structureTool} from 'sanity/structure' + +const BLOG_POST_SCHEMA = defineType({ + type: 'document', + name: 'blogPost', + title: 'Blog post', + fields: [ + { + type: 'string', + name: 'title', + title: 'Title', + }, + ], +}) + +export const SCHEMA_TYPES = [BLOG_POST_SCHEMA] + +export default defineConfig({ + projectId: 'ppsg7ml5', + dataset: 'test', + + document: { + unstable_comments: { + enabled: true, + }, + }, + + schema: { + types: SCHEMA_TYPES, + }, + + plugins: [structureTool()], +}) diff --git a/dev/embedded-studio/src/App.tsx b/dev/embedded-studio/src/App.tsx index d07913d0206..7ee792a216b 100644 --- a/dev/embedded-studio/src/App.tsx +++ b/dev/embedded-studio/src/App.tsx @@ -1,46 +1,8 @@ import {Button, Card, Flex, studioTheme, ThemeProvider, usePrefersDark} from '@sanity/ui' import {useCallback, useMemo, useState} from 'react' -import { - defineConfig, - defineType, - Studio, - StudioLayout, - StudioProvider, - type StudioThemeColorSchemeKey, -} from 'sanity' -import {structureTool} from 'sanity/structure' +import {Studio, StudioLayout, StudioProvider, type StudioThemeColorSchemeKey} from 'sanity' -const BLOG_POST_SCHEMA = defineType({ - type: 'document', - name: 'blogPost', - title: 'Blog post', - fields: [ - { - type: 'string', - name: 'title', - title: 'Title', - }, - ], -}) - -const SCHEMA_TYPES = [BLOG_POST_SCHEMA] - -const config = defineConfig({ - projectId: 'ppsg7ml5', - dataset: 'test', - - document: { - unstable_comments: { - enabled: true, - }, - }, - - schema: { - types: SCHEMA_TYPES, - }, - - plugins: [structureTool()], -}) +import config from '../sanity.config' export function App() { const prefersDark = usePrefersDark() From 6766c539416a8cb8a0aed7deaa60d509b7c2c972 Mon Sep 17 00:00:00 2001 From: Ash Date: Thu, 23 May 2024 08:11:36 +0100 Subject: [PATCH 26/29] feat(starter-next-studio): enable manifest extraction --- dev/starter-next-studio/components/Studio.tsx | 36 +++---------------- dev/starter-next-studio/package.json | 2 +- dev/starter-next-studio/sanity.cli.ts | 8 +++++ dev/starter-next-studio/sanity.config.ts | 25 +++++++++++++ 4 files changed, 38 insertions(+), 33 deletions(-) create mode 100644 dev/starter-next-studio/sanity.cli.ts create mode 100644 dev/starter-next-studio/sanity.config.ts diff --git a/dev/starter-next-studio/components/Studio.tsx b/dev/starter-next-studio/components/Studio.tsx index 00557ec43c7..11aa0e3ce65 100644 --- a/dev/starter-next-studio/components/Studio.tsx +++ b/dev/starter-next-studio/components/Studio.tsx @@ -1,41 +1,13 @@ -import {useMemo} from 'react' -import {defineConfig, Studio} from 'sanity' -import {structureTool} from 'sanity/structure' +import {Studio} from 'sanity' + +import config from '../sanity.config' const wrapperStyles = {height: '100vh', width: '100vw'} export default function StudioRoot({basePath}: {basePath: string}) { - const config = useMemo( - () => - defineConfig({ - basePath, - plugins: [structureTool()], - title: 'Next.js Starter', - projectId: 'ppsg7ml5', - dataset: 'test', - schema: { - types: [ - { - type: 'document', - name: 'post', - title: 'Post', - fields: [ - { - type: 'string', - name: 'title', - title: 'Title', - }, - ], - }, - ], - }, - }), - [basePath], - ) - return (
- +
) } diff --git a/dev/starter-next-studio/package.json b/dev/starter-next-studio/package.json index b592a5f47c4..dc0f314d23d 100644 --- a/dev/starter-next-studio/package.json +++ b/dev/starter-next-studio/package.json @@ -5,7 +5,7 @@ "license": "MIT", "author": "Sanity.io ", "scripts": { - "build": "next build", + "build": "sanity manifest extract && next build", "dev": "next dev", "start": "next start" }, diff --git a/dev/starter-next-studio/sanity.cli.ts b/dev/starter-next-studio/sanity.cli.ts new file mode 100644 index 00000000000..fac247bf8cf --- /dev/null +++ b/dev/starter-next-studio/sanity.cli.ts @@ -0,0 +1,8 @@ +import {defineCliConfig} from 'sanity/cli' + +export default defineCliConfig({ + api: { + projectId: 'ppsg7ml5', + dataset: 'test', + }, +}) diff --git a/dev/starter-next-studio/sanity.config.ts b/dev/starter-next-studio/sanity.config.ts new file mode 100644 index 00000000000..102cbb15f94 --- /dev/null +++ b/dev/starter-next-studio/sanity.config.ts @@ -0,0 +1,25 @@ +import {defineConfig} from 'sanity' +import {structureTool} from 'sanity/structure' + +export default defineConfig({ + plugins: [structureTool()], + title: 'Next.js Starter', + projectId: 'ppsg7ml5', + dataset: 'test', + schema: { + types: [ + { + type: 'document', + name: 'post', + title: 'Post', + fields: [ + { + type: 'string', + name: 'title', + title: 'Title', + }, + ], + }, + ], + }, +}) From d5aae73c2f8d2e559e8fa533ab2deadb434a3c29 Mon Sep 17 00:00:00 2001 From: Ash Date: Thu, 23 May 2024 08:20:34 +0100 Subject: [PATCH 27/29] wip --- packages/@sanity/manifest/src/schema/v1.ts | 18 - .../@sanity/manifest/src/schema/v1/index.ts | 101 +++++ .../actions/manifest/extractManifestAction.ts | 6 +- .../commands/schema/extractSchemaCommand.ts | 10 +- .../src/_internal/manifest/extractManifest.ts | 349 +++++++++++++++--- 5 files changed, 407 insertions(+), 77 deletions(-) delete mode 100644 packages/@sanity/manifest/src/schema/v1.ts create mode 100644 packages/@sanity/manifest/src/schema/v1/index.ts diff --git a/packages/@sanity/manifest/src/schema/v1.ts b/packages/@sanity/manifest/src/schema/v1.ts deleted file mode 100644 index 9d49c4b77bc..00000000000 --- a/packages/@sanity/manifest/src/schema/v1.ts +++ /dev/null @@ -1,18 +0,0 @@ -import z from 'zod' - -export const ManifestSchema = z.object({manifestVersion: z.number()}) - -export const ManifestV1WorkspaceSchema = z.object({ - name: z.string(), - dataset: z.string(), - schema: z.string(), -}) - -export type ManifestV1Workspace = z.infer - -export const ManifestV1Schema = ManifestSchema.extend({ - createdAt: z.date(), - workspaces: z.array(ManifestV1WorkspaceSchema), -}) - -export type ManifestV1 = z.infer diff --git a/packages/@sanity/manifest/src/schema/v1/index.ts b/packages/@sanity/manifest/src/schema/v1/index.ts new file mode 100644 index 00000000000..158e08e6eec --- /dev/null +++ b/packages/@sanity/manifest/src/schema/v1/index.ts @@ -0,0 +1,101 @@ +import z from 'zod' + +export const manifestV1Deprecation = z.object({ + reason: z.string(), +}) + +export const manifestV1TypeValidationRule = z.object({ + flag: z.literal('type'), + constraint: z.string(), // xxx make me precise +}) + +// TOOD: Constraints +export const manifestV1UriValidationRule = z.object({ + flag: z.literal('uri'), +}) + +// TODO +// export const manifestV1ValidationRule = z.any() +export const manifestV1ValidationRule = z.union([ + manifestV1TypeValidationRule, + manifestV1UriValidationRule, + // TODO: Remove + z.any(), +]) + +export const manifestV1ValidationGroup = z.object({ + rules: z.array(manifestV1ValidationRule), + message: z.string().optional(), + level: z.union([z.literal('error'), z.literal('warning'), z.literal('info')]).optional(), +}) + +export type ManifestV1ValidationGroup = z.infer + +export const manifestV1Reference = z.object({ + type: z.string(), +}) + +export type ManifestV1Reference = z.infer + +export const manifestV1ReferenceGroup = z.array(manifestV1Reference) + +export type ManifestV1ReferenceGroup = z.infer + +const _base = z.object({ + type: z.string(), + name: z.string(), + title: z.string().optional(), + description: z.string().optional(), + deprecated: manifestV1Deprecation.optional(), + readOnly: z.boolean().optional(), // xxx + hidden: z.boolean().optional(), // xxx + validation: z.array(manifestV1ValidationGroup).optional(), + to: manifestV1ReferenceGroup.optional(), + of: z.any(), + preview: z + .object({ + select: z.record(z.string(), z.string()), + }) + .optional(), +}) + +const manifestV1TypeBase: z.ZodType = _base.extend({ + fields: z.array(z.lazy(() => manifestV1Field)).optional(), +}) + +export const manifestV1Field = manifestV1TypeBase + +export type ManifestV1Field = z.infer + +// export const ManifestV1TypeSchema = ManifestV1TypeBaseSchema.extend({ +// readOnly: z.boolean().optional(), +// hidden: z.boolean().optional(), +// preview: z +// .object({ +// select: z.record(z.string(), z.string()), +// }) +// .optional(), +// }) + +export type ManifestV1Type = z.infer & { + fields?: ManifestV1Field[] +} + +export const manifestV1Schema = z.array(manifestV1TypeBase) + +export const ManifestSchema = z.object({manifestVersion: z.number()}) + +export const manifestV1Workspace = z.object({ + name: z.string(), + dataset: z.string(), + schema: z.union([manifestV1Schema, z.string()]), // xxx don't actually want string here, but allows us to replace with filename +}) + +export type ManifestV1Workspace = z.infer + +export const manifestV1 = ManifestSchema.extend({ + createdAt: z.date(), + workspaces: z.array(manifestV1Workspace), +}) + +export type ManifestV1 = z.infer diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts index bc5ecd7c205..cdef7d7a6c8 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts @@ -100,9 +100,10 @@ const extractManifest: CliCommandAction = async (_args, context) => { spinner.succeed(`Extracted manifest to ${chalk.cyan(path)}`) } catch (err) { + console.error('[ERR]', err) // trace.error(err) spinner.fail('Failed to extract manifest') - throw err + // throw err } } @@ -125,7 +126,8 @@ async function externalizeSchema( ): Promise { const schemaString = JSON.stringify(workspace.schema, null, 2) const hash = createHash('sha1').update(schemaString).digest('hex') - const filename = `${hash.slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` + // const filename = `${hash.slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` + const filename = `${workspace.name}${SCHEMA_FILENAME_SUFFIX}` await writeFile(join(staticPath, filename), schemaString) diff --git a/packages/sanity/src/_internal/cli/commands/schema/extractSchemaCommand.ts b/packages/sanity/src/_internal/cli/commands/schema/extractSchemaCommand.ts index f6867346c39..aa0a3ef4600 100644 --- a/packages/sanity/src/_internal/cli/commands/schema/extractSchemaCommand.ts +++ b/packages/sanity/src/_internal/cli/commands/schema/extractSchemaCommand.ts @@ -1,5 +1,8 @@ import {type CliCommandDefinition} from '@sanity/cli' +// xxx tmp +import mod from '../../actions/schema/extractAction' + const description = 'Extracts a JSON representation of a Sanity schema within a Studio context.' const helpText = ` @@ -23,9 +26,10 @@ const extractSchemaCommand: CliCommandDefinition = { description, helpText, action: async (args, context) => { - const mod = await import('../../actions/schema/extractAction') - - return mod.default(args, context) + // const mod = await import('../../actions/schema/extractAction') + // + // return mod.default(args, context) + return mod(args, context) }, } satisfies CliCommandDefinition diff --git a/packages/sanity/src/_internal/manifest/extractManifest.ts b/packages/sanity/src/_internal/manifest/extractManifest.ts index 4ca7e0b76f9..3c6291cd3f5 100644 --- a/packages/sanity/src/_internal/manifest/extractManifest.ts +++ b/packages/sanity/src/_internal/manifest/extractManifest.ts @@ -1,77 +1,318 @@ -import {type ManifestV1Workspace} from '@sanity/manifest' -import {ConcreteRuleClass, type SchemaValidationValue, type Workspace} from 'sanity' +import { + type ManifestV1Field, + manifestV1Schema, + type ManifestV1Type, + type ManifestV1ValidationGroup, + type ManifestV1Workspace, +} from '@sanity/manifest' +import { + type ArraySchemaType, + ConcreteRuleClass, + type ObjectField, + type ReferenceSchemaType, + type Rule, + type SchemaType, + type SchemaValidationValue, + type Workspace, +} from 'sanity' + +interface Context { + workspace: Workspace +} + +// type WithWarnings = Base & { +// warnings: { +// path: string[] +// warning: string +// }[] +// } + +type MaybeCustomized = Type & { + isCustomized?: boolean +} + +type Customized = Type & { + isCustomized: true +} + +type Validation = + | { + validation: ManifestV1ValidationGroup[] + } + | Record + +type ObjectFields = + | { + fields: ManifestV1Field[] + } + | Record export function extractWorkspace(workspace: Workspace): ManifestV1Workspace { + const typeNames = workspace.schema.getTypeNames() + const context = {workspace} + + const schema = typeNames + .map((typeName) => workspace.schema.get(typeName)) + .filter((type): type is SchemaType => typeof type !== 'undefined') + .map((type) => transformType(type, context)) + return { name: workspace.name, dataset: workspace.dataset, - schema: JSON.parse( - JSON.stringify(workspace.schema._original?.types, (key, value) => { - if (key === 'validation' && isSchemaValidationValue(value)) { - return serializeValidation(value) + schema: manifestV1Schema.parse(schema), + } +} + +function transformType(type: SchemaType, context: Context): ManifestV1Type { + const typeName = type.type ? type.type.name : type.jsonType + + if (type.jsonType === 'object') { + return { + name: type.name, + type: typeName, + deprecated: type.deprecated, + fields: (type.fields ?? []).map((field) => transformField(field, context)), + validation: transformValidation(type.validation), + ...ensureString('title', type.title), + ...ensureString('description', type.description), + ...ensureBoolean('readOnly', type.readOnly), + ...ensureBoolean('hidden', type.hidden), + } + } + + return { + name: type.name, + type: typeName, + deprecated: type.deprecated, + validation: transformValidation(type.validation), + ...ensureString('title', type.title), + ...ensureString('description', type.description), + ...ensureBoolean('readOnly', type.readOnly), + ...ensureBoolean('hidden', type.hidden), + } +} + +function transformField(field: MaybeCustomized, context: Context): ManifestV1Field { + const shouldCreateDefinition = + !context.workspace.schema.get(field.type.name) || isCustomized(field) + + const arrayProperties = + field.type.jsonType === 'array' ? transformArrayMember(field.type, context) : {} + + const referenceProperties = isReferenceSchemaType(field.type) + ? transformReference(field.type) + : {} + + const validation: Validation = shouldCreateDefinition + ? { + validation: transformValidation(field.type.validation), + } + : {} + + const objectFields: ObjectFields = + field.type.jsonType === 'object' && field.type.type && shouldCreateDefinition + ? { + fields: field.type.fields.map((objectField) => transformField(objectField, context)), } - return value - }), - ), + : {} + + return { + name: field.name, + type: field.type.name, + deprecated: field.type.deprecated, + ...validation, + ...objectFields, + ...ensureString('title', field.type.title), + ...ensureString('description', field.type.description), + ...arrayProperties, + ...referenceProperties, + ...ensureBoolean('readOnly', field.type.readOnly), + ...ensureBoolean('hidden', field.type.hidden), } } -// TODO: Type output. -export function extractSchema(workspace: Workspace): any { - return JSON.parse( - JSON.stringify(workspace.schema._original, (key, value) => { - if (key === 'validation' && isSchemaValidationValue(value)) { - return serializeValidation(value) +function transformArrayMember( + arrayMember: ArraySchemaType, + context: Context, +): Pick { + return { + of: arrayMember.of.map((type) => { + const shouldCreateDefinition = !context.workspace.schema.get(type.name) || isCustomized(type) + + if (shouldCreateDefinition) { + return transformType(type, context) + } + + // TODO: Deduplicate process taken from `transformField`. + // return transformField(type, context) + + const arrayProperties = + type.type?.jsonType === 'array' ? transformArrayMember(type.type, context) : {} + + const referenceProperties = isReferenceSchemaType(type.type) + ? transformReference(type.type) + : {} + + const validation: Validation = shouldCreateDefinition + ? { + validation: transformValidation(type.type?.validation), + } + : {} + + const objectFields: ObjectFields = + type.type?.jsonType === 'object' && type.type.type && shouldCreateDefinition + ? { + fields: type.type.fields.map((objectField) => transformField(objectField, context)), + } + : {} + + return { + name: type.name, + type: type.type?.name, + deprecated: type.type?.deprecated, + ...validation, + ...objectFields, + ...ensureString('title', type.type?.title), + ...ensureString('description', type.type?.description), + ...arrayProperties, + ...referenceProperties, + ...ensureBoolean('readOnly', type.type?.readOnly), + ...ensureBoolean('hidden', type.type?.hidden), } - return value }), + } +} + +function transformReference(reference: ReferenceSchemaType): Pick { + return { + to: (reference.to ?? []).map((type) => ({ + type: type.name, + })), + } +} + +function transformValidation(validation: SchemaValidationValue): ManifestV1ValidationGroup[] { + const validationArray = (Array.isArray(validation) ? validation : [validation]).filter( + (value): value is Rule => typeof value === 'object' && '_type' in value, ) + + // Custom validation rules cannot be serialized. + const disallowedFlags = ['custom'] + + // Validation rules that refer to other fields use symbols, which cannot be serialized. It would + // be possible to transform these to a serializable type, but we haven't implemented that for now. + const disallowedConstraintTypes: (symbol | unknown)[] = [ConcreteRuleClass.FIELD_REF] + + return validationArray.map(({_rules, _message, _level}) => { + // TODO: Handle insances of `LocalizedValidationMessages`. + const message: Partial> = + typeof _message === 'string' ? {message: _message} : {} + + return { + rules: _rules.filter((rule) => { + if (!('constraint' in rule)) { + return false + } + + const {flag, constraint} = rule + + if (disallowedFlags.includes(flag)) { + return false + } + + if ( + typeof constraint === 'object' && + 'type' in constraint && + disallowedConstraintTypes.includes(constraint.type) + ) { + return false + } + + return true + }), + level: _level, + ...message, + } + }) } -// TODO: Simplify output format. -function serializeValidation(validation: SchemaValidationValue): SchemaValidationValue[] { - const validationArray = Array.isArray(validation) ? validation : [validation] +function ensureString< + Key extends string, + const Value, + const DefaultValue extends string | undefined, +>( + key: Key, + value: Value, + defaultValue?: DefaultValue, +): Value extends string + ? Record + : [DefaultValue] extends [string] + ? Record + : Record { + if (typeof value === 'string') { + return { + [key]: value, + } as any // eslint-disable-line @typescript-eslint/no-explicit-any + } - return validationArray - .reduce((output, validationValue) => { - if (typeof validationValue === 'function') { - const rule = new ConcreteRuleClass() - const applied = validationValue(rule) + if (typeof defaultValue === 'string') { + return { + [key]: defaultValue, + } as any // eslint-disable-line @typescript-eslint/no-explicit-any + } - // TODO: Deduplicate by flag. - // TODO: Handle merging of validation rules for array items. - return [...output, applied] - } - return output - }, []) - .flat() + return {} as any // eslint-disable-line @typescript-eslint/no-explicit-any } -function isSchemaValidationValue( - maybeSchemaValidationValue: unknown, -): maybeSchemaValidationValue is SchemaValidationValue { - if (Array.isArray(maybeSchemaValidationValue)) { - return maybeSchemaValidationValue.every(isSchemaValidationValue) +function ensureBoolean< + Key extends string, + const Value, + const DefaultValue extends boolean | undefined, +>( + key: Key, + value: Value, + defaultValue?: DefaultValue, +): Value extends boolean + ? Record + : [DefaultValue] extends [boolean] + ? Record + : Record { + if (typeof value === 'boolean') { + return { + [key]: value, + } as any // eslint-disable-line @typescript-eslint/no-explicit-any } - // TODO: Errors with `fields() can only be called on an object type` when it encounters - // the `fields` validation rule on a type that is not directly an `object`. This mayb be - // because the validation rules aren't normalized. - try { - return ( - maybeSchemaValidationValue === false || - typeof maybeSchemaValidationValue === 'undefined' || - maybeSchemaValidationValue instanceof ConcreteRuleClass || - (typeof maybeSchemaValidationValue === 'function' && - isSchemaValidationValue(maybeSchemaValidationValue(new ConcreteRuleClass()))) - ) - } catch (error) { - const hasMessage = 'message' in error - - if (!hasMessage || error.message !== 'fields() can only be called on an object type') { - throw error - } + if (typeof defaultValue === 'boolean') { + return { + [key]: defaultValue, + } as any // eslint-disable-line @typescript-eslint/no-explicit-any } - return false + return {} as any // eslint-disable-line @typescript-eslint/no-explicit-any +} + +function isReferenceSchemaType(type: unknown): type is ReferenceSchemaType { + return typeof type === 'object' && type !== null && 'name' in type && type.name === 'reference' +} + +function isObjectField(maybeOjectField: unknown): maybeOjectField is MaybeCustomized { + return ( + typeof maybeOjectField === 'object' && maybeOjectField !== null && 'name' in maybeOjectField + ) +} + +function isMaybeCustomized( + maybeCustomized: unknown, +): maybeCustomized is MaybeCustomized { + return isObjectField(maybeCustomized) +} + +function isCustomized(maybeCustomized: Type): maybeCustomized is Customized { + return ( + isObjectField(maybeCustomized) && + 'fields' in maybeCustomized.type && + isObjectField(maybeCustomized.type) && + maybeCustomized.type.fields.some((field) => isMaybeCustomized(field) && field.isCustomized) + ) } From 69b34a18fba09e6ee05797233b16258f7969f63e Mon Sep 17 00:00:00 2001 From: Ash Date: Fri, 24 May 2024 15:44:57 +0100 Subject: [PATCH 28/29] feat(sanity): normalize type constraints in manifest validation --- .../@sanity/manifest/src/schema/v1/index.ts | 13 +++- .../src/_internal/manifest/extractManifest.ts | 60 +++++++++++++------ 2 files changed, 55 insertions(+), 18 deletions(-) diff --git a/packages/@sanity/manifest/src/schema/v1/index.ts b/packages/@sanity/manifest/src/schema/v1/index.ts index 158e08e6eec..1563d874603 100644 --- a/packages/@sanity/manifest/src/schema/v1/index.ts +++ b/packages/@sanity/manifest/src/schema/v1/index.ts @@ -6,9 +6,18 @@ export const manifestV1Deprecation = z.object({ export const manifestV1TypeValidationRule = z.object({ flag: z.literal('type'), - constraint: z.string(), // xxx make me precise + constraint: z.union([ + z.literal('array'), + z.literal('boolean'), + z.literal('date'), + z.literal('number'), + z.literal('object'), + z.literal('string'), + ]), }) +export type ManifestV1TypeValidationRule = z.infer + // TOOD: Constraints export const manifestV1UriValidationRule = z.object({ flag: z.literal('uri'), @@ -23,6 +32,8 @@ export const manifestV1ValidationRule = z.union([ z.any(), ]) +export type ManifestV1ValidationRule = z.infer + export const manifestV1ValidationGroup = z.object({ rules: z.array(manifestV1ValidationRule), message: z.string().optional(), diff --git a/packages/sanity/src/_internal/manifest/extractManifest.ts b/packages/sanity/src/_internal/manifest/extractManifest.ts index 3c6291cd3f5..f620e9bae24 100644 --- a/packages/sanity/src/_internal/manifest/extractManifest.ts +++ b/packages/sanity/src/_internal/manifest/extractManifest.ts @@ -2,7 +2,9 @@ import { type ManifestV1Field, manifestV1Schema, type ManifestV1Type, + type ManifestV1TypeValidationRule, type ManifestV1ValidationGroup, + type ManifestV1ValidationRule, type ManifestV1Workspace, } from '@sanity/manifest' import { @@ -11,6 +13,7 @@ import { type ObjectField, type ReferenceSchemaType, type Rule, + type RuleSpec, type SchemaType, type SchemaValidationValue, type Workspace, @@ -191,6 +194,23 @@ function transformReference(reference: ReferenceSchemaType): Pick = (rule: RuleSpec & {flag: Flag}) => ManifestV1ValidationRule & {flag: Flag} + +const transformTypeValidationRule: ValidationRuleTransformer<'type'> = (rule) => { + return { + ...rule, + constraint: rule.constraint.toLowerCase() as ManifestV1TypeValidationRule['constraint'], // xxx + } +} + +const validationRuleTransformers: Partial< + Record +> = { + type: transformTypeValidationRule, +} + function transformValidation(validation: SchemaValidationValue): ManifestV1ValidationGroup[] { const validationArray = (Array.isArray(validation) ? validation : [validation]).filter( (value): value is Rule => typeof value === 'object' && '_type' in value, @@ -209,27 +229,33 @@ function transformValidation(validation: SchemaValidationValue): ManifestV1Valid typeof _message === 'string' ? {message: _message} : {} return { - rules: _rules.filter((rule) => { - if (!('constraint' in rule)) { - return false - } + rules: _rules + .filter((rule) => { + if (!('constraint' in rule)) { + return false + } - const {flag, constraint} = rule + const {flag, constraint} = rule - if (disallowedFlags.includes(flag)) { - return false - } + if (disallowedFlags.includes(flag)) { + return false + } - if ( - typeof constraint === 'object' && - 'type' in constraint && - disallowedConstraintTypes.includes(constraint.type) - ) { - return false - } + if ( + typeof constraint === 'object' && + 'type' in constraint && + disallowedConstraintTypes.includes(constraint.type) + ) { + return false + } - return true - }), + return true + }) + .reduce((rules, rule) => { + const transformer: ValidationRuleTransformer = + validationRuleTransformers[rule.flag] ?? ((_) => _) + return [...rules, transformer(rule)] + }, []), level: _level, ...message, } From cd5f1f04f28a123d80a6f9363a47df9d2d7e3054 Mon Sep 17 00:00:00 2001 From: Ash Date: Thu, 6 Jun 2024 09:25:41 -0700 Subject: [PATCH 29/29] wip --- .../cli/actions/manifest/extractManifestAction.ts | 4 ++-- .../src/_internal/cli/commands/deploy/deployCommand.ts | 10 ++++++---- .../sanity/src/_internal/cli/threads/extractSchema.ts | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts index cdef7d7a6c8..66adb86b131 100644 --- a/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts +++ b/packages/sanity/src/_internal/cli/actions/manifest/extractManifestAction.ts @@ -126,8 +126,8 @@ async function externalizeSchema( ): Promise { const schemaString = JSON.stringify(workspace.schema, null, 2) const hash = createHash('sha1').update(schemaString).digest('hex') - // const filename = `${hash.slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` - const filename = `${workspace.name}${SCHEMA_FILENAME_SUFFIX}` + const filename = `${hash.slice(0, 8)}${SCHEMA_FILENAME_SUFFIX}` + // const filename = `${workspace.name}${SCHEMA_FILENAME_SUFFIX}` await writeFile(join(staticPath, filename), schemaString) diff --git a/packages/sanity/src/_internal/cli/commands/deploy/deployCommand.ts b/packages/sanity/src/_internal/cli/commands/deploy/deployCommand.ts index 2b126289788..eee0fe75ee9 100644 --- a/packages/sanity/src/_internal/cli/commands/deploy/deployCommand.ts +++ b/packages/sanity/src/_internal/cli/commands/deploy/deployCommand.ts @@ -4,7 +4,8 @@ import { type CliCommandDefinition, } from '@sanity/cli' -import {type DeployStudioActionFlags} from '../../actions/deploy/deployAction' +// xxx tmp +import deployAction, {type DeployStudioActionFlags} from '../../actions/deploy/deployAction' const helpText = ` Options @@ -25,9 +26,10 @@ const deployCommand: CliCommandDefinition = { args: CliCommandArguments, context: CliCommandContext, ) => { - const mod = await import('../../actions/deploy/deployAction') - - return mod.default(args, context) + // const mod = await import('../../actions/deploy/deployAction') + // + // return mod.default(args, context) + return deployAction(args, context) }, helpText, } diff --git a/packages/sanity/src/_internal/cli/threads/extractSchema.ts b/packages/sanity/src/_internal/cli/threads/extractSchema.ts index c6482fc9fbd..b2edcce9aaf 100644 --- a/packages/sanity/src/_internal/cli/threads/extractSchema.ts +++ b/packages/sanity/src/_internal/cli/threads/extractSchema.ts @@ -33,7 +33,7 @@ const workspaceTransformers: Record = { /** @internal */ export type ExtractSchemaWorkerResult = { - 'direct': Pick & {schema: SchemaTypeDefinition[]} + 'direct': Pick & {schema: SchemaTypeDefinition[]} // xxx 'groq-type-nodes': {schema: SchemaType} }[TargetFormat]