diff --git a/.changeset/dirty-planes-lick.md b/.changeset/dirty-planes-lick.md deleted file mode 100644 index 8e49ba25..00000000 --- a/.changeset/dirty-planes-lick.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@verdant-web/store': patch ---- - -Make getAll() result readonly diff --git a/.changeset/light-cups-poke.md b/.changeset/light-cups-poke.md new file mode 100644 index 00000000..5d31a08f --- /dev/null +++ b/.changeset/light-cups-poke.md @@ -0,0 +1,8 @@ +--- +'@verdant-web/store': major +'@verdant-web/common': minor +'@verdant-web/server': patch +'@verdant-web/cli': patch +--- + +Major internal refactoring of persistence layer. Verdant still only supports IndexedDB for now, but this is a huge step toward configurable storage. Prereleasing this version to test in real-world environments. diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..2674f677 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,15 @@ +{ + "mode": "pre", + "tag": "next", + "initialVersions": { + "@verdant-web/cli": "4.6.1", + "@verdant-web/common": "2.5.2", + "@verdant-web/create-app": "0.6.0", + "@verdant-web/s3-file-storage": "1.0.29", + "@verdant-web/react": "38.0.0", + "@verdant-web/react-router": "0.6.4", + "@verdant-web/server": "3.3.2", + "@verdant-web/store": "3.12.1" + }, + "changesets": [] +} diff --git a/configs/package.json b/configs/package.json new file mode 100644 index 00000000..34ad64dd --- /dev/null +++ b/configs/package.json @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "vitest": "2.1.3" + } +} diff --git a/configs/vitest.workspace.ts b/configs/vitest.workspace.ts new file mode 100644 index 00000000..b7cfbbeb --- /dev/null +++ b/configs/vitest.workspace.ts @@ -0,0 +1 @@ +export default ['../packages/*/vitest.config.ts', '../test']; diff --git a/packages/cli/src/typings.ts b/packages/cli/src/typings.ts index a50d11c5..c400eddf 100644 --- a/packages/cli/src/typings.ts +++ b/packages/cli/src/typings.ts @@ -73,9 +73,11 @@ export class Client { __manualRebase: () => Promise; } -export interface ClientDescriptorOptions extends Omit, 'schema' | 'migrations'> { +export interface ClientDescriptorOptions extends Omit, 'schema' | 'migrations' | 'oldSchemas'> { /** WARNING: overriding the schema is dangerous and almost definitely not what you want. */ schema?: StorageSchema; + /** WARNING: overriding old schemas is dangerous and almost definitely not what you want. */ + oldSchemas?: StorageSchema[]; /** WARNING: overriding the migrations is dangerous and almost definitely not what you want. */ migrations?: Migration[]; } diff --git a/packages/cli/test/__snapshots__/generated.test.ts.snap b/packages/cli/test/__snapshots__/generated.test.ts.snap index 70e19a88..f58989c5 100644 --- a/packages/cli/test/__snapshots__/generated.test.ts.snap +++ b/packages/cli/test/__snapshots__/generated.test.ts.snap @@ -69,10 +69,12 @@ export class Client { export interface ClientDescriptorOptions extends Omit< BaseClientDescriptorOptions, - "schema" | "migrations" + "schema" | "migrations" | "oldSchemas" > { /** WARNING: overriding the schema is dangerous and almost definitely not what you want. */ schema?: StorageSchema; + /** WARNING: overriding old schemas is dangerous and almost definitely not what you want. */ + oldSchemas?: StorageSchema[]; /** WARNING: overriding the migrations is dangerous and almost definitely not what you want. */ migrations?: Migration[]; } diff --git a/packages/common/src/error.ts b/packages/common/src/error.ts index 0e8d8cb4..334e5c6c 100644 --- a/packages/common/src/error.ts +++ b/packages/common/src/error.ts @@ -9,6 +9,9 @@ export enum VerdantErrorCode { Unexpected = 5000, ConfigurationError = 5010, NoFileStorage = 5011, + // Client errors + MigrationPathNotFound = 7001, + ImportFailed = 7002, } export class VerdantError extends Error { diff --git a/packages/common/src/patch.ts b/packages/common/src/patch.ts index 0af249b4..d3c7a67e 100644 --- a/packages/common/src/patch.ts +++ b/packages/common/src/patch.ts @@ -2,6 +2,7 @@ * High-level patch creation for use with complex nested objects. */ +import { AuthorizationKey } from './authz.js'; import { FileRef } from './files.js'; import { createRef, createSubOid, ObjectIdentifier } from './oids.js'; import { @@ -32,8 +33,19 @@ export class PatchCreator { return diffToPatches(from, to, this.getNow, this.createSubId, [], options); }; - createInitialize = (obj: any, oid: ObjectIdentifier) => { - return initialToPatches(obj, oid, this.getNow, this.createSubId); + createInitialize = ( + obj: any, + oid: ObjectIdentifier, + authz?: AuthorizationKey, + ) => { + return initialToPatches( + obj, + oid, + this.getNow, + this.createSubId, + undefined, + authz ? { authz } : undefined, + ); }; createSet = ( @@ -294,13 +306,17 @@ export class PatchCreator { ]; }; - createDeleteAll = (oids: ObjectIdentifier[]): Operation[] => { + createDeleteAll = ( + oids: ObjectIdentifier[], + authz?: AuthorizationKey, + ): Operation[] => { return oids.map((oid) => ({ oid, timestamp: this.getNow(), data: { op: 'delete', }, + authz, })); }; } diff --git a/packages/common/src/utils.ts b/packages/common/src/utils.ts index 0cedf427..6f8bfd76 100644 --- a/packages/common/src/utils.ts +++ b/packages/common/src/utils.ts @@ -185,3 +185,5 @@ export function throttle any>( } } as any; } + +export function noop() {} diff --git a/packages/react/package.json b/packages/react/package.json index 18280139..71a1ab29 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -32,7 +32,7 @@ "typecheck": "tsc --noEmit" }, "peerDependencies": { - "@verdant-web/store": "^3.12.0", + "@verdant-web/store": "^3.12.1", "react": "^18.2.0" }, "dependencies": { diff --git a/packages/server/src/Server.ts b/packages/server/src/Server.ts index 15628417..5a6d5d1a 100644 --- a/packages/server/src/Server.ts +++ b/packages/server/src/Server.ts @@ -575,6 +575,7 @@ export class Server extends EventEmitter implements MessageSender { await this.storage.ready; await this.storage.fileMetadata.put(info.libraryId, lofiFileInfo); fs.put(stream, lofiFileInfo); + this.log('info', 'File uploading', lofiFileInfo); } catch (e) { reject(e); } diff --git a/packages/server/src/files/FileStorage.ts b/packages/server/src/files/FileStorage.ts index 68101ef2..08c74e65 100644 --- a/packages/server/src/files/FileStorage.ts +++ b/packages/server/src/files/FileStorage.ts @@ -26,16 +26,20 @@ export interface FileStorage { export class LocalFileStorage implements FileStorage { private readonly host: string; private readonly rootDirectory: string; + private log: (level: string, ...args: any[]) => void; constructor({ rootDirectory, host, + log, }: { rootDirectory: string; host: string; + log?: (level: string, ...args: any[]) => void; }) { this.host = this.prepareHost(host); this.rootDirectory = rootDirectory; + this.log = log || (() => {}); } private prepareHost = (host: string) => { @@ -53,8 +57,10 @@ export class LocalFileStorage implements FileStorage { await fs.promises.mkdir(containingDirectory, { recursive: true, }); - const dest = fs.createWriteStream(this.getStorageLocation(data)); + const location = this.getStorageLocation(data); + const dest = fs.createWriteStream(location); fileStream.pipe(dest); + this.log('info', 'File saving to', location); } getUrl(data: FileInfo): string { diff --git a/packages/store/CHANGELOG.md b/packages/store/CHANGELOG.md index 05705d1b..18f4291c 100644 --- a/packages/store/CHANGELOG.md +++ b/packages/store/CHANGELOG.md @@ -1,5 +1,11 @@ # @lo-fi/web +## 3.12.1 + +### Patch Changes + +- 66041118: Make getAll() result readonly + ## 3.12.0 ### Minor Changes diff --git a/packages/store/package.json b/packages/store/package.json index 1acaa1d9..f2429d2f 100644 --- a/packages/store/package.json +++ b/packages/store/package.json @@ -1,6 +1,6 @@ { "name": "@verdant-web/store", - "version": "3.12.0", + "version": "3.12.1", "access": "public", "type": "module", "exports": { diff --git a/packages/store/src/__tests__/batching.test.ts b/packages/store/src/__tests__/batching.test.ts index 1d18d6f2..fa271b83 100644 --- a/packages/store/src/__tests__/batching.test.ts +++ b/packages/store/src/__tests__/batching.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vi, MockedFunction } from 'vitest'; +import { describe, it, expect, vi } from 'vitest'; import { createTestStorage } from './fixtures/testStorage.js'; import { Entity } from '../entities/Entity.js'; @@ -59,14 +59,15 @@ describe('batching operations', () => { it('should overwrite superseded sequential set operations on the same key where applicable', async () => { const onOperation = vi.fn(); const client = await createTestStorage({ - onOperation, + // log: console.log, }); + client.subscribe('operation', onOperation); const item = await client.todos.put({ content: 'hello world', category: 'general', }); - onOperation.mockReset(); + onOperation.mockClear(); item.set('content', 'hello world 2'); item.set('content', 'hello world 3'); @@ -90,9 +91,8 @@ describe('batching operations', () => { it('should not interfere with other fields when superseding', async () => { const onOperation = vi.fn(); - const client = await createTestStorage({ - onOperation, - }); + const client = await createTestStorage(); + client.subscribe('operation', onOperation); const item = await client.todos.put({ content: 'hello world', diff --git a/packages/store/src/__tests__/entities.test.ts b/packages/store/src/__tests__/entities.test.ts index 6dbe6ba3..8e3863f8 100644 --- a/packages/store/src/__tests__/entities.test.ts +++ b/packages/store/src/__tests__/entities.test.ts @@ -686,7 +686,7 @@ describe('entities', () => { it('should allow subscribing to one field and not break on deletion', async () => { const storage = await createTestStorage({ - log: console.log, + // log: console.log, }); const item = await storage.todos.put({ content: 'item', diff --git a/packages/store/src/__tests__/fixtures/testStorage.ts b/packages/store/src/__tests__/fixtures/testStorage.ts index 87de386b..6de351ea 100644 --- a/packages/store/src/__tests__/fixtures/testStorage.ts +++ b/packages/store/src/__tests__/fixtures/testStorage.ts @@ -1,14 +1,8 @@ -import { - ClientMessage, - createMigration, - Operation, - schema, -} from '@verdant-web/common'; +import { createMigration, schema } from '@verdant-web/common'; // @ts-ignore import { IDBFactory } from 'fake-indexeddb'; import { ClientWithCollections, ClientDescriptor } from '../../index.js'; import { METADATA_VERSION_KEY } from '../../client/constants.js'; -import { Sync } from '../../sync/Sync.js'; export const todoCollection = schema.collection({ name: 'todo', @@ -102,13 +96,11 @@ export function createTestStorage({ disableRebasing = false, metadataVersion, log, - onOperation, }: { idb?: IDBFactory; disableRebasing?: boolean; metadataVersion?: number; log?: (...args: any[]) => void; - onOperation?: (op: Operation) => void; } = {}) { const storage = new ClientDescriptor({ schema: testSchema, @@ -116,9 +108,9 @@ export function createTestStorage({ indexedDb: idb, namespace: 'test', disableRebasing, + oldSchemas: [testSchema], log, [METADATA_VERSION_KEY]: metadataVersion, - onOperation, }).open(); return storage as Promise; } diff --git a/packages/store/src/__tests__/legacyOids.test.ts b/packages/store/src/__tests__/legacyOids.test.ts deleted file mode 100644 index 73046e0d..00000000 --- a/packages/store/src/__tests__/legacyOids.test.ts +++ /dev/null @@ -1,375 +0,0 @@ -import { - HybridLogicalClockTimestampProvider, - OperationPatch, - getIndexValues, - makeObjectRef, -} from '@verdant-web/common'; -import { storeRequestPromise } from '../idb.js'; -import { openMetadataDatabase } from '../metadata/openMetadataDatabase.js'; -import { createTestStorage, todoCollection } from './fixtures/testStorage.js'; -import { describe, expect, it } from 'vitest'; -import { OperationsStore } from '../metadata/OperationsStore.js'; -import { BaselinesStore } from '../metadata/BaselinesStore.js'; - -const idb = new IDBFactory(); - -async function seedDatabaseAndCreateClient() { - const client1 = await createTestStorage({ - idb, - metadataVersion: 4, - }); - await client1.close(); - const { db } = await openMetadataDatabase({ - indexedDB: idb, - namespace: 'test', - metadataVersion: 4, - }); - expect(db.version).toBe(4); - const tx = db.transaction(['baselines', 'operations'], 'readwrite'); - const clock = new HybridLogicalClockTimestampProvider(); - const ops = new OperationsStore(db, {}); - const baselines = new BaselinesStore(db, {}); - await Promise.all([ - baselines.setAll( - [ - { - oid: 'weirds/b.objectMap.one:ghi', - snapshot: { content: 'ghi' }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.objectMap.two:jkl', - snapshot: { content: 'jkl' }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.map:abc', - snapshot: {}, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.objectMap:def', - snapshot: { - one: makeObjectRef('weirds/b.objectMap.one:ghi'), - two: makeObjectRef('weirds/b.objectMap.two:jkl'), - }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.weird.ok:opq', - snapshot: { - message: 'ok', - }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.weird.cool:rst', - snapshot: { - message: 'cool', - }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.weird.list.#:xyz', - snapshot: { - name: 'xyz', - test: 1, - }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.weird.list.#:123', - snapshot: { - name: '123', - test: 2, - }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.weird.list:uvw', - snapshot: [ - makeObjectRef('weirds/b/weird.list.#:xyz'), - makeObjectRef('weirds/b/weird.list.#:123'), - ], - timestamp: clock.now(1), - }, - { - oid: 'weirds/b.weird:lmn', - snapshot: { - ok: makeObjectRef('weirds/b.weird.ok:opq'), - cool: makeObjectRef('weirds/b.weird.cool:rst'), - list: makeObjectRef('weirds/b.weird.list:uvw'), - }, - timestamp: clock.now(1), - }, - { - oid: 'weirds/b', - snapshot: { - id: 'b', - map: makeObjectRef('weirds/b.map:abc'), - objectMap: makeObjectRef('weirds/b.objectMap:def'), - weird: makeObjectRef('weirds/b.weird:lmn'), - }, - timestamp: clock.now(1), - }, - { - oid: 'todos/a.attachments.#:baz', - snapshot: { - name: 'baz', - test: 1, - }, - timestamp: clock.now(1), - }, - { - oid: 'todos/a.attachments.#:qux', - snapshot: { - name: 'qux', - test: 2, - }, - timestamp: clock.now(1), - }, - { - oid: 'todos/a.attachments:bar', - snapshot: [ - makeObjectRef('todos/a.attachments.#:baz'), - makeObjectRef('todos/a.attachments.#:qux'), - ], - timestamp: clock.now(1), - }, - { - oid: 'todos/a.tags:foo', - snapshot: ['tag1'], - timestamp: clock.now(1), - }, - { - oid: 'todos/a', - snapshot: { - id: 'a', - content: 'item a', - tags: makeObjectRef('todos/a.tags:foo'), - done: false, - category: 'default', - attachments: makeObjectRef('todos/a.attachments:bar'), - }, - timestamp: clock.now(1), - }, - ], - { transaction: tx }, - ), - ops.addOperations( - [ - // trying to cover all types of operations which use refs here - { - oid: 'todos/a.tags:foo', - timestamp: clock.now(1), - data: { - op: 'list-push', - value: 'tag2', - } as OperationPatch, - isLocal: true, - }, - { - oid: 'todos/a.attachments.#:bin', - timestamp: clock.now(1), - data: { - op: 'initialize', - value: { - name: 'bin', - test: 2, - }, - }, - isLocal: true, - }, - { - oid: 'todos/a.attachments:bar', - timestamp: clock.now(1), - data: { - op: 'list-push', - value: makeObjectRef('todos/a.attachments.#:bin'), - }, - isLocal: true, - }, - { - oid: 'todos/a.attachments:bar', - timestamp: clock.now(1), - isLocal: true, - data: { - op: 'list-remove', - value: makeObjectRef('todos/a.attachments.#:baz'), - }, - }, - { - oid: 'weirds/b.weird.list:uvw', - timestamp: clock.now(1), - data: { - op: 'delete', - }, - isLocal: true, - }, - ], - { transaction: tx }, - ), - ]); - db.close(); - // documents are a little trickier. - const docDbReq = idb.open('test_collections', 1); - const docDb = await new Promise((resolve, reject) => { - docDbReq.addEventListener('success', () => resolve(docDbReq.result)); - docDbReq.addEventListener('error', reject); - }); - const docTx = docDb.transaction(['todos'], 'readwrite'); - await Promise.all( - [ - docTx.objectStore('todos').put( - getIndexValues(todoCollection, { - id: 'a', - content: 'item a', - tags: ['tag1', 'tag2'], - done: false, - category: 'default', - attachments: [ - { - name: 'qux', - test: 2, - }, - { - name: 'bin', - test: 2, - }, - ], - }), - ), - ].map(storeRequestPromise), - ); - docDb.close(); - await new Promise((resolve) => setTimeout(resolve, 100)); - return createTestStorage({ idb }); -} - -// skipping this - pruning is messing with a lot of it -// and of course this use case is no longer very relevant. -describe.skip('clients with stored legacy oids', () => { - it('can still function', async () => { - const client = await seedDatabaseAndCreateClient(); - const todo = await client.todos.get('a').resolved; - const weird = await client.weirds.get('b').resolved; - - // first: does the data look right? - expect(todo.getSnapshot()).toMatchObject({ - id: 'a', - content: 'item a', - tags: ['tag1', 'tag2'], - done: false, - category: 'default', - attachments: [ - { - name: 'qux', - test: 2, - }, - { - name: 'bin', - test: 2, - }, - ], - }); - expect(weird.getSnapshot()).toMatchObject({ - id: 'b', - map: {}, - objectMap: {}, - weird: { - list: null, - cool: { - message: 'cool', - }, - ok: { - message: 'ok', - }, - }, - }); - - todo.get('attachments').push({ - name: 'qux', - }); - await client.todos.put({ - id: 'aa', - content: 'item aa', - tags: [], - category: 'default', - attachments: [], - }); - - const allTodos = client.todos.findAll(); - - expect((await allTodos.resolved).map((t) => t.getSnapshot())).toEqual([ - { - id: 'a', - content: 'item a', - tags: ['tag1', 'tag2'], - done: false, - category: 'default', - attachments: [ - { - name: 'qux', - test: 2, - }, - { - name: 'bin', - test: 2, - }, - { - name: 'qux', - test: 1, - }, - ], - }, - { - id: 'aa', - content: 'item aa', - tags: [], - category: 'default', - attachments: [], - done: false, - }, - ]); - - await client.todos.delete('a'); - expect((await allTodos.resolved).map((t) => t.getSnapshot())) - .toMatchInlineSnapshot(` - [ - { - "attachments": [], - "category": "default", - "content": "item aa", - "done": false, - "id": "aa", - "tags": [], - }, - ] - `); - - weird.get('weird').set('another', 'bar'); - weird.get('weird').set('list', ['a', 'b', 'c']); - weird.get('weird').delete('cool'); - weird.get('map').set('foo', 'bar'); - expect(weird.getSnapshot()).toMatchInlineSnapshot(` - { - "id": "b", - "map": { - "foo": "bar", - }, - "objectMap": null, - "weird": { - "another": "bar", - "list": [ - "a", - "b", - "c", - ], - "ok": { - "message": "ok", - }, - }, - } - `); - }); -}); diff --git a/packages/store/src/__tests__/queries.test.ts b/packages/store/src/__tests__/queries.test.ts index 050115e9..78b2b585 100644 --- a/packages/store/src/__tests__/queries.test.ts +++ b/packages/store/src/__tests__/queries.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vitest } from 'vitest'; +import { describe, it, expect } from 'vitest'; import { createTestStorage } from './fixtures/testStorage.js'; import type { ClientWithCollections } from '../index.js'; import { assert } from '@verdant-web/common'; diff --git a/packages/store/src/backup.ts b/packages/store/src/backup.ts index 97c07a2a..51f4cdd9 100644 --- a/packages/store/src/backup.ts +++ b/packages/store/src/backup.ts @@ -1,7 +1,6 @@ import { Client } from './client/Client.js'; import Zip from 'jszip'; -import { ExportData } from './metadata/Metadata.js'; -import { ReturnedFileData } from './files/FileStorage.js'; +import { MetadataExport, PersistedFileData } from './persistence/interfaces.js'; // narrow type to just what's needed type BackupClient = Pick; @@ -28,9 +27,9 @@ export async function readBackupFile(file: Blob) { if (!data || !fileData) { throw new Error('Failed to read data from backup'); } - const parsedData = JSON.parse(data) as ExportData; + const parsedData = JSON.parse(data) as MetadataExport; const parsedFileData = JSON.parse(fileData) as Omit< - ReturnedFileData, + PersistedFileData, 'file' >[]; const filesInFilesFolder = Object.entries(zipFile.files).filter( diff --git a/packages/store/src/client/Client.ts b/packages/store/src/client/Client.ts index 50a3d4f0..e311b29f 100644 --- a/packages/store/src/client/Client.ts +++ b/packages/store/src/client/Client.ts @@ -2,36 +2,19 @@ import { debounce, DocumentBaseline, EventSubscriber, - getTimestampSchemaVersion, - Migration, Operation, } from '@verdant-web/common'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { DocumentManager } from '../entities/DocumentManager.js'; import { EntityStore } from '../entities/EntityStore.js'; -import { FileManager, FileManagerConfig } from '../files/FileManager.js'; -import { ReturnedFileData } from '../files/FileStorage.js'; -import { - closeDatabase, - deleteAllDatabases, - getSizeOfObjectStore, -} from '../idb.js'; -import { - ExportData, - Metadata, - supportLegacyExport, -} from '../metadata/Metadata.js'; -import { openQueryDatabase } from '../migration/openQueryDatabase.js'; +import { FileManager } from '../files/FileManager.js'; +import { deleteAllDatabases } from '../persistence/idb/util.js'; import { CollectionQueries } from '../queries/CollectionQueries.js'; import { QueryCache } from '../queries/QueryCache.js'; -import { NoSync, ServerSync, ServerSyncOptions, Sync } from '../sync/Sync.js'; +import { NoSync, ServerSync, Sync } from '../sync/Sync.js'; import { getLatestVersion } from '../utils/versions.js'; - -interface ClientConfig { - syncConfig?: ServerSyncOptions; - migrations: Migration[]; - files?: FileManagerConfig; -} +import { ExportedData } from '../persistence/interfaces.js'; +import { importPersistence } from '../persistence/persistence.js'; // not actually used below, but helpful for internal code which // might rely on this stuff... @@ -62,13 +45,22 @@ export class Client extends EventSubscriber<{ * indicate the client is in an unrecoverable state. */ developerError: (err: Error) => void; + /** + * Listen for operations as they are applied to the database. + * Wouldn't recommend using this unless you know what you're doing. + * It's a very hot code path... + */ + operation: (operation: Operation) => void; + /** + * Emitted when storage rebases history. This should never actually affect application behavior + * or stored data, but is useful for debugging and testing. + */ + rebase: () => void; }> { - readonly meta: Metadata; private _entities: EntityStore; private _queryCache: QueryCache; private _documentManager: DocumentManager; private _fileManager: FileManager; - private _closed = false; readonly collectionNames: string[]; @@ -86,23 +78,17 @@ export class Client extends EventSubscriber<{ return this._documentManager; } - constructor( - private config: ClientConfig, - private context: Context, - components: { meta: Metadata }, - ) { + constructor(private context: Context) { super(); - this.meta = components.meta; this.collectionNames = Object.keys(context.schema.collections); this._sync = - this.config.syncConfig && !context.schema.wip - ? new ServerSync(this.config.syncConfig, { - meta: this.meta, + this.context.config.sync && !context.schema.wip + ? new ServerSync(this.context.config.sync, { onData: this.addData, ctx: this.context, }) - : new NoSync({ meta: this.meta }); - if (context.schema.wip && this.config.syncConfig) { + : new NoSync(this.context); + if (context.schema.wip && this.context.config.sync) { context.log( 'warn', '⚠️⚠️ Sync is disabled for WIP schemas. Commit your schema changes to start syncing again. ⚠️⚠️', @@ -110,20 +96,20 @@ export class Client extends EventSubscriber<{ } this._fileManager = new FileManager({ - db: this.metaDb, sync: this.sync, context: this.context, - config: this.config.files, - meta: this.meta, - }); - this._queryCache = new QueryCache({ - context, }); this._entities = new EntityStore({ ctx: this.context, - meta: this.meta, files: this._fileManager, }); + // note: query cache must be initialized after EntityStore, + // since EntityStore needs to clear its cache before queries + // refresh. + // FIXME: make this less fragile + this._queryCache = new QueryCache({ + context, + }); this._documentManager = new DocumentManager(this.schema, this._entities); const notifyFutureSeen = debounce(() => { @@ -133,18 +119,11 @@ export class Client extends EventSubscriber<{ this.context.globalEvents.subscribe('resetToServer', () => { this.emit('resetToServer'); }); - - this.watchForVersionChange(); - - this.metaDb.addEventListener('versionchange', () => { - this.context.log?.( - 'warn', - `Another tab has requested a version change for ${this.namespace}`, - ); - this.metaDb.close(); - if (typeof window !== 'undefined') { - window.location.reload(); - } + this.context.globalEvents.subscribe('operation', (operation) => { + this.emit('operation', operation); + }); + this.context.globalEvents.subscribe('rebase', () => { + this.emit('rebase'); }); // self-assign collection shortcuts. these are not typed @@ -163,19 +142,6 @@ export class Client extends EventSubscriber<{ } } - private watchForVersionChange = () => { - this.documentDb.addEventListener('versionchange', () => { - this.context.log?.( - 'warn', - `Another tab has requested a version change for ${this.namespace}`, - ); - this.documentDb.close(); - if (typeof window !== 'undefined') { - window.location.reload(); - } - }); - }; - private importingPromise = Promise.resolve(); private addData = async (data: { operations: Operation[]; @@ -240,14 +206,6 @@ export class Client extends EventSubscriber<{ } }; - get documentDb() { - return this.context.documentDb; - } - - get metaDb() { - return this.context.metaDb; - } - get schema() { return this.context.schema; } @@ -275,25 +233,11 @@ export class Client extends EventSubscriber<{ } stats = async (): Promise => { - const collectionNames = Object.keys(this.schema.collections); - let collections = {} as Record; if (this.disposed) { return {} as any; } - for (const collectionName of collectionNames) { - try { - collections[collectionName] = await getSizeOfObjectStore( - this.documentDb, - collectionName, - ); - } catch (err) { - this.context.log?.('error', err); - } - } - if (this.disposed) { - return { collections } as any; - } - const meta = await this.meta.stats(); + const collections = await this.context.queries.stats(); + const meta = await this.context.meta.stats(); const storage = typeof navigator !== 'undefined' && typeof navigator.storage !== 'undefined' && @@ -301,7 +245,7 @@ export class Client extends EventSubscriber<{ ? await navigator.storage.estimate() : undefined; - const files = await this._fileManager.stats(); + const files = await this.context.files.stats(); // determine data:metadata ratio for total size of all collections vs metadata const totalCollectionsSize = Object.values(collections).reduce( @@ -327,25 +271,26 @@ export class Client extends EventSubscriber<{ }; close = async () => { - this._closed = true; this.sync.ignoreIncoming(); await this._entities.flushAllBatches(); - this._fileManager.close(); + // NOTE: this happens after flushing or else flushed data + // won't be written to storage or synced. + this.context.closing = true; + this.context.files.dispose(); this.sync.stop(); this.sync.destroy(); // this step does have the potential to flush // changes to storage, so don't close metadata db yet await this._entities.destroy(); - this.meta.close(); + this.context.queries.dispose(); + this.context.meta.dispose(); // the idea here is to flush the microtask queue - // we may have queued tasks related to queries that // we want to settle before closing the databases // to avoid invalid state errors - await new Promise(async (resolve) => { - await closeDatabase(this.documentDb); - await closeDatabase(this.metaDb); + await new Promise((resolve) => { resolve(); }); @@ -361,35 +306,11 @@ export class Client extends EventSubscriber<{ { downloadRemoteFiles }: { downloadRemoteFiles?: boolean } = { downloadRemoteFiles: true, }, - ) => { + ): Promise => { this.context.log('info', 'Exporting data...'); - const metaExport = await this.meta.export(); - const filesExport = await this._fileManager.exportAll(downloadRemoteFiles); - // split files into data and files - const fileData: Array> = []; - const files: Array = []; - - for (const fileExport of filesExport) { - const file = fileExport.file; - delete fileExport.file; - fileData.push(fileExport); - if (file) { - // rename with ID - const asFile = new File( - [file], - this.getFileExportName(fileExport.name, fileExport.id), - { - type: fileExport.type, - }, - ); - files.push(asFile); - } else { - this.context.log( - 'warn', - `File ${fileExport.id} was could not be loaded locally or from the server. It will be missing in the export.`, - ); - } - } + const metaExport = await this.context.meta.export(); + const { fileData, files } = + await this.context.files.export(downloadRemoteFiles); return { data: metaExport, fileData, @@ -397,24 +318,7 @@ export class Client extends EventSubscriber<{ }; }; - private getFileExportName = (originalFileName: string, id: string) => { - return `${id}___${originalFileName}`; - }; - - private parseFileExportname = (name: string) => { - const [id, originalFileName] = name.split('___'); - return { id, originalFileName }; - }; - - import = async ({ - data: rawData, - fileData, - files, - }: { - data: ExportData; - fileData: Array>; - files: File[]; - }) => { + import = async ({ data, fileData, files }: ExportedData) => { /** * Importing is a pretty involved procedure because of the possibility of * importing an export from an older version of the schema. We can't add @@ -435,90 +339,16 @@ export class Client extends EventSubscriber<{ resolve = res; }); - const data = supportLegacyExport(rawData); this.context.log('info', 'Importing data...'); - // close the document DB - await closeDatabase(this.context.documentDb); - - await this.meta.resetFrom(data); - // re-attach files to their file data and import - const fileToIdMap = new Map( - files.map((file) => { - const { id } = this.parseFileExportname(file.name); - return [id, file]; - }), - ); - const importedFiles: ReturnedFileData[] = fileData.map((fileData) => { - const file = fileToIdMap.get(fileData.id); - - return { - ...fileData, - file, - }; - }); - await this._fileManager.importAll(importedFiles); - // now delete the document DB, open it to the specified version - // and run migrations to get it to the latest version - const version = data.schemaVersion; - const deleteReq = indexedDB.deleteDatabase( - [this.namespace, 'collections'].join('_'), - ); - await new Promise((resolve, reject) => { - deleteReq.onsuccess = resolve; - deleteReq.onerror = reject; - }); - // reset our context to the imported schema for now - const currentSchema = this.context.schema; - if (currentSchema.version !== version) { - const oldSchema = this.context.oldSchemas?.find( - (s) => s.version === version, - ); - if (!oldSchema) { - this.emit( - 'developerError', - new Error(`Could not find schema for version ${version}`), - ); - throw new Error(`Could not find schema for version ${version}`); - } - this.context.schema = oldSchema; - } - // now open the document DB empty at the specified version - // and initialize it from the meta DB - this.context.documentDb = await openQueryDatabase({ - meta: this.meta, - migrations: this.config.migrations, - context: this.context, - version, - }); - this.context.internalEvents.emit('documentDbChanged', this.documentDb); - // re-initialize data - this.context.log('info', 'Re-initializing data from imported data...'); - await this._entities.addData({ - operations: data.operations, - baselines: data.baselines, - reset: true, - }); - // close the database and reopen to latest version, applying - // migrations - await closeDatabase(this.context.documentDb); - this.context.log('info', 'Migrating up to latest schema...'); - // put the schema back - this.context.schema = currentSchema; - this.context.documentDb = await openQueryDatabase({ - meta: this.meta, - migrations: this.config.migrations, - context: this.context, - version: currentSchema.version, - }); - this.context.internalEvents.emit('documentDbChanged', this.documentDb); - // re-establish watcher on database - this.watchForVersionChange(); + await importPersistence(this.context, { data, files, fileData }); // finally... clear out memory cache of entities and // re-run all active queries. - this.entities.clearCache(); - this._queryCache.forceRefreshAll(); + // this.entities.clearCache(); + // this._queryCache.forceRefreshAll(); + + // ^ this is now done via the persistenceReset internal event. resolve(); }; @@ -549,7 +379,7 @@ export class Client extends EventSubscriber<{ * invoking this manually will not skip that 3 day waiting period. */ __cleanupFilesImmediately = () => { - return this._fileManager.tryCleanupDeletedFiles(); + return this.context.files.cleanupDeletedFiles(); }; /** @@ -557,7 +387,20 @@ export class Client extends EventSubscriber<{ * rebasing rules. Rebases already happen automatically * during normal operation, so you probably don't need this. */ - __manualRebase = () => this.meta.manualRebase(); + __manualRebase = () => this.context.meta.manualRebase(); + + /** + * WARNING: the internal functions of the persistence layer + * are not guaranteed and cannot be relied upon for application + * behavior. They are subject to change without notice. + */ + get __persistence() { + return { + meta: this.context.meta, + queries: this.context.queries, + files: this.context.files, + }; + } } export interface ClientStats { diff --git a/packages/store/src/client/ClientDescriptor.ts b/packages/store/src/client/ClientDescriptor.ts index 42e702c8..0970fe3e 100644 --- a/packages/store/src/client/ClientDescriptor.ts +++ b/packages/store/src/client/ClientDescriptor.ts @@ -1,34 +1,27 @@ import { EventSubscriber, + HybridLogicalClockTimestampProvider, Migration, - Operation, + PatchCreator, StorageSchema, - hashObject, + noop, } from '@verdant-web/common'; -import { Context } from '../context.js'; -import { FileManagerConfig } from '../files/FileManager.js'; -import { Metadata } from '../metadata/Metadata.js'; -import { - openMetadataDatabase, - openWIPMetadataDatabase, -} from '../metadata/openMetadataDatabase.js'; -import { openWIPDatabase } from '../migration/openWIPDatabase.js'; +import { FileConfig, InitialContext } from '../context/context.js'; import { ServerSyncOptions } from '../sync/Sync.js'; import { UndoHistory } from '../UndoHistory.js'; import { Client } from './Client.js'; -import { - deleteAllDatabases, - deleteDatabase, - getAllDatabaseNamesAndVersions, -} from '../idb.js'; +import { deleteAllDatabases } from '../persistence/idb/util.js'; import { FakeWeakRef } from '../FakeWeakRef.js'; import { METADATA_VERSION_KEY } from './constants.js'; -import { openQueryDatabase } from '../migration/openQueryDatabase.js'; +import { Time } from '../context/Time.js'; +import { initializePersistence } from '../persistence/persistence.js'; +import { PersistenceImplementation } from '../persistence/interfaces.js'; +import { IdbPersistence } from '../persistence/idb/idbPersistence.js'; export interface ClientDescriptorOptions { /** The schema used to create this client */ schema: StorageSchema; - oldSchemas?: StorageSchema[]; + oldSchemas: StorageSchema[]; /** Migrations, in order, to upgrade to each successive version of the schema */ migrations: Migration[]; /** Provide a sync config to turn on synchronization with a server */ @@ -52,6 +45,7 @@ export interface ClientDescriptorOptions { ...args: any[] ) => void; disableRebasing?: boolean; + rebaseTimeout?: number; /** * Provide a specific schema number to override the schema version * in the database. This is useful for testing migrations or recovering @@ -62,14 +56,13 @@ export interface ClientDescriptorOptions { /** * Configuration for file management */ - files?: FileManagerConfig; + files?: FileConfig; /** - * Listen for operations as they are applied to the database. - * Wouldn't recommend using this unless you know what you're doing. - * It's a very hot code path... + * Override the default IndexedDB persistence implementation. */ - onOperation?: (operation: Operation) => void; + persistence?: PersistenceImplementation; + /** * Enables experimental WeakRef usage to cull documents * from cache that aren't being used. This is a performance @@ -121,7 +114,7 @@ export class ClientDescriptor< // we can't initialize the storage if (typeof window === 'undefined' && !init.indexedDb) { throw new Error( - 'A verdant client was initialized in an environment without IndexedDB. If you are using verdant in a server-rendered framework, you must enforce that all clients are initialized on the client-side, or you must provide some mock interface of IDBFactory to the ClientDescriptor options.', + 'A Verdant client was initialized in an environment without IndexedDB. If you are using verdant in a server-rendered framework, you must enforce that all clients are initialized on the client-side, or you must provide some mock interface of IDBFactory to the ClientDescriptor options.', ); } @@ -130,17 +123,43 @@ export class ClientDescriptor< } this._initializing = true; try { - let storage: ClientImpl; - if (init.schema.wip) { - storage = await this.initializeWIPDatabases(init); - } else { - storage = await this.initializeDatabases(init); - this.cleanupWIPDatabases(init); - } - - this.resolveReady(storage); - this._resolvedValue = storage; - return storage; + const time = new Time( + new HybridLogicalClockTimestampProvider(), + init.schema.version, + ); + let ctx: InitialContext = { + closing: false, + entityEvents: new EventSubscriber(), + globalEvents: new EventSubscriber(), + internalEvents: new EventSubscriber(), + log: init.log || noop, + migrations: init.migrations, + namespace: init.namespace, + originalNamespace: init.namespace, + schema: init.schema, + oldSchemas: init.oldSchemas, + time, + undoHistory: init.undoHistory || new UndoHistory(), + weakRef: (val) => + init.EXPERIMENTAL_weakRefs + ? new WeakRef(val) + : (new FakeWeakRef(val) as any), + patchCreator: new PatchCreator(() => time.now), + config: { + files: init.files, + sync: init.sync, + persistence: { + disableRebasing: init.disableRebasing, + rebaseTimeout: init.rebaseTimeout, + }, + }, + persistence: init.persistence || new IdbPersistence(init.indexedDb), + }; + const context = await initializePersistence(ctx); + const client = new Client(context) as ClientImpl; + this.resolveReady(client); + this._resolvedValue = client; + return client; } catch (err) { if (err instanceof Error) { this.rejectReady(err as Error); @@ -153,156 +172,6 @@ export class ClientDescriptor< } }; - private initializeDatabases = async (init: ClientDescriptorOptions) => { - const metadataVersion = init[METADATA_VERSION_KEY]; - const { db: metaDb } = await openMetadataDatabase({ - indexedDB: init.indexedDb, - log: init.log, - namespace: init.namespace, - metadataVersion, - }); - - const context: Omit = { - namespace: this._namespace, - metaDb, - schema: init.schema, - log: init.log || (() => {}), - undoHistory: init.undoHistory || new UndoHistory(), - entityEvents: new EventSubscriber(), - globalEvents: new EventSubscriber(), - internalEvents: new EventSubscriber(), - weakRef: (value) => { - if (init.EXPERIMENTAL_weakRefs) { - return new WeakRef(value); - } else { - return new FakeWeakRef(value) as unknown as WeakRef; - } - }, - migrations: init.migrations, - oldSchemas: init.oldSchemas, - }; - const meta = new Metadata({ - context, - disableRebasing: init.disableRebasing, - onOperation: init.onOperation, - }); - - // verify schema integrity - await meta.updateSchema(init.schema, init.overrideSchemaConflict); - - const contextWithNow: Omit = Object.assign(context, { - getNow: () => meta.now, - }); - - const documentDb = await openQueryDatabase({ - context: contextWithNow, - version: init.schema.version, - meta, - migrations: init.migrations, - indexedDB: init.indexedDb, - }); - - const fullContext: Context = Object.assign(contextWithNow, { documentDb }); - - const storage = new Client( - { - syncConfig: init.sync, - migrations: init.migrations, - files: init.files, - }, - fullContext, - { - meta, - }, - ) as ClientImpl; - - return storage; - }; - - private initializeWIPDatabases = async (init: ClientDescriptorOptions) => { - const schemaHash = hashObject(init.schema); - console.info(`WIP schema in use. Opening database with hash ${schemaHash}`); - - const wipNamespace = `@@wip_${init.namespace}_${schemaHash}`; - const { db: metaDb } = await openWIPMetadataDatabase({ - indexedDB: init.indexedDb, - log: init.log, - namespace: init.namespace, - wipNamespace: wipNamespace, - }); - - const context: Omit = { - namespace: this._namespace, - metaDb, - schema: init.schema, - log: init.log || (() => {}), - undoHistory: init.undoHistory || new UndoHistory(), - entityEvents: new EventSubscriber(), - globalEvents: new EventSubscriber(), - internalEvents: new EventSubscriber(), - weakRef: (value) => { - if (init.EXPERIMENTAL_weakRefs) { - return new WeakRef(value); - } else { - return new FakeWeakRef(value) as unknown as WeakRef; - } - }, - migrations: init.migrations, - oldSchemas: init.oldSchemas, - }; - const meta = new Metadata({ - context, - disableRebasing: init.disableRebasing, - }); - - const contextWithNow: Omit = Object.assign(context, { - getNow: () => meta.now, - }); - - // verify schema integrity - await meta.updateSchema(init.schema, init.overrideSchemaConflict); - - const documentDb = await openWIPDatabase({ - context: contextWithNow, - version: init.schema.version, - meta, - migrations: init.migrations, - indexedDB: init.indexedDb, - wipNamespace, - }); - - const fullContext: Context = Object.assign(contextWithNow, { documentDb }); - - const storage = new Client( - { - syncConfig: init.sync, - migrations: init.migrations, - files: init.files, - }, - fullContext, - { - meta, - }, - ) as ClientImpl; - - return storage; - }; - - private cleanupWIPDatabases = async (init: ClientDescriptorOptions) => { - const databaseInfo = await getAllDatabaseNamesAndVersions(init.indexedDb); - const wipDatabases = databaseInfo - .filter((db) => db.name?.startsWith('@@wip_')) - .map((db) => db.name!); - // don't clear a current WIP database. - const wipDatabasesToDelete = wipDatabases.filter( - (db) => - !db.startsWith(`@@wip_${init.namespace}_${hashObject(init.schema)}`), - ); - for (const db of wipDatabasesToDelete) { - await deleteDatabase(db, init.indexedDb); - } - }; - get current() { // exposing an immediate value if already resolved lets us // skip the promise microtask when accessing this externally if diff --git a/packages/store/src/context.ts b/packages/store/src/context.ts deleted file mode 100644 index 5874d7a7..00000000 --- a/packages/store/src/context.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { - EventSubscriber, - Migration, - ObjectIdentifier, - StorageSchema, - TimestampProvider, -} from '@verdant-web/common'; -import { UndoHistory } from './UndoHistory.js'; - -/** - * Common components utilized across various client - * services. - */ -export interface Context { - namespace: string; - metaDb: IDBDatabase; - documentDb: IDBDatabase; - undoHistory: UndoHistory; - schema: StorageSchema; - oldSchemas?: StorageSchema[]; - log: ( - level: 'debug' | 'info' | 'warn' | 'error' | 'critical', - ...args: any[] - ) => void; - entityEvents: EventSubscriber<{ - collectionsChanged: (names: string[]) => void; - documentChanged: (oid: ObjectIdentifier) => void; - }>; - internalEvents: EventSubscriber<{ - documentDbChanged: (db: IDBDatabase) => void; - }>; - globalEvents: EventSubscriber<{ - /** - * A change from a future version of the application has been - * witnessed. These changes are not applied but it indicates - * the app has been updated and we should prompt the user - * to reload or have their app user manually reload. - * - * The parameter is the timestamp of the future change. - */ - futureSeen: (timestamp: string) => void; - /** - * The server requested this replica reset its state - * completely. This can happen when the replica has - * been offline for too long and reconnects. - */ - resetToServer: () => void; - }>; - weakRef(value: T): WeakRef; - migrations: Migration[]; - /** - * Get the current logical timestamp - */ - getNow(): string; -} diff --git a/packages/store/src/context/Time.ts b/packages/store/src/context/Time.ts new file mode 100644 index 00000000..6a59ee3a --- /dev/null +++ b/packages/store/src/context/Time.ts @@ -0,0 +1,35 @@ +import { TimestampProvider } from '@verdant-web/common'; + +export class Time { + private overrideNow?: () => string; + constructor( + private base: TimestampProvider, + private version: number, + ) {} + + get now() { + return this.overrideNow ? this.overrideNow() : this.base.now(this.version); + } + + withMigrationTime = async (version: number, run: () => Promise) => { + this.overrideNow = () => { + return this.base.zero(version); + }; + await run(); + this.overrideNow = undefined; + }; + + update = this.base.update.bind(this.base); + + nowWithVersion = (version: number) => { + return this.base.now(version); + }; + + get zero() { + return this.base.zero(this.version); + } + + zeroWithVersion = (version: number) => { + return this.base.zero(version); + }; +} diff --git a/packages/store/src/context/context.ts b/packages/store/src/context/context.ts new file mode 100644 index 00000000..625fb4ef --- /dev/null +++ b/packages/store/src/context/context.ts @@ -0,0 +1,200 @@ +import { + ClientMessage, + EventSubscriber, + FileData, + FileRef, + Migration, + ObjectIdentifier, + Operation, + PatchCreator, + StorageSchema, +} from '@verdant-web/common'; +import { UndoHistory } from '../UndoHistory.js'; +import { Time } from './Time.js'; +import type { PersistenceQueries } from '../persistence/PersistenceQueries.js'; +import type { PersistenceMetadata } from '../persistence/PersistenceMetadata.js'; +import { PersistenceFiles } from '../persistence/PersistenceFiles.js'; +import { + PersistedFileData, + PersistenceImplementation, +} from '../persistence/interfaces.js'; + +/** + * Common components utilized across various client + * services. + */ +export interface Context { + namespace: string; + /** + * when in WIP mode, namespace might be set to a temporary value. This will always point to the + * namespace the user passed in. + */ + originalNamespace: string; + time: Time; + + meta: PersistenceMetadata; + queries: PersistenceQueries; + files: PersistenceFiles; + + undoHistory: UndoHistory; + schema: StorageSchema; + oldSchemas: StorageSchema[]; + log: ( + level: 'debug' | 'info' | 'warn' | 'error' | 'critical', + ...args: any[] + ) => void; + entityEvents: EventSubscriber<{ + collectionsChanged: (names: string[]) => void; + documentChanged: (oid: ObjectIdentifier) => void; + }>; + internalEvents: EventSubscriber<{ + /** + * Fired when persisted data changes fundamentally, like resetting to 0, + * or importing different data. + */ + persistenceReset: () => void; + filesDeleted: (files: FileRef[]) => void; + fileAdded: (file: FileData) => void; + [ev: `fileUploaded:${string}`]: () => void; + }>; + globalEvents: EventSubscriber<{ + /** + * A change from a future version of the application has been + * witnessed. These changes are not applied but it indicates + * the app has been updated and we should prompt the user + * to reload or have their app user manually reload. + * + * The parameter is the timestamp of the future change. + */ + futureSeen: (timestamp: string) => void; + /** + * The server requested this replica reset its state + * completely. This can happen when the replica has + * been offline for too long and reconnects. + */ + resetToServer: () => void; + /** + * An operation has been processed by the system. This could be a locally sourced + * operation or a remote operation from sync. + */ + operation: (operation: Operation) => void; + /** + * Emitted when storage rebases history. This should never actually affect application behavior + * or stored data, but is useful for debugging and testing. + */ + rebase: () => void; + }>; + weakRef(value: T): WeakRef; + migrations: Migration[]; + closing: boolean; + patchCreator: PatchCreator; + + config: { + files?: FileConfig; + sync?: SyncConfig; + persistence?: PersistenceConfig; + }; + + persistence: PersistenceImplementation; +} + +export interface FileConfig { + /** + * Override the heuristic for deciding when a deleted file can be cleaned up. + * By default this waits 3 days since deletion, then deletes the file data. + * If the file has been synchronized to a server, it could still be restored + * if the server has not yet deleted it. + */ + canCleanupDeletedFile?: (file: PersistedFileData) => boolean; +} + +export interface ServerSyncEndpointProviderConfig { + /** + * The location of the endpoint used to retrieve an + * authorization token for the client. + */ + authEndpoint?: string; + /** + * A custom function to retrieve authorization + * data. Use whatever fetching mechanism you want. + */ + fetchAuth?: () => Promise<{ + accessToken: string; + }>; + /** + * A spec-compliant fetch implementation. If not provided, + * the global fetch will be used. authEndpoint will + * be used to fetch the token. + */ + fetch?: typeof fetch; +} + +export type SyncTransportMode = 'realtime' | 'pull'; + +export interface SyncConfig + extends ServerSyncEndpointProviderConfig { + /** + * When a client first connects, it will use this presence value. + */ + initialPresence: Presence; + /** + * Before connecting to the server, the local client will have + * this value for their profile data. You can either cache and store + * profile data from a previous connection or provide defaults like + * empty strings. + */ + defaultProfile: Profile; + + /** + * Provide `false` to disable transport selection. Transport selection + * automatically switches between HTTP and WebSocket based sync depending + * on the number of peers connected. If a user is alone, they will use + * HTTP push/pull to sync changes. If another user joins, both users will + * be upgraded to websockets. + * + * Provide `peers-only` to only automatically use websockets if other + * users connect, but not if another device for the current user connects. + * By default, automatic transport selection will upgrade to websockets if + * another device from the current user connects, but if realtime sync is + * not necessary for such cases, you can save bandwidth by disabling this. + * + * Turning off this feature allows you more control over the transport + * which can be useful for low-power devices or to save server traffic. + * To modify transport modes manually, utilize `client.sync.setMode`. + * The built-in behavior is essentially switching modes based on + * the number of peers detected by client.sync.presence. + */ + automaticTransportSelection?: boolean | 'peers-only'; + initialTransport?: SyncTransportMode; + autoStart?: boolean; + /** + * Optionally specify an interval, in milliseconds, to poll the server + * when in pull mode. + */ + pullInterval?: number; + /** + * Presence updates are batched to reduce number of requests / messages + * sent to the server. You can specify the batching time slice, in milliseconds, + */ + presenceUpdateBatchTimeout?: number; + /** + * Experimental: sync messages over a broadcast channel between tabs. + * Fixes tabs not reactively updating to changes when other tabs are open, + * but is not yet thoroughly vetted. + */ + useBroadcastChannel?: boolean; + /** + * Listen for outgoing messages from the client to the server. + * Not sure why you want to do this, but be careful. + */ + onOutgoingMessage?: (message: ClientMessage) => void; + + EXPERIMENTAL_backgroundSync?: boolean; +} + +export interface PersistenceConfig { + disableRebasing?: boolean; + rebaseTimeout?: number; +} + +export type InitialContext = Omit; diff --git a/packages/store/src/entities/DocumentManager.ts b/packages/store/src/entities/DocumentManager.ts index 4d00d11f..87095c80 100644 --- a/packages/store/src/entities/DocumentManager.ts +++ b/packages/store/src/entities/DocumentManager.ts @@ -11,9 +11,6 @@ import { AuthorizationKey, } from '@verdant-web/common'; import { EntityCreateOptions, EntityStore } from '../entities/EntityStore.js'; -import { Metadata } from '../metadata/Metadata.js'; -import { Sync } from '../sync/Sync.js'; -import { Context } from '../context.js'; import { ObjectEntity } from '../index.js'; /** diff --git a/packages/store/src/entities/Entity.test.ts b/packages/store/src/entities/Entity.test.ts index ecaf78b3..7838a2ad 100644 --- a/packages/store/src/entities/Entity.test.ts +++ b/packages/store/src/entities/Entity.test.ts @@ -1,16 +1,16 @@ import { describe, expect, it, vi } from 'vitest'; import { Entity } from './Entity.js'; import { EntityFamilyMetadata } from './EntityMetadata.js'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { EntityStoreEvents } from './EntityStore.js'; import { WeakEvent } from 'weak-event'; import { FileManager } from '../files/FileManager.js'; import { NaiveTimestampProvider, PatchCreator, - createRef, groupPatchesByOid, } from '@verdant-web/common'; +import { Time } from '../context/Time.js'; describe('Entity', () => { const schema = { @@ -60,18 +60,19 @@ describe('Entity', () => { resetAll: new WeakEvent(), }; const time = new NaiveTimestampProvider(); - const mockContext = { - log: vi.fn(), - getNow: () => time.now(1), - } as any as Context; const patchCreator = new PatchCreator(() => time.now(1)); + const mockContext: Partial = { + log: vi.fn(), + time: new Time(time, 1), + patchCreator, + }; const entity = new Entity({ oid: 'test/1', schema, - ctx: mockContext, + ctx: mockContext as Context, storeEvents: events, metadataFamily: new EntityFamilyMetadata({ - ctx: mockContext, + ctx: mockContext as Context, onPendingOperations, rootOid: 'test/1', }), @@ -79,7 +80,6 @@ describe('Entity', () => { add: vi.fn(), get: vi.fn(), } as any as FileManager, - patchCreator, readonlyKeys: ['id'], deleteSelf: vi.fn(), }); diff --git a/packages/store/src/entities/Entity.ts b/packages/store/src/entities/Entity.ts index 7c0b1d3b..701683f2 100644 --- a/packages/store/src/entities/Entity.ts +++ b/packages/store/src/entities/Entity.ts @@ -1,12 +1,9 @@ import { - DocumentBaseline, EntityValidationProblem, EventSubscriber, ObjectIdentifier, Operation, - PatchCreator, StorageFieldSchema, - StorageFieldsSchema, assert, assignOid, cloneDeep, @@ -20,15 +17,13 @@ import { isFile, isNullable, isObject, - isObjectRef, - isPrunePoint, isRef, maybeGetOid, memoByKeys, traverseCollectionFieldsAndApplyDefaults, validateEntityField, } from '@verdant-web/common'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { FileManager } from '../files/FileManager.js'; import { processValueFiles } from '../files/utils.js'; import { EntityFile } from '../index.js'; @@ -37,7 +32,6 @@ import { EntityFamilyMetadata, EntityMetadataView } from './EntityMetadata.js'; import { BaseEntityValue, DataFromInit, - DeepPartial, EntityChange, EntityEvents, ListEntity, @@ -58,7 +52,6 @@ export interface EntityInit { files: FileManager; readonlyKeys?: string[]; fieldPath?: (string | number)[]; - patchCreator: PatchCreator; storeEvents: EntityStoreEvents; deleteSelf: () => void; } @@ -84,7 +77,6 @@ export class Entity< private parent: Entity | undefined; private ctx; private files; - private patchCreator; private storeEvents; // an internal representation of this Entity. @@ -110,7 +102,6 @@ export class Entity< metadataFamily, readonlyKeys, files, - patchCreator, storeEvents, deleteSelf, }: EntityInit) { @@ -128,7 +119,6 @@ export class Entity< new EntityCache({ initial: [this], }); - this.patchCreator = patchCreator; this.metadataFamily = metadataFamily; this.storeEvents = storeEvents; this.parent = parent; @@ -160,6 +150,10 @@ export class Entity< return this.metadataFamily.get(this.oid); } + private get patchCreator() { + return this.ctx.patchCreator; + } + /** * The view of this Entity, not including nested * entities (that's the snapshot - see #getSnapshot()) @@ -585,7 +579,6 @@ export class Entity< ctx: this.ctx, files: this.files, fieldPath: [...this.fieldPath, key], - patchCreator: this.patchCreator, storeEvents: this.storeEvents, deleteSelf: this.delete.bind(this, key), }); @@ -635,6 +628,7 @@ export class Entity< } const file = this.files.get(child.id, { downloadRemote: !!fieldSchema.downloadRemote, + ctx: this.ctx, }); // FIXME: this seems bad and inconsistent diff --git a/packages/store/src/entities/EntityCache.ts b/packages/store/src/entities/EntityCache.ts index 048062e2..d5fc0cfb 100644 --- a/packages/store/src/entities/EntityCache.ts +++ b/packages/store/src/entities/EntityCache.ts @@ -26,15 +26,6 @@ export class EntityCache { return this.cache.has(oid); }; - getFile = (id: string, options: { downloadRemote: boolean }): EntityFile => { - if (this.cache.has(id)) { - return this.cache.get(id)! as EntityFile; - } - const file = new EntityFile(id, options); - this.cache.set(id, file); - return file; - }; - getCached = (oid: string) => { return this.cache.get(oid); }; diff --git a/packages/store/src/entities/EntityMetadata.ts b/packages/store/src/entities/EntityMetadata.ts index 2242bd92..c79923e1 100644 --- a/packages/store/src/entities/EntityMetadata.ts +++ b/packages/store/src/entities/EntityMetadata.ts @@ -10,7 +10,7 @@ import { compareTimestampSchemaVersions, getWallClockTime, } from '@verdant-web/common'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { EntityChange } from './types.js'; export type EntityMetadataView = { @@ -118,7 +118,7 @@ export class EntityMetadata { !!confirmedResult.latestTimestamp && compareTimestampSchemaVersions( confirmedResult.latestTimestamp, - this.ctx.getNow(), + this.ctx.time.now, ) < 0; const empty = @@ -142,7 +142,6 @@ export class EntityMetadata { 'warn', `Entity ${this.oid} has no view, no deleted flag, and not empty`, ); - debugger; } return { @@ -227,7 +226,7 @@ export class EntityMetadata { let futureSeen: string | undefined = undefined; let authz: string | undefined = undefined; - const now = this.ctx.getNow(); + const now = this.ctx.time.now; for (const op of operations) { // ignore ops before our after cutoff if (after && op.timestamp <= after) { @@ -323,6 +322,7 @@ export class EntityFamilyMetadata { ); } this.get(baseline.oid).addBaseline(baseline); + changes[baseline.oid] ??= { oid: baseline.oid, isLocal }; } for (const [oid, ops] of Object.entries(operations)) { if (!areOidsRelated(this.rootOid, oid)) { diff --git a/packages/store/src/entities/EntityStore.ts b/packages/store/src/entities/EntityStore.ts index 6f00dad2..e21a9b8e 100644 --- a/packages/store/src/entities/EntityStore.ts +++ b/packages/store/src/entities/EntityStore.ts @@ -2,7 +2,6 @@ import { DocumentBaseline, ObjectIdentifier, Operation, - StorageFieldsSchema, StorageObjectFieldSchema, assert, assignOid, @@ -15,14 +14,12 @@ import { removeOidsFromAllSubObjects, AuthorizationKey, } from '@verdant-web/common'; -import { Context } from '../context.js'; -import { Metadata } from '../metadata/Metadata.js'; +import { Context } from '../context/context.js'; import { Entity } from './Entity.js'; import { Disposable } from '../utils/Disposable.js'; import { EntityFamilyMetadata } from './EntityMetadata.js'; import { FileManager } from '../files/FileManager.js'; import { OperationBatcher } from './OperationBatcher.js'; -import { QueryableStorage } from '../queries/QueryableStorage.js'; import { WeakEvent } from 'weak-event'; import { processValueFiles } from '../files/utils.js'; @@ -57,10 +54,8 @@ export interface EntityCreateOptions { export class EntityStore extends Disposable { private ctx; - private meta; private files; private batcher; - private queryableStorage; private events: EntityStoreEvents = { add: new WeakEvent(), replace: new WeakEvent(), @@ -80,26 +75,18 @@ export class EntityStore extends Disposable { }, ); - constructor({ - ctx, - meta, - files, - }: { - ctx: Context; - meta: Metadata; - files: FileManager; - }) { + constructor({ ctx, files }: { ctx: Context; files: FileManager }) { super(); this.ctx = ctx; - this.meta = meta; this.files = files; - this.queryableStorage = new QueryableStorage({ ctx }); this.batcher = new OperationBatcher({ ctx, - meta, entities: this, }); + this.addDispose( + this.ctx.internalEvents.subscribe('persistenceReset', this.clearCache), + ); } // expose batch APIs @@ -145,7 +132,7 @@ export class EntityStore extends Disposable { }; empty = async () => { - await this.queryableStorage.reset(); + await this.ctx.queries.reset(); this.events.resetAll.invoke(this); this.cache.clear(); }; @@ -155,8 +142,8 @@ export class EntityStore extends Disposable { this.ctx.log('warn', 'EntityStore is disposed, not resetting local data'); return; } - await this.meta.reset(); - await this.queryableStorage.reset(); + await this.ctx.meta.reset(); + await this.ctx.queries.reset(); this.events.resetAll.invoke(this); }; @@ -172,6 +159,11 @@ export class EntityStore extends Disposable { const baselines = data?.baselines ?? []; const operations = data?.operations ?? []; + if (baselines.length === 0 && operations.length === 0) { + this.ctx.log('debug', 'No data to process'); + return; + } + this.ctx.log('debug', 'Processing incoming data', { operations: operations.length, baselines: baselines.length, @@ -200,6 +192,7 @@ export class EntityStore extends Disposable { const event = data.reset ? this.events.replace : this.events.add; const hydrationPromise = this.pendingEntityPromises.get(oid); if (hydrationPromise) { + this.ctx.log('debug', 'Waiting for ongoing entity hydration', oid); hydrationPromise.then(() => { event.invoke(this, { oid, @@ -209,6 +202,7 @@ export class EntityStore extends Disposable { }); }); } else { + this.ctx.log('debug', 'Applying data to entity', oid); event.invoke(this, { oid, baselines, @@ -227,7 +221,7 @@ export class EntityStore extends Disposable { // TODO: could messages be sent to sync before storage, // so that realtime is lower latency? What would happen // if the storage failed? - await this.meta.insertData(data, abortOptions); + await this.ctx.meta.insertData(data, abortOptions); // recompute all affected documents for querying const entities = await Promise.all( @@ -246,7 +240,7 @@ export class EntityStore extends Disposable { }), ); try { - await this.queryableStorage.saveEntities(entities, abortOptions); + await this.ctx.queries.saveEntities(entities, abortOptions); } catch (err) { if (this.disposed) { this.ctx.log( @@ -275,14 +269,16 @@ export class EntityStore extends Disposable { } if (this.cache.has(oid)) { - this.ctx.log('debug', 'Hydrating entity from cache', oid); const cached = this.cache.get(oid); if (cached) { const entity = cached.deref(); if (entity) { if (entity.deleted) { + this.ctx.log('debug', 'Hydrated entity is deleted', oid); + // debugger; return null; } + this.ctx.log('debug', 'Hydrating entity from cache', oid); return entity; } else { this.ctx.log('debug', "Removing GC'd entity from cache", oid); @@ -299,6 +295,7 @@ export class EntityStore extends Disposable { this.ctx.log('debug', 'Hydrating entity from storage', oid); const entity = this.constructEntity(oid); if (!entity) { + this.ctx.log('warn', 'Entity schema not found, cannot construct', oid); return null; } const pendingPromise = this.loadEntity(entity, opts); @@ -308,7 +305,7 @@ export class EntityStore extends Disposable { this.pendingEntityPromises.set(oid, pendingPromise); return pendingPromise; } else { - this.ctx.log('debug', 'Waiting for entity hydration', oid); + this.ctx.log('debug', 'Waiting for ongoing entity hydration', oid); return pendingPromise; } }; @@ -345,7 +342,7 @@ export class EntityStore extends Disposable { ); } - const operations = this.meta.patchCreator.createInitialize(processed, oid); + const operations = this.ctx.patchCreator.createInitialize(processed, oid); if (access) { operations.forEach((op) => { op.authz = access; @@ -396,7 +393,7 @@ export class EntityStore extends Disposable { for (const entity of entities) { if (entity) { const oids = entity.__getFamilyOids__(); - const deletes = this.meta.patchCreator.createDeleteAll(oids); + const deletes = this.ctx.patchCreator.createDeleteAll(oids); for (const op of deletes) { op.authz = entity.access; } @@ -468,7 +465,6 @@ export class EntityStore extends Disposable { readonlyKeys, files: this.files, metadataFamily: metadataFamily, - patchCreator: this.meta.patchCreator, storeEvents: this.events, deleteSelf: this.delete.bind(this, oid), }); @@ -504,7 +500,7 @@ export class EntityStore extends Disposable { entity: Entity, opts?: { abort: AbortSignal }, ) => { - const { operations, baselines } = await this.meta.getDocumentData( + const { operations, baselines } = await this.ctx.meta.getDocumentData( entity.oid, opts, ); @@ -531,6 +527,7 @@ export class EntityStore extends Disposable { * referenced will go 'dead'... */ clearCache = () => { + this.ctx.log('debug', 'Emptying entity cache'); this.cache.clear(); }; } diff --git a/packages/store/src/entities/OperationBatcher.ts b/packages/store/src/entities/OperationBatcher.ts index 1442a84a..d4ffc8a6 100644 --- a/packages/store/src/entities/OperationBatcher.ts +++ b/packages/store/src/entities/OperationBatcher.ts @@ -10,8 +10,7 @@ import { isSuperseded, operationSupersedes, } from '@verdant-web/common'; -import { Metadata } from '../metadata/Metadata.js'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import type { EntityStore } from './EntityStore.js'; import { Entity } from './Entity.js'; @@ -29,22 +28,18 @@ export class OperationBatcher { private batcher; private currentBatchKey = DEFAULT_BATCH_KEY; private defaultBatchTimeout: number; - private meta; private ctx; private entities; constructor({ batchTimeout = 200, - meta, ctx, entities, }: { batchTimeout?: number; - meta: Metadata; ctx: Context; entities: EntityStore; }) { - this.meta = meta; this.ctx = ctx; this.entities = entities; this.defaultBatchTimeout = batchTimeout; @@ -69,6 +64,7 @@ export class OperationBatcher { batchKey: string, meta: { undoable?: boolean }, ) => { + if (!operations.length) return; this.ctx.log( 'debug', 'Flushing', @@ -77,7 +73,6 @@ export class OperationBatcher { batchKey, 'to storage / sync', ); - if (!operations.length) return; // next block of logic computes superseding rules to eliminate // operations which are 'overshadowed' by later ones on the same @@ -129,7 +124,7 @@ export class OperationBatcher { // cannot be done in reversed loop above or timestamps would be // in reverse order. for (const op of committed) { - op.timestamp = this.meta.now; + op.timestamp = this.ctx.time.now; } await this.commitOperations(committed, meta); }; @@ -257,7 +252,10 @@ export class OperationBatcher { return externalApi; }; - flushAll = () => Promise.all(this.batcher.flushAll()); + flushAll = () => { + this.ctx.log('debug', 'Flushing all operations'); + return Promise.all(this.batcher.flushAll()); + }; private createUndo = async (data: { ops: Operation[]; source?: Entity }) => { // this can't be done on-demand because we rely on the current @@ -273,7 +271,7 @@ export class OperationBatcher { }); // set time to now for all undo operations, they're happening now. for (const op of inverseOps) { - op.timestamp = this.meta.now; + op.timestamp = this.ctx.time.now; } await this.commitOperations( inverseOps, @@ -293,7 +291,7 @@ export class OperationBatcher { }) => { const grouped = groupPatchesByOid(ops); const inverseOps: Operation[] = []; - const getNow = () => this.meta.now; + const getNow = () => this.ctx.time.now; await Promise.all( Object.entries(grouped).map(async ([oid, patches]): Promise => { const entity = source ?? (await this.entities.hydrate(getOidRoot(oid))); diff --git a/packages/store/src/errors.ts b/packages/store/src/errors.ts new file mode 100644 index 00000000..eb72653a --- /dev/null +++ b/packages/store/src/errors.ts @@ -0,0 +1,13 @@ +export enum VerdantErrorCode { + MigrationPathNotFound = 50001, +} + +export class VerdantError extends Error { + static Code = VerdantErrorCode; + constructor( + public code: VerdantErrorCode, + message: string, + ) { + super(message); + } +} diff --git a/packages/store/src/files/EntityFile.ts b/packages/store/src/files/EntityFile.ts index c9c2bf40..df8147f9 100644 --- a/packages/store/src/files/EntityFile.ts +++ b/packages/store/src/files/EntityFile.ts @@ -1,4 +1,5 @@ import { EventSubscriber, FileData } from '@verdant-web/common'; +import { Context } from '../context/context.js'; export type EntityFileEvents = { change: () => void; @@ -6,7 +7,6 @@ export type EntityFileEvents = { export const UPDATE = Symbol('entity-file-update'); export const MARK_FAILED = Symbol('entity-file-mark-failed'); -export const MARK_UPLOADED = Symbol('entity-file-mark-uploaded'); export type EntityFileSnapshot = { id: string; @@ -24,17 +24,26 @@ export class EntityFile extends EventSubscriber { private _loading = true; private _failed = false; private _downloadRemote = false; + private ctx: Context; + private unsubscribes: (() => void)[] = []; constructor( public readonly id: string, { downloadRemote = false, + ctx, }: { downloadRemote?: boolean; - } = {}, + ctx: Context; + }, ) { super(); + this.ctx = ctx; this._downloadRemote = downloadRemote; + + this.unsubscribes.push( + this.ctx.internalEvents.subscribe(`fileUploaded:${id}`, this.onUploaded), + ); } get downloadRemote() { @@ -48,6 +57,7 @@ export class EntityFile extends EventSubscriber { } [UPDATE] = (fileData: FileData) => { + this.ctx.log('debug', 'EntityFile updated', this.id, fileData); this._loading = false; this._failed = false; this._fileData = fileData; @@ -55,6 +65,7 @@ export class EntityFile extends EventSubscriber { if (this._objectUrl) { URL.revokeObjectURL(this._objectUrl); } + this.ctx.log('debug', 'Creating object URL for file', this.id); this._objectUrl = URL.createObjectURL(fileData.file); } this.emit('change'); @@ -66,7 +77,7 @@ export class EntityFile extends EventSubscriber { this.emit('change'); }; - [MARK_UPLOADED] = () => { + private onUploaded = () => { if (!this._fileData) return; this._fileData!.remote = true; this.emit('change'); @@ -102,13 +113,13 @@ export class EntityFile extends EventSubscriber { }; getSnapshot(): FileData { - if (this._fileData) return this._fileData; return { id: this.id, - url: this._objectUrl ?? undefined, + url: this._objectUrl ?? this._fileData?.url ?? undefined, name: this.name ?? 'unknown-file', remote: false, type: this.type ?? '', + file: this._fileData?.file, }; } } diff --git a/packages/store/src/files/FileManager.ts b/packages/store/src/files/FileManager.ts index 99bb5056..c9f0efd8 100644 --- a/packages/store/src/files/FileManager.ts +++ b/packages/store/src/files/FileManager.ts @@ -1,184 +1,48 @@ -import { FileData, FileRef } from '@verdant-web/common'; -import { Context } from '../context.js'; -import { Metadata } from '../metadata/Metadata.js'; +import { FileData } from '@verdant-web/common'; +import { Context } from '../context/context.js'; import { Sync } from '../sync/Sync.js'; -import { - EntityFile, - MARK_FAILED, - MARK_UPLOADED, - UPDATE, -} from './EntityFile.js'; -import { - FileStorage, - ReturnedFileData, - StoredFileData, -} from './FileStorage.js'; - -/** - * Default: if file was deleted > 3 days ago - */ -function defaultCanCleanup(fileData: ReturnedFileData) { - return ( - fileData.deletedAt !== null && - fileData.deletedAt < Date.now() - 1000 * 60 * 24 * 3 - ); -} - -export interface FileManagerConfig { - /** - * Override the heuristic for deciding when a deleted file can be cleaned up. - * By default this waits 3 days since deletion, then deletes the file data. - * If the file has been synchronized to a server, it could still be restored - * if the server has not yet deleted it. - */ - canCleanupDeletedFile?: (file: ReturnedFileData) => boolean; -} +import { EntityFile, MARK_FAILED, UPDATE } from './EntityFile.js'; export class FileManager { - private storage; private sync; private context; - private files = new Map(); - private config: Required; - private meta: Metadata; + private cache = new Map(); - private maxUploadRetries = 3; - private maxDownloadRetries = 3; - - constructor({ - db, - sync, - context, - meta, - config = {}, - }: { - db: IDBDatabase; - sync: Sync; - context: Context; - config?: FileManagerConfig; - meta: Metadata; - }) { - this.storage = new FileStorage(db); + constructor({ sync, context }: { sync: Sync; context: Context }) { this.sync = sync; this.context = context; - this.meta = meta; - this.config = { - canCleanupDeletedFile: defaultCanCleanup, - ...config, - }; - - this.sync.subscribe('onlineChange', this.onOnlineChange); - this.meta.subscribe('filesDeleted', this.handleFileRefsDeleted); - this.sync.subscribe('serverReset', this.storage.resetSyncedStatusSince); - // check on startup to see if files can be cleaned up - this.tryCleanupDeletedFiles(); } - add = async (file: FileData) => { - // this method accepts a FileData which refers to a remote - // file, as well as local files. in the case of a remote file, - // we actually re-download and upload the file again. this powers - // the cloning of documents with files; we clone their filedata - // and re-upload to a new file ID. otherwise, when the cloned - // filedata was marked deleted, the original file would be deleted - // and the clone would refer to a missing file. - if (file.url && !file.file) { - const blob = await this.downloadRemoteFile(file.url); - // convert blob to file with name and type - file.file = new File([blob], file.name, { type: file.type }); - } - - file.remote = false; + add = async (file: FileData, options?: { downloadRemote: boolean }) => { // immediately cache the file - if (!this.files.has(file.id)) { - const entityFile = new EntityFile(file.id); + if (!this.cache.has(file.id)) { + const entityFile = new EntityFile(file.id, { ctx: this.context }); entityFile[UPDATE](file); - this.files.set(file.id, entityFile); + this.cache.set(file.id, entityFile); } else { - this.files.get(file.id)![UPDATE](file); - } - // write to local storage and send to sync immediately - await this.storage.addFile(file); - // send to sync - if (file.file && this.sync.status === 'active') { - await this.uploadFile(file); + this.cache.get(file.id)![UPDATE](file); } - }; - private uploadFile = async (file: FileData, retries = 0) => { - const result = await this.sync.uploadFile(file); - if (result.success) { - await this.storage.markUploaded(file.id); - const cached = this.files.get(file.id); - if (cached) { - cached[MARK_UPLOADED](); - } - this.context.log('info', 'File uploaded', file.id); - } else { - if (result.retry && retries < this.maxUploadRetries) { - this.context.log( - 'error', - `Error uploading file ${file.id}, retrying...`, - result.error, - ); - // schedule a retry - setTimeout(this.uploadFile, 1000, file, retries + 1); - } else { - this.context.log( - 'error', - `Failed to upload file ${file.id}. Not retrying until next sync.`, - result.error, - ); - } - } - }; - - private downloadRemoteFile = async ( - url: string, - retries = 0, - ): Promise => { - const resp = await fetch(url, { - method: 'GET', - credentials: 'include', - }); - if (!resp.ok) { - if (retries < this.maxDownloadRetries) { - return new Promise((resolve, reject) => { - setTimeout(() => { - this.downloadRemoteFile(url, retries + 1).then(resolve, reject); - }, 1000); - }); - } else { - throw new Error(`Failed to download file: ${resp.status}`); - } - } - const blob = await resp.blob(); - return blob; + await this.context.files.add(file, options); }; /** * Immediately returns an EntityFile to use, then either loads * the file from cache, local database, or the server. */ - get = (id: string, options?: { downloadRemote?: boolean }) => { - if (this.files.has(id)) { - return this.files.get(id)!; + get = (id: string, options: { downloadRemote?: boolean; ctx: Context }) => { + if (this.cache.has(id)) { + return this.cache.get(id)!; } const file = new EntityFile(id, options); - this.files.set(id, file); + this.cache.set(id, file); this.load(file); return file; }; - private load = async (file: EntityFile, retries = 0) => { - if (retries > this.maxDownloadRetries) { - this.context.log('error', 'Failed to load file after 5 retries'); - file[MARK_FAILED](); - return; - } - - const fileData = await this.storage.getFile(file.id); + private load = async (file: EntityFile) => { + const fileData = await this.context.files.get(file.id); if (fileData) { file[UPDATE](fileData); } else { @@ -187,108 +51,17 @@ export class FileManager { const result = await this.sync.getFile(file.id); if (result.success) { file[UPDATE](result.data); - await this.storage.addFile(result.data, { + await this.context.files.add(result.data, { downloadRemote: file.downloadRemote, }); } else { this.context.log('error', 'Failed to load file', result); file[MARK_FAILED](); - if (result.retry) { - // schedule a retry - setTimeout(this.load, 1000, file, retries + 1); - } } } catch (err) { this.context.log('error', 'Failed to load file', err); file[MARK_FAILED](); - // schedule a retry - setTimeout(this.load, 1000, file, retries + 1); } } }; - - listUnsynced = async () => { - return this.storage.listUnsynced(); - }; - - exportAll = async (downloadRemote = false) => { - const storedFiles = await this.storage.getAll(); - if (downloadRemote) { - for (const storedFile of storedFiles) { - // if it doesn't have a buffer, we need to read - // one from the server - if (!storedFile.file && storedFile.url) { - try { - const blob = await fetch(storedFile.url, { - method: 'GET', - credentials: 'include', - }).then((r) => r.blob()); - storedFile.file = blob; - } catch (err) { - this.context.log( - 'error', - "Failed to download file to cache it locally. The file will still be available using its URL. Check the file server's CORS configuration.", - err, - ); - } - } - } - } - return storedFiles; - }; - - importAll = async (files: ReturnedFileData[]) => { - await Promise.all(files.map((file) => this.add(file))); - }; - - private onOnlineChange = async (online: boolean) => { - // if online, try to upload any unsynced files - if (online) { - const unsynced = await this.listUnsynced(); - await Promise.all(unsynced.map(this.uploadFile)); - } - }; - - tryCleanupDeletedFiles = async () => { - let count = 0; - let skipCount = 0; - await this.storage.iterateOverPendingDelete((fileData, store) => { - if (this.config.canCleanupDeletedFile(fileData)) { - count++; - store.delete(fileData.id); - } else { - skipCount++; - } - }); - - this.context.log( - 'info', - `Cleaned up ${count} files, skipped ${skipCount} files`, - ); - }; - - private handleFileRefsDeleted = async (fileRefs: FileRef[]) => { - const tx = this.storage.createTransaction(['files'], { mode: 'readwrite' }); - await Promise.all( - fileRefs.map(async (fileRef) => { - try { - await this.storage.markPendingDelete(fileRef.id, { transaction: tx }); - } catch (err) { - this.context.log('error', 'Failed to mark file for deletion', err); - } - }), - ); - this.context.log( - 'info', - `Marked ${fileRefs.length} files as pending delete`, - ); - }; - - close = () => { - this.storage.dispose(); - }; - - stats = () => { - return this.storage.stats(); - }; } diff --git a/packages/store/src/files/utils.ts b/packages/store/src/files/utils.ts index 8e3f97e3..a9dbe2b8 100644 --- a/packages/store/src/files/utils.ts +++ b/packages/store/src/files/utils.ts @@ -55,18 +55,3 @@ export function processValueFiles( return value; } - -export function fileToArrayBuffer(file: File | Blob) { - // special case for testing... - if ('__testReadBuffer' in file) { - return file.__testReadBuffer; - } - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.onload = () => { - resolve(reader.result as ArrayBuffer); - }; - reader.onerror = reject; - reader.readAsArrayBuffer(file); - }); -} diff --git a/packages/store/src/index.ts b/packages/store/src/index.ts index 9511d8a2..18424339 100644 --- a/packages/store/src/index.ts +++ b/packages/store/src/index.ts @@ -48,12 +48,13 @@ export type { StorageFieldsSchema, IndexValueTag, Migration, + VerdantError, + VerdantErrorCode, } from '@verdant-web/common'; export type { UserInfo } from '@verdant-web/common'; export type { Query } from './queries/types.js'; export type { QueryStatus } from './queries/BaseQuery.js'; export type { CollectionQueries } from './queries/CollectionQueries.js'; -export { MigrationPathError } from './migration/errors.js'; export * from './utils/id.js'; export { UndoHistory } from './UndoHistory.js'; export * from './authorization.js'; diff --git a/packages/store/src/metadata/AckInfoStore.ts b/packages/store/src/metadata/AckInfoStore.ts deleted file mode 100644 index 549a7dcb..00000000 --- a/packages/store/src/metadata/AckInfoStore.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { IDBService } from '../IDBService.js'; - -type AckInfo = { - type: 'ack'; - // null means no operations are acknowledged - // by every peer yet. - globalAckTimestamp: string | null; -}; - -export class AckInfoStore extends IDBService { - getAckInfo = async (): Promise => { - const result = await this.run('info', (store) => store.get('ack')); - if (result) { - return result; - } else { - return { - globalAckTimestamp: null, - type: 'ack', - }; - } - }; - - setGlobalAck = async (ack: string) => { - await this.run( - 'info', - (store) => store.put({ type: 'ack', globalAckTimestamp: ack }), - { mode: 'readwrite' }, - ); - }; -} diff --git a/packages/store/src/metadata/BaselinesStore.ts b/packages/store/src/metadata/BaselinesStore.ts deleted file mode 100644 index 7fb19ebe..00000000 --- a/packages/store/src/metadata/BaselinesStore.ts +++ /dev/null @@ -1,188 +0,0 @@ -import { - DocumentBaseline, - getOidSubIdRange, - getOidRoot, - ObjectIdentifier, - isLegacyDotOid, - getLegacyDotOidSubIdRange, -} from '@verdant-web/common'; -import { IDBService } from '../IDBService.js'; -import { Context } from '../context.js'; - -export class BaselinesStore extends IDBService { - constructor(db: IDBDatabase, opts: { log?: Context['log'] }) { - super(db, opts); - } - - getAllForDocument = async ( - oid: ObjectIdentifier, - { - mode = 'readonly', - transaction, - }: { mode?: 'readwrite' | 'readonly'; transaction?: IDBTransaction } = {}, - ) => { - const baselines: DocumentBaseline[] = []; - await this.iterateOverAllForDocument( - oid, - (baseline) => { - baselines.push(baseline); - }, - { mode, transaction }, - ); - return baselines; - }; - iterateOverAllForDocument = async ( - oid: ObjectIdentifier, - iterator: (baseline: DocumentBaseline, store: IDBObjectStore) => void, - { - mode = 'readonly', - transaction, - }: { mode?: 'readwrite' | 'readonly'; transaction?: IDBTransaction } = {}, - ) => { - return this.iterate( - 'baselines', - (store) => { - const root = getOidRoot(oid); - const [start, end] = getOidSubIdRange(oid); - // FIXME: get rid of legacy dot OIDs... - // if (isLegacyDotOid(oid)) { - const [dotStart, dotEnd] = getLegacyDotOidSubIdRange(oid); - return [ - store.openCursor(IDBKeyRange.only(root)), - store.openCursor(IDBKeyRange.bound(start, end, false, false)), - store.openCursor(IDBKeyRange.bound(dotStart, dotEnd, false, false)), - ]; - // } else { - // return [ - // // first the root itself - // store.openCursor(IDBKeyRange.only(root)), - // // then the range of its possible subdocuments - // store.openCursor(IDBKeyRange.bound(start, end, false, false)), - // ]; - // } - }, - iterator, - { mode, transaction }, - ); - }; - - iterateOverAllForCollection = async ( - collection: string, - iterator: (baseline: DocumentBaseline, store: IDBObjectStore) => void, - { - mode = 'readonly', - transaction, - }: { mode?: 'readwrite' | 'readonly'; transaction?: IDBTransaction } = {}, - ) => { - return this.iterate( - 'baselines', - (store) => { - return [ - store.openCursor( - IDBKeyRange.bound(collection, collection + '\uffff', false, false), - ), - ]; - }, - iterator, - { mode, transaction }, - ); - }; - - getAllForMultipleDocuments = async ( - docOids: string[], - { mode = 'readonly' }: { mode?: 'readwrite' | 'readonly' } = {}, - ) => { - const result = await this.runAll( - 'baselines', - (store) => { - return docOids.flatMap((oid) => { - const root = getOidRoot(oid); - const [start, end] = getOidSubIdRange(oid); - // FIXME: get rid of legacy dot OIDs... - // if (isLegacyDotOid(oid)) { - const [dotStart, dotEnd] = getLegacyDotOidSubIdRange(oid); - return [ - store.get(root), - store.getAll(IDBKeyRange.bound(start, end, false, false)), - store.getAll(IDBKeyRange.bound(dotStart, dotEnd, false, false)), - ]; - // } else { - // return [ - // store.get(root), - // store.getAll(IDBKeyRange.bound(start, end, false, false)), - // ]; - // } - }); - }, - { mode }, - ); - return result.flat(); - }; - - getAllSince = async ( - timestamp: string | null, - { mode = 'readonly' }: { mode?: 'readwrite' | 'readonly' } = {}, - ) => { - return this.run( - 'baselines', - (store) => { - const range = timestamp - ? IDBKeyRange.lowerBound(timestamp, true) - : undefined; - const index = store.index('timestamp'); - return index.getAll(range); - }, - { mode }, - ); - }; - - get = async ( - oid: ObjectIdentifier, - { - transaction, - mode = 'readonly', - }: { transaction?: IDBTransaction; mode?: 'readwrite' | 'readonly' } = {}, - ) => { - return this.run('baselines', (store) => store.get(oid), { - mode, - transaction, - }); - }; - - set = async ( - baseline: DocumentBaseline, - { transaction }: { transaction?: IDBTransaction } = {}, - ) => { - await this.run('baselines', (store) => store.put(baseline), { - mode: 'readwrite', - transaction, - }); - }; - - setAll = async ( - baselines: DocumentBaseline[], - { transaction }: { transaction?: IDBTransaction } = {}, - ) => { - await this.runAll( - 'baselines', - (store) => { - return baselines.map((baseline) => store.put(baseline)); - }, - { mode: 'readwrite', transaction }, - ); - }; - - reset = () => { - return this.clear('baselines'); - }; - - delete = async ( - oid: ObjectIdentifier, - { transaction }: { transaction?: IDBTransaction }, - ) => { - await this.run('baselines', (store) => store.delete(oid), { - mode: 'readwrite', - transaction, - }); - }; -} diff --git a/packages/store/src/metadata/LocalReplicaStore.ts b/packages/store/src/metadata/LocalReplicaStore.ts deleted file mode 100644 index c91b76a9..00000000 --- a/packages/store/src/metadata/LocalReplicaStore.ts +++ /dev/null @@ -1,79 +0,0 @@ -import cuid from 'cuid'; -import { IDBService } from '../IDBService.js'; - -export type LocalReplicaInfo = { - type: 'localReplicaInfo'; - id: string; - userId: string | undefined; - ackedLogicalTime: string | null; - lastSyncedLogicalTime: string | null; -}; - -export class LocalReplicaStore extends IDBService { - private _creating: Promise | undefined; - private cached: LocalReplicaInfo | undefined; - - get = async ({ - transaction, - }: { transaction?: IDBTransaction } = {}): Promise => { - if (this.cached) { - return this.cached; - } - - const lookup = await this.run( - 'info', - (store) => store.get('localReplicaInfo'), - { transaction }, - ); - - // not cached, not in db, create it - if (!lookup) { - // prevent a race condition if get() is called again while we are - // creating the replica info - if (!this._creating) { - this._creating = (async () => { - // create our own replica info now - const replicaId = cuid(); - const replicaInfo: LocalReplicaInfo = { - type: 'localReplicaInfo', - id: replicaId, - userId: undefined, - ackedLogicalTime: null, - lastSyncedLogicalTime: null, - }; - await this.run('info', (store) => store.put(replicaInfo), { - mode: 'readwrite', - }); - this.cached = replicaInfo; - })(); - } - await this._creating; - - return this.get({ transaction }); - } - - this.cached = lookup; - return lookup; - }; - - update = async ( - data: Partial, - { transaction }: { transaction?: IDBTransaction } = {}, - ) => { - const localReplicaInfo = await this.get({ transaction }); - Object.assign(localReplicaInfo, data); - await this.run('info', (store) => store.put(localReplicaInfo), { - mode: 'readwrite', - }); - this.cached = localReplicaInfo; - }; - - reset = async () => { - const localInfo = await this.get(); - localInfo.ackedLogicalTime = null; - localInfo.lastSyncedLogicalTime = null; - await this.run('info', (store) => store.put(localInfo), { - mode: 'readwrite', - }); - }; -} diff --git a/packages/store/src/metadata/Metadata.ts b/packages/store/src/metadata/Metadata.ts deleted file mode 100644 index ee93a6c2..00000000 --- a/packages/store/src/metadata/Metadata.ts +++ /dev/null @@ -1,685 +0,0 @@ -import { - applyPatch, - assert, - assignOid, - ClientMessage, - DocumentBaseline, - EventSubscriber, - FileRef, - isFileRef, - getOidRoot, - HybridLogicalClockTimestampProvider, - ObjectIdentifier, - Operation, - PatchCreator, - Ref, - StorageSchema, - substituteRefsWithObjects, -} from '@verdant-web/common'; -import { AckInfoStore } from './AckInfoStore.js'; -import { BaselinesStore } from './BaselinesStore.js'; -import { - createAbortableTransaction, - getAllFromObjectStores, - getSizeOfObjectStore, - storeRequestPromise, -} from '../idb.js'; -import { LocalReplicaInfo, LocalReplicaStore } from './LocalReplicaStore.js'; -import { MessageCreator } from './MessageCreator.js'; -import { ClientOperation, OperationsStore } from './OperationsStore.js'; -import { SchemaStore } from './SchemaStore.js'; -import { Context } from '../context.js'; - -export interface ExportData { - operations: Operation[]; - baselines: DocumentBaseline[]; - localReplica?: LocalReplicaInfo; - schemaVersion: number; -} - -export class Metadata extends EventSubscriber<{ - message: (message: ClientMessage) => void; - rebase: (baselines: DocumentBaseline[]) => void; - filesDeleted: (files: FileRef[]) => void; -}> { - readonly operations; - readonly baselines; - readonly localReplica; - readonly ackInfo; - readonly messageCreator; - readonly patchCreator; - readonly schema; - readonly time = new HybridLogicalClockTimestampProvider(); - - private readonly disableRebasing: boolean = false; - /** - * indicates the client is shutting down and we should stop - * accessing the database. - */ - private _closing = false; - - private context: Omit; - - private onOperation?: (operation: Operation) => void; - - constructor({ - disableRebasing, - context, - onOperation, - }: { - disableRebasing?: boolean; - context: Omit; - onOperation?: (operation: Operation) => void; - }) { - super(); - this.context = context; - this.schema = new SchemaStore(context.metaDb, context.schema.version); - this.operations = new OperationsStore(this.db, { log: context.log }); - this.baselines = new BaselinesStore(this.db, { log: context.log }); - this.localReplica = new LocalReplicaStore(this.db); - this.ackInfo = new AckInfoStore(this.db); - this.messageCreator = new MessageCreator(this); - this.patchCreator = new PatchCreator(() => this.now); - this.onOperation = onOperation; - if (disableRebasing) this.disableRebasing = disableRebasing; - } - - private get db() { - return this.context.metaDb; - } - - private get log() { - return this.context.log; - } - - setContext = (context: Context) => { - this.context = context; - }; - - get now() { - return this.time.now(this.schema.currentVersion); - } - - close = () => { - this._closing = true; - }; - - /** - * Methods for accessing data - */ - - createTransaction = ( - stores: ('operations' | 'baselines')[], - opts: { - abort?: AbortSignal; - write?: boolean; - } = {}, - ) => { - return createAbortableTransaction( - this.db, - stores, - opts.write ? 'readwrite' : 'readonly', - opts.abort, - this.context.log, - ); - }; - - /** - * Gets the OID and every sub-object OID for a given document. - * Includes any sub-objects that are not referenced by the root object - * but still happen to be in storage. - */ - getAllDocumentRelatedOids = async (oid: ObjectIdentifier) => { - const oids = new Set(); - const documentOid = getOidRoot(oid); - assert(documentOid === oid, 'Must be root document OID'); - oids.add(documentOid); - // readwrite mode to block on other write transactions - const transaction = this.createTransaction(['baselines', 'operations']); - await Promise.all([ - this.baselines.iterateOverAllForDocument( - documentOid, - (baseline) => { - oids.add(baseline.oid); - }, - { transaction }, - ), - this.operations.iterateOverAllOperationsForDocument( - documentOid, - (patch) => { - oids.add(patch.oid); - }, - { transaction }, - ), - ]); - - return Array.from(oids); - }; - - getAllCollectionRelatedOids = async (oid: ObjectIdentifier) => { - const oids = new Set(); - const transaction = this.db.transaction( - ['baselines', 'operations'], - 'readwrite', - ); - await Promise.all([ - this.baselines.iterateOverAllForCollection( - oid, - (baseline) => { - oids.add(baseline.oid); - }, - { transaction }, - ), - this.operations.iterateOverAllOperationsForCollection( - oid, - (patch) => { - oids.add(patch.oid); - }, - { transaction }, - ), - ]); - - return Array.from(oids); - }; - - getDocumentSnapshot = async ( - oid: ObjectIdentifier, - options: { to?: string } = {}, - ) => { - const documentOid = getOidRoot(oid); - assert(documentOid === oid, 'Must be root document OID'); - const transaction = this.db.transaction( - ['baselines', 'operations'], - 'readwrite', - ); - const baselines = await this.baselines.getAllForDocument(documentOid, { - transaction, - }); - const objectMap = new Map(); - for (const baseline of baselines) { - if (baseline.snapshot) { - assignOid(baseline.snapshot, baseline.oid); - } - objectMap.set(baseline.oid, baseline.snapshot); - } - await this.operations.iterateOverAllOperationsForDocument( - documentOid, - (op) => { - const obj = objectMap.get(op.oid) || undefined; - const newObj = applyPatch(obj, op.data); - if (newObj) { - assignOid(newObj, op.oid); - } - objectMap.set(op.oid, newObj); - }, - { - transaction, - // only apply operations up to the current time - to: options.to || this.now, - }, - ); - const root = objectMap.get(documentOid); - if (root) { - substituteRefsWithObjects(root, objectMap); - } - return root; - }; - - getDocumentData = async ( - oid: ObjectIdentifier, - opts?: { - abort?: AbortSignal; - }, - ) => { - const transaction = this.createTransaction( - ['baselines', 'operations'], - opts, - ); - const baselines: DocumentBaseline[] = []; - const operations: Record = {}; - await Promise.all([ - this.baselines.iterateOverAllForDocument( - oid, - (baseline) => { - baselines.push(baseline); - }, - { - transaction, - }, - ), - this.operations.iterateOverAllOperationsForDocument( - oid, - (op) => { - operations[op.oid] ??= []; - operations[op.oid].push(op); - }, - { transaction }, - ), - ]); - return { - baselines, - operations, - }; - }; - - getDocumentAuthz = async (oid: ObjectIdentifier) => { - const baseline = await this.baselines.get(oid); - if (baseline) { - return baseline.authz; - } - let authz; - await this.operations.iterateOverAllOperationsForEntity( - oid, - (op) => { - if (op.data.op === 'initialize') { - authz = op.authz; - return true; - } - }, - {}, - ); - return authz; - }; - - /** - * Methods for writing data - */ - - /** - * Acks that we have seen a timestamp to the server - * and stores it as our local ackedLogicalTime if it's - * greater than our current ackedLogicalTime. - */ - ack = async (timestamp: string) => { - const localReplicaInfo = await this.localReplica.get(); - // can't ack timestamps from the future. - if (timestamp > this.now) return; - - this.emit('message', { - type: 'ack', - replicaId: localReplicaInfo.id, - timestamp, - }); - if ( - !this._closing && - (!localReplicaInfo.ackedLogicalTime || - timestamp > localReplicaInfo.ackedLogicalTime) - ) { - this.localReplica.update({ ackedLogicalTime: timestamp }); - } - }; - - /** - * Applies a patch to the document and stores it in the database. - * @returns the oldest local history timestamp - */ - insertLocalOperations = async ( - operations: Operation[], - opts?: { transaction?: IDBTransaction }, - ) => { - if (operations.length === 0) return; - // await this.rebaseLock; - this.log( - 'debug', - `Inserting ${operations.length} local operations`, - operations, - ); - - // add local flag, in place. - for (const operation of operations) { - (operation as ClientOperation).isLocal = true; - } - await this.operations.addOperations(operations as ClientOperation[], opts); - - const message = await this.messageCreator.createOperation({ operations }); - this.emit('message', message); - - // we can now enqueue and check for rebase opportunities - this.tryAutonomousRebase(); - - if (this.onOperation) { - operations.forEach((o) => this.onOperation!(o)); - } - }; - - /** - * Inserts remote operations. This does not affect local history. - * @returns a list of affected document OIDs - */ - insertRemoteOperations = async ( - operations: Operation[], - opts?: { transaction?: IDBTransaction }, - ) => { - if (operations.length === 0) return []; - // await this.rebaseLock; - this.log( - 'debug', - `Inserting ${operations.length} remote operations`, - operations, - ); - - const affectedDocumentOids = await this.operations.addOperations( - operations.map((patch) => ({ - ...patch, - isLocal: false, - })), - opts, - ); - - this.ack(operations[operations.length - 1].timestamp); - - if (this.onOperation) { - operations.forEach((o) => this.onOperation!(o)); - } - - return affectedDocumentOids; - }; - - insertRemoteBaselines = async ( - baselines: DocumentBaseline[], - opts?: { transaction?: IDBTransaction }, - ) => { - if (baselines.length === 0) return []; - this.log('debug', `Inserting ${baselines.length} remote baselines`); - - await this.baselines.setAll(baselines, opts); - - // this.ack(baselines[baselines.length - 1].timestamp); - - const affectedOidSet = new Set(); - baselines.forEach((baseline) => { - affectedOidSet.add(getOidRoot(baseline.oid)); - }); - - return Array.from(affectedOidSet); - }; - - insertData = async ( - data: { - baselines?: DocumentBaseline[]; - operations?: Operation[]; - isLocal?: boolean; - }, - opts?: { abort: AbortSignal }, - ) => { - const transaction = this.createTransaction(['baselines', 'operations'], { - ...opts, - write: true, - }); - if (data.baselines) { - await this.insertRemoteBaselines(data.baselines, { transaction }); - } - if (opts?.abort?.aborted) return; - if (data.operations) { - if (data.isLocal) { - await this.insertLocalOperations(data.operations, { transaction }); - } else { - await this.insertRemoteOperations(data.operations, { transaction }); - } - } - }; - - updateLastSynced = async (timestamp: string) => { - if (this._closing) return; - - return this.localReplica.update({ - lastSyncedLogicalTime: timestamp, - }); - }; - - lastSyncedTimestamp = async () => { - const localReplicaInfo = await this.localReplica.get(); - return localReplicaInfo.lastSyncedLogicalTime; - }; - - private tryAutonomousRebase = async () => { - if (this.disableRebasing) return; - - const localReplicaInfo = await this.localReplica.get(); - if (localReplicaInfo.lastSyncedLogicalTime) return; // cannot autonomously rebase if we've synced - // but if we have never synced... we can rebase everything! - await this.runRebase(this.now); - }; - - /** - * Attempt to autonomously rebase local documents without server intervention. - * This can currently only happen for a client who has never synced before. - * The goal is to allow local-only clients to compress their history to exactly - * their undo stack. - */ - private runRebase = async (globalAckTimestamp: string) => { - if (this._closing) return; - - // find all operations before the global ack - let lastTimestamp; - const toRebase = new Set(); - const transaction = this.createTransaction(['baselines', 'operations'], { - write: true, - }); - let operationCount = 0; - await this.operations.iterateOverAllOperations( - (patch) => { - toRebase.add(patch.oid); - lastTimestamp = patch.timestamp; - operationCount++; - }, - { - before: globalAckTimestamp, - transaction, - }, - ); - - if (!toRebase.size) { - return; - } - - if (this._closing) { - return; - } - - // rebase each affected document - let newBaselines = []; - for (const oid of toRebase) { - newBaselines.push( - await this.rebase( - oid, - lastTimestamp || globalAckTimestamp, - transaction, - ), - ); - } - this.emit('rebase', newBaselines); - }; - - rebase = async ( - oid: ObjectIdentifier, - upTo: string, - providedTx?: IDBTransaction, - ) => { - // including replica Id for testing I guess - const replicaId = (await this.localReplica.get()).id; - - this.log('debug', '[', replicaId, ']', 'Rebasing', oid, 'up to', upTo); - const transaction = - providedTx || - this.createTransaction(['operations', 'baselines'], { write: true }); - const baseline = await this.baselines.get(oid, { transaction }); - let current: any = baseline?.snapshot || undefined; - let operationsApplied = 0; - let authz = baseline?.authz; - const deletedRefs: Ref[] = []; - await this.operations.iterateOverAllOperationsForEntity( - oid, - (patch, store) => { - // FIXME: this seems like the wrong place to do this - // but it's here as a safety measure... - if (!baseline || patch.timestamp > baseline.timestamp) { - current = applyPatch(current, patch.data, deletedRefs); - if (patch.data.op === 'initialize') { - authz = patch.authz; - } - } - // delete all prior operations to the baseline - operationsApplied++; - store.delete(patch.oid_timestamp); - }, - { - to: upTo, - transaction, - }, - ); - if (current) { - assignOid(current, oid); - } - const newBaseline = { - oid, - snapshot: current, - timestamp: upTo, - authz, - }; - if (newBaseline.snapshot) { - await this.baselines.set(newBaseline, { transaction }); - } else { - await this.baselines.delete(oid, { transaction }); - } - - this.log( - 'debug', - 'successfully rebased', - oid, - 'up to', - upTo, - ':', - current, - 'and deleted', - operationsApplied, - 'operations', - ); - - // cleanup deleted refs - if (deletedRefs.length) { - const fileRefs = deletedRefs.filter(isFileRef); - if (fileRefs.length) { - this.emit('filesDeleted', fileRefs); - } - } - - return newBaseline; - }; - - reset = async () => { - await this.operations.reset(); - await this.baselines.reset(); - await this.localReplica.reset(); - }; - - updateSchema = async (schema: StorageSchema, overrideConflict?: number) => { - const storedSchema = await this.schema.get(); - if (storedSchema) { - // version changes will be handled by migration routines in - // the actual idb database loading code (see: initializeDatabases) - - // but this check determines if the schema has been changed without - // a version change. if so, it will error. - if ( - overrideConflict === storedSchema.version && - storedSchema.version === schema.version && - JSON.stringify(storedSchema) !== JSON.stringify(schema) - ) { - console.error( - `Schema mismatch for version ${schema.version} - ${JSON.stringify(storedSchema)} - ${JSON.stringify(schema)}`, - ); - throw new Error( - 'Schema has changed without a version change! Any changes to your schema must be accompanied by a change in schema version and a migration routine.', - ); - } - } - await this.schema.set(schema); - }; - - setGlobalAck = async (timestamp: string) => { - if (this._closing) return; - await this.ackInfo.setGlobalAck(timestamp); - if (!this.disableRebasing) { - await this.runRebase(timestamp); - } - }; - - /** - * Manually triggers a storage rebase. - * Rebases happen automatically as needed, so - * you probably don't need this. - */ - manualRebase = async () => { - if (this._closing || this.disableRebasing) return; - const ackInfo = await this.ackInfo.getAckInfo(); - if (ackInfo.globalAckTimestamp) { - this.runRebase(ackInfo.globalAckTimestamp); - } - }; - - export = async (): Promise => { - const db = this.db; - const [baselines, operations] = await getAllFromObjectStores(db, [ - 'baselines', - 'operations', - ]); - const localReplica = await this.localReplica.get(); - const schema = await this.schema.get(); - if (!schema) { - throw new Error('Cannot export Client data before initializing'); - } - return { - operations, - baselines, - localReplica, - schemaVersion: schema.version, - }; - }; - - /** - * Resets local metadata and clears operation/baseline stores. - * DOES NOT add operations/baselines - this should be done - * through the normal higher level systems. - */ - resetFrom = async (data: ExportData) => { - const db = this.db; - const transaction = db.transaction( - ['baselines', 'operations', 'info'], - 'readwrite', - ); - await storeRequestPromise(transaction.objectStore('baselines').clear()); - await storeRequestPromise(transaction.objectStore('operations').clear()); - await storeRequestPromise(transaction.objectStore('info').clear()); - if (data.localReplica) { - await this.localReplica.update( - { - ackedLogicalTime: data.localReplica.ackedLogicalTime, - lastSyncedLogicalTime: data.localReplica.lastSyncedLogicalTime, - }, - { transaction }, - ); - } - }; - - stats = async () => { - const db = this.db; - const operationsSize = await getSizeOfObjectStore(db, 'operations'); - const baselinesSize = await getSizeOfObjectStore(db, 'baselines'); - - return { - operationsSize, - baselinesSize, - }; - }; -} - -export function supportLegacyExport(exportData: any): ExportData { - if (exportData.schema) { - exportData.schemaVersion = exportData.schema.version; - delete exportData.schema; - } - return exportData; -} diff --git a/packages/store/src/metadata/OperationsStore.ts b/packages/store/src/metadata/OperationsStore.ts deleted file mode 100644 index 5df165cf..00000000 --- a/packages/store/src/metadata/OperationsStore.ts +++ /dev/null @@ -1,332 +0,0 @@ -import { - createCompoundIndexValue, - createLowerBoundIndexValue, - createUpperBoundIndexValue, - getOidRoot, - ObjectIdentifier, - Operation, - assert, -} from '@verdant-web/common'; -import { IDBService } from '../IDBService.js'; -import { isAbortError } from '../idb.js'; - -export type ClientOperation = Operation & { - isLocal: boolean; -}; - -export type StoredClientOperation = ClientOperation & { - oid_timestamp: string; - l_t: string; - d_t: string; -}; - -export class OperationsStore extends IDBService { - constructor(db: IDBDatabase, opts: { log?: (...args: any[]) => void }) { - super(db, opts); - } - /** - * Iterates over every patch for the root and every sub-object - * of a given document. Optionally limit by timestamp. - */ - iterateOverAllOperationsForDocument = async ( - oid: ObjectIdentifier, - iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, - { - to, - from, - after, - mode = 'readonly', - transaction: providedTx, - }: { - to?: string; - from?: string; - after?: string; - mode?: 'readwrite' | 'readonly'; - transaction?: IDBTransaction; - } = {}, - ): Promise => { - const transaction = - providedTx || - this.createTransaction(['operations'], { - mode, - }); - const store = transaction.objectStore('operations'); - const index = store.index('d_t'); - - const startTimestamp = from || after; - const start = startTimestamp - ? createCompoundIndexValue(oid, startTimestamp) - : createLowerBoundIndexValue(oid); - const end = to - ? createCompoundIndexValue(oid, to) - : createUpperBoundIndexValue(oid); - - const range = IDBKeyRange.bound(start, end, !!after, false); - - const request = index.openCursor(range, 'next'); - return new Promise((resolve, reject) => { - let previousTimestamp: string | undefined; - request.onsuccess = (event) => { - const cursor = request.result; - if (cursor) { - const value = cursor.value as StoredClientOperation; - assert(value.oid.startsWith(oid)); - assert( - previousTimestamp === undefined || - previousTimestamp <= value.timestamp, - `expected ${previousTimestamp} <= ${value.timestamp}`, - ); - - iterator(value, store); - previousTimestamp = value.timestamp; - cursor.continue(); - } else { - resolve(); - } - }; - request.onerror = (event) => { - if (isAbortError(request.error)) { - resolve(); - return; - } else { - reject(request.error); - } - }; - }); - }; - - iterateOverAllOperationsForEntity = async ( - oid: ObjectIdentifier, - iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, - { - after, - to, - mode, - transaction: providedTx, - }: { - after?: string; - to?: string; - mode?: 'readwrite' | 'readonly'; - transaction?: IDBTransaction; - }, - ): Promise => { - const transaction = - providedTx || this.createTransaction(['operations'], { mode }); - const store = transaction.objectStore('operations'); - - const start = after - ? createCompoundIndexValue(oid, after) - : createLowerBoundIndexValue(oid); - const end = to - ? createCompoundIndexValue(oid, to) - : createUpperBoundIndexValue(oid); - - const range = IDBKeyRange.bound(start, end, !!after, false); - - const request = store.openCursor(range, 'next'); - return new Promise((resolve, reject) => { - let previousTimestamp: string | undefined; - request.onsuccess = (event) => { - const cursor = request.result; - if (cursor) { - const value = cursor.value as StoredClientOperation; - assert(value.oid.startsWith(oid)); - assert( - previousTimestamp === undefined || - previousTimestamp <= value.timestamp, - `expected ${previousTimestamp} <= ${value.timestamp}`, - ); - - iterator(value, store); - previousTimestamp = value.timestamp; - cursor.continue(); - } else { - resolve(); - } - }; - request.onerror = (event) => { - if (isAbortError(request.error)) { - resolve(); - } else { - reject(request.error); - } - }; - }); - }; - - iterateOverAllOperationsForCollection = async ( - collection: string, - iterator: (patch: StoredClientOperation, store: IDBObjectStore) => void, - { - after, - to, - mode, - transaction: providedTx, - }: { - after?: string; - to?: string; - mode?: 'readwrite' | 'readonly'; - transaction?: IDBTransaction; - }, - ): Promise => { - const transaction = - providedTx || this.createTransaction(['operations'], { mode }); - - return this.iterate( - 'operations', - (store) => { - return store.openCursor( - IDBKeyRange.bound(collection, collection + '\uffff', false, false), - 'next', - ); - }, - iterator, - { mode, transaction }, - ); - }; - - iterateOverAllLocalOperations = async ( - iterator: (patch: ClientOperation, store: IDBObjectStore) => void, - { - before, - after, - mode = 'readonly', - transaction: providedTx, - }: { - before?: string | null; - after?: string | null; - mode?: 'readwrite' | 'readonly'; - transaction?: IDBTransaction; - }, - ): Promise => { - const transaction = - providedTx || this.createTransaction(['operations'], { mode }); - const store = transaction.objectStore('operations'); - const index = store.index('l_t'); - - const start = after - ? createCompoundIndexValue(true, after) - : createLowerBoundIndexValue(true); - const end = before - ? createCompoundIndexValue(true, before) - : createUpperBoundIndexValue(true); - - const range = IDBKeyRange.bound(start, end, !!after, true); - - const request = index.openCursor(range, 'next'); - return new Promise((resolve, reject) => { - let previousTimestamp: string | undefined; - request.onsuccess = (event) => { - const cursor = request.result; - if (cursor) { - const value = cursor.value as StoredClientOperation; - assert( - previousTimestamp === undefined || - previousTimestamp <= value.timestamp, - `expected ${previousTimestamp} <= ${value.timestamp}`, - ); - - iterator(value, store); - previousTimestamp = value.timestamp; - cursor.continue(); - } else { - resolve(); - } - }; - request.onerror = (event) => { - if (isAbortError(request.error)) { - resolve(); - } else { - reject(request.error); - } - }; - }); - }; - - iterateOverAllOperations = async ( - iterator: (patch: ClientOperation, store: IDBObjectStore) => void, - { - before, - transaction, - mode, - from, - }: { - /** Ending timestamp, exclusive */ - before?: string | null; - /** Starting timestamp, inclusive */ - from?: string | null; - transaction?: IDBTransaction; - mode?: 'readwrite' | 'readonly'; - }, - ): Promise => { - await this.iterate( - 'operations', - (store) => { - const start = from ? createLowerBoundIndexValue(from) : undefined; - const end = before ? createUpperBoundIndexValue(before) : undefined; - - const range = - start && end - ? IDBKeyRange.bound(start, end, false, true) - : start - ? IDBKeyRange.lowerBound(start, false) - : end - ? IDBKeyRange.upperBound(end, true) - : undefined; - const index = store.index('timestamp'); - return index.openCursor(range, 'next'); - }, - iterator, - { mode, transaction }, - ); - }; - - /** - * Adds a set of patches to the database. - * @returns a list of affected root document OIDs. - */ - addOperations = async ( - patches: ClientOperation[], - { transaction }: { transaction?: IDBTransaction } = {}, - ): Promise => { - return this.insert(patches.map(this.addCompoundIndexes), { transaction }); - }; - - private addCompoundIndexes = ( - patch: ClientOperation, - ): StoredClientOperation => { - return { - ...patch, - oid_timestamp: createCompoundIndexValue( - patch.oid, - patch.timestamp, - ) as string, - l_t: createCompoundIndexValue(patch.isLocal, patch.timestamp) as string, - d_t: createCompoundIndexValue( - getOidRoot(patch.oid), - patch.timestamp, - ) as string, - }; - }; - - private insert = async ( - operations: StoredClientOperation[], - { transaction }: { transaction?: IDBTransaction }, - ): Promise => { - const affected = new Set(); - await this.runAll( - 'operations', - (store) => - operations.map((op) => { - affected.add(getOidRoot(op.oid)); - return store.put(op); - }), - { mode: 'readwrite', transaction }, - ); - return Array.from(affected); - }; - - reset = () => { - return this.clear('operations'); - }; -} diff --git a/packages/store/src/metadata/SchemaStore.ts b/packages/store/src/metadata/SchemaStore.ts deleted file mode 100644 index 6fbe186a..00000000 --- a/packages/store/src/metadata/SchemaStore.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { StorageSchema } from '@verdant-web/common'; -import { storeRequestPromise } from '../idb.js'; - -type StoredSchema = { - type: 'schema'; - schema: string; -}; - -export class SchemaStore { - private cached: StorageSchema | null = null; - - constructor( - private readonly db: IDBDatabase, - public readonly currentVersion: number, - ) {} - - get = async (): Promise | null> => { - if (this.cached) { - return this.cached; - } - - const db = this.db; - const transaction = db.transaction('info', 'readonly'); - const store = transaction.objectStore('info'); - const request = store.get('schema'); - const value = (await storeRequestPromise(request)) as - | StoredSchema - | undefined; - if (!value) { - return null; - } - this.cached = JSON.parse(value.schema); - return this.cached; - }; - - set = async (schema: StorageSchema): Promise => { - const db = this.db; - const transaction = db.transaction('info', 'readwrite'); - const store = transaction.objectStore('info'); - const request = store.put({ - type: 'schema', - schema: JSON.stringify(schema), - } as StoredSchema); - this.cached = schema; - await storeRequestPromise(request); - }; -} diff --git a/packages/store/src/migration/errors.ts b/packages/store/src/migration/errors.ts deleted file mode 100644 index ec79061a..00000000 --- a/packages/store/src/migration/errors.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class MigrationPathError extends Error { - readonly name = 'MigrationPathError'; - - constructor(public readonly message: string) { - super(message); - } -} diff --git a/packages/store/src/migration/openWIPDatabase.ts b/packages/store/src/migration/openWIPDatabase.ts deleted file mode 100644 index 07b1c6d9..00000000 --- a/packages/store/src/migration/openWIPDatabase.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { Migration } from '@verdant-web/common'; -import { Metadata } from '../metadata/Metadata.js'; -import { copyAll, getDatabaseVersion, openDatabase } from './db.js'; -import { runMigrations } from './migrations.js'; -import { getMigrationPath } from './paths.js'; -import { OpenDocumentDbContext } from './types.js'; - -const globalIDB = - typeof window !== 'undefined' ? window.indexedDB : (undefined as any); - -export async function openWIPDatabase({ - version, - indexedDB = globalIDB, - migrations, - meta, - context, - wipNamespace, -}: { - version: number; - migrations: Migration[]; - indexedDB?: IDBFactory; - meta: Metadata; - context: OpenDocumentDbContext; - wipNamespace: string; -}) { - context.log('debug', 'Opening WIP database', wipNamespace); - const currentWIPVersion = await getDatabaseVersion( - indexedDB, - wipNamespace, - version, - context.log, - ); - - if (currentWIPVersion === version) { - context.log('info', `WIP schema is up-to-date; not refreshing database`); - } else { - context.log('info', `WIP schema is out-of-date; refreshing database`); - - // first we need to copy the data from the production database to the WIP database - // at the current (non-wip) version. - - const initialToRun = getMigrationPath({ - currentVersion: currentWIPVersion, - targetVersion: version - 1, - migrations, - }); - - if (initialToRun.length > 0) { - await runMigrations({ - context, - toRun: initialToRun, - meta, - indexedDB, - namespace: wipNamespace, - }); - - // now, we copy the data from the main database. - const mainDatabase = await openDatabase({ - indexedDB, - namespace: context.namespace, - version: version - 1, - context, - }); - - const wipDatabase = await openDatabase({ - indexedDB, - namespace: wipNamespace, - version: version - 1, - context, - }); - await copyAll(mainDatabase, wipDatabase); - } - - const toRun = getMigrationPath({ - currentVersion: version - 1, - targetVersion: version, - migrations, - }); - - if (toRun.length > 0) { - await runMigrations({ - context, - toRun, - meta, - indexedDB, - namespace: wipNamespace, - }); - } - } - - return openDatabase({ - indexedDB, - namespace: wipNamespace, - version, - context, - }); -} diff --git a/packages/store/src/migration/types.ts b/packages/store/src/migration/types.ts deleted file mode 100644 index 4d53c382..00000000 --- a/packages/store/src/migration/types.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Context } from '../context.js'; - -/** During migration, only a partial context is available */ -export type OpenDocumentDbContext = Omit; diff --git a/packages/store/src/metadata/MessageCreator.ts b/packages/store/src/persistence/MessageCreator.ts similarity index 66% rename from packages/store/src/metadata/MessageCreator.ts rename to packages/store/src/persistence/MessageCreator.ts index 537ee3c1..5eaec00e 100644 --- a/packages/store/src/metadata/MessageCreator.ts +++ b/packages/store/src/persistence/MessageCreator.ts @@ -8,53 +8,38 @@ import { OperationMessage, pickValidOperationKeys, PresenceUpdateMessage, - SyncAckMessage, SyncMessage, VerdantInternalPresence, } from '@verdant-web/common'; -import { Metadata } from './Metadata.js'; +import { Context } from '../context/context.js'; +import { PersistenceMetadataDb } from './interfaces.js'; export class MessageCreator { - constructor(private meta: Metadata) {} + constructor( + private db: PersistenceMetadataDb, + private ctx: Pick, + ) {} createOperation = async ( init: Pick & { timestamp?: string; }, ): Promise => { - const localInfo = await this.meta.localReplica.get(); + const localInfo = await this.db.getLocalReplica(); return { type: 'op', - timestamp: this.meta.now, + timestamp: this.ctx.time.now, replicaId: localInfo.id, operations: init.operations.map(pickValidOperationKeys), }; }; - createMigrationOperation = async ({ - targetVersion, - ...init - }: Pick & { - targetVersion: number; - }): Promise => { - const localInfo = await this.meta.localReplica.get(); - return { - type: 'op', - operations: init.operations.map((op) => ({ - ...op, - timestamp: this.meta.time.zero(targetVersion), - })), - timestamp: this.meta.time.zero(targetVersion), - replicaId: localInfo.id, - }; - }; - /** * @param since - override local understanding of last sync time */ createSyncStep1 = async (since?: string | null): Promise => { - const localReplicaInfo = await this.meta.localReplica.get(); + const localReplicaInfo = await this.db.getLocalReplica(); const provideChangesSince = since === null ? null : localReplicaInfo.lastSyncedLogicalTime; @@ -64,12 +49,22 @@ export class MessageCreator { const operations: Operation[] = []; const affectedDocs = new Set(); + const tx = await this.db.transaction({ + mode: 'readwrite', + storeNames: ['operations', 'baselines'], + }); + // FIXME: this branch gives bad vibes. should we always // send all operations from other replicas too? is there // ever a case where we have a "since" timestamp and there // are foreign ops that match it? if (provideChangesSince) { - await this.meta.operations.iterateOverAllLocalOperations( + this.ctx.log( + 'debug', + 'Syncing local operations since', + provideChangesSince, + ); + await this.db.iterateLocalOperations( (patch) => { operations.push(pickValidOperationKeys(patch)); affectedDocs.add(getOidRoot(patch.oid)); @@ -77,32 +72,47 @@ export class MessageCreator { { after: provideChangesSince, // block on writes to prevent race conditions - mode: 'readwrite', + transaction: tx, }, ); } else { + this.ctx.log('debug', 'Syncing all operations'); // if providing the whole history, don't limit to only local // operations - await this.meta.operations.iterateOverAllOperations( + await this.db.iterateAllOperations( (patch) => { operations.push(pickValidOperationKeys(patch)); affectedDocs.add(getOidRoot(patch.oid)); }, { - mode: 'readwrite', + transaction: tx, }, ); } // we only need to send baselines if we've never synced before let baselines: DocumentBaseline[] = []; if (!provideChangesSince) { - baselines = await this.meta.baselines.getAllSince(''); + await this.db.iterateAllBaselines( + (b) => { + baselines.push(b); + }, + { + transaction: tx, + }, + ); + } + + if (operations.length > 0) { + this.ctx.log( + 'debug', + `Syncing ${operations.length} operations since ${provideChangesSince}`, + ); } return { type: 'sync', - schemaVersion: this.meta.schema.currentVersion, - timestamp: this.meta.now, + schemaVersion: this.ctx.schema.version, + timestamp: this.ctx.time.now, replicaId: localReplicaInfo.id, resyncAll: !localReplicaInfo.lastSyncedLogicalTime, operations, @@ -115,7 +125,7 @@ export class MessageCreator { presence?: any; internal?: VerdantInternalPresence; }): Promise => { - const localReplicaInfo = await this.meta.localReplica.get(); + const localReplicaInfo = await this.db.getLocalReplica(); return { type: 'presence-update', presence: data.presence, @@ -125,19 +135,19 @@ export class MessageCreator { }; createHeartbeat = async (): Promise => { - const localReplicaInfo = await this.meta.localReplica.get(); + const localReplicaInfo = await this.db.getLocalReplica(); return { type: 'heartbeat', - timestamp: this.meta.now, + timestamp: this.ctx.time.now, replicaId: localReplicaInfo.id, }; }; createAck = async (nonce: string): Promise => { - const localReplicaInfo = await this.meta.localReplica.get(); + const localReplicaInfo = await this.db.getLocalReplica(); return { type: 'ack', - timestamp: this.meta.now, + timestamp: this.ctx.time.now, replicaId: localReplicaInfo.id, nonce, }; diff --git a/packages/store/src/persistence/PersistenceFiles.ts b/packages/store/src/persistence/PersistenceFiles.ts new file mode 100644 index 00000000..0f55a754 --- /dev/null +++ b/packages/store/src/persistence/PersistenceFiles.ts @@ -0,0 +1,227 @@ +import { FileData, FileRef } from '@verdant-web/common'; +import { Context, FileConfig } from '../context/context.js'; +import { PersistedFileData, PersistenceFileDb } from './interfaces.js'; +import { Disposable } from '../utils/Disposable.js'; + +export class PersistenceFiles extends Disposable { + constructor( + private db: PersistenceFileDb, + private context: Omit, + ) { + super(); + context.internalEvents.subscribe('filesDeleted', this.onFileRefsDeleted); + this.compose(this.db); + // on startup, try deleting old files. + this.cleanupDeletedFiles(); + } + + private get config(): Required { + return { + canCleanupDeletedFile(fileData) { + return ( + fileData.deletedAt !== null && + fileData.deletedAt < Date.now() - 1000 * 60 * 24 * 3 + ); + }, + ...this.context.config.files, + }; + } + + onServerReset = (since: string | null) => + this.db.resetSyncedStatusSince(since); + add = async (file: FileData, options?: { downloadRemote?: boolean }) => { + // this method accepts a FileData which refers to a remote + // file, as well as local files. in the case of a remote file, + // we actually re-download and upload the file again. this powers + // the cloning of documents with files; we clone their filedata + // and re-upload to a new file ID. otherwise, when the cloned + // filedata was marked deleted, the original file would be deleted + // and the clone would refer to a missing file. + if (file.url && !file.file) { + this.context.log( + 'debug', + 'Remote file added to an entity. This usually means an entity was cloned. Downloading remote file...', + file.id, + ); + const blob = await this.context.files.downloadRemoteFile(file.url, 0, 3); + // convert blob to file with name and type + file.file = new File([blob], file.name, { type: file.type }); + } else if (!file.file) { + this.context.log( + 'warn', + 'File added without a file or URL. This file will not be available for use.', + file.id, + ); + } + + file.remote = false; + // fire event for processing immediately + this.context.internalEvents.emit('fileAdded', file); + // store in persistence db + await this.db.add(file, options); + this.context.log( + 'debug', + 'File added', + file.id, + file.name, + file.type, + file.file ? 'with binary file' : file.url ? 'with url' : 'with no data', + ); + }; + onUploaded = this.db.markUploaded.bind(this.db); + get = this.db.get.bind(this.db); + getAll = this.db.getAll.bind(this.db); + listUnsynced = this.db.listUnsynced.bind(this.db); + iterateOverPendingDelete = this.db.iterateOverPendingDelete.bind(this.db); + stats = this.db.stats.bind(this.db); + + private getFileExportName = (originalFileName: string, id: string) => { + return `${id}___${originalFileName}`; + }; + export = async (downloadRemote = false) => { + const storedFiles = await this.getAll(); + if (downloadRemote) { + for (const storedFile of storedFiles) { + // if it doesn't have a buffer, we need to read one from the server + if (!storedFile.file && storedFile.url) { + try { + const blob = await this.downloadRemoteFile(storedFile.url); + storedFile.file = blob; + } catch (err) { + this.context.log( + 'error', + "Failed to download file to cache it locally. The file will still be available using its URL. Check the file server's CORS configuration.", + err, + ); + } + } + } + } + // split files into data and files + const fileData: Array> = []; + const files: Array = []; + + for (const fileExport of storedFiles) { + const file = fileExport.file; + delete fileExport.file; + fileData.push(fileExport); + if (file) { + // rename with ID + const asFile = new File( + [file], + this.getFileExportName(fileExport.name, fileExport.id), + { + type: fileExport.type, + }, + ); + files.push(asFile); + } else { + this.context.log( + 'warn', + `File ${fileExport.id} was could not be loaded locally or from the server. It will be missing in the export.`, + ); + } + } + return { + fileData, + files, + }; + }; + + import = async ({ + fileData, + files, + }: { + fileData: Array>; + files: File[]; + }) => { + // re-attach files to their file data and import + const fileToIdMap = new Map( + files.map((file) => { + const { id } = this.parseFileExportname(file.name); + return [id, file]; + }), + ); + const importedFiles: PersistedFileData[] = fileData.map((fileData) => { + const file = fileToIdMap.get(fileData.id); + + if (!file) { + this.context.log('warn', `File ${fileData.id} was not found in import`); + return fileData; + } + + return { + ...fileData, + file, + }; + }); + await Promise.all(importedFiles.map((file) => this.add(file))); + }; + + private parseFileExportname = (name: string) => { + const [id, originalFileName] = name.split('___'); + return { id, originalFileName }; + }; + + downloadRemoteFile = async (url: string, retries = 0, maxRetries = 0) => { + const resp = await fetch(url, { + method: 'GET', + credentials: 'include', + }); + if (!resp.ok) { + if (retries < maxRetries) { + return new Promise((resolve, reject) => { + setTimeout(() => { + this.downloadRemoteFile(url, retries + 1, maxRetries).then( + resolve, + reject, + ); + }, 1000); + }); + } else { + throw new Error( + `Failed to download file after ${maxRetries} retries (status: ${resp.status})`, + ); + } + } + return await resp.blob(); + }; + + cleanupDeletedFiles = async () => { + let count = 0; + let skipCount = 0; + await this.iterateOverPendingDelete((fileData, store) => { + if (this.config.canCleanupDeletedFile(fileData)) { + count++; + store.delete(fileData.id); + } else { + skipCount++; + } + }); + + this.context.log( + 'info', + `Cleaned up ${count} files, skipped ${skipCount} files`, + ); + }; + + private onFileRefsDeleted = async (fileRefs: FileRef[]) => { + const tx = this.db.transaction({ + mode: 'readwrite', + storeNames: ['files'], + }); + await Promise.all( + fileRefs.map(async (fileRef) => { + try { + await this.db.markPendingDelete(fileRef.id, { transaction: tx }); + } catch (err) { + this.context.log('error', 'Failed to mark file for deletion', err); + } + }), + ); + this.context.log( + 'info', + `Marked ${fileRefs.length} files as pending delete`, + ); + }; +} diff --git a/packages/store/src/persistence/PersistenceMetadata.ts b/packages/store/src/persistence/PersistenceMetadata.ts new file mode 100644 index 00000000..0c281cdb --- /dev/null +++ b/packages/store/src/persistence/PersistenceMetadata.ts @@ -0,0 +1,425 @@ +import { + applyPatch, + assert, + assignOid, + ClientMessage, + DocumentBaseline, + EventSubscriber, + getOidRoot, + ObjectIdentifier, + Operation, + substituteRefsWithObjects, +} from '@verdant-web/common'; +import { + AbstractTransaction, + ClientOperation, + CommonQueryOptions, + MetadataExport, + PersistenceMetadataDb, +} from './interfaces.js'; +import { InitialContext } from '../context/context.js'; +import { PersistenceRebaser } from './PersistenceRebaser.js'; +import { MessageCreator } from './MessageCreator.js'; +import { Disposable } from '../utils/Disposable.js'; + +export class PersistenceMetadata extends Disposable { + private rebaser: PersistenceRebaser; + /** Available to others, like sync... */ + readonly messageCreator: MessageCreator; + readonly events = new EventSubscriber<{ + syncMessage: (message: ClientMessage) => void; + }>(); + + constructor( + private db: PersistenceMetadataDb, + private ctx: InitialContext, + ) { + super(); + this.rebaser = new PersistenceRebaser(db, ctx); + this.messageCreator = new MessageCreator(db, ctx); + this.compose(this.db); + } + + private insertOperations = async ( + operations: ClientOperation[], + options?: { transaction?: AbstractTransaction }, + ) => { + this.ctx.log( + 'debug', + `Inserting ${operations.length} operations`, + operations, + ); + + const affectedDocumentOids = await this.db.addOperations( + operations, + options, + ); + + for (const op of operations) { + this.ctx.globalEvents.emit('operation', op); + } + + // we can now enqueue and check for rebase opportunities + if (!this.ctx.config.persistence?.disableRebasing) { + this.rebaser.tryAutonomousRebase(); + } + + return affectedDocumentOids; + }; + + private insertLocalOperations = async ( + operations: Operation[], + options?: { transaction?: AbstractTransaction }, + ) => { + if (operations.length === 0) return; + + // add local flag, in place. + for (const operation of operations) { + (operation as ClientOperation).isLocal = true; + } + await this.insertOperations(operations as ClientOperation[], options); + + const message = await this.messageCreator.createOperation({ operations }); + this.events.emit('syncMessage', message); + }; + + private insertRemoteOperations = async ( + operations: Operation[], + options?: { transaction?: AbstractTransaction }, + ) => { + if (operations.length === 0) return []; + + // add local flag, in place + for (const operation of operations) { + (operation as ClientOperation).isLocal = false; + } + + await this.insertOperations(operations as ClientOperation[], options); + + this.ack(operations[operations.length - 1].timestamp); + }; + + private insertRemoteBaselines = async ( + baselines: DocumentBaseline[], + options?: { transaction?: AbstractTransaction }, + ) => { + if (baselines.length === 0) return []; + this.ctx.log('debug', `Inserting ${baselines.length} remote baselines`); + + await this.db.setBaselines(baselines, options); + + // this.ack(baselines[baselines.length - 1].timestamp); + + const affectedOidSet = new Set(); + baselines.forEach((baseline) => { + affectedOidSet.add(getOidRoot(baseline.oid)); + }); + + return Array.from(affectedOidSet); + }; + + deleteDocument = async (rootOid: string) => { + const oids = new Set(); + const documentOid = getOidRoot(rootOid); + assert(documentOid === rootOid, 'Must be root document OID'); + oids.add(documentOid); + // readwrite mode to block on other write transactions + const transaction = this.db.transaction({ + storeNames: ['baselines', 'operations'], + }); + await Promise.all([ + this.db.iterateDocumentBaselines( + documentOid, + (baseline) => { + oids.add(baseline.oid); + }, + { transaction }, + ), + this.db.iterateDocumentOperations( + documentOid, + (patch) => { + oids.add(patch.oid); + }, + { transaction }, + ), + ]); + const authz = await this.getDocumentAuthz(documentOid); + const ops = new Array(); + for (const oid of oids) { + ops.push({ + oid, + timestamp: this.ctx.time.now, + data: { op: 'delete' }, + authz, + }); + } + return this.insertLocalOperations(ops); + }; + + deleteCollection = async (collection: string) => { + const oids = new Set(); + const transaction = this.db.transaction({ + storeNames: ['baselines', 'operations'], + mode: 'readwrite', + }); + await Promise.all([ + this.db.iterateCollectionBaselines( + collection, + (baseline) => { + oids.add(baseline.oid); + }, + { transaction }, + ), + this.db.iterateCollectionOperations( + collection, + (patch) => { + oids.add(patch.oid); + }, + { transaction }, + ), + ]); + + const ops = new Array(); + for (const oid of oids) { + ops.push({ + oid, + timestamp: this.ctx.time.now, + data: { op: 'delete' }, + authz: undefined, + }); + } + + return this.insertLocalOperations(ops); + }; + + getDocumentSnapshot = async ( + oid: ObjectIdentifier, + options: { to?: string } = {}, + ) => { + const documentOid = getOidRoot(oid); + assert(documentOid === oid, 'Must be root document OID'); + const transaction = this.db.transaction({ + storeNames: ['baselines', 'operations'], + mode: 'readwrite', + }); + const baselines: DocumentBaseline[] = []; + await this.db.iterateDocumentBaselines( + documentOid, + (b) => { + baselines.push(b); + }, + { + transaction, + }, + ); + const objectMap = new Map(); + for (const baseline of baselines) { + if (baseline.snapshot) { + assignOid(baseline.snapshot, baseline.oid); + } + objectMap.set(baseline.oid, baseline.snapshot); + } + await this.db.iterateDocumentOperations( + documentOid, + (op) => { + const obj = objectMap.get(op.oid) || undefined; + const newObj = applyPatch(obj, op.data); + if (newObj) { + assignOid(newObj, op.oid); + } + objectMap.set(op.oid, newObj); + }, + { + transaction, + // only apply operations up to the current time + to: options.to || this.ctx.time.now, + }, + ); + const root = objectMap.get(documentOid); + if (root) { + substituteRefsWithObjects(root, objectMap); + } + return root; + }; + + getDocumentData = async ( + oid: ObjectIdentifier, + options?: { abort?: AbortSignal }, + ) => { + const transaction = this.db.transaction({ + storeNames: ['baselines', 'operations'], + abort: options?.abort, + }); + const baselines: DocumentBaseline[] = []; + const operations: Record = {}; + await Promise.all([ + this.db.iterateDocumentBaselines( + oid, + (baseline) => { + baselines.push(baseline); + }, + { + transaction, + }, + ), + this.db.iterateDocumentOperations( + oid, + (op) => { + operations[op.oid] ??= []; + operations[op.oid].push(op); + }, + { transaction }, + ), + ]); + return { + baselines, + operations, + }; + }; + + getDocumentAuthz = async (oid: ObjectIdentifier) => { + let authz; + await this.db.iterateEntityOperations(oid, (op) => { + if (op.data.op === 'initialize') { + authz = op.authz; + return true; + } + }); + return authz; + }; + + insertData = async ( + data: { + baselines?: DocumentBaseline[]; + operations?: Operation[]; + isLocal?: boolean; + }, + options?: { abort?: AbortSignal }, + ) => { + const transaction = this.db.transaction({ + storeNames: ['baselines', 'operations'], + abort: options?.abort, + mode: 'readwrite', + }); + if (data.baselines) { + await this.insertRemoteBaselines(data.baselines, { transaction }); + } + if (options?.abort?.aborted) return; + if (data.operations) { + if (data.isLocal) { + await this.insertLocalOperations(data.operations, { transaction }); + } else { + await this.insertRemoteOperations(data.operations, { transaction }); + } + } + }; + + updateLastSynced = async (timestamp: string) => { + if (this.ctx.closing) return; + + return this.db.updateLocalReplica({ + lastSyncedLogicalTime: timestamp, + }); + }; + setGlobalAck = async (ack: string) => { + if (this.ctx.closing) return; + await this.db.setGlobalAck(ack); + if (!this.ctx.config.persistence?.disableRebasing) { + await this.rebaser.scheduleRebase(ack); + } + }; + + getLocalReplica = async (options?: CommonQueryOptions) => { + return this.db.getLocalReplica(options); + }; + + // used to construct sync messages + iterateLocalOperations = this.db.iterateLocalOperations; + iterateAllOperations = this.db.iterateAllOperations; + iterateAllBaselines = this.db.iterateAllBaselines; + + reset = this.db.reset; + stats = this.db.stats; + + export = async (): Promise => { + const db = this.db; + const baselines = new Array(); + const operations = new Array(); + const transaction = db.transaction({ + storeNames: ['baselines', 'operations'], + mode: 'readwrite', + }); + await this.iterateAllOperations( + (op) => { + operations.push(op); + }, + { transaction }, + ); + await this.iterateAllBaselines( + (baseline) => { + baselines.push(baseline); + }, + { transaction }, + ); + const localReplica = await this.db.getLocalReplica(); + return { + operations, + baselines, + localReplica, + schemaVersion: this.ctx.schema.version, + }; + }; + + resetFrom = async (data: MetadataExport) => { + const db = this.db; + const transaction = db.transaction({ + storeNames: ['baselines', 'operations', 'info'], + mode: 'readwrite', + }); + await this.db.reset({ clearReplica: true, transaction }); + if (data.localReplica) { + await this.db.updateLocalReplica( + { + ackedLogicalTime: data.localReplica.ackedLogicalTime, + lastSyncedLogicalTime: data.localReplica.lastSyncedLogicalTime, + }, + { transaction }, + ); + } + this.ctx.log('debug', 'Resetting metadata from export', data); + await this.insertData({ + operations: data.operations, + baselines: data.baselines, + isLocal: true, + }); + }; + + manualRebase = async () => { + if (this.ctx.closing || this.ctx.config.persistence?.disableRebasing) + return; + const ackInfo = await this.db.getAckInfo(); + if (ackInfo.globalAckTimestamp) { + await this.rebaser.scheduleRebase(ackInfo.globalAckTimestamp); + } + }; + + private ack = async (timestamp: string) => { + const localReplicaInfo = await this.db.getLocalReplica(); + // can't ack timestamps from the future. + if (timestamp > this.ctx.time.now) return; + + this.events.emit('syncMessage', { + type: 'ack', + replicaId: localReplicaInfo.id, + timestamp, + }); + + if ( + !this.ctx.closing && + (!localReplicaInfo.ackedLogicalTime || + timestamp > localReplicaInfo.ackedLogicalTime) + ) { + this.db.updateLocalReplica({ ackedLogicalTime: timestamp }); + } + }; +} diff --git a/packages/store/src/persistence/PersistenceQueries.ts b/packages/store/src/persistence/PersistenceQueries.ts new file mode 100644 index 00000000..f96e2ea0 --- /dev/null +++ b/packages/store/src/persistence/PersistenceQueries.ts @@ -0,0 +1,22 @@ +import { PersistenceQueryDb } from './interfaces.js'; +import { Context } from '../context/context.js'; +import { Disposable } from '../utils/Disposable.js'; + +export class PersistenceQueries extends Disposable { + constructor( + private db: PersistenceQueryDb, + private ctx: Omit, + ) { + super(); + this.compose(this.db); + } + + reset = this.db.reset.bind(this.db); + + saveEntities = this.db.saveEntities; + + findOneOid = this.db.findOneOid.bind(this.db); + findAllOids = this.db.findAllOids.bind(this.db); + + stats = this.db.stats.bind(this.db); +} diff --git a/packages/store/src/persistence/PersistenceRebaser.ts b/packages/store/src/persistence/PersistenceRebaser.ts new file mode 100644 index 00000000..4b0f6258 --- /dev/null +++ b/packages/store/src/persistence/PersistenceRebaser.ts @@ -0,0 +1,171 @@ +import { + applyPatch, + assignOid, + isFileRef, + ObjectIdentifier, + Ref, +} from '@verdant-web/common'; +import { Context } from '../context/context.js'; +import { AbstractTransaction, PersistenceMetadataDb } from './interfaces.js'; + +export class PersistenceRebaser { + constructor( + private db: PersistenceMetadataDb, + private ctx: Pick< + Context, + 'closing' | 'log' | 'time' | 'internalEvents' | 'globalEvents' | 'config' + >, + ) {} + + /** + * Autonomous rebases are only allowed for clients who have never synced. They + * keep storage clean for non-syncing clients by compressing history. + */ + tryAutonomousRebase = async () => { + const localReplicaInfo = await this.db.getLocalReplica(); + if (localReplicaInfo.lastSyncedLogicalTime) return; // cannot autonomously rebase if we've synced + // but if we have never synced... we can rebase everything! + await this.runRebase(this.ctx.time.now); + }; + + /** + * Attempt to autonomously rebase local documents without server intervention. + * This can currently only happen for a client who has never synced before. + * The goal is to allow local-only clients to compress their history to exactly + * their undo stack. + */ + private runRebase = async (globalAckTimestamp: string) => { + if (this.ctx.closing) return; + + // find all operations before the global ack + let lastTimestamp; + const toRebase = new Set(); + const transaction = this.db.transaction({ + storeNames: ['baselines', 'operations'], + mode: 'readwrite', + }); + let operationCount = 0; + await this.db.iterateAllOperations( + (patch) => { + toRebase.add(patch.oid); + lastTimestamp = patch.timestamp; + operationCount++; + }, + { + before: globalAckTimestamp, + transaction, + }, + ); + + if (!toRebase.size) { + return; + } + + if (this.ctx.closing) { + return; + } + + // rebase each affected document + let newBaselines = []; + for (const oid of toRebase) { + newBaselines.push( + await this.rebase( + oid, + lastTimestamp || globalAckTimestamp, + transaction, + ), + ); + } + this.ctx.globalEvents.emit('rebase'); + }; + + /** + * Debounces rebase attempts to avoid thrashing the database with + * rebase operations. + */ + scheduleRebase = async (timestamp: string) => { + if (this.rebaseTimeout) { + clearTimeout(this.rebaseTimeout); + } + this.rebaseTimeout = setTimeout( + this.runRebase, + this.ctx.config.persistence?.rebaseTimeout ?? 10000, + timestamp, + ); + }; + private rebaseTimeout: NodeJS.Timeout | null = null; + + rebase = async ( + oid: ObjectIdentifier, + upTo: string, + providedTx?: AbstractTransaction, + ) => { + const transaction = + providedTx || + this.db.transaction({ + storeNames: ['operations', 'baselines'], + mode: 'readwrite', + }); + const baseline = await this.db.getBaseline(oid, { transaction }); + let current: any = baseline?.snapshot || undefined; + let operationsApplied = 0; + let authz = baseline?.authz; + const deletedRefs: Ref[] = []; + await this.db.consumeEntityOperations( + oid, + (patch) => { + // FIXME: this seems like the wrong place to do this + // but it's here as a safety measure... + if (!baseline || patch.timestamp > baseline.timestamp) { + current = applyPatch(current, patch.data, deletedRefs); + if (patch.data.op === 'initialize') { + authz = patch.authz; + } + } + // delete all prior operations to the baseline + operationsApplied++; + }, + { + to: upTo, + transaction, + }, + ); + if (current) { + assignOid(current, oid); + } + const newBaseline = { + oid, + snapshot: current, + timestamp: upTo, + authz, + }; + if (newBaseline.snapshot) { + await this.db.setBaselines([newBaseline], { transaction }); + } else { + await this.db.deleteBaseline(oid, { transaction }); + } + + this.ctx.log( + 'debug', + 'rebased', + oid, + 'up to', + upTo, + ':', + current, + 'and deleted', + operationsApplied, + 'operations', + ); + + // cleanup deleted refs + if (deletedRefs.length) { + const fileRefs = deletedRefs.filter(isFileRef); + if (fileRefs.length) { + this.ctx.internalEvents.emit('filesDeleted', fileRefs); + } + } + + return newBaseline; + }; +} diff --git a/packages/store/src/IDBService.ts b/packages/store/src/persistence/idb/IdbService.ts similarity index 72% rename from packages/store/src/IDBService.ts rename to packages/store/src/persistence/idb/IdbService.ts index 7f37cc26..3911f53c 100644 --- a/packages/store/src/IDBService.ts +++ b/packages/store/src/persistence/idb/IdbService.ts @@ -1,12 +1,13 @@ -import { Context } from './context.js'; +import { Context } from '../../context/context.js'; import { + copyDatabase, createAbortableTransaction, isAbortError, storeRequestPromise, -} from './idb.js'; -import { Disposable } from './utils/Disposable.js'; +} from './util.js'; +import { Disposable } from '../../utils/Disposable.js'; -export class IDBService extends Disposable { +export class IdbService extends Disposable { protected log?: Context['log']; private globalAbortController = new AbortController(); @@ -19,6 +20,10 @@ export class IDBService extends Disposable { this.addDispose(() => { this.globalAbortController.abort(); }); + this.db.addEventListener('versionchange', this.onVersionChange); + this.addDispose(() => { + this.db.removeEventListener('versionchange', this.onVersionChange); + }); } createTransaction = ( @@ -45,7 +50,7 @@ export class IDBService extends Disposable { return tx; }; - run = async ( + run = async ( storeName: string, getRequest: (store: IDBObjectStore) => IDBRequest, opts?: { @@ -66,7 +71,7 @@ export class IDBService extends Disposable { storeName: string, getRequests: (store: IDBObjectStore) => IDBRequest[], opts?: { - mode: 'readonly' | 'readwrite'; + mode?: 'readonly' | 'readwrite'; transaction?: IDBTransaction; abort?: AbortSignal; }, @@ -80,8 +85,16 @@ export class IDBService extends Disposable { iterate = async ( storeName: string, - getRequest: (store: IDBObjectStore) => IDBRequest | IDBRequest[], - iterator: (value: T, store: IDBObjectStore) => boolean | void, + getRequest: ( + store: IDBObjectStore, + ) => + | IDBRequest + | IDBRequest[], + iterator: ( + value: T, + store: IDBObjectStore, + cursor: IDBCursorWithValue, + ) => boolean | void, opts?: { mode?: 'readonly' | 'readwrite'; transaction?: IDBTransaction; @@ -98,8 +111,12 @@ export class IDBService extends Disposable { req.onsuccess = () => { const cursor = req.result; if (cursor) { - iterator(cursor.value, store); - cursor.continue(); + const stop = iterator(cursor.value, store, cursor); + if (stop) { + resolve(); + } else { + cursor.continue(); + } } else { resolve(); } @@ -119,7 +136,7 @@ export class IDBService extends Disposable { request.onsuccess = () => { const cursor = request.result as IDBCursorWithValue | null; if (cursor) { - const stop = iterator(cursor.value, store); + const stop = iterator(cursor.value, store, cursor); if (stop) { resolve(); } else { @@ -139,9 +156,25 @@ export class IDBService extends Disposable { }); }; - clear = (storeName: string) => { + clear = (storeName: string, transaction?: IDBTransaction) => { return this.run(storeName, (store) => store.clear(), { mode: 'readwrite', + transaction, }); }; + + cloneTo = async (otherDb: IDBDatabase) => { + await copyDatabase(this.db, otherDb); + }; + + private onVersionChange = () => { + this.log?.( + 'warn', + `Another tab has requested a version change for ${this.db.name}`, + ); + this.db.close(); + if (typeof window !== 'undefined') { + window.location.reload(); + } + }; } diff --git a/packages/store/src/files/FileStorage.ts b/packages/store/src/persistence/idb/files/IdbPersistenceFileDb.ts similarity index 52% rename from packages/store/src/files/FileStorage.ts rename to packages/store/src/persistence/idb/files/IdbPersistenceFileDb.ts index 1bb7baef..aa7b78cb 100644 --- a/packages/store/src/files/FileStorage.ts +++ b/packages/store/src/persistence/idb/files/IdbPersistenceFileDb.ts @@ -1,7 +1,12 @@ import { FileData } from '@verdant-web/common'; -import { IDBService } from '../IDBService.js'; -import { fileToArrayBuffer } from './utils.js'; -import { getAllFromObjectStores, getSizeOfObjectStore } from '../idb.js'; +import { + AbstractTransaction, + PersistedFileData, + PersistenceFileDb, + QueryMode, +} from '../../interfaces.js'; +import { IdbService } from '../IdbService.js'; +import { getAllFromObjectStores, getSizeOfObjectStore } from '../util.js'; /** * When stored in IDB, replace the file blob with an array buffer @@ -15,20 +20,27 @@ export interface StoredFileData extends Omit { timestamp?: string; } -export interface ReturnedFileData extends FileData { - deletedAt: number | null; -} +export class IdbPersistenceFileDb + extends IdbService + implements PersistenceFileDb +{ + transaction = (opts: { + mode?: QueryMode; + storeNames: string[]; + abort?: AbortSignal; + }): AbstractTransaction => { + return this.createTransaction(opts.storeNames, { + mode: opts.mode, + abort: opts.abort, + }); + }; -export class FileStorage extends IDBService { - addFile = async ( + add = async ( file: FileData, - { - transaction, - downloadRemote = false, - }: { transaction?: IDBTransaction; downloadRemote?: boolean } = {}, - ) => { + options?: { transaction?: AbstractTransaction; downloadRemote?: boolean }, + ): Promise => { let buffer = file.file ? await fileToArrayBuffer(file.file) : undefined; - if (!buffer && downloadRemote && file.url) { + if (!buffer && options?.downloadRemote && file.url) { try { buffer = await fetch(file.url, { method: 'GET', @@ -41,7 +53,7 @@ export class FileStorage extends IDBService { ); } } - return this.run( + await this.run( 'files', (store) => { return store.put({ @@ -53,33 +65,25 @@ export class FileStorage extends IDBService { type: file.type, url: file.url, buffer, - } as StoredFileData); + } satisfies StoredFileData); + }, + { + mode: 'readwrite', + transaction: options?.transaction as IDBTransaction, }, - { mode: 'readwrite', transaction }, ); }; - - private hydrateFileData = (raw: StoredFileData): ReturnedFileData => { - (raw as any).remote = raw.remote === 'true'; - const buffer = raw.buffer; - delete raw.buffer; - (raw as unknown as FileData).file = buffer - ? arrayBufferToBlob(buffer, raw.type) - : undefined; - return raw as unknown as ReturnedFileData; - }; - markUploaded = async ( id: string, - { transaction }: { transaction?: IDBTransaction } = {}, - ) => { - const current = await this.getFileRaw(id, { transaction }); + options?: { transaction?: AbstractTransaction }, + ): Promise => { + const current = await this.getFileRaw(id, options); if (!current) { throw new Error('File is not in local database'); } - return this.run( + await this.run( 'files', (store) => { return store.put({ @@ -87,62 +91,48 @@ export class FileStorage extends IDBService { remote: 'true', } as StoredFileData); }, - { mode: 'readwrite', transaction }, - ); - }; - - private getFileRaw = async ( - id: string, - { transaction }: { transaction?: IDBTransaction } = {}, - ): Promise => { - const raw = await this.run( - 'files', - (store) => { - return store.get(id); + { + mode: 'readwrite', + transaction: options?.transaction as IDBTransaction, }, - { mode: 'readonly', transaction }, ); - if (!raw) { - return undefined; - } - return raw; }; - - getFile = async ( - id: string, - { transaction }: { transaction?: IDBTransaction } = {}, - ): Promise => { - const raw = await this.getFileRaw(id, { transaction }); + get = async ( + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise => { + const raw = await this.getFileRaw(fileId, options); if (!raw) { - return undefined; + return null; } return this.hydrateFileData(raw); }; - - deleteFile( - id: string, - { transaction }: { transaction?: IDBTransaction } = {}, - ) { + delete = ( + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise => { return this.run( 'files', (store) => { - return store.delete(id); + return store.delete(fileId); + }, + { + mode: 'readwrite', + transaction: options?.transaction as IDBTransaction, }, - { mode: 'readwrite', transaction }, ); - } - + }; markPendingDelete = async ( - id: string, - { transaction }: { transaction?: IDBTransaction } = {}, - ) => { - const current = await this.getFileRaw(id, { transaction }); + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise => { + const current = await this.getFileRaw(fileId, options); if (!current) { throw new Error('File is not in local database'); } - return this.run( + await this.run( 'files', (store) => { return store.put({ @@ -150,23 +140,31 @@ export class FileStorage extends IDBService { deletedAt: Date.now(), } as StoredFileData); }, - { mode: 'readwrite', transaction }, + { + mode: 'readwrite', + transaction: options?.transaction as IDBTransaction, + }, ); }; - - listUnsynced = async () => { + listUnsynced = async (options?: { + transaction?: AbstractTransaction; + }): Promise => { const raw = await this.run( 'files', (store) => { return store.index('remote').getAll('false'); }, - { mode: 'readonly' }, + { mode: 'readonly', transaction: options?.transaction as IDBTransaction }, ); return raw.map(this.hydrateFileData); }; - - resetSyncedStatusSince = async (since: string | null) => { - const tx = this.createTransaction(['files'], { mode: 'readwrite' }); + resetSyncedStatusSince = async ( + since: string | null, + options?: { transaction?: AbstractTransaction }, + ): Promise => { + const tx: IDBTransaction = + (options?.transaction as any) ?? + this.createTransaction(['files'], { mode: 'readwrite' }); const raw = await this.run( 'files', (store) => { @@ -194,11 +192,10 @@ export class FileStorage extends IDBService { }), ); }; - iterateOverPendingDelete = ( - iterator: (file: ReturnedFileData, store: IDBObjectStore) => void, - transaction?: IDBTransaction, - ) => { + iterator: (file: PersistedFileData, store: IDBObjectStore) => void, + options?: { transaction?: IDBTransaction }, + ): Promise => { return this.iterate( 'files', (store) => { @@ -209,22 +206,67 @@ export class FileStorage extends IDBService { (value, store) => { iterator(this.hydrateFileData(value), store); }, - { mode: 'readwrite', transaction }, + { + mode: 'readwrite', + transaction: options?.transaction as IDBTransaction, + }, ); }; - - getAll = async () => { + getAll = async (options?: { + transaction?: AbstractTransaction; + }): Promise => { const [files] = await getAllFromObjectStores(this.db, ['files']); return files.map(this.hydrateFileData); }; - - stats = async () => { + stats = async (): Promise<{ size: { count: number; size: number } }> => { return { size: await getSizeOfObjectStore(this.db, 'files'), }; }; + + private hydrateFileData = (raw: StoredFileData): PersistedFileData => { + (raw as any).remote = raw.remote === 'true'; + const buffer = raw.buffer; + delete raw.buffer; + (raw as unknown as FileData).file = buffer + ? arrayBufferToBlob(buffer, raw.type) + : undefined; + return raw as unknown as PersistedFileData; + }; + + private getFileRaw = async ( + id: string, + { transaction }: { transaction?: AbstractTransaction } = {}, + ): Promise => { + const raw = await this.run( + 'files', + (store) => { + return store.get(id); + }, + { mode: 'readonly', transaction: transaction as IDBTransaction }, + ); + if (!raw) { + return undefined; + } + return raw; + }; } export function arrayBufferToBlob(buffer: ArrayBuffer, type: string) { return new Blob([buffer], { type }); } + +function fileToArrayBuffer(file: File | Blob): Promise { + // special case for testing... + if ('__testReadBuffer' in file) { + return Promise.resolve(file.__testReadBuffer); + } + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => { + resolve(reader.result as ArrayBuffer); + }; + reader.onerror = reject; + reader.readAsArrayBuffer(file); + }); +} diff --git a/packages/store/src/persistence/idb/idbPersistence.ts b/packages/store/src/persistence/idb/idbPersistence.ts new file mode 100644 index 00000000..96f59705 --- /dev/null +++ b/packages/store/src/persistence/idb/idbPersistence.ts @@ -0,0 +1,116 @@ +import { Context, InitialContext } from '../../context/context.js'; +import { PersistenceImplementation, PersistenceFileDb } from '../interfaces.js'; +import { IdbPersistenceFileDb } from './files/IdbPersistenceFileDb.js'; +import { IdbMetadataDb } from './metadata/IdbMetadataDb.js'; +import { openMetadataDatabase } from './metadata/openMetadataDatabase.js'; +import { IdbQueryDb } from './queries/IdbQueryDb.js'; +import { openQueryDatabase } from './queries/migration/openQueryDatabase.js'; +import { PersistenceMetadata } from '../PersistenceMetadata.js'; +import { + closeDatabase, + deleteDatabase, + getMetadataDbName, + getNamespaceFromDatabaseInfo, + getSizesOfAllObjectStores, +} from './util.js'; +import { getDatabaseVersion } from './queries/migration/db.js'; + +export class IdbPersistence implements PersistenceImplementation { + private metadataDb: IDBDatabase | undefined; + constructor(private indexedDB: IDBFactory = window.indexedDB) {} + + getNamespaces = async (): Promise => { + // list all idb database names + const dbs = await this.indexedDB.databases(); + return Array.from( + new Set( + dbs.map(getNamespaceFromDatabaseInfo).filter((n): n is string => !!n), + ), + ); + }; + + getNamespaceVersion = async (namespace: string): Promise => { + return getDatabaseVersion(this.indexedDB, namespace); + }; + + deleteNamespace = async ( + namespace: string, + ctx: InitialContext, + ): Promise => { + await Promise.all([ + deleteDatabase(getMetadataDbName(namespace), this.indexedDB), + deleteDatabase([namespace, 'collections'].join('_'), this.indexedDB), + ]); + }; + + openFiles( + ctx: Omit, + ): Promise { + if (!this.metadataDb) { + throw new Error( + 'Metadata database must be opened first. This is a bug in Verdant.', + ); + } + return Promise.resolve(new IdbPersistenceFileDb(this.metadataDb, ctx)); + } + + openMetadata = async (ctx: InitialContext) => { + const { db } = await openMetadataDatabase({ + indexedDB: this.indexedDB, + log: ctx.log, + namespace: ctx.namespace, + }); + this.metadataDb = db; + return new IdbMetadataDb(db, ctx); + }; + + openQueries = async (ctx: InitialContext & { meta: PersistenceMetadata }) => { + const db = await openQueryDatabase({ + version: ctx.schema.version, + indexedDB: this.indexedDB, + migrations: ctx.migrations, + context: ctx, + }); + return new IdbQueryDb(db, ctx); + }; + + copyNamespace = async ( + from: string, + to: string, + ctx: InitialContext, + ): Promise => { + const fromCtx = { ...ctx, namespace: from, originalNamespace: from }; + const fromMetaDb = await this.openMetadata(fromCtx); + const fromMeta = new PersistenceMetadata(fromMetaDb, fromCtx); + const fromQueries = await this.openQueries({ ...fromCtx, meta: fromMeta }); + ctx.log('info', `Copying data from ${from} to ${to}`); + + const { db: toMetaDb } = await openMetadataDatabase({ + indexedDB: this.indexedDB, + log: ctx.log, + namespace: to, + }); + ctx.log('debug', 'Metadata database opened'); + await fromMetaDb.cloneTo(toMetaDb); + ctx.log('debug', 'Metadata copied'); + + const toQueryDb = await openQueryDatabase({ + version: ctx.schema.version, + indexedDB: this.indexedDB, + migrations: ctx.migrations, + context: { ...ctx, namespace: to, originalNamespace: to, meta: fromMeta }, + }); + await fromQueries.cloneTo(toQueryDb); + ctx.log('debug', 'Indexes copied'); + ctx.log( + 'debug', + 'New document store stats:', + await getSizesOfAllObjectStores(toQueryDb), + ); + + await fromMetaDb.dispose(); + await closeDatabase(toMetaDb); + await fromQueries.dispose(); + await closeDatabase(toQueryDb); + }; +} diff --git a/packages/store/src/persistence/idb/metadata/IdbMetadataDb.ts b/packages/store/src/persistence/idb/metadata/IdbMetadataDb.ts new file mode 100644 index 00000000..f1654264 --- /dev/null +++ b/packages/store/src/persistence/idb/metadata/IdbMetadataDb.ts @@ -0,0 +1,460 @@ +import { + createCompoundIndexValue, + createLowerBoundIndexValue, + createUpperBoundIndexValue, + DocumentBaseline, + getLegacyDotOidSubIdRange, + getOidRoot, + getOidSubIdRange, + ObjectIdentifier, +} from '@verdant-web/common'; +import { + AbstractTransaction, + AckInfo, + ClientOperation, + CommonQueryOptions, + Iterator, + LocalReplicaInfo, + PersistenceMetadataDb, +} from '../../interfaces.js'; +import { IdbService } from '../IdbService.js'; +import cuid from 'cuid'; +import { closeDatabase, getSizeOfObjectStore } from '../util.js'; +import { Context } from '../../../context/context.js'; + +export type StoredClientOperation = ClientOperation & { + /** This acts as the primary key */ + oid_timestamp: string; + l_t: string; + d_t: string; +}; + +export type StoredSchema = { + type: 'schema'; + schema: string; +}; + +export class IdbMetadataDb extends IdbService implements PersistenceMetadataDb { + constructor( + db: IDBDatabase, + private ctx: Pick, + ) { + super(db, ctx); + this.addDispose(() => closeDatabase(db)); + } + + transaction = (opts: { + mode?: 'readwrite' | 'readonly'; + storeNames: string[]; + abort?: AbortSignal; + }) => { + return this.createTransaction(opts.storeNames, { + mode: opts.mode, + abort: opts.abort, + }); + }; + + getAckInfo = async (): Promise => { + const result = await this.run('info', (store) => store.get('ack')); + if (result) { + return result; + } else { + return { + globalAckTimestamp: null, + type: 'ack', + }; + } + }; + + setGlobalAck = async (ack: string): Promise => { + await this.run( + 'info', + (store) => store.put({ type: 'ack', globalAckTimestamp: ack }), + { mode: 'readwrite' }, + ); + }; + + private _creatingLocalReplica: Promise | undefined; + private cachedLocalReplica: LocalReplicaInfo | undefined; + + getLocalReplica = async ( + opts?: CommonQueryOptions, + ): Promise => { + if (this.cachedLocalReplica) { + return this.cachedLocalReplica; + } + + const lookup = await this.run( + 'info', + (store) => store.get('localReplicaInfo'), + this.convertOpts(opts), + ); + + // not cached, not in db, create it + if (!lookup) { + // prevent a race condition if get() is called again while we are + // creating the replica info + if (!this._creatingLocalReplica) { + this._creatingLocalReplica = (async () => { + // create our own replica info now + const replicaId = cuid(); + const replicaInfo: LocalReplicaInfo = { + type: 'localReplicaInfo', + id: replicaId, + userId: undefined, + ackedLogicalTime: null, + lastSyncedLogicalTime: null, + }; + await this.run('info', (store) => store.put(replicaInfo), { + mode: 'readwrite', + }); + this.cachedLocalReplica = replicaInfo; + })(); + } + await this._creatingLocalReplica; + + return this.getLocalReplica(opts); + } + + this.cachedLocalReplica = lookup; + return lookup; + }; + + updateLocalReplica = async ( + data: Partial, + opts: CommonQueryOptions = writeOpts, + ): Promise => { + const localReplicaInfo = await this.getLocalReplica(opts); + Object.assign(localReplicaInfo, data); + await this.run('info', (store) => store.put(localReplicaInfo), { + mode: 'readwrite', + }); + this.cachedLocalReplica = localReplicaInfo; + }; + + iterateDocumentBaselines = async ( + rootOid: string, + iterator: (baseline: DocumentBaseline) => void, + opts?: CommonQueryOptions, + ): Promise => { + await this.iterate( + 'baselines', + (store) => { + const root = getOidRoot(rootOid); + const [start, end] = getOidSubIdRange(rootOid); + // FIXME: get rid of legacy dot OIDs... + const [dotStart, dotEnd] = getLegacyDotOidSubIdRange(rootOid); + return [ + store.openCursor(IDBKeyRange.only(root)), + store.openCursor(IDBKeyRange.bound(start, end, false, false)), + store.openCursor(IDBKeyRange.bound(dotStart, dotEnd, false, false)), + ]; + }, + iterator, + this.convertOpts(opts), + ); + }; + + iterateCollectionBaselines = async ( + collection: string, + iterator: (baseline: DocumentBaseline) => void, + opts?: CommonQueryOptions, + ): Promise => { + await this.iterate( + 'baselines', + (store) => { + return [ + store.openCursor( + IDBKeyRange.bound(collection, collection + '\uffff', false, false), + ), + ]; + }, + iterator, + this.convertOpts(opts), + ); + }; + + iterateAllBaselines = async ( + iterator: Iterator, + opts: CommonQueryOptions, + ): Promise => { + await this.iterate( + 'baselines', + (store) => store.index('timestamp').openCursor(), + iterator, + this.convertOpts(opts), + ); + }; + + getBaseline = ( + oid: string, + opts?: CommonQueryOptions, + ): Promise => { + return this.run( + 'baselines', + (store) => store.get(oid), + this.convertOpts(opts), + ); + }; + + setBaselines = async ( + baselines: DocumentBaseline[], + opts: CommonQueryOptions = writeOpts, + ): Promise => { + await this.runAll( + 'baselines', + (store) => baselines.map((b) => store.put(b)), + this.convertOpts(opts), + ); + }; + + deleteBaseline = async ( + oid: string, + opts: CommonQueryOptions = writeOpts, + ): Promise => { + await this.run( + 'baselines', + (store) => store.delete(oid), + this.convertOpts(opts), + ); + }; + + iterateDocumentOperations = ( + rootOid: string, + iterator: (op: StoredClientOperation) => void, + opts?: CommonQueryOptions & { to?: string | null }, + ): Promise => { + return this.iterate( + 'operations', + (store) => { + const index = store.index('d_t'); + const start = createLowerBoundIndexValue(rootOid); + const end = opts?.to + ? createCompoundIndexValue(rootOid, opts.to) + : createUpperBoundIndexValue(rootOid); + + const range = IDBKeyRange.bound(start, end, false, false); + return index.openCursor(range); + }, + iterator, + this.convertOpts(opts), + ); + }; + + iterateEntityOperations = ( + oid: string, + iterator: (op: StoredClientOperation) => void, + opts?: CommonQueryOptions & { to?: string | null }, + ): Promise => { + // NOTE: this is simplified from original impl. + // perhaps I missed some nuance as to why it was + // so complex before? + + return this.iterate( + 'operations', + (store) => { + const start = createLowerBoundIndexValue(oid); + const end = opts?.to + ? createCompoundIndexValue(oid, opts.to) + : createUpperBoundIndexValue(oid); + + const range = IDBKeyRange.bound(start, end, false, false); + return store.openCursor(range); + }, + iterator, + this.convertOpts(opts), + ); + }; + + consumeEntityOperations = ( + oid: string, + iterator: Iterator, + opts: CommonQueryOptions & { to?: string | null } = writeOpts, + ): Promise => { + return this.iterate( + 'operations', + (store) => { + const start = createLowerBoundIndexValue(oid); + const end = opts?.to + ? createCompoundIndexValue(oid, opts.to) + : createUpperBoundIndexValue(oid); + + const range = IDBKeyRange.bound(start, end, false, false); + return store.openCursor(range); + }, + (op, store) => { + iterator(op); + store.delete(op.oid_timestamp); + }, + this.convertOpts(opts), + ); + }; + + iterateCollectionOperations = ( + collection: string, + iterator: (op: StoredClientOperation) => void, + opts?: CommonQueryOptions, + ): Promise => { + return this.iterate( + 'operations', + (store) => { + return store.openCursor( + IDBKeyRange.bound(collection, collection + '\uffff', false, false), + 'next', + ); + }, + iterator, + this.convertOpts(opts), + ); + }; + + iterateLocalOperations = ( + iterator: (op: StoredClientOperation) => void, + opts?: CommonQueryOptions & { + after?: string | null; + }, + ): Promise => { + return this.iterate( + 'operations', + (store) => { + const start = opts?.after + ? createCompoundIndexValue(true, opts.after) + : createLowerBoundIndexValue(true); + const end = createUpperBoundIndexValue(true); + const index = store.index('l_t'); + return index.openCursor( + // NOTE: differs from original impl -- last arg is 'false' instead of 'true' + IDBKeyRange.bound(start, end, !!opts?.after, false), + 'next', + ); + }, + iterator, + ); + }; + + iterateAllOperations = ( + iterator: (op: StoredClientOperation) => void, + opts?: CommonQueryOptions & { + before?: string | null; + from?: string | null; + }, + ): Promise => { + return this.iterate( + 'operations', + (store) => { + const start = opts?.from + ? createLowerBoundIndexValue(opts.from) + : undefined; + const end = opts?.before + ? createUpperBoundIndexValue(opts.before) + : createLowerBoundIndexValue(true); + const range = + start && end + ? IDBKeyRange.bound(start, end, false, true) + : start + ? IDBKeyRange.lowerBound(start, false) + : end + ? IDBKeyRange.upperBound(end, true) + : undefined; + return store.index('timestamp').openCursor(range, 'next'); + }, + iterator, + this.convertOpts(opts), + ); + }; + + addOperations = async ( + ops: StoredClientOperation[], + opts: CommonQueryOptions = writeOpts, + ): Promise => { + let affected = new Set(); + await this.runAll( + 'operations', + (store) => + ops.map((op) => { + affected.add(getOidRoot(op.oid)); + return store.put(this.addOperationIndexes(op)); + }), + this.convertOpts(opts), + ); + return Array.from(affected); + }; + + reset = async ({ + clearReplica, + transaction, + }: { + clearReplica?: boolean; + transaction?: AbstractTransaction; + } = {}): Promise => { + const tx = + (transaction as IDBTransaction) || + this.createTransaction(['info', 'operations', 'baselines'], { + mode: 'readwrite', + }); + await Promise.all([ + this.resetLocalReplica(tx, clearReplica), + this.resetBaselines(tx), + this.resetOperations(tx), + ]); + }; + + stats = async (): Promise<{ + operationsSize: { count: number; size: number }; + baselinesSize: { count: number; size: number }; + }> => { + const ops = await getSizeOfObjectStore(this.db, 'operations'); + const baselines = await getSizeOfObjectStore(this.db, 'baselines'); + return { operationsSize: ops, baselinesSize: baselines }; + }; + + private resetLocalReplica = async (tx: IDBTransaction, clear = false) => { + if (clear) { + return this.run('info', (store) => store.delete('localReplicaInfo'), { + mode: 'readwrite', + transaction: tx, + }); + } + + const localInfo = await this.getLocalReplica(); + localInfo.ackedLogicalTime = null; + localInfo.lastSyncedLogicalTime = null; + await this.run('info', (store) => store.put(localInfo), { + mode: 'readwrite', + transaction: tx, + }); + }; + + private resetBaselines = async (tx: IDBTransaction) => { + return this.clear('baselines', tx); + }; + + private resetOperations = async (tx: IDBTransaction) => { + return this.clear('operations', tx); + }; + + private addOperationIndexes = ( + op: ClientOperation, + ): StoredClientOperation => { + return { + ...op, + oid_timestamp: createCompoundIndexValue(op.oid, op.timestamp) as string, + l_t: createCompoundIndexValue(op.isLocal, op.timestamp) as string, + d_t: createCompoundIndexValue(getOidRoot(op.oid), op.timestamp) as string, + }; + }; + + private convertOpts = (opts?: CommonQueryOptions) => { + if (opts?.transaction && !(opts.transaction instanceof IDBTransaction)) { + throw new Error( + `Invalid IndexedDB transaction. You cannot mix persistence providers. ${typeof opts.transaction}`, + ); + } + return { + mode: opts?.mode, + transaction: opts?.transaction as IDBTransaction | undefined, + }; + }; +} + +const writeOpts = { mode: 'readwrite' } as const; diff --git a/packages/store/src/metadata/openMetadataDatabase.ts b/packages/store/src/persistence/idb/metadata/openMetadataDatabase.ts similarity index 93% rename from packages/store/src/metadata/openMetadataDatabase.ts rename to packages/store/src/persistence/idb/metadata/openMetadataDatabase.ts index e755e089..946161f1 100644 --- a/packages/store/src/metadata/openMetadataDatabase.ts +++ b/packages/store/src/persistence/idb/metadata/openMetadataDatabase.ts @@ -1,22 +1,31 @@ import { replaceLegacyOidsInObject } from '@verdant-web/common'; -import { closeDatabase, storeRequestPromise } from '../idb.js'; +import { + closeDatabase, + getMetadataDbName, + storeRequestPromise, +} from '../util.js'; +import { Context } from '../../../context/context.js'; const migrations = [version1, version2, version3, version4, version5, version6]; +export const CURRENT_METADATA_VERSION = migrations.length; export function openMetadataDatabase({ indexedDB = window.indexedDB, namespace, log, - metadataVersion = 5, + metadataVersion = CURRENT_METADATA_VERSION, }: { indexedDB?: IDBFactory; namespace: string; - log?: (...args: any[]) => void; + log?: Context['log']; metadataVersion?: number; }): Promise<{ wasInitialized: boolean; db: IDBDatabase }> { return new Promise<{ wasInitialized: boolean; db: IDBDatabase }>( (resolve, reject) => { - const request = indexedDB.open(`${namespace}_meta`, metadataVersion); + const request = indexedDB.open( + getMetadataDbName(namespace), + metadataVersion, + ); let wasInitialized = false; request.onupgradeneeded = async (event) => { const db = request.result; @@ -200,6 +209,10 @@ async function version3(db: IDBDatabase, tx: IDBTransaction) { operations.createIndex('timestamp', 'timestamp'); } +/** + * 3 -> 4 changes: + * Add files store + */ async function version4(db: IDBDatabase, tx: IDBTransaction) { const files = db.createObjectStore('files', { keyPath: 'id', @@ -208,6 +221,10 @@ async function version4(db: IDBDatabase, tx: IDBTransaction) { files.createIndex('deletedAt', 'deletedAt'); } +/** + * 4 -> 5 changes: + * replace legacy OIDs + */ async function version5(db: IDBDatabase, tx: IDBTransaction) { // rewrites all baselines and operations to replace legacy OIDs // with new ones. diff --git a/packages/store/src/persistence/idb/queries/IdbQueryDb.ts b/packages/store/src/persistence/idb/queries/IdbQueryDb.ts new file mode 100644 index 00000000..390ba467 --- /dev/null +++ b/packages/store/src/persistence/idb/queries/IdbQueryDb.ts @@ -0,0 +1,251 @@ +import { + CollectionFilter, + createOid, + decomposeOid, + getIndexValues, + ObjectIdentifier, +} from '@verdant-web/common'; +import { Context } from '../../../context/context.js'; +import { + AbstractTransaction, + CommonQueryOptions, + PersistenceQueryDb, + QueryMode, +} from '../../interfaces.js'; +import { IdbService } from '../IdbService.js'; +import { getRange } from './ranges.js'; +import { closeDatabase, getSizeOfObjectStore, isAbortError } from '../util.js'; + +export class IdbQueryDb extends IdbService implements PersistenceQueryDb { + private ctx; + constructor(db: IDBDatabase, context: Omit) { + super(db, { log: context.log }); + this.ctx = context; + } + + stats = async (): Promise< + Record + > => { + const collectionNames = Object.keys(this.ctx.schema.collections); + const collections: Record = {}; + await Promise.all( + collectionNames.map(async (name) => { + const size = await getSizeOfObjectStore(this.db, name); + collections[name] = size; + }), + ); + return collections; + }; + + transaction = (opts: { + mode?: QueryMode; + storeNames: string[]; + abort?: AbortSignal; + }): AbstractTransaction => { + return this.createTransaction(opts.storeNames, { + mode: opts.mode, + abort: opts.abort, + }); + }; + + findOneOid = async (opts: { + collection: string; + index?: CollectionFilter; + }): Promise => { + const result = await this.run( + opts.collection, + (store) => { + const source = opts.index?.where + ? store.index(opts.index.where) + : store; + const direction = opts.index?.order === 'desc' ? 'prev' : 'next'; + const range = getRange(this.ctx.schema, opts.collection, opts.index); + return source.openCursor(range, direction); + }, + { mode: 'readonly' }, + ); + if (result) { + return createOid(opts.collection, result.primaryKey.toString()); + } + return null; + }; + findAllOids = async ({ + collection, + index, + offset, + limit, + }: { + collection: string; + index?: CollectionFilter; + limit?: number; + offset?: number; + }): Promise<{ result: ObjectIdentifier[]; hasNextPage: boolean }> => { + const tx = this.createTransaction([collection], { mode: 'readonly' }); + const store = tx.objectStore(collection); + const source = index?.where ? store.index(index.where) : store; + const direction = index?.order === 'desc' ? 'prev' : 'next'; + const range = getRange(this.ctx.schema, collection, index); + const request = source.openCursor(range, direction); + + let hasNextPage = false; + const result = await new Promise((resolve, reject) => { + let hasDoneOffset = !offset; + let visited = 0; + const results = new Set(); + + request.onsuccess = () => { + visited++; + const cursor = request.result as IDBCursorWithValue | null; + if (!cursor) { + resolve(Array.from(results)); + return; + } + + // first offset, if we have one. cursor opens at beginning. + if (offset && !hasDoneOffset) { + cursor.advance(offset); + hasDoneOffset = true; + // next iteration we begin adding results. + } else { + // add result to set, unless we have reached limit. + if (!limit || results.size < limit) { + results.add(createOid(collection, cursor.primaryKey.toString())); + } + // even if we reached limit, we keep going one more to check if there's + // a next page. + if (limit && visited > limit) { + hasNextPage = true; + // stop iteration here; we reached limit and we have next page + // info we need. + resolve(Array.from(results)); + } else { + cursor.continue(); + } + } + }; + + request.onerror = () => { + if (request.error?.name === 'InvalidStateError') { + this.ctx.log( + 'error', + `find query failed with InvalidStateError`, + request.error, + ); + resolve([]); + } else if (request.error && isAbortError(request.error)) { + resolve([]); + } else { + reject(request.error); + } + }; + }); + + return { + result, + hasNextPage, + }; + }; + + saveEntities = async ( + entities: { oid: ObjectIdentifier; getSnapshot: () => any }[], + opts?: CommonQueryOptions & { abort?: AbortSignal }, + ): Promise => { + if (entities.length === 0) return; + + let collections = Array.from( + new Set(entities.map((e) => decomposeOid(e.oid).collection)), + ); + + const toRemove = collections.filter((c) => !this.ctx.schema.collections[c]); + if (toRemove.length > 0) { + this.ctx.log( + 'warn', + `Ignoring entities from collections that no longer exist: ${toRemove.join( + ', ', + )}`, + ); + } + const withRemoved = new Set(collections); + toRemove.forEach((c) => withRemoved.delete(c)); + collections = Array.from(withRemoved); + + const options = { + transaction: this.createTransaction(collections, { + mode: 'readwrite', + abort: opts?.abort, + }), + }; + + // FIXME: not test is making it to this line + + await Promise.all( + entities.map(async (e) => { + const snapshot = e.getSnapshot(); + try { + await this.saveDocument(e.oid, snapshot, options); + } catch (err) { + this.ctx.log( + 'error', + `Error saving document ${e.oid} (${JSON.stringify(snapshot)})`, + err, + ); + if (err instanceof Error) { + throw err; + } else { + throw new Error('Unknown error saving document'); + } + } + }), + ); + options.transaction.commit(); + this.ctx.entityEvents.emit('collectionsChanged', collections); + for (const entity of entities) { + this.ctx.entityEvents.emit('documentChanged', entity.oid); + } + }; + + reset = async (opts?: { + transaction?: AbstractTransaction; + }): Promise => { + const names = Object.keys(this.ctx.schema.collections); + const tx = + (opts?.transaction as IDBTransaction) || + this.createTransaction(names, { mode: 'readwrite' }); + await Promise.all( + names.map((name) => + this.run(name, (store) => store.clear(), { transaction: tx }), + ), + ); + this.ctx.entityEvents.emit('collectionsChanged', names); + this.ctx.log('info', '💨 Reset queryable storage'); + }; + + dispose = () => { + return closeDatabase(this.db); + }; + + private saveDocument = async ( + oid: ObjectIdentifier, + doc: any, + { transaction }: { transaction?: IDBTransaction }, + ) => { + this.ctx.log('debug', `Saving document indexes for querying ${oid}`); + const { collection, id } = decomposeOid(oid); + if (!doc) { + await this.run(collection, (store) => store.delete(id), { + mode: 'readwrite', + transaction, + }); + this.ctx.log('debug', `Deleted document indexes for querying ${oid}`); + } else { + const schema = this.ctx.schema.collections[collection]; + // no need to validate before storing; the entity's snapshot is already validated. + const indexes = getIndexValues(schema, doc); + await this.run(collection, (store) => store.put(indexes), { + mode: 'readwrite', + transaction, + }); + this.ctx.log('debug', `Save complete for ${oid}`, indexes); + } + }; +} diff --git a/packages/store/src/migration/db.ts b/packages/store/src/persistence/idb/queries/migration/db.ts similarity index 60% rename from packages/store/src/migration/db.ts rename to packages/store/src/persistence/idb/queries/migration/db.ts index 266a7b52..fb590652 100644 --- a/packages/store/src/migration/db.ts +++ b/packages/store/src/persistence/idb/queries/migration/db.ts @@ -1,48 +1,23 @@ -import { closeDatabase, globalIDB, storeRequestPromise } from '../idb.js'; +import { + globalIDB, + storeRequestPromise, + openDatabase as baseOpenDatabase, + getDocumentDbName, +} from '../../util.js'; import { OpenDocumentDbContext } from './types.js'; export async function getDatabaseVersion( indexedDB: IDBFactory, namespace: string, - version: number, - log?: (...args: any[]) => void, ): Promise { - function openAndGetVersion( - resolve: (res: [number, IDBDatabase]) => void, - reject: (err: Error) => void, - ) { - let currentVersion: number; - let database: IDBDatabase; - const request = indexedDB.open( - [namespace, 'collections'].join('_'), - version, - ); - request.onupgradeneeded = async (event) => { - currentVersion = event.oldVersion; - const transaction = request.transaction!; - database = request.result; - transaction.abort(); - }; - request.onsuccess = (event) => { - resolve([request.result.version, request.result]); - }; - request.onblocked = (event) => { - // retry if blocked - log?.('Database blocked, waiting...'); - // setTimeout(() => { - // openAndGetVersion(resolve, reject); - // }, 200); - }; - request.onerror = (event) => { - // FIXME: this fails if the code is older than the local database - resolve([currentVersion!, database!]); - }; + const databaseName = getDocumentDbName(namespace); + const dbInfo = await indexedDB.databases(); + const existingDb = dbInfo.find((info) => info.name === databaseName); + if (existingDb) { + return existingDb.version ?? 0; } - const [currentVersion, db] = await new Promise<[number, IDBDatabase]>( - openAndGetVersion, - ); - await closeDatabase(db); - return currentVersion; + + return 0; } /** @@ -121,40 +96,11 @@ export async function openDatabase({ context: OpenDocumentDbContext; }): Promise { context.log('debug', 'Opening database', namespace, 'at version', version); - const db = await new Promise((resolve, reject) => { - const request = indexedDB.open( - [namespace, 'collections'].join('_'), - version, - ); - request.onupgradeneeded = async (event) => { - const transaction = request.transaction!; - transaction.abort(); - - context.log( - 'error', - 'Database upgrade needed, but not expected', - 'Expected', - version, - 'Got', - request.result.version, - ); - reject( - request.error || - new Error( - `Migration error: database version changed unexpectedly when reading current data. Expected ${version}, got ${request.result.version}`, - ), - ); - }; - request.onsuccess = (event) => { - resolve(request.result); - }; - request.onblocked = (event) => { - reject(new Error('Migration error: database blocked')); - }; - request.onerror = (event) => { - reject(new Error('Migration error: database error')); - }; - }); + const db = await baseOpenDatabase( + getDocumentDbName(namespace), + version, + indexedDB, + ); db.addEventListener('versionchange', (event) => { db.close(); diff --git a/packages/store/src/migration/engine.ts b/packages/store/src/persistence/idb/queries/migration/engine.ts similarity index 73% rename from packages/store/src/migration/engine.ts rename to packages/store/src/persistence/idb/queries/migration/engine.ts index 15745da9..0097f756 100644 --- a/packages/store/src/migration/engine.ts +++ b/packages/store/src/persistence/idb/queries/migration/engine.ts @@ -10,25 +10,20 @@ import { createOid, diffToPatches, getOid, - initialToPatches, removeOidPropertiesFromAllSubObjects, AuthorizationKey, } from '@verdant-web/common'; -import { Context } from '../context.js'; -import { Metadata } from '../metadata/Metadata.js'; -import { findAllOids, findOneOid } from '../queries/dbQueries.js'; import { OpenDocumentDbContext } from './types.js'; +import { IdbQueryDb } from '../IdbQueryDb.js'; function getMigrationMutations({ migration, - meta, - getMigrationNow, newOids, + ctx, }: { migration: Migration; newOids: string[]; - getMigrationNow: () => string; - meta: Metadata; + ctx: OpenDocumentDbContext; }) { return migration.allCollections.reduce((acc, collectionName) => { acc[collectionName] = { @@ -40,24 +35,22 @@ function getMigrationMutations({ const oid = createOid(collectionName, primaryKey); newOids.push(oid); - await meta.insertLocalOperations( - initialToPatches(doc, oid, getMigrationNow, undefined, undefined, { - authz: options?.access, + await ctx.time.withMigrationTime(migration.version, () => + ctx.meta.insertData({ + operations: ctx.patchCreator.createInitialize( + doc, + oid, + options?.access, + ), + isLocal: true, }), ); return doc; }, delete: async (id: string) => { const rootOid = createOid(collectionName, id); - const authz = await meta.getDocumentAuthz(rootOid); - const allOids = await meta.getAllDocumentRelatedOids(rootOid); - return meta.insertLocalOperations( - allOids.map((oid) => ({ - oid, - timestamp: getMigrationNow(), - data: { op: 'delete' }, - authz, - })), + await ctx.time.withMigrationTime(migration.version, () => + ctx.meta.deleteDocument(rootOid), ); }, }; @@ -68,46 +61,46 @@ function getMigrationMutations({ function getMigrationQueries({ migration, context, - meta, + queryDb, }: { migration: Migration; - context: Context; - meta: Metadata; + context: OpenDocumentDbContext; + queryDb: IDBDatabase; }) { + const queries = new IdbQueryDb(queryDb, context); + return migration.oldCollections.reduce((acc, collectionName) => { acc[collectionName] = { get: async (id: string) => { const oid = createOid(collectionName, id); - const doc = await meta.getDocumentSnapshot(oid, { + const doc = await context.meta.getDocumentSnapshot(oid, { // only get the snapshot up to the previous version (newer operations may have synced) - to: meta.time.now(migration.oldSchema.version), + to: context.time.nowWithVersion(migration.oldSchema.version), }); return doc; }, findOne: async (filter: CollectionFilter) => { - const oid = await findOneOid({ + const oid = await queries.findOneOid({ collection: collectionName, index: filter, - context, }); if (!oid) return null; - const doc = await meta.getDocumentSnapshot(oid, { + const doc = await context.meta.getDocumentSnapshot(oid, { // only get the snapshot up to the previous version (newer operations may have synced) - to: meta.time.now(migration.oldSchema.version), + to: context.time.nowWithVersion(migration.oldSchema.version), }); return doc; }, findAll: async (filter: CollectionFilter) => { - const oids = await findAllOids({ + const { result: oids } = await queries.findAllOids({ collection: collectionName, index: filter, - context, }); const docs = await Promise.all( oids.map((oid) => - meta.getDocumentSnapshot(oid, { + context.meta.getDocumentSnapshot(oid, { // only get the snapshot up to the previous version (newer operations may have synced) - to: meta.time.now(migration.oldSchema.version), + to: context.time.nowWithVersion(migration.oldSchema.version), }), ), ); @@ -119,41 +112,29 @@ function getMigrationQueries({ } export function getMigrationEngine({ - meta, migration, context, + queryDb, }: { log?: (...args: any[]) => void; migration: Migration; - meta: Metadata; - context: Context; + context: OpenDocumentDbContext; + queryDb: IDBDatabase; }): MigrationEngine { - function getMigrationNow() { - return meta.time.zero(migration.version); - } - const newOids = new Array(); const queries = getMigrationQueries({ migration, context, - meta, + queryDb, }); const mutations = getMigrationMutations({ migration, - getMigrationNow, newOids, - meta, + ctx: context, }); const deleteCollection = async (collection: string) => { - const allOids = await meta.getAllCollectionRelatedOids(collection); - return meta.insertLocalOperations( - allOids.map((oid) => ({ - oid, - timestamp: getMigrationNow(), - data: { op: 'delete' }, - })), - ); + await context.meta.deleteCollection(collection); }; const awaitables = new Array>(); const engine: MigrationEngine = { @@ -174,7 +155,7 @@ export function getMigrationEngine({ // when the snapshots themselves are derived from the same data...) // maybe don't use the findAll query, and instead go a level // lower to retain access to lower level data here? - const authz = await meta.getDocumentAuthz(rootOid); + const authz = await context.meta.getDocumentAuthz(rootOid); const original = cloneDeep(doc); // @ts-ignore - excessive type resolution const newValue = await strategy(doc); @@ -188,7 +169,7 @@ export function getMigrationEngine({ const patches = diffToPatches( original, newValue, - getMigrationNow, + () => context.time.zeroWithVersion(migration.version), undefined, [], { @@ -197,7 +178,10 @@ export function getMigrationEngine({ }, ); if (patches.length > 0) { - await meta.insertLocalOperations(patches); + await context.meta.insertData({ + operations: patches, + isLocal: true, + }); } } }), @@ -211,18 +195,12 @@ export function getMigrationEngine({ } export function getInitialMigrationEngine({ - meta, migration, context, }: { context: OpenDocumentDbContext; migration: Migration; - meta: Metadata; }): MigrationEngine { - function getMigrationNow() { - return meta.time.zero(migration.version); - } - const newOids = new Array(); const queries = new Proxy({} as any, { @@ -235,9 +213,8 @@ export function getInitialMigrationEngine({ const mutations = getMigrationMutations({ migration, - getMigrationNow, newOids, - meta, + ctx: context, }); const engine: MigrationEngine = { log: context.log, diff --git a/packages/store/src/migration/migrations.ts b/packages/store/src/persistence/idb/queries/migration/migrations.ts similarity index 95% rename from packages/store/src/migration/migrations.ts rename to packages/store/src/persistence/idb/queries/migration/migrations.ts index 733ae049..0179877b 100644 --- a/packages/store/src/migration/migrations.ts +++ b/packages/store/src/persistence/idb/queries/migration/migrations.ts @@ -6,12 +6,11 @@ import { getIndexValues, getOidRoot, } from '@verdant-web/common'; -import { Metadata } from '../metadata/Metadata.js'; -import { ClientOperation } from '../metadata/OperationsStore.js'; +import { ClientOperation } from '../../../interfaces.js'; import { acquireLock, openDatabase, upgradeDatabase } from './db.js'; import { getInitialMigrationEngine, getMigrationEngine } from './engine.js'; import { OpenDocumentDbContext } from './types.js'; -import { closeDatabase } from '../idb.js'; +import { closeDatabase } from '../../util.js'; const globalIDB = typeof window !== 'undefined' ? window.indexedDB : (undefined as any); @@ -19,13 +18,11 @@ const globalIDB = export async function runMigrations({ context, toRun, - meta, indexedDB = globalIDB, namespace = context.namespace, }: { context: OpenDocumentDbContext; toRun: Migration[]; - meta: Metadata; indexedDB?: IDBFactory; /** This namespace value controls where the database being migrated is. */ namespace?: string; @@ -39,7 +36,6 @@ export async function runMigrations({ // migrations from 0 (i.e. initial migrations) don't attempt to open an existing db if (migration.oldSchema.version === 0) { engine = getInitialMigrationEngine({ - meta, migration, context, }); @@ -56,12 +52,9 @@ export async function runMigrations({ // this will only write to our metadata store via operations! engine = getMigrationEngine({ - meta, migration, - context: { - ...context, - documentDb: originalDatabase, - }, + context, + queryDb: originalDatabase, }); try { await migration.migrate(engine); @@ -115,9 +108,9 @@ export async function runMigrations({ * would be missing from findAll and findOne queries. */ const docsWithUnappliedMigrations = await getDocsWithUnappliedMigrations({ - meta, currentVersion: migration.oldSchema.version, newVersion: migration.newSchema.version, + ctx: context, }); // once the schema is ready, we can write back the migrated documents @@ -163,7 +156,7 @@ export async function runMigrations({ const snapshots = await Promise.all( oids.map(async (oid) => { try { - const snap = await meta.getDocumentSnapshot(oid); + const snap = await context.meta.getDocumentSnapshot(oid); return [oid, snap]; } catch (e) { // this seems to happen with baselines/ops which are not fully @@ -279,22 +272,24 @@ async function putView(store: IDBObjectStore, view: any) { * future. These documents need to be refreshed in storage. */ async function getDocsWithUnappliedMigrations({ - meta, currentVersion, newVersion: _, + ctx, }: { currentVersion: number; newVersion: number; - meta: Metadata; + ctx: OpenDocumentDbContext; }) { // scan for all operations in metadata after the current version. // this could be more efficient if also filtering below or equal newVersion but // that seems so unlikely in practice... const unappliedOperations: ClientOperation[] = []; - await meta.operations.iterateOverAllOperations( - (op) => unappliedOperations.push(op), + await ctx.meta.iterateAllOperations( + (op) => { + unappliedOperations.push(op); + }, { - from: meta.time.zero(currentVersion + 1), + from: ctx.time.zeroWithVersion(currentVersion + 1), }, ); return Array.from( diff --git a/packages/store/src/migration/openQueryDatabase.ts b/packages/store/src/persistence/idb/queries/migration/openQueryDatabase.ts similarity index 75% rename from packages/store/src/migration/openQueryDatabase.ts rename to packages/store/src/persistence/idb/queries/migration/openQueryDatabase.ts index 6d9694c6..759f5be6 100644 --- a/packages/store/src/migration/openQueryDatabase.ts +++ b/packages/store/src/persistence/idb/queries/migration/openQueryDatabase.ts @@ -1,5 +1,4 @@ import { Migration } from '@verdant-web/common'; -import { Metadata } from '../metadata/Metadata.js'; import { getDatabaseVersion, openDatabase } from './db.js'; import { runMigrations } from './migrations.js'; import { getMigrationPath } from './paths.js'; @@ -12,32 +11,24 @@ export async function openQueryDatabase({ version, indexedDB = globalIDB, migrations, - meta, context, }: { version: number; migrations: Migration[]; indexedDB?: IDBFactory; - meta: Metadata; context: OpenDocumentDbContext; }) { - if (context.schema.wip) { - throw new Error('Cannot open a production client with a WIP schema!'); - } - - const currentVersion = await getDatabaseVersion( - indexedDB, - context.namespace, - version, - context.log, - ); + const currentVersion = await getDatabaseVersion(indexedDB, context.namespace); context.log( 'debug', + 'Opening index database', + context.namespace, 'Current database version:', currentVersion, 'target version:', version, + context.schema.wip ? '(wip)' : '', ); const toRun = getMigrationPath({ @@ -52,7 +43,7 @@ export async function openQueryDatabase({ 'Migrations to run:', toRun.map((m) => m.version), ); - await runMigrations({ context, toRun, meta, indexedDB }); + await runMigrations({ context, toRun, indexedDB }); } return openDatabase({ indexedDB, diff --git a/packages/store/src/migration/paths.test.ts b/packages/store/src/persistence/idb/queries/migration/paths.test.ts similarity index 100% rename from packages/store/src/migration/paths.test.ts rename to packages/store/src/persistence/idb/queries/migration/paths.test.ts diff --git a/packages/store/src/migration/paths.ts b/packages/store/src/persistence/idb/queries/migration/paths.ts similarity index 92% rename from packages/store/src/migration/paths.ts rename to packages/store/src/persistence/idb/queries/migration/paths.ts index d992be0d..a2d2d91f 100644 --- a/packages/store/src/migration/paths.ts +++ b/packages/store/src/persistence/idb/queries/migration/paths.ts @@ -1,5 +1,4 @@ -import { Migration } from '@verdant-web/common'; -import { MigrationPathError } from './errors.js'; +import { Migration, VerdantError } from '@verdant-web/common'; export function getMigrationPath({ currentVersion, @@ -16,7 +15,9 @@ export function getMigrationPath({ migrations, }); if (!path) { - throw new MigrationPathError( + throw new VerdantError( + VerdantError.Code.MigrationPathNotFound, + undefined, `No migration path found from ${currentVersion} to ${targetVersion}! This is a bug. If you're seeing this, contact the developer and provide them with the full contents of this message.`, ); } diff --git a/packages/store/src/persistence/idb/queries/migration/types.ts b/packages/store/src/persistence/idb/queries/migration/types.ts new file mode 100644 index 00000000..ab88f8c3 --- /dev/null +++ b/packages/store/src/persistence/idb/queries/migration/types.ts @@ -0,0 +1,8 @@ +import { Context } from '../../../../context/context.js'; + +/** During migration, only a partial context is available */ +export type OpenDocumentDbContext = Omit; + +export type MigrationDbRef = { + current: IDBDatabase; +}; diff --git a/packages/store/src/persistence/idb/queries/ranges.ts b/packages/store/src/persistence/idb/queries/ranges.ts new file mode 100644 index 00000000..38fce2b3 --- /dev/null +++ b/packages/store/src/persistence/idb/queries/ranges.ts @@ -0,0 +1,107 @@ +import { + assert, + CollectionCompoundIndexFilter, + CollectionFilter, + createCompoundIndexValue, + createLowerBoundIndexValue, + createUpperBoundIndexValue, + isMatchIndexFilter, + isRangeIndexFilter, + isSortIndexFilter, + isStartsWithIndexFilter, + MatchCollectionIndexFilter, + RangeCollectionIndexFilter, + sanitizeIndexValue, + SortIndexFilter, + StartsWithIndexFilter, + StorageSchema, +} from '@verdant-web/common'; + +const matchIndexToIdbKeyRange = (filter: MatchCollectionIndexFilter) => { + return IDBKeyRange.only(sanitizeIndexValue(filter.equals)); +}; + +const sortIndexToIdbKeyRange = (filter: SortIndexFilter) => { + return undefined; +}; + +const rangeIndexToIdbKeyRange = (filter: RangeCollectionIndexFilter) => { + const lower = filter.gte || filter.gt; + const upper = filter.lte || filter.lt; + if (lower === upper) { + return IDBKeyRange.only(sanitizeIndexValue(lower)); + } + if (!lower) { + return IDBKeyRange.upperBound(sanitizeIndexValue(upper), !!filter.lt); + } else if (!upper) { + return IDBKeyRange.lowerBound(sanitizeIndexValue(lower), !!filter.gt); + } else { + return IDBKeyRange.bound( + sanitizeIndexValue(lower), + sanitizeIndexValue(upper), + !!filter.gt, + !!filter.lt, + ); + } +}; + +const compoundIndexToIdbKeyRange = ( + // FIXME: + schema: any, + collection: string, + filter: CollectionCompoundIndexFilter, +) => { + // validate the usage of the compound index: + // - all match fields must be contiguous at the start of the compound order + const indexDefinition = + schema.collections[collection].compounds[filter.where]; + assert( + indexDefinition, + `Index ${filter.where} does not exist on collection ${collection}`, + ); + const matchedKeys = Object.keys(filter.match).sort( + (a, b) => indexDefinition.of.indexOf(a) - indexDefinition.of.indexOf(b), + ); + for (const key of matchedKeys) { + if (indexDefinition.of.indexOf(key) !== matchedKeys.indexOf(key)) { + throw new Error( + `Compound index ${filter.where} does not have ${key} at the start of its order`, + ); + } + } + + const matchedValues = matchedKeys.map( + (key) => filter.match[key as keyof typeof filter.match] as string | number, + ); + + // special case: all match fields are specified - we don't need a range + // query, just a single key query + if (matchedKeys.length === indexDefinition.of.length) { + return IDBKeyRange.only(createCompoundIndexValue(...matchedValues)); + } + + // create our bounds for the matched values + const lower = createLowerBoundIndexValue(...matchedValues); + const upper = createUpperBoundIndexValue(...matchedValues); + return IDBKeyRange.bound(lower, upper); +}; + +function startsWithIndexToIdbKeyRange(filter: StartsWithIndexFilter) { + const lower = filter.startsWith; + const upper = filter.startsWith + '\uffff'; + return IDBKeyRange.bound(lower, upper); +} + +export function getRange( + schema: StorageSchema, + collection: string, + index?: CollectionFilter, +) { + if (!index) return undefined; + if (isRangeIndexFilter(index)) return rangeIndexToIdbKeyRange(index); + if (isMatchIndexFilter(index)) return matchIndexToIdbKeyRange(index); + if (isSortIndexFilter(index)) return sortIndexToIdbKeyRange(index); + if (isStartsWithIndexFilter(index)) + return startsWithIndexToIdbKeyRange(index); + return compoundIndexToIdbKeyRange(schema, collection, index); +} diff --git a/packages/store/src/idb.ts b/packages/store/src/persistence/idb/util.ts similarity index 68% rename from packages/store/src/idb.ts rename to packages/store/src/persistence/idb/util.ts index 2d5bad08..1d4a3c8a 100644 --- a/packages/store/src/idb.ts +++ b/packages/store/src/persistence/idb/util.ts @@ -93,6 +93,20 @@ export function getSizeOfObjectStore( }); } +export async function getSizesOfAllObjectStores( + database: IDBDatabase, +): Promise<{ [storeName: string]: { count: number; size: number } }> { + const storeNames = Array.from(database.objectStoreNames); + const promises = storeNames.map(async (storeName) => { + const result = await getSizeOfObjectStore(database, storeName); + return { [storeName]: result }; + }); + const results = await Promise.all(promises); + return results.reduce((acc, result_1) => { + return { ...acc, ...result_1 }; + }, {}); +} + export function getAllFromObjectStores(db: IDBDatabase, stores: string[]) { const transaction = db.transaction(stores, 'readonly'); const promises = stores.map((store) => { @@ -182,3 +196,64 @@ export function emptyDatabase(db: IDBDatabase) { tx.onerror = () => reject(tx.error); }); } + +export async function copyDatabase(from: IDBDatabase, to: IDBDatabase) { + await emptyDatabase(to); + const records = await getAllFromObjectStores( + from, + Array.from(from.objectStoreNames), + ); + const writeTx = to.transaction(Array.from(to.objectStoreNames), 'readwrite'); + for (let i = 0; i < records.length; i++) { + const store = writeTx.objectStore(from.objectStoreNames[i]); + for (const record of records[i]) { + store.add(record); + } + } + return new Promise((resolve, reject) => { + writeTx.oncomplete = () => resolve(); + writeTx.onerror = () => reject(writeTx.error); + }); +} + +export function openDatabase( + name: string, + expectedVersion: number, + indexedDB: IDBFactory = window.indexedDB, +) { + return new Promise((resolve, reject) => { + const req = indexedDB.open(name, expectedVersion); + req.onsuccess = () => { + resolve(req.result); + }; + req.onerror = () => { + reject(req.error); + }; + req.onblocked = () => { + reject(new Error('Database blocked')); + }; + req.onupgradeneeded = (event) => { + const db = req.result; + if (db.version !== expectedVersion) { + db.close(); + reject( + new Error( + `Migration error: database version changed unexpectedly when reading current data. Expected ${expectedVersion}, got ${db.version}`, + ), + ); + } + }; + }); +} + +export function getMetadataDbName(namespace: string) { + return [namespace, 'meta'].join('_'); +} + +export function getDocumentDbName(namespace: string) { + return [namespace, 'collections'].join('_'); +} + +export function getNamespaceFromDatabaseInfo(info: IDBDatabaseInfo) { + return info.name?.split('_')[0]; +} diff --git a/packages/store/src/persistence/interfaces.ts b/packages/store/src/persistence/interfaces.ts new file mode 100644 index 00000000..42391b93 --- /dev/null +++ b/packages/store/src/persistence/interfaces.ts @@ -0,0 +1,240 @@ +import { + CollectionFilter, + DocumentBaseline, + FileData, + ObjectIdentifier, + Operation, +} from '@verdant-web/common'; +import { Context, InitialContext } from '../context/context.js'; + +export interface AckInfo { + type: 'ack'; + globalAckTimestamp: string | null; +} + +export interface LocalReplicaInfo { + type: 'localReplicaInfo'; + id: string; + userId: string | undefined; + ackedLogicalTime: string | null; + lastSyncedLogicalTime: string | null; +} + +export type ClientOperation = Operation & { + isLocal: boolean; +}; + +export interface MetadataExport { + operations: Operation[]; + baselines: DocumentBaseline[]; + localReplica?: LocalReplicaInfo; + schemaVersion: number; +} + +export interface ExportedData { + data: MetadataExport; + fileData: Array>; + files: File[]; +} + +export type AbstractTransaction = unknown; +export type QueryMode = 'readwrite' | 'readonly'; +export interface CommonQueryOptions { + transaction?: AbstractTransaction; + mode?: QueryMode; +} +export type Iterator = (item: T) => void | boolean; + +export interface PersistenceMetadataDb { + transaction(opts: { + mode?: QueryMode; + storeNames: string[]; + abort?: AbortSignal; + }): AbstractTransaction; + dispose(): void | Promise; + + // infos + getAckInfo(): Promise; + setGlobalAck(ack: string): Promise; + getLocalReplica(opts?: CommonQueryOptions): Promise; + updateLocalReplica( + data: Partial, + opts?: CommonQueryOptions, + ): Promise; + + // baselines + iterateDocumentBaselines( + rootOid: string, + iterator: Iterator, + opts?: CommonQueryOptions, + ): Promise; + iterateCollectionBaselines( + collection: string, + iterator: Iterator, + opts?: CommonQueryOptions, + ): Promise; + iterateAllBaselines( + iterator: Iterator, + opts?: CommonQueryOptions, + ): Promise; + getBaseline( + oid: string, + opts?: CommonQueryOptions, + ): Promise; + setBaselines( + baselines: DocumentBaseline[], + opts?: CommonQueryOptions, + ): Promise; + deleteBaseline(oid: string, opts?: CommonQueryOptions): Promise; + + // operations + iterateDocumentOperations( + rootOid: string, + iterator: Iterator, + opts?: CommonQueryOptions & { + to?: string | null; + }, + ): Promise; + iterateEntityOperations( + oid: string, + iterator: Iterator, + opts?: CommonQueryOptions & { to?: string | null }, + ): Promise; + iterateCollectionOperations( + collection: string, + iterator: Iterator, + opts?: CommonQueryOptions, + ): Promise; + iterateLocalOperations( + iterator: Iterator, + opts?: CommonQueryOptions & { + before?: string | null; + after?: string | null; + }, + ): Promise; + /** Iterates over operations for an entity for processing and deletes them as it goes. */ + consumeEntityOperations( + oid: string, + iterator: Iterator, + opts?: CommonQueryOptions & { to?: string | null }, + ): Promise; + iterateAllOperations( + iterator: Iterator, + opts?: CommonQueryOptions & { + before?: string | null; + from?: string | null; + }, + ): Promise; + /** + * @returns a list of all document (root) OIDs affected by the adds. + */ + addOperations( + ops: ClientOperation[], + opts?: CommonQueryOptions, + ): Promise; + + /* WARNING: deletes all data */ + reset(opts?: { + clearReplica?: boolean; + transaction?: AbstractTransaction; + }): Promise; + + stats(): Promise<{ + operationsSize: { count: number; size: number }; + baselinesSize: { count: number; size: number }; + }>; +} + +export interface PersistenceQueryDb { + transaction(opts: { + mode?: QueryMode; + storeNames: string[]; + abort?: AbortSignal; + }): AbstractTransaction; + dispose(): void | Promise; + + findOneOid(opts: { + collection: string; + index?: CollectionFilter; + }): Promise; + findAllOids(opts: { + collection: string; + index?: CollectionFilter; + limit?: number; + offset?: number; + }): Promise<{ result: ObjectIdentifier[]; hasNextPage: boolean }>; + + saveEntities( + entities: { oid: ObjectIdentifier; getSnapshot: () => any }[], + opts?: CommonQueryOptions & { abort?: AbortSignal }, + ): Promise; + + reset(opts?: { transaction?: AbstractTransaction }): Promise; + + stats(): Promise>; +} + +export interface PersistedFileData extends FileData { + deletedAt: number | null; +} + +export interface PersistenceFileDb { + transaction(opts: { + mode?: QueryMode; + storeNames: string[]; + abort?: AbortSignal; + }): AbstractTransaction; + dispose(): void | Promise; + + add( + file: FileData, + options?: { transaction?: AbstractTransaction; downloadRemote?: boolean }, + ): Promise; + markUploaded( + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise; + get( + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise; + delete( + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise; + markPendingDelete( + fileId: string, + options?: { transaction?: AbstractTransaction }, + ): Promise; + listUnsynced(options?: { + transaction?: AbstractTransaction; + }): Promise; + resetSyncedStatusSince( + since: string | null, + options?: { transaction?: AbstractTransaction }, + ): Promise; + iterateOverPendingDelete( + iterator: (file: PersistedFileData, store: IDBObjectStore) => void, + options?: { transaction?: IDBTransaction }, + ): Promise; + getAll(options?: { + transaction?: AbstractTransaction; + }): Promise; + stats(): Promise<{ size: { count: number; size: number } }>; +} + +export interface PersistenceImplementation { + openMetadata(ctx: InitialContext): Promise; + openQueries(ctx: Omit): Promise; + openFiles( + ctx: Omit, + ): Promise; + /** Copies all data (metadata/document queries/files) from one namespace to another. */ + copyNamespace(from: string, to: string, ctx: InitialContext): Promise; + /** Returns a list of all persisted namespaces visible to this app. */ + getNamespaces(): Promise; + /** Deletes all data from a particular namespace. */ + deleteNamespace(namespace: string, ctx: InitialContext): Promise; + /** Gets the schema version of the given namespace */ + getNamespaceVersion(namespace: string): Promise; +} diff --git a/packages/store/src/persistence/persistence.ts b/packages/store/src/persistence/persistence.ts new file mode 100644 index 00000000..9117b765 --- /dev/null +++ b/packages/store/src/persistence/persistence.ts @@ -0,0 +1,223 @@ +import { EventSubscriber, getOidRoot, VerdantError } from '@verdant-web/common'; +import { Context, InitialContext } from '../context/context.js'; +import { getWipNamespace } from '../utils/wip.js'; +import { ExportedData } from './interfaces.js'; +import { PersistenceFiles } from './PersistenceFiles.js'; +import { PersistenceMetadata } from './PersistenceMetadata.js'; +import { PersistenceQueries } from './PersistenceQueries.js'; + +export async function initializePersistence( + ctx: InitialContext, +): Promise { + let context = ctx as any as Context; + if (ctx.schema.wip) { + // this is a WIP database, so we need to create a new namespace for the WIP data. + context.namespace = getWipNamespace(ctx.originalNamespace, ctx.schema); + context.log('info', 'Switched to WIP namespace', context.namespace); + // check if this WIP database is already in use + const namespaces = await context.persistence.getNamespaces(); + + if (!namespaces.includes(context.namespace)) { + // copy all data to WIP namespace -- from the current version of local + // data, not the WIP schema version. this may not be n-1, we might + // be loading a WIP schema over older data. + const currentVersion = await context.persistence.getNamespaceVersion( + context.originalNamespace, + ); + + if (currentVersion === 0) { + // there is no existing data. nothing to copy. + } else { + const currentSchema = ctx.oldSchemas?.find( + (s) => s.version === currentVersion, + ); + if (!currentSchema) { + throw new VerdantError( + VerdantError.Code.MigrationPathNotFound, + undefined, + `Trying to open WIP database for version ${ctx.schema.version}, but the current local data is version ${currentVersion} and a historical schema for that version is not available.`, + ); + } + context.log( + 'info', + `Copying data from ${context.originalNamespace} to ${context.namespace}`, + ); + await context.persistence.copyNamespace( + context.originalNamespace, + context.namespace, + { + ...context, + schema: currentSchema, + }, + ); + } + } + } + + context.log('info', 'Opening persistence metadata'); + context.meta = new PersistenceMetadata( + await ctx.persistence.openMetadata(ctx), + ctx, + ); + + context.log('info', 'Opening persistence files'); + context.files = new PersistenceFiles( + await ctx.persistence.openFiles(context), + context, + ); + + context.log('info', 'Opening persistence queries'); + context.queries = new PersistenceQueries( + await ctx.persistence.openQueries(context), + context, + ); + + if (!ctx.schema.wip) { + const namespaces = await ctx.persistence.getNamespaces(); + // cleanup old WIP databases + for (const namespace of namespaces) { + if (namespace.startsWith(`@@wip_`)) { + ctx.log('debug', 'Cleaning up old WIP namespace', namespace); + await ctx.persistence.deleteNamespace(namespace, ctx); + } + } + } + + return context; +} + +export async function importPersistence( + ctx: Context, + exportedData: ExportedData, +): Promise { + ctx.log('info', 'Importing data from export'); + // open persistence at the version of the import + const exportedSchema = ctx.oldSchemas?.find( + (s) => s.version === exportedData.data.schemaVersion, + ); + if (!exportedSchema) { + // this means the user hasn't upgraded their CLI/client to include old schemas, or + // this exported data comes from a version which has since been shortcut. + throw new Error( + `Could not find schema for version ${exportedData.data.schemaVersion}`, + ); + } + + // using a new namespace to put all of this into a temporary zone + const importedNamespace = `@@import_${Date.now()}`; + + const importedContext = await initializePersistence({ + ...ctx, + schema: exportedSchema, + namespace: importedNamespace, + originalNamespace: importedNamespace, + // no-op entity events -- don't need to inform queries of changes. + entityEvents: new EventSubscriber(), + config: { + ...ctx.config, + persistence: { + ...ctx.config.persistence, + disableRebasing: true, + }, + }, + }); + // load imported data into persistence + await importedContext.meta.resetFrom(exportedData.data); + // need to write indexes here! + const affectedOids = new Set(); + for (const baseline of exportedData.data.baselines) { + affectedOids.add(getOidRoot(baseline.oid)); + } + for (const operation of exportedData.data.operations) { + affectedOids.add(getOidRoot(operation.oid)); + } + const toSave = await Promise.all( + Array.from(affectedOids).map(async (oid) => { + const snapshot = await importedContext.meta.getDocumentSnapshot(oid); + return { + oid, + getSnapshot: () => snapshot, + }; + }), + ); + await importedContext.queries.saveEntities(toSave); + await importedContext.files.import(exportedData); + + ctx.log('debug', 'Imported data into temporary namespace', importedNamespace); + + // shut down the imported databases + await importedContext.queries.dispose(); + await importedContext.meta.dispose(); + await importedContext.files.dispose(); + + if (exportedSchema.version !== ctx.schema.version) { + // an upgrade of the imported data is needed ; it's an older version + // of the schema. + ctx.log('debug', 'Shut down imported databases'); + + // upgrade the imported data to the latest schema + const currentSchema = ctx.schema; + const upgradedContext = await initializePersistence({ + ...importedContext, + schema: currentSchema, + }); + + ctx.log('debug', 'Upgraded imported data to current schema'); + + await upgradedContext.queries.dispose(); + await upgradedContext.meta.dispose(); + await upgradedContext.files.dispose(); + + ctx.log('debug', 'Shut down upgraded databases'); + } + + // copy the imported data into the current namespace + await ctx.persistence.copyNamespace(importedNamespace, ctx.namespace, ctx); + + // verify integrity -- this can only be done if imported data was same + // version as current schema, because migrations could add or remove + // operations. still, it's a good sanity check. + if (exportedData.data.schemaVersion === ctx.schema.version) { + const stats = await ctx.meta.stats(); + if (stats.operationsSize.count !== exportedData.data.operations.length) { + ctx.log( + 'critical', + 'Imported operations count mismatch', + 'expected', + exportedData.data.operations.length, + 'actual', + stats.operationsSize.count, + ); + throw new VerdantError( + VerdantError.Code.ImportFailed, + undefined, + 'Imported operations count mismatch', + ); + } + if (stats.baselinesSize.count !== exportedData.data.baselines.length) { + ctx.log( + 'critical', + 'Imported documents count mismatch', + 'expected', + exportedData.data.baselines.length, + 'actual', + stats.baselinesSize.count, + ); + throw new VerdantError( + VerdantError.Code.ImportFailed, + undefined, + 'Imported documents count mismatch', + ); + } + } + + ctx.log('debug', 'Data copied to primary namespace'); + + // cleanup the imported namespace + await ctx.persistence.deleteNamespace(importedNamespace, ctx); + + ctx.log('debug', 'Deleted temporary namespace'); + + ctx.internalEvents.emit('persistenceReset'); + ctx.log('info', 'Data imported successfully'); +} diff --git a/packages/store/src/queries/BaseQuery.ts b/packages/store/src/queries/BaseQuery.ts index 6d8417e0..8270171c 100644 --- a/packages/store/src/queries/BaseQuery.ts +++ b/packages/store/src/queries/BaseQuery.ts @@ -1,5 +1,5 @@ import { EventSubscriber } from '@verdant-web/common'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { Entity } from '../entities/Entity.js'; import { Disposable } from '../utils/Disposable.js'; import { filterResultSet } from './utils.js'; @@ -253,4 +253,8 @@ export abstract class BaseQuery extends Disposable { [ON_ALL_UNSUBSCRIBED] = (handler: (query: BaseQuery) => void) => { this._allUnsubscribedHandler = handler; }; + + get __rawValue() { + return this._rawValue; + } } diff --git a/packages/store/src/queries/CollectionQueries.ts b/packages/store/src/queries/CollectionQueries.ts index c30f4f87..9a1338c3 100644 --- a/packages/store/src/queries/CollectionQueries.ts +++ b/packages/store/src/queries/CollectionQueries.ts @@ -3,7 +3,7 @@ import { CollectionFilter, hashObject, } from '@verdant-web/common'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { EntityStore } from '../entities/EntityStore.js'; import { GetQuery } from './GetQuery.js'; import { QueryCache } from './QueryCache.js'; @@ -12,7 +12,7 @@ import { FindPageQuery } from './FindPageQuery.js'; import { FindInfiniteQuery } from './FindInfiniteQuery.js'; import { FindAllQuery } from './FindAllQuery.js'; import { DocumentManager } from '../entities/DocumentManager.js'; -import { Entity, ObjectEntity } from '../index.js'; +import { ObjectEntity } from '../index.js'; import { UPDATE } from './BaseQuery.js'; export class CollectionQueries< diff --git a/packages/store/src/queries/FindAllQuery.ts b/packages/store/src/queries/FindAllQuery.ts index 4319df16..ce2d8143 100644 --- a/packages/store/src/queries/FindAllQuery.ts +++ b/packages/store/src/queries/FindAllQuery.ts @@ -1,6 +1,5 @@ import { CollectionFilter } from '@verdant-web/common'; import { BaseQuery, BaseQueryOptions, UPDATE } from './BaseQuery.js'; -import { findAllOids } from './dbQueries.js'; import { areIndexesEqual } from './utils.js'; export class FindAllQuery extends BaseQuery { @@ -24,10 +23,9 @@ export class FindAllQuery extends BaseQuery { } protected run = async () => { - const oids = await findAllOids({ + const { result: oids } = await this.context.queries.findAllOids({ collection: this.collection, index: this.index, - context: this.context, }); this.context.log( 'debug', diff --git a/packages/store/src/queries/FindInfiniteQuery.ts b/packages/store/src/queries/FindInfiniteQuery.ts index 2717afc1..bfc5b4ea 100644 --- a/packages/store/src/queries/FindInfiniteQuery.ts +++ b/packages/store/src/queries/FindInfiniteQuery.ts @@ -1,6 +1,5 @@ import { CollectionFilter } from '@verdant-web/common'; import { BaseQuery, BaseQueryOptions, UPDATE } from './BaseQuery.js'; -import { findPageOfOids } from './dbQueries.js'; import { areIndexesEqual } from './utils.js'; export class FindInfiniteQuery extends BaseQuery { @@ -38,9 +37,8 @@ export class FindInfiniteQuery extends BaseQuery { } protected run = async () => { - const { result, hasNextPage } = await findPageOfOids({ + const { result, hasNextPage } = await this.context.queries.findAllOids({ collection: this.collection, - context: this.context, limit: this._pageSize * this._upToPage, offset: 0, index: this.index, @@ -50,9 +48,8 @@ export class FindInfiniteQuery extends BaseQuery { }; public loadMore = async () => { - const { result, hasNextPage } = await findPageOfOids({ + const { result, hasNextPage } = await this.context.queries.findAllOids({ collection: this.collection, - context: this.context, limit: this._pageSize, offset: this._pageSize * this._upToPage, index: this.index, diff --git a/packages/store/src/queries/FindOneQuery.ts b/packages/store/src/queries/FindOneQuery.ts index 4cdee9a4..8241f99c 100644 --- a/packages/store/src/queries/FindOneQuery.ts +++ b/packages/store/src/queries/FindOneQuery.ts @@ -1,6 +1,5 @@ import { CollectionFilter } from '@verdant-web/common'; import { BaseQuery, BaseQueryOptions, UPDATE } from './BaseQuery.js'; -import { findOneOid } from './dbQueries.js'; import { areIndexesEqual } from './utils.js'; export class FindOneQuery extends BaseQuery { @@ -24,10 +23,9 @@ export class FindOneQuery extends BaseQuery { } protected run = async () => { - const oid = await findOneOid({ + const oid = await this.context.queries.findOneOid({ collection: this.collection, index: this.index, - context: this.context, }); this.setValue(oid ? await this.hydrate(oid) : null); }; diff --git a/packages/store/src/queries/FindPageQuery.ts b/packages/store/src/queries/FindPageQuery.ts index e997bf95..4662df15 100644 --- a/packages/store/src/queries/FindPageQuery.ts +++ b/packages/store/src/queries/FindPageQuery.ts @@ -1,6 +1,5 @@ import { CollectionFilter } from '@verdant-web/common'; import { BaseQuery, BaseQueryOptions, UPDATE } from './BaseQuery.js'; -import { findPageOfOids } from './dbQueries.js'; import { areIndexesEqual } from './utils.js'; export class FindPageQuery extends BaseQuery { @@ -49,10 +48,9 @@ export class FindPageQuery extends BaseQuery { } protected run = async () => { - const { result, hasNextPage } = await findPageOfOids({ + const { result, hasNextPage } = await this.context.queries.findAllOids({ collection: this.collection, index: this.index, - context: this.context, limit: this._pageSize, offset: this._page * this._pageSize, }); diff --git a/packages/store/src/queries/QueryCache.ts b/packages/store/src/queries/QueryCache.ts index 985082d4..252d987e 100644 --- a/packages/store/src/queries/QueryCache.ts +++ b/packages/store/src/queries/QueryCache.ts @@ -1,4 +1,4 @@ -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { Disposable } from '../utils/Disposable.js'; import { BaseQuery, ON_ALL_UNSUBSCRIBED } from './BaseQuery.js'; @@ -18,6 +18,12 @@ export class QueryCache extends Disposable { this._evictionTime = evictionTime; this.context = context; + this.addDispose( + this.context.internalEvents.subscribe( + 'persistenceReset', + this.forceRefreshAll, + ), + ); } get>(key: string): T | null { @@ -40,6 +46,7 @@ export class QueryCache extends Disposable { update?.(existing); return existing; } + this.context.log('debug', 'QueryCache: creating new query', key); return this.set(create()); } @@ -55,11 +62,23 @@ export class QueryCache extends Disposable { }; dropAll = () => { + this.context.log( + 'debug', + 'QueryCache: drop all', + this._cache.size, + 'queries', + ); this._cache.forEach((query) => query.dispose()); this._cache.clear(); }; forceRefreshAll = () => { + this.context.log( + 'debug', + 'QueryCache: force refresh all', + this._cache.size, + 'queries', + ); this._cache.forEach((q) => q.execute()); }; } diff --git a/packages/store/src/queries/QueryableStorage.ts b/packages/store/src/queries/QueryableStorage.ts deleted file mode 100644 index ae6a8e2d..00000000 --- a/packages/store/src/queries/QueryableStorage.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { - ObjectIdentifier, - decomposeOid, - getIndexValues, -} from '@verdant-web/common'; -import { IDBService } from '../IDBService.js'; -import { Context } from '../context.js'; -import { storeRequestPromise } from '../idb.js'; - -export class QueryableStorage extends IDBService { - private ctx; - - constructor({ ctx }: { ctx: Context }) { - super(ctx.documentDb, { log: ctx.log }); - this.ctx = ctx; - this.addDispose( - this.ctx.internalEvents.subscribe('documentDbChanged', (db) => { - this.db = db; - }), - ); - } - - /** - * DELETES EVERYTHING IN THE QUERYABLE DATABASE - */ - reset = async () => { - const allCollections = Object.keys(this.ctx.schema.collections); - const tx = this.createTransaction(allCollections, { mode: 'readwrite' }); - await Promise.all( - allCollections.map((collection) => { - const store = tx.objectStore(collection); - return storeRequestPromise(store.clear()); - }), - ); - // notify queries to re-run now. - this.ctx.entityEvents.emit('collectionsChanged', allCollections); - this.ctx.log('info', '💨 Reset queryable storage'); - }; - - saveEntities = async ( - entities: { oid: ObjectIdentifier; getSnapshot: () => any }[], - opts?: { abort?: AbortSignal }, - ) => { - if (entities.length === 0) { - return; - } - - let collections = Array.from( - new Set(entities.map((e) => decomposeOid(e.oid).collection)), - ); - // we could theoretically receive entities from old schema versions which no - // longer have collections. We should ignore these. If we don't, the transaction - // will fail, because the object store doesn't exist. - const toRemove = collections.filter((c) => !this.ctx.schema.collections[c]); - if (toRemove.length > 0) { - this.ctx.log( - 'warn', - `Ignoring entities from collections that no longer exist: ${toRemove.join( - ', ', - )}`, - ); - const withRemoved = new Set(collections); - toRemove.forEach((c) => withRemoved.delete(c)); - collections = Array.from(withRemoved); - } - const options = { - transaction: this.createTransaction(collections, { - mode: 'readwrite', - abort: opts?.abort, - }), - }; - await Promise.all( - entities.map(async (e) => { - const snapshot = e.getSnapshot(); - try { - await this.saveDocument(e.oid, snapshot, options); - } catch (err) { - this.ctx.log( - 'error', - `Error saving document ${e.oid} (${JSON.stringify(snapshot)})`, - err, - ); - if (err instanceof Error) { - throw err; - } else { - throw new Error('Unknown error saving document'); - } - } - }), - ); - options.transaction.commit(); - this.ctx.entityEvents.emit('collectionsChanged', collections); - for (const entity of entities) { - this.ctx.entityEvents.emit('documentChanged', entity.oid); - } - }; - - private saveDocument = async ( - oid: ObjectIdentifier, - doc: any, - { transaction }: { transaction?: IDBTransaction }, - ) => { - this.ctx.log('debug', `Saving document indexes for querying ${oid}`, doc); - const { collection, id } = decomposeOid(oid); - if (!doc) { - await this.run(collection, (store) => store.delete(id), { - mode: 'readwrite', - transaction, - }); - this.ctx.log('debug', `Deleted document indexes for querying ${oid}`); - } else { - const schema = this.ctx.schema.collections[collection]; - // no need to validate before storing; the entity's snapshot is already validated. - const indexes = getIndexValues(schema, doc); - await this.run(collection, (store) => store.put(indexes), { - mode: 'readwrite', - transaction, - }); - this.ctx.log('debug', `Saved document indexes for querying ${oid}`, doc); - } - }; -} diff --git a/packages/store/src/queries/dbQueries.ts b/packages/store/src/queries/dbQueries.ts deleted file mode 100644 index 75b04d76..00000000 --- a/packages/store/src/queries/dbQueries.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { CollectionFilter, createOid } from '@verdant-web/common'; -import { Context } from '../context.js'; -import { getRange } from './ranges.js'; -import { isAbortError } from '../idb.js'; - -function getStore(db: IDBDatabase, collection: string, write?: boolean) { - return db - .transaction(collection, write ? 'readwrite' : 'readonly') - .objectStore(collection); -} - -export async function findOneOid({ - collection, - index, - context, -}: { - collection: string; - index?: CollectionFilter; - context: Context; -}) { - const store = getStore(context.documentDb, collection); - const source = index?.where ? store.index(index.where) : store; - const range = getRange(context.schema, collection, index); - const direction = index?.order === 'desc' ? 'prev' : 'next'; - const request = source.openCursor(range, direction); - const result = await new Promise((resolve, reject) => { - request.onsuccess = () => { - const cursor = request.result; - if (cursor) { - resolve(createOid(collection, cursor.primaryKey.toString())); - } else { - resolve(null); - } - }; - request.onerror = () => { - if (request.error?.name === 'InvalidStateError') { - context.log( - 'error', - `findOne query failed with InvalidStateError`, - request.error, - ); - resolve(null); - } else if (isAbortError(request.error)) { - resolve(null); - } else { - reject(request.error); - } - }; - }); - return result; -} - -export async function findAllOids({ - collection, - index, - context, -}: { - collection: string; - index?: CollectionFilter; - context: Context; -}) { - const store = getStore(context.documentDb, collection); - const source = index?.where ? store.index(index.where) : store; - const range = getRange(context.schema, collection, index); - const direction = index?.order === 'desc' ? 'prev' : 'next'; - const request = source.openCursor(range, direction); - const result = await new Promise((resolve, reject) => { - const results = new Set(); - request.onsuccess = () => { - const cursor = request.result; - if (cursor) { - results.add(createOid(collection, cursor.primaryKey.toString())); - cursor.continue(); - } else { - resolve(Array.from(results)); - } - }; - request.onerror = () => { - if (request.error?.name === 'InvalidStateError') { - context.log( - 'error', - `findAll query failed with InvalidStateError`, - request.error, - ); - resolve([]); - } else if (isAbortError(request.error)) { - resolve([]); - } else { - reject(request.error); - } - }; - }); - return result; -} - -export async function findPageOfOids({ - collection, - index, - context, - limit, - offset, -}: { - collection: string; - index?: CollectionFilter; - context: Context; - limit?: number; - offset?: number; -}) { - const store = getStore(context.documentDb, collection); - const source = index?.where ? store.index(index.where) : store; - const range = getRange(context.schema, collection, index); - const direction = index?.order === 'desc' ? 'prev' : 'next'; - const request = source.openCursor(range, direction); - let hasDoneOffset = !offset; - let hasNextPage = false; - let visited = 0; - const result = await new Promise((resolve, reject) => { - const results = new Set(); - request.onsuccess = () => { - visited++; - const cursor = request.result; - if (cursor) { - if (offset && !hasDoneOffset) { - cursor.advance(offset); - hasDoneOffset = true; - } else { - if (limit && results.size < limit) { - results.add(createOid(collection, cursor.primaryKey.toString())); - } - if (limit && visited > limit) { - hasNextPage = true; - resolve(Array.from(results)); - } else { - cursor.continue(); - } - } - } else { - resolve(Array.from(results)); - } - }; - request.onerror = () => { - if (request.error?.name === 'InvalidStateError') { - context.log( - 'error', - `find query failed with InvalidStateError`, - request.error, - ); - resolve([]); - } else if (isAbortError(request.error)) { - resolve([]); - } else { - reject(request.error); - } - }; - }); - - return { - result: result as string[], - hasNextPage, - }; -} diff --git a/packages/store/src/sync/FileSync.ts b/packages/store/src/sync/FileSync.ts index 1007a75e..4df142a9 100644 --- a/packages/store/src/sync/FileSync.ts +++ b/packages/store/src/sync/FileSync.ts @@ -1,9 +1,10 @@ import { FileData } from '@verdant-web/common'; import { ServerSyncEndpointProvider } from './ServerSyncEndpointProvider.js'; +import { Context } from '../context/context.js'; +import { Disposable } from '../utils/Disposable.js'; export interface FileUploadResult { success: boolean; - retry: boolean; error?: string; } @@ -14,26 +15,47 @@ export type FilePullResult = } | { success: false; - retry: boolean; error?: any; }; -export class FileSync { +export class FileSync extends Disposable { private endpointProvider: ServerSyncEndpointProvider; - private log: (...args: any[]) => any; + private ctx; constructor({ endpointProvider, - log, + ctx, }: { endpointProvider: ServerSyncEndpointProvider; - log: (...args: any[]) => any; + ctx: Context; }) { + super(); this.endpointProvider = endpointProvider; - this.log = log; + this.ctx = ctx; + this.addDispose( + ctx.internalEvents.subscribe('fileAdded', this.onFileAdded), + ); } - uploadFile = async (data: FileData): Promise => { + private onFileAdded = async (data: FileData) => { + if (data.remote) return; + this.ctx.log('debug', 'Uploading file', data.id, data.name); + try { + await this.uploadFile(data); + this.ctx.internalEvents.emit(`fileUploaded:${data.id}`); + } catch (e) { + this.ctx.log('error', 'File upload failed', e); + } + }; + + /** + * Attempts to upload a file to the sync server. Will be retried + * according to retry config. + */ + uploadFile = async ( + data: FileData, + retries: { max: number; current: number } = { current: 0, max: 3 }, + ): Promise => { const file = data.file; if (!file) { @@ -58,31 +80,54 @@ export class FileSync { }); if (response.ok) { - this.log('info', 'File upload successful'); + this.ctx.log('info', 'File upload successful'); return { success: true, - retry: false, }; } else { const responseText = await response.text(); - this.log('error', 'File upload failed', response.status, responseText); + this.ctx.log( + 'error', + 'File upload failed', + response.status, + responseText, + ); + if (response.status < 500 || retries.current >= retries.max) { + return { + success: false, + error: `Failed to upload file: ${response.status} ${responseText}`, + }; + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + return this.uploadFile(data, { + max: retries.max, + current: retries.current + 1, + }); + } + } catch (e) { + this.ctx.log('error', 'File upload failed', e); + if (retries.current >= retries.max) { return { success: false, - retry: response.status >= 500, - error: `Failed to upload file: ${response.status} ${responseText}`, + error: (e as Error).message, }; } - } catch (e) { - this.log('error', 'File upload failed', e); - return { - success: false, - retry: true, - error: (e as Error).message, - }; + await new Promise((resolve) => setTimeout(resolve, 1000)); + return this.uploadFile(data, { + max: retries.max, + current: retries.current + 1, + }); } }; - getFile = async (id: string): Promise => { + /** + * Pulls a file from the server by its ID. Will be retried + * according to retry config. + */ + getFile = async ( + id: string, + retries: { current: number; max: number } = { current: 0, max: 3 }, + ): Promise => { const { files: fileEndpoint, token } = await this.endpointProvider.getEndpoints(); @@ -103,24 +148,42 @@ export class FileSync { data, }; } else { - this.log( + this.ctx.log( 'error', 'File information fetch failed', response.status, await response.text(), ); + if ( + (response.status < 500 && response.status !== 404) || + retries.current >= retries.max + ) { + return { + success: false, + error: `Failed to fetch file: ${response.status}`, + }; + } + + await new Promise((resolve) => setTimeout(resolve, 1000)); + return this.getFile(id, { + current: retries.current + 1, + max: retries.max, + }); + } + } catch (e) { + this.ctx.log('error', 'File information fetch failed', e); + if (retries.current >= retries.max) { return { success: false, - retry: response.status >= 500 || response.status === 404, + error: (e as Error).message, }; } - } catch (e) { - this.log('error', 'File information fetch failed', e); - return { - success: false, - error: e, - retry: true, - }; + + await new Promise((resolve) => setTimeout(resolve, 1000)); + return this.getFile(id, { + current: retries.current + 1, + max: retries.max, + }); } }; } diff --git a/packages/store/src/sync/PresenceManager.ts b/packages/store/src/sync/PresenceManager.ts index 05875340..0462c5d5 100644 --- a/packages/store/src/sync/PresenceManager.ts +++ b/packages/store/src/sync/PresenceManager.ts @@ -7,10 +7,8 @@ import { initialInternalPresence, } from '@verdant-web/common'; import type { UserInfo } from '../index.js'; -import { - LocalReplicaInfo, - LocalReplicaStore, -} from '../metadata/LocalReplicaStore.js'; +import { Context } from '../context/context.js'; +import { LocalReplicaInfo } from '../persistence/interfaces.js'; export const HANDLE_MESSAGE = Symbol('handleMessage'); @@ -77,12 +75,12 @@ export class PresenceManager< initialPresence, updateBatchTimeout = 200, defaultProfile, - replicaStore, + ctx, }: { initialPresence: Presence; defaultProfile: Profile; updateBatchTimeout?: number; - replicaStore: LocalReplicaStore; + ctx: Context; }) { super(); this.self.presence = initialPresence; @@ -92,7 +90,7 @@ export class PresenceManager< this.self.replicaId = ''; // set the local replica ID as soon as it's loaded - replicaStore.get().then((info) => { + ctx.meta.getLocalReplica().then((info) => { this.self.replicaId = info.id; }); diff --git a/packages/store/src/sync/PushPullSync.ts b/packages/store/src/sync/PushPullSync.ts index 62792494..2b00e92a 100644 --- a/packages/store/src/sync/PushPullSync.ts +++ b/packages/store/src/sync/PushPullSync.ts @@ -4,28 +4,26 @@ import { PresenceUpdateMessage, ServerMessage, VerdantErrorCode, - debounce, isVerdantErrorResponse, throttle, } from '@verdant-web/common'; -import { Metadata } from '../metadata/Metadata.js'; import { PresenceManager } from './PresenceManager.js'; import { Heartbeat } from './Heartbeat.js'; import { ServerSyncEndpointProvider } from './ServerSyncEndpointProvider.js'; import { SyncTransport, SyncTransportEvents } from './Sync.js'; +import { Context } from '../context/context.js'; export class PushPullSync extends EventSubscriber implements SyncTransport { - readonly meta: Metadata; readonly presence: PresenceManager; private endpointProvider; private heartbeat; private fetch; readonly mode = 'pull'; - private log; + private ctx; private _isConnected = false; private _status: 'active' | 'paused' = 'paused'; @@ -33,22 +31,19 @@ export class PushPullSync constructor({ endpointProvider, - meta, presence, interval = 15 * 1000, - log = () => {}, fetch = window.fetch.bind(window), + ctx, }: { endpointProvider: ServerSyncEndpointProvider; - meta: Metadata; presence: PresenceManager; interval?: number; - log?: (...args: any[]) => any; fetch?: typeof window.fetch; + ctx: Context; }) { super(); - this.log = log; - this.meta = meta; + this.ctx = ctx; this.presence = presence; this.endpointProvider = endpointProvider; this.fetch = fetch; @@ -73,7 +68,7 @@ export class PushPullSync } private sendRequest = async (messages: ClientMessage[]) => { - this.log('Sending sync request', messages); + this.ctx.log('debug', 'Sending sync request', messages); try { const { http: host, token } = await this.endpointProvider.getEndpoints(); const response = await this.fetch(host, { @@ -104,7 +99,12 @@ export class PushPullSync } await handlePromise; } else { - this.log('Sync request failed', response.status, await response.text()); + this.ctx.log( + 'error', + 'Sync request failed', + response.status, + await response.text(), + ); if (this._isConnected) { this._isConnected = false; @@ -130,7 +130,7 @@ export class PushPullSync this._isConnected = false; this.emit('onlineChange', false); } - this.log(error); + this.ctx.log('error', error); this.heartbeat.keepAlive(); } @@ -142,9 +142,9 @@ export class PushPullSync // but we can go ahead and preemptively allow ops to be sent this._hasSynced = true; if (message.ackThisNonce) { - this.log('Sending sync ack', message.ackThisNonce); + this.ctx.log('debug', 'Sending sync ack', message.ackThisNonce); await this.sendRequest([ - await this.meta.messageCreator.createAck(message.ackThisNonce), + await this.ctx.meta.messageCreator.createAck(message.ackThisNonce), ]); } } @@ -204,8 +204,10 @@ export class PushPullSync // will include the client's own presence info and fill in missing profile // data on the first request. otherwise it would have to wait for the second. this.sendRequest([ - await this.meta.messageCreator.createPresenceUpdate(this.presence.self), - await this.meta.messageCreator.createSyncStep1(), + await this.ctx.meta.messageCreator.createPresenceUpdate( + this.presence.self, + ), + await this.ctx.meta.messageCreator.createSyncStep1(), ]); }; @@ -213,12 +215,14 @@ export class PushPullSync // the connection is lost and go offline. private onHeartbeatMissed = async () => { this.emit('onlineChange', false); - this.log('Missed heartbeat'); + this.ctx.log('warn', 'Missed heartbeat'); this._isConnected = false; }; syncOnce = async () => { - await this.sendRequest([await this.meta.messageCreator.createSyncStep1()]); + await this.sendRequest([ + await this.ctx.meta.messageCreator.createSyncStep1(), + ]); }; get isConnected(): boolean { diff --git a/packages/store/src/sync/Sync.ts b/packages/store/src/sync/Sync.ts index 9eef6706..c52143d9 100644 --- a/packages/store/src/sync/Sync.ts +++ b/packages/store/src/sync/Sync.ts @@ -10,7 +10,6 @@ import { VerdantError, VerdantInternalPresence, } from '@verdant-web/common'; -import { Metadata } from '../metadata/Metadata.js'; import { HANDLE_MESSAGE, PresenceManager } from './PresenceManager.js'; import { FilePullResult, FileSync, FileUploadResult } from './FileSync.js'; import { PushPullSync } from './PushPullSync.js'; @@ -19,7 +18,7 @@ import { ServerSyncEndpointProviderConfig, } from './ServerSyncEndpointProvider.js'; import { WebSocketSync } from './WebSocketSync.js'; -import { Context } from '../context.js'; +import { Context } from '../context/context.js'; import { attemptToRegisterBackgroundSync } from './background.js'; type SyncEvents = { @@ -100,12 +99,12 @@ export class NoSync public readonly presence; - constructor({ meta }: { meta: Metadata }) { + constructor(ctx: Context) { super(); this.presence = new PresenceManager({ initialPresence: null as any, defaultProfile: null as any, - replicaStore: meta.localReplica, + ctx, }); } @@ -119,7 +118,7 @@ export class NoSync getFile = async (): Promise => { return { success: false, - retry: false, + error: 'Sync is not active', }; }; @@ -206,13 +205,11 @@ export class ServerSync private broadcastChannel: BroadcastChannel | null = null; private _activelySyncing = false; - private meta: Metadata; - readonly presence: PresenceManager; private onOutgoingMessage?: (message: ClientMessage) => void; - private log; + private ctx; constructor( { @@ -231,11 +228,9 @@ export class ServerSync EXPERIMENTAL_backgroundSync, }: ServerSyncOptions, { - meta, ctx, onData, }: { - meta: Metadata; ctx: Context; onData: (data: { operations: Operation[]; @@ -245,15 +240,14 @@ export class ServerSync }, ) { super(); - this.meta = meta; this.onData = onData; - this.log = ctx.log; + this.ctx = ctx; this.onOutgoingMessage = onOutgoingMessage; this.presence = new PresenceManager({ initialPresence, defaultProfile, updateBatchTimeout: presenceUpdateBatchTimeout, - replicaStore: meta.localReplica, + ctx, }); this.endpointProvider = new ServerSyncEndpointProvider({ authEndpoint, @@ -263,21 +257,19 @@ export class ServerSync this.webSocketSync = new WebSocketSync({ endpointProvider: this.endpointProvider, - meta, presence: this.presence, - log: ctx.log, + ctx, }); this.pushPullSync = new PushPullSync({ endpointProvider: this.endpointProvider, - meta, presence: this.presence, - log: ctx.log, interval: pullInterval, fetch, + ctx, }); this.fileSync = new FileSync({ endpointProvider: this.endpointProvider, - log: ctx.log, + ctx, }); if (useBroadcastChannel && 'BroadcastChannel' in window) { this.broadcastChannel = new BroadcastChannel(`verdant-${ctx.namespace}`); @@ -294,7 +286,7 @@ export class ServerSync this.presence.subscribe('update', this.handlePresenceUpdate); - this.meta.subscribe('message', this.send); + ctx.meta.events.subscribe('syncMessage', this.send); this.webSocketSync.subscribe('message', this.handleMessage); this.webSocketSync.subscribe('onlineChange', this.handleOnlineChange); @@ -360,10 +352,6 @@ export class ServerSync } }; - private onTokenExpired = () => { - this.endpointProvider.clearCache(); - }; - private handleMessage = async ( message: ServerMessage, { source }: { source: 'network' | 'broadcastChannel' } = { @@ -373,11 +361,11 @@ export class ServerSync // TODO: move this into metadata if (message.type === 'op-re' || message.type === 'sync-resp') { for (const op of message.operations) { - this.meta.time.update(op.timestamp); + this.ctx.time.update(op.timestamp); } } - this.log('debug', 'sync message', JSON.stringify(message, null, 2)); + this.ctx.log('debug', 'sync message', JSON.stringify(message, null, 2)); switch (message.type) { case 'op-re': await this.onData({ @@ -385,11 +373,11 @@ export class ServerSync baselines: message.baselines, }); if (message.globalAckTimestamp) { - await this.meta.setGlobalAck(message.globalAckTimestamp); + await this.ctx.meta.setGlobalAck(message.globalAckTimestamp); } break; case 'global-ack': - await this.meta.setGlobalAck(message.timestamp); + await this.ctx.meta.setGlobalAck(message.timestamp); break; case 'sync-resp': this._activelySyncing = true; @@ -401,21 +389,22 @@ export class ServerSync }); if (message.globalAckTimestamp) { - await this.meta.setGlobalAck(message.globalAckTimestamp); + await this.ctx.meta.setGlobalAck(message.globalAckTimestamp); } - await this.meta.updateLastSynced(message.ackedTimestamp); + await this.ctx.meta.updateLastSynced(message.ackedTimestamp); this._activelySyncing = false; this.emit('syncingChange', false); break; case 'need-since': this.emit('serverReset', message.since); + this.ctx.files.onServerReset(message.since); this.activeSync.send( - await this.meta.messageCreator.createSyncStep1(message.since), + await this.ctx.meta.messageCreator.createSyncStep1(message.since), ); break; case 'server-ack': - await this.meta.updateLastSynced(message.timestamp); + await this.ctx.meta.updateLastSynced(message.timestamp); } // avoid rebroadcasting messages @@ -427,16 +416,36 @@ export class ServerSync } // update presence if necessary - this.presence[HANDLE_MESSAGE](await this.meta.localReplica.get(), message); + this.presence[HANDLE_MESSAGE]( + await this.ctx.meta.getLocalReplica(), + message, + ); }; - private handleOnlineChange = (online: boolean) => { + private handleOnlineChange = async (online: boolean) => { this.emit('onlineChange', online); + + // if online, attempt to upload any unsynced files. + if (online) { + const unsyncedFiles = await this.ctx.files.listUnsynced(); + const results = await Promise.allSettled( + unsyncedFiles.map((file) => this.fileSync.uploadFile(file)), + ); + if (results.some((r) => r.status === 'rejected')) { + this.ctx.log( + 'error', + 'Failed to upload unsynced files', + results + .filter((r): r is PromiseRejectedResult => r.status === 'rejected') + .map((r) => r.reason), + ); + } + } }; private handlePresenceUpdate = async (data: { presence?: Presence; internal?: VerdantInternalPresence; }) => { - this.send(await this.meta.messageCreator.createPresenceUpdate(data)); + this.send(await this.ctx.meta.messageCreator.createPresenceUpdate(data)); }; setMode = (transport: SyncTransportMode) => { @@ -454,7 +463,7 @@ export class ServerSync } if (newSync === this.activeSync) return; - this.log('debug', 'switching to', transport, 'mode'); + this.ctx.log('debug', 'switching to', transport, 'mode'); // transfer state to new sync if (this.activeSync.status === 'active') { @@ -496,7 +505,7 @@ export class ServerSync }; uploadFile = async (info: FileData) => { - this.log('info', 'Uploading file', { + this.ctx.log('info', 'Uploading file', { name: info.name, type: info.type, id: info.id, diff --git a/packages/store/src/sync/WebSocketSync.ts b/packages/store/src/sync/WebSocketSync.ts index 3e2d467e..9bd08548 100644 --- a/packages/store/src/sync/WebSocketSync.ts +++ b/packages/store/src/sync/WebSocketSync.ts @@ -4,17 +4,16 @@ import { ServerMessage, } from '@verdant-web/common'; import { Backoff, BackoffScheduler } from '../BackoffScheduler.js'; -import { Metadata } from '../metadata/Metadata.js'; import { Heartbeat } from './Heartbeat.js'; import { PresenceManager } from './PresenceManager.js'; import { ServerSyncEndpointProvider } from './ServerSyncEndpointProvider.js'; import { SyncTransport, SyncTransportEvents } from './Sync.js'; +import { Context } from '../context/context.js'; export class WebSocketSync extends EventSubscriber implements SyncTransport { - private meta: Metadata; readonly presence: PresenceManager; private socket: WebSocket | null = null; // messages awaiting websocket connection to send @@ -30,7 +29,7 @@ export class WebSocketSync private _ignoreIncoming = false; readonly mode = 'realtime'; - private log = (...args: any[]) => {}; + private ctx: Context; private heartbeat = new Heartbeat(); @@ -40,19 +39,16 @@ export class WebSocketSync constructor({ endpointProvider, - meta, + ctx, presence, - log, }: { endpointProvider: ServerSyncEndpointProvider; - meta: Metadata; + ctx: Context; presence: PresenceManager; - log?: (...args: any[]) => any; }) { super(); - this.log = log || this.log; + this.ctx = ctx; this.endpointProvider = endpointProvider; - this.meta = meta; this.presence = presence; this.reconnectScheduler.subscribe('trigger', this.initializeSocket); @@ -70,18 +66,22 @@ export class WebSocketSync this.synced = false; if (this.connectQueue.length) { for (const msg of this.connectQueue) { - this.log('Sending queued message', JSON.stringify(msg, null, 2)); + this.ctx.log( + 'debug', + 'Sending queued message', + JSON.stringify(msg, null, 2), + ); this.socket.send(JSON.stringify(msg)); } this.connectQueue = []; } - this.log('Sync connected'); + this.ctx.log('debug', 'Sync connected'); this.onOnlineChange(true); this.reconnectScheduler.reset(); }; private onOnlineChange = async (online: boolean) => { - this.log('Socket online change', online); + this.ctx.log('info', 'Socket online change', online); if (this.disposed) { return; } @@ -90,13 +90,15 @@ export class WebSocketSync this.synced = false; this.heartbeat.stop(); } else { - this.log('Starting sync'); + this.ctx.log('debug', 'Starting sync'); this.hasStartedSync = true; this.synced = false; this.send( - await this.meta.messageCreator.createPresenceUpdate(this.presence.self), + await this.ctx.meta.messageCreator.createPresenceUpdate( + this.presence.self, + ), ); - this.send(await this.meta.messageCreator.createSyncStep1()); + this.send(await this.ctx.meta.messageCreator.createSyncStep1()); this.heartbeat.start(); } this.emit('onlineChange', online); @@ -104,7 +106,8 @@ export class WebSocketSync private onMessage = async (event: MessageEvent) => { if (this._ignoreIncoming) { - this.log( + this.ctx.log( + 'warn', 'Ignoring incoming message (ignore incoming flag set)', event.data, ); @@ -117,14 +120,14 @@ export class WebSocketSync if (message.ackThisNonce) { // we need to send the ack to confirm we got the response this.send( - await this.meta.messageCreator.createAck(message.ackThisNonce), + await this.ctx.meta.messageCreator.createAck(message.ackThisNonce), ); } this.hasStartedSync = true; this.synced = true; if (this.syncQueue.length) { if (message.overwriteLocalData) { - this.log( + this.ctx.log( 'warn', 'Overwriting local data - dropping outgoing message queue', ); @@ -151,7 +154,8 @@ export class WebSocketSync break; case 'op-re': if (!this.synced) { - this.log( + this.ctx.log( + 'debug', `Enqueueing op-re message because sync hasn't finished yet`, message, ); @@ -173,14 +177,14 @@ export class WebSocketSync }; private onError = (event: Event) => { - this.log(event); + this.ctx.log('error', event); this.reconnectScheduler.next(); - this.log(`Attempting reconnect to websocket sync`); + this.ctx.log('info', `Attempting reconnect to websocket sync`); }; private onClose = (event: CloseEvent) => { - this.log('Sync disconnected'); + this.ctx.log('info', 'Sync disconnected'); this.onOnlineChange(false); this.onError(event); }; @@ -197,7 +201,7 @@ export class WebSocketSync }; private sendHeartbeat = async () => { - this.send(await this.meta.messageCreator.createHeartbeat()); + this.send(await this.ctx.meta.messageCreator.createHeartbeat()); }; reconnect = () => { @@ -225,10 +229,15 @@ export class WebSocketSync if (this.canSkipSyncWait(message)) { if (this.socket?.readyState === WebSocket.OPEN) { - this.log('Sending message', JSON.stringify(message, null, 2)); + this.ctx.log( + 'debug', + 'Sending message', + JSON.stringify(message, null, 2), + ); this.socket!.send(JSON.stringify(message)); } else { - this.log( + this.ctx.log( + 'debug', 'Enqueueing message until socket is open', JSON.stringify(message, null, 2), ); @@ -236,11 +245,16 @@ export class WebSocketSync } } else if (this.synced) { if (this.socket?.readyState === WebSocket.OPEN) { - this.log('Sending message', JSON.stringify(message, null, 2)); + this.ctx.log( + 'debug', + 'Sending message', + JSON.stringify(message, null, 2), + ); this.socket.send(JSON.stringify(message)); } } else if (this.hasStartedSync) { - this.log( + this.ctx.log( + 'debug', 'Enqueueing message until synced', JSON.stringify(message, null, 2), ); diff --git a/packages/store/src/utils/Disposable.ts b/packages/store/src/utils/Disposable.ts index dc0f08ad..46efedee 100644 --- a/packages/store/src/utils/Disposable.ts +++ b/packages/store/src/utils/Disposable.ts @@ -1,14 +1,17 @@ export class Disposable { - private _disposes: (() => void)[] = []; + private _disposes: (() => void | Promise)[] = []; protected disposed = false; - dispose = () => { + dispose = async () => { this.disposed = true; - this._disposes.forEach((dispose) => dispose()); + await Promise.all(this._disposes.map((dispose) => dispose())); this._disposes = []; }; - protected addDispose = (dispose: () => void) => { + compose = (disposable: { dispose: () => void | Promise }) => + this.addDispose(disposable.dispose.bind(disposable)); + + protected addDispose = (dispose: () => void | Promise) => { this._disposes.push(dispose); }; } diff --git a/packages/store/src/utils/wip.ts b/packages/store/src/utils/wip.ts new file mode 100644 index 00000000..375b29fb --- /dev/null +++ b/packages/store/src/utils/wip.ts @@ -0,0 +1,5 @@ +import { hashObject, StorageSchema } from '@verdant-web/common'; + +export function getWipNamespace(namespace: string, schema: StorageSchema) { + return `@@wip_${namespace}_${hashObject(schema)}`; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0d600e10..5368a4be 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -28,32 +28,38 @@ importers: specifier: ^5.4.2 version: 5.4.2 + configs: + devDependencies: + vitest: + specifier: 2.1.3 + version: 2.1.3(@types/node@20.11.5)(jsdom@24.1.0)(terser@5.15.1) + docs: dependencies: '@docusaurus/core': specifier: 2.1.0 - version: 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + version: 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/preset-classic': specifier: 2.1.0 - version: 2.1.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + version: 2.1.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@mdx-js/react': specifier: ^1.6.22 version: 1.6.22(react@18.2.0) '@react-spring/three': specifier: ^9.7.1 - version: 9.7.1(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1) + version: 9.7.1(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1) '@react-three/drei': specifier: ^9.57.0 - version: 9.57.0(@react-three/fiber@8.11.9)(@types/three@0.149.0)(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + version: 9.57.0(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(@types/three@0.149.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) '@react-three/fiber': specifier: ^8.11.9 - version: 8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + version: 8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) '@react-three/lightmap': specifier: ^0.0.8 - version: 0.0.8(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1) + version: 0.0.8(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1) '@react-three/postprocessing': specifier: ^2.7.0 - version: 2.7.0(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1) + version: 2.7.0(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1) '@types/react': specifier: ^18.0.17 version: 18.0.20 @@ -65,7 +71,7 @@ importers: version: 1.2.1 leva: specifier: ^0.9.34 - version: 0.9.34(react-dom@18.2.0)(react@18.2.0) + version: 0.9.34(react-dom@18.2.0(react@18.2.0))(react@18.2.0) prism-react-renderer: specifier: ^1.3.5 version: 1.3.5(react@18.2.0) @@ -81,7 +87,7 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 2.1.0 - version: 2.1.0(react-dom@18.2.0)(react@18.2.0) + version: 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@tsconfig/docusaurus': specifier: ^1.0.5 version: 1.0.6 @@ -93,7 +99,7 @@ importers: dependencies: '@tldraw/tldraw': specifier: ^1.26.2 - version: 1.26.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + version: 1.26.2(@types/react@18.0.20)(immer@9.0.16)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@types/express': specifier: ^4.17.14 version: 4.17.14 @@ -117,7 +123,7 @@ importers: version: link:../../packages/store '@vitejs/plugin-react': specifier: ^2.2.0 - version: 2.2.0(vite@3.2.4) + version: 2.2.0(vite@3.2.4(@types/node@20.11.5)(terser@5.15.1)) concurrently: specifier: ^7.5.0 version: 7.5.0 @@ -141,7 +147,7 @@ importers: version: 5.4.2 vite: specifier: ^3.2.4 - version: 3.2.4(@types/node@20.10.5) + version: 3.2.4(@types/node@20.11.5)(terser@5.15.1) packages/cli: dependencies: @@ -199,7 +205,7 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@20.0.0) + version: 2.0.5(@types/node@20.11.5)(jsdom@20.0.0)(terser@5.15.1) packages/common: dependencies: @@ -224,7 +230,7 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@24.1.0) + version: 2.0.5(@types/node@20.11.5)(jsdom@24.1.0)(terser@5.15.1) packages/create-app: dependencies: @@ -262,7 +268,7 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@24.1.0) + version: 2.0.5(@types/node@20.11.5)(jsdom@24.1.0)(terser@5.15.1) packages/react: dependencies: @@ -299,7 +305,7 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@20.0.0) + version: 2.0.5(@types/node@20.11.5)(jsdom@20.0.0)(terser@5.15.1) packages/react-router: dependencies: @@ -318,7 +324,7 @@ importers: version: 0.0.3 '@vitejs/plugin-react-swc': specifier: ^3.3.0 - version: 3.3.0(vite@4.2.1) + version: 3.3.0(vite@4.2.1(@types/node@20.11.5)(terser@5.15.1)) jsdom: specifier: ^20.0.0 version: 20.0.0 @@ -333,10 +339,10 @@ importers: version: 5.4.2 vite: specifier: ^4.2.1 - version: 4.2.1(@types/node@20.10.5) + version: 4.2.1(@types/node@20.11.5)(terser@5.15.1) vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@20.0.0) + version: 2.0.5(@types/node@20.11.5)(jsdom@20.0.0)(terser@5.15.1) packages/server: dependencies: @@ -397,7 +403,7 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.11.5) + version: 2.0.5(@types/node@20.11.5)(jsdom@24.1.0)(terser@5.15.1) packages/store: dependencies: @@ -446,7 +452,7 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@24.1.0) + version: 2.0.5(@types/node@20.10.5)(jsdom@24.1.0)(terser@5.15.1) scaleTest: dependencies: @@ -479,7 +485,7 @@ importers: version: 5.4.2 vite: specifier: ^4.0.4 - version: 4.0.4(@types/node@20.10.5) + version: 4.0.4(@types/node@20.11.5)(terser@5.15.1) devDependencies: '@types/cors': specifier: ^2.8.13 @@ -513,7 +519,7 @@ importers: version: link:../packages/store '@vitejs/plugin-react-swc': specifier: 3.7.0 - version: 3.7.0(vite@3.2.4) + version: 3.7.0(vite@3.2.4(@types/node@20.11.5)(terser@5.15.1)) concurrently: specifier: ^7.5.0 version: 7.5.0 @@ -537,7 +543,7 @@ importers: version: 5.4.2 vite: specifier: ^3.2.4 - version: 3.2.4(@types/node@20.10.5) + version: 3.2.4(@types/node@20.11.5)(terser@5.15.1) test: dependencies: @@ -591,731 +597,236 @@ importers: version: 5.4.2 vitest: specifier: ^2.0.5 - version: 2.0.5(@types/node@20.10.5)(jsdom@20.0.0) + version: 2.0.5(@types/node@20.10.5)(jsdom@20.0.0)(terser@5.15.1) ws: specifier: ^8.9.0 version: 8.9.0 packages: - /@a-type/kysely@1.0.1(kysely@0.27.3): + '@a-type/kysely@1.0.1': resolution: {integrity: sha512-ZiLRXsFD+tYRXbb2TajkqHHI0EwiEWhuKltrIfarqjoDvvvOcypwvQfq811+HXatnLME5mA6D8yYMqmdYhpyoQ==} peerDependencies: kysely: ^0.27.2 - dependencies: - '@paralleldrive/cuid2': 2.2.2 - bcrypt: 5.1.1 - kysely: 0.27.3 - transitivePeerDependencies: - - encoding - - supports-color - dev: false - /@a-type/utils@1.0.2: + '@a-type/utils@1.0.2': resolution: {integrity: sha512-JxuEcT+Yhe6lq66XpUs4FnKmoMxX2tUVtMBUz7NbcxDj1WBt8v5bM8z5AVLHp+zeTjfZMt98mo2FLUA7rUm4Rg==} - dev: false - /@algolia/autocomplete-core@1.7.2: + '@algolia/autocomplete-core@1.7.2': resolution: {integrity: sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==} - dependencies: - '@algolia/autocomplete-shared': 1.7.2 - dev: false - /@algolia/autocomplete-preset-algolia@1.7.2(@algolia/client-search@4.14.2)(algoliasearch@4.14.2): + '@algolia/autocomplete-preset-algolia@1.7.2': resolution: {integrity: sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - dependencies: - '@algolia/autocomplete-shared': 1.7.2 - '@algolia/client-search': 4.14.2 - algoliasearch: 4.14.2 - dev: false - /@algolia/autocomplete-shared@1.7.2: + '@algolia/autocomplete-shared@1.7.2': resolution: {integrity: sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==} - dev: false - /@algolia/cache-browser-local-storage@4.14.2: + '@algolia/cache-browser-local-storage@4.14.2': resolution: {integrity: sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==} - dependencies: - '@algolia/cache-common': 4.14.2 - dev: false - /@algolia/cache-common@4.14.2: + '@algolia/cache-common@4.14.2': resolution: {integrity: sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==} - dev: false - /@algolia/cache-in-memory@4.14.2: + '@algolia/cache-in-memory@4.14.2': resolution: {integrity: sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==} - dependencies: - '@algolia/cache-common': 4.14.2 - dev: false - /@algolia/client-account@4.14.2: + '@algolia/client-account@4.14.2': resolution: {integrity: sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==} - dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/client-search': 4.14.2 - '@algolia/transporter': 4.14.2 - dev: false - /@algolia/client-analytics@4.14.2: + '@algolia/client-analytics@4.14.2': resolution: {integrity: sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==} - dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/client-search': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 - dev: false - /@algolia/client-common@4.14.2: + '@algolia/client-common@4.14.2': resolution: {integrity: sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==} - dependencies: - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 - dev: false - /@algolia/client-personalization@4.14.2: + '@algolia/client-personalization@4.14.2': resolution: {integrity: sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==} - dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 - dev: false - /@algolia/client-search@4.14.2: + '@algolia/client-search@4.14.2': resolution: {integrity: sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==} - dependencies: - '@algolia/client-common': 4.14.2 - '@algolia/requester-common': 4.14.2 - '@algolia/transporter': 4.14.2 - dev: false - /@algolia/events@4.0.1: + '@algolia/events@4.0.1': resolution: {integrity: sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==} - dev: false - /@algolia/logger-common@4.14.2: + '@algolia/logger-common@4.14.2': resolution: {integrity: sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==} - dev: false - /@algolia/logger-console@4.14.2: + '@algolia/logger-console@4.14.2': resolution: {integrity: sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==} - dependencies: - '@algolia/logger-common': 4.14.2 - dev: false - /@algolia/requester-browser-xhr@4.14.2: + '@algolia/requester-browser-xhr@4.14.2': resolution: {integrity: sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==} - dependencies: - '@algolia/requester-common': 4.14.2 - dev: false - /@algolia/requester-common@4.14.2: + '@algolia/requester-common@4.14.2': resolution: {integrity: sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==} - dev: false - /@algolia/requester-node-http@4.14.2: + '@algolia/requester-node-http@4.14.2': resolution: {integrity: sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==} - dependencies: - '@algolia/requester-common': 4.14.2 - dev: false - /@algolia/transporter@4.14.2: + '@algolia/transporter@4.14.2': resolution: {integrity: sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==} - dependencies: - '@algolia/cache-common': 4.14.2 - '@algolia/logger-common': 4.14.2 - '@algolia/requester-common': 4.14.2 - dev: false - /@ampproject/remapping@2.2.0: + '@ampproject/remapping@2.2.0': resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.17 - dev: false - /@ampproject/remapping@2.3.0: + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - /@aws-crypto/crc32@3.0.0: + '@aws-crypto/crc32@3.0.0': resolution: {integrity: sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - tslib: 1.14.1 - dev: false - /@aws-crypto/crc32c@3.0.0: + '@aws-crypto/crc32c@3.0.0': resolution: {integrity: sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - tslib: 1.14.1 - dev: false - /@aws-crypto/ie11-detection@3.0.0: + '@aws-crypto/ie11-detection@3.0.0': resolution: {integrity: sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==} - dependencies: - tslib: 1.14.1 - dev: false - /@aws-crypto/sha1-browser@3.0.0: + '@aws-crypto/sha1-browser@3.0.0': resolution: {integrity: sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw==} - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-locate-window': 3.310.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - /@aws-crypto/sha256-browser@3.0.0: + '@aws-crypto/sha256-browser@3.0.0': resolution: {integrity: sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==} - dependencies: - '@aws-crypto/ie11-detection': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-crypto/supports-web-crypto': 3.0.0 - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-locate-window': 3.310.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - /@aws-crypto/sha256-js@3.0.0: + '@aws-crypto/sha256-js@3.0.0': resolution: {integrity: sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==} - dependencies: - '@aws-crypto/util': 3.0.0 - '@aws-sdk/types': 3.451.0 - tslib: 1.14.1 - dev: false - /@aws-crypto/supports-web-crypto@3.0.0: + '@aws-crypto/supports-web-crypto@3.0.0': resolution: {integrity: sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==} - dependencies: - tslib: 1.14.1 - dev: false - /@aws-crypto/util@3.0.0: + '@aws-crypto/util@3.0.0': resolution: {integrity: sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-utf8-browser': 3.259.0 - tslib: 1.14.1 - dev: false - /@aws-sdk/client-s3@3.456.0: + '@aws-sdk/client-s3@3.456.0': resolution: {integrity: sha512-987Mls+9w+mpdq4Vpc/OEQ93afkM12H7l97lIejcidZySuLVo5tdOM9ErekmgjAuotFzBgu2ExL83XtYIMgA0g==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha1-browser': 3.0.0 - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/client-sts': 3.454.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/credential-provider-node': 3.451.0 - '@aws-sdk/middleware-bucket-endpoint': 3.451.0 - '@aws-sdk/middleware-expect-continue': 3.451.0 - '@aws-sdk/middleware-flexible-checksums': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-location-constraint': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-sdk-s3': 3.451.0 - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/middleware-ssec': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/signature-v4-multi-region': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@aws-sdk/xml-builder': 3.310.0 - '@smithy/config-resolver': 2.0.19 - '@smithy/eventstream-serde-browser': 2.0.14 - '@smithy/eventstream-serde-config-resolver': 2.0.14 - '@smithy/eventstream-serde-node': 2.0.14 - '@smithy/fetch-http-handler': 2.2.7 - '@smithy/hash-blob-browser': 2.0.15 - '@smithy/hash-node': 2.0.16 - '@smithy/hash-stream-node': 2.0.16 - '@smithy/invalid-dependency': 2.0.14 - '@smithy/md5-js': 2.0.16 - '@smithy/middleware-content-length': 2.0.16 - '@smithy/middleware-endpoint': 2.2.1 - '@smithy/middleware-retry': 2.0.21 - '@smithy/middleware-serde': 2.0.14 - '@smithy/middleware-stack': 2.0.8 - '@smithy/node-config-provider': 2.1.6 - '@smithy/node-http-handler': 2.1.10 - '@smithy/protocol-http': 3.0.10 - '@smithy/smithy-client': 2.1.16 - '@smithy/types': 2.6.0 - '@smithy/url-parser': 2.0.14 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.20 - '@smithy/util-defaults-mode-node': 2.0.26 - '@smithy/util-endpoints': 1.0.5 - '@smithy/util-retry': 2.0.7 - '@smithy/util-stream': 2.0.21 - '@smithy/util-utf8': 2.0.2 - '@smithy/util-waiter': 2.0.14 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/client-sso@3.451.0: + '@aws-sdk/client-sso@3.451.0': resolution: {integrity: sha512-KkYSke3Pdv3MfVH/5fT528+MKjMyPKlcLcd4zQb0x6/7Bl7EHrPh1JZYjzPLHelb+UY5X0qN8+cb8iSu1eiwIQ==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.19 - '@smithy/fetch-http-handler': 2.2.7 - '@smithy/hash-node': 2.0.16 - '@smithy/invalid-dependency': 2.0.14 - '@smithy/middleware-content-length': 2.0.16 - '@smithy/middleware-endpoint': 2.2.1 - '@smithy/middleware-retry': 2.0.21 - '@smithy/middleware-serde': 2.0.14 - '@smithy/middleware-stack': 2.0.8 - '@smithy/node-config-provider': 2.1.6 - '@smithy/node-http-handler': 2.1.10 - '@smithy/protocol-http': 3.0.10 - '@smithy/smithy-client': 2.1.16 - '@smithy/types': 2.6.0 - '@smithy/url-parser': 2.0.14 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.20 - '@smithy/util-defaults-mode-node': 2.0.26 - '@smithy/util-endpoints': 1.0.5 - '@smithy/util-retry': 2.0.7 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/client-sts@3.454.0: + '@aws-sdk/client-sts@3.454.0': resolution: {integrity: sha512-0fDvr8WeB6IYO8BUCzcivWmahgGl/zDbaYfakzGnt4mrl5ztYaXE875WI6b7+oFcKMRvN+KLvwu5TtyFuNY+GQ==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/core': 3.451.0 - '@aws-sdk/credential-provider-node': 3.451.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-sdk-sts': 3.451.0 - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.19 - '@smithy/fetch-http-handler': 2.2.7 - '@smithy/hash-node': 2.0.16 - '@smithy/invalid-dependency': 2.0.14 - '@smithy/middleware-content-length': 2.0.16 - '@smithy/middleware-endpoint': 2.2.1 - '@smithy/middleware-retry': 2.0.21 - '@smithy/middleware-serde': 2.0.14 - '@smithy/middleware-stack': 2.0.8 - '@smithy/node-config-provider': 2.1.6 - '@smithy/node-http-handler': 2.1.10 - '@smithy/protocol-http': 3.0.10 - '@smithy/smithy-client': 2.1.16 - '@smithy/types': 2.6.0 - '@smithy/url-parser': 2.0.14 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.20 - '@smithy/util-defaults-mode-node': 2.0.26 - '@smithy/util-endpoints': 1.0.5 - '@smithy/util-retry': 2.0.7 - '@smithy/util-utf8': 2.0.2 - fast-xml-parser: 4.2.5 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/core@3.451.0: + '@aws-sdk/core@3.451.0': resolution: {integrity: sha512-SamWW2zHEf1ZKe3j1w0Piauryl8BQIlej0TBS18A4ACzhjhWXhCs13bO1S88LvPR5mBFXok3XOT6zPOnKDFktw==} engines: {node: '>=14.0.0'} - dependencies: - '@smithy/smithy-client': 2.1.16 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-env@3.451.0: + '@aws-sdk/credential-provider-env@3.451.0': resolution: {integrity: sha512-9dAav7DcRgaF7xCJEQR5ER9ErXxnu/tdnVJ+UPmb1NPeIZdESv1A3lxFDEq1Fs8c4/lzAj9BpshGyJVIZwZDKg==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.15 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-ini@3.451.0: + '@aws-sdk/credential-provider-ini@3.451.0': resolution: {integrity: sha512-TySt64Ci5/ZbqFw1F9Z0FIGvYx5JSC9e6gqDnizIYd8eMnn8wFRUscRrD7pIHKfrhvVKN5h0GdYovmMO/FMCBw==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.451.0 - '@aws-sdk/credential-provider-process': 3.451.0 - '@aws-sdk/credential-provider-sso': 3.451.0 - '@aws-sdk/credential-provider-web-identity': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/credential-provider-imds': 2.1.2 - '@smithy/property-provider': 2.0.15 - '@smithy/shared-ini-file-loader': 2.2.5 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/credential-provider-node@3.451.0: + '@aws-sdk/credential-provider-node@3.451.0': resolution: {integrity: sha512-AEwM1WPyxUdKrKyUsKyFqqRFGU70e4qlDyrtBxJnSU9NRLZI8tfEZ67bN7fHSxBUBODgDXpMSlSvJiBLh5/3pw==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/credential-provider-env': 3.451.0 - '@aws-sdk/credential-provider-ini': 3.451.0 - '@aws-sdk/credential-provider-process': 3.451.0 - '@aws-sdk/credential-provider-sso': 3.451.0 - '@aws-sdk/credential-provider-web-identity': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/credential-provider-imds': 2.1.2 - '@smithy/property-provider': 2.0.15 - '@smithy/shared-ini-file-loader': 2.2.5 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/credential-provider-process@3.451.0: + '@aws-sdk/credential-provider-process@3.451.0': resolution: {integrity: sha512-HQywSdKeD5PErcLLnZfSyCJO+6T+ZyzF+Lm/QgscSC+CbSUSIPi//s15qhBRVely/3KBV6AywxwNH+5eYgt4lQ==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.15 - '@smithy/shared-ini-file-loader': 2.2.5 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/credential-provider-sso@3.451.0: + '@aws-sdk/credential-provider-sso@3.451.0': resolution: {integrity: sha512-Usm/N51+unOt8ID4HnQzxIjUJDrkAQ1vyTOC0gSEEJ7h64NSSPGD5yhN7il5WcErtRd3EEtT1a8/GTC5TdBctg==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/client-sso': 3.451.0 - '@aws-sdk/token-providers': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.15 - '@smithy/shared-ini-file-loader': 2.2.5 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/credential-provider-web-identity@3.451.0: + '@aws-sdk/credential-provider-web-identity@3.451.0': resolution: {integrity: sha512-Xtg3Qw65EfDjWNG7o2xD6sEmumPfsy3WDGjk2phEzVg8s7hcZGxf5wYwe6UY7RJvlEKrU0rFA+AMn6Hfj5oOzg==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.15 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/lib-storage@3.456.0(@aws-sdk/client-s3@3.456.0): + '@aws-sdk/lib-storage@3.456.0': resolution: {integrity: sha512-S1h7DcH8u+CL6kobVgorgm0X0u+gQwjefbDuRrPF0qtpzvPprabRe4t3yt4VKuhjvegxKMVL/sdw817gLGoPdA==} engines: {node: '>=14.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.0.0 - dependencies: - '@aws-sdk/client-s3': 3.456.0 - '@smithy/abort-controller': 2.0.14 - '@smithy/middleware-endpoint': 2.2.1 - '@smithy/smithy-client': 2.1.16 - buffer: 5.6.0 - events: 3.3.0 - stream-browserify: 3.0.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-bucket-endpoint@3.451.0: + '@aws-sdk/middleware-bucket-endpoint@3.451.0': resolution: {integrity: sha512-KWyZ1JGnYz2QbHuJtYTP1BVnMOfVopR8rP8dTinVb/JR5HfAYz4imICJlJUbOYRjN7wpA3PrRI8dNRjrSBjWJg==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/node-config-provider': 2.1.6 - '@smithy/protocol-http': 3.0.10 - '@smithy/types': 2.6.0 - '@smithy/util-config-provider': 2.0.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-expect-continue@3.451.0: + '@aws-sdk/middleware-expect-continue@3.451.0': resolution: {integrity: sha512-vwG8o2Uk6biLDlOZnqXemsO4dS2HvrprUdxyouwu6hlzLFskg8nL122butn19JqXJKgcVLuSSLzT+xwqBWy2Rg==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-flexible-checksums@3.451.0: + '@aws-sdk/middleware-flexible-checksums@3.451.0': resolution: {integrity: sha512-eOkpcC2zgAvqs1w7Yp5nsk9LBIj6qLU5kaZuZEBOiFbNKIrTnPo6dQuhgvDcKHD6Y5W/cUjSBiFMs/ROb5aoug==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/crc32': 3.0.0 - '@aws-crypto/crc32c': 3.0.0 - '@aws-sdk/types': 3.451.0 - '@smithy/is-array-buffer': 2.0.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/types': 2.6.0 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-host-header@3.451.0: + '@aws-sdk/middleware-host-header@3.451.0': resolution: {integrity: sha512-j8a5jAfhWmsK99i2k8oR8zzQgXrsJtgrLxc3js6U+525mcZytoiDndkWTmD5fjJ1byU1U2E5TaPq+QJeDip05Q==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-location-constraint@3.451.0: + '@aws-sdk/middleware-location-constraint@3.451.0': resolution: {integrity: sha512-R4U2G7mybP0BMiQBJWTcB47g49F4PSXTiCsvMDp5WOEhpWvGQuO1ZIhTxCl5s5lgTSne063Os8W6KSdK2yG2TQ==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-logger@3.451.0: + '@aws-sdk/middleware-logger@3.451.0': resolution: {integrity: sha512-0kHrYEyVeB2QBfP6TfbI240aRtatLZtcErJbhpiNUb+CQPgEL3crIjgVE8yYiJumZ7f0jyjo8HLPkwD1/2APaw==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-recursion-detection@3.451.0: + '@aws-sdk/middleware-recursion-detection@3.451.0': resolution: {integrity: sha512-J6jL6gJ7orjHGM70KDRcCP7so/J2SnkN4vZ9YRLTeeZY6zvBuHDjX8GCIgSqPn/nXFXckZO8XSnA7u6+3TAT0w==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-sdk-s3@3.451.0: + '@aws-sdk/middleware-sdk-s3@3.451.0': resolution: {integrity: sha512-XF4Cw8HrYUwGLKOqKtWs6ss1WXoxvQUcgGLACGSqn9a0p51446NiS5671x7qJUsfBuygdKlIKcOc8pPr9a+5Ow==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-arn-parser': 3.310.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/smithy-client': 2.1.16 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-sdk-sts@3.451.0: + '@aws-sdk/middleware-sdk-sts@3.451.0': resolution: {integrity: sha512-UJ6UfVUEgp0KIztxpAeelPXI5MLj9wUtUCqYeIMP7C1ZhoEMNm3G39VLkGN43dNhBf1LqjsV9jkKMZbVfYXuwg==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/middleware-signing': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-signing@3.451.0: + '@aws-sdk/middleware-signing@3.451.0': resolution: {integrity: sha512-s5ZlcIoLNg1Huj4Qp06iKniE8nJt/Pj1B/fjhWc6cCPCM7XJYUCejCnRh6C5ZJoBEYodjuwZBejPc1Wh3j+znA==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/property-provider': 2.0.15 - '@smithy/protocol-http': 3.0.10 - '@smithy/signature-v4': 2.0.16 - '@smithy/types': 2.6.0 - '@smithy/util-middleware': 2.0.7 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-ssec@3.451.0: + '@aws-sdk/middleware-ssec@3.451.0': resolution: {integrity: sha512-hDkeBUiRsvuDbvsPha0/uJHE680WDzjAOoE6ZnLBoWsw7ry+Bw1ULMj0sCmpBVrQ7Gpivi/6zbezhClVmt3ITw==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/middleware-user-agent@3.451.0: + '@aws-sdk/middleware-user-agent@3.451.0': resolution: {integrity: sha512-8NM/0JiKLNvT9wtAQVl1DFW0cEO7OvZyLSUBLNLTHqyvOZxKaZ8YFk7d8PL6l76LeUKRxq4NMxfZQlUIRe0eSA==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/region-config-resolver@3.451.0: + '@aws-sdk/region-config-resolver@3.451.0': resolution: {integrity: sha512-3iMf4OwzrFb4tAAmoROXaiORUk2FvSejnHIw/XHvf/jjR4EqGGF95NZP/n/MeFZMizJWVssrwS412GmoEyoqhg==} engines: {node: '>=14.0.0'} - dependencies: - '@smithy/node-config-provider': 2.1.6 - '@smithy/types': 2.6.0 - '@smithy/util-config-provider': 2.0.0 - '@smithy/util-middleware': 2.0.7 - tslib: 2.6.2 - dev: false - /@aws-sdk/signature-v4-multi-region@3.451.0: + '@aws-sdk/signature-v4-multi-region@3.451.0': resolution: {integrity: sha512-qQKY7/txeNUTLyRL3WxUWEwaZ5sf76EIZgu9kLaR96cAYSxwQi/qQB3ijbfD6u7sJIA8aROMxeYK0VmRsQg0CA==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/protocol-http': 3.0.10 - '@smithy/signature-v4': 2.0.16 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/token-providers@3.451.0: + '@aws-sdk/token-providers@3.451.0': resolution: {integrity: sha512-ij1L5iUbn6CwxVOT1PG4NFjsrsKN9c4N1YEM0lkl6DwmaNOscjLKGSNyj9M118vSWsOs1ZDbTwtj++h0O/BWrQ==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-crypto/sha256-browser': 3.0.0 - '@aws-crypto/sha256-js': 3.0.0 - '@aws-sdk/middleware-host-header': 3.451.0 - '@aws-sdk/middleware-logger': 3.451.0 - '@aws-sdk/middleware-recursion-detection': 3.451.0 - '@aws-sdk/middleware-user-agent': 3.451.0 - '@aws-sdk/region-config-resolver': 3.451.0 - '@aws-sdk/types': 3.451.0 - '@aws-sdk/util-endpoints': 3.451.0 - '@aws-sdk/util-user-agent-browser': 3.451.0 - '@aws-sdk/util-user-agent-node': 3.451.0 - '@smithy/config-resolver': 2.0.19 - '@smithy/fetch-http-handler': 2.2.7 - '@smithy/hash-node': 2.0.16 - '@smithy/invalid-dependency': 2.0.14 - '@smithy/middleware-content-length': 2.0.16 - '@smithy/middleware-endpoint': 2.2.1 - '@smithy/middleware-retry': 2.0.21 - '@smithy/middleware-serde': 2.0.14 - '@smithy/middleware-stack': 2.0.8 - '@smithy/node-config-provider': 2.1.6 - '@smithy/node-http-handler': 2.1.10 - '@smithy/property-provider': 2.0.15 - '@smithy/protocol-http': 3.0.10 - '@smithy/shared-ini-file-loader': 2.2.5 - '@smithy/smithy-client': 2.1.16 - '@smithy/types': 2.6.0 - '@smithy/url-parser': 2.0.14 - '@smithy/util-base64': 2.0.1 - '@smithy/util-body-length-browser': 2.0.0 - '@smithy/util-body-length-node': 2.1.0 - '@smithy/util-defaults-mode-browser': 2.0.20 - '@smithy/util-defaults-mode-node': 2.0.26 - '@smithy/util-endpoints': 1.0.5 - '@smithy/util-retry': 2.0.7 - '@smithy/util-utf8': 2.0.2 - tslib: 2.6.2 - transitivePeerDependencies: - - aws-crt - dev: false - /@aws-sdk/types@3.451.0: + '@aws-sdk/types@3.451.0': resolution: {integrity: sha512-rhK+qeYwCIs+laJfWCcrYEjay2FR/9VABZJ2NRM89jV/fKqGVQR52E5DQqrI+oEIL5JHMhhnr4N4fyECMS35lw==} engines: {node: '>=14.0.0'} - dependencies: - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-arn-parser@3.310.0: + '@aws-sdk/util-arn-parser@3.310.0': resolution: {integrity: sha512-jL8509owp/xB9+Or0pvn3Fe+b94qfklc2yPowZZIFAkFcCSIdkIglz18cPDWnYAcy9JGewpMS1COXKIUhZkJsA==} engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - /@aws-sdk/util-endpoints@3.451.0: + '@aws-sdk/util-endpoints@3.451.0': resolution: {integrity: sha512-giqLGBTnRIcKkDqwU7+GQhKbtJ5Ku35cjGQIfMyOga6pwTBUbaK0xW1Sdd8sBQ1GhApscnChzI9o/R9x0368vw==} engines: {node: '>=14.0.0'} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/util-endpoints': 1.0.5 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-locate-window@3.310.0: + '@aws-sdk/util-locate-window@3.310.0': resolution: {integrity: sha512-qo2t/vBTnoXpjKxlsC2e1gBrRm80M3bId27r0BRB2VniSSe7bL1mmzM+/HFtujm0iAxtPM+aLEflLJlJeDPg0w==} engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - /@aws-sdk/util-user-agent-browser@3.451.0: + '@aws-sdk/util-user-agent-browser@3.451.0': resolution: {integrity: sha512-Ws5mG3J0TQifH7OTcMrCTexo7HeSAc3cBgjfhS/ofzPUzVCtsyg0G7I6T7wl7vJJETix2Kst2cpOsxygPgPD9w==} - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/types': 2.6.0 - bowser: 2.11.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-user-agent-node@3.451.0: + '@aws-sdk/util-user-agent-node@3.451.0': resolution: {integrity: sha512-TBzm6P+ql4mkGFAjPlO1CI+w3yUT+NulaiALjl/jNX/nnUp6HsJsVxJf4nVFQTG5KRV0iqMypcs7I3KIhH+LmA==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1323,1604 +834,10507 @@ packages: peerDependenciesMeta: aws-crt: optional: true - dependencies: - '@aws-sdk/types': 3.451.0 - '@smithy/node-config-provider': 2.1.6 - '@smithy/types': 2.6.0 - tslib: 2.6.2 - dev: false - /@aws-sdk/util-utf8-browser@3.259.0: + '@aws-sdk/util-utf8-browser@3.259.0': resolution: {integrity: sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==} - dependencies: - tslib: 2.6.2 - dev: false - /@aws-sdk/xml-builder@3.310.0: + '@aws-sdk/xml-builder@3.310.0': resolution: {integrity: sha512-TqELu4mOuSIKQCqj63fGVs86Yh+vBx5nHRpWKNUNhB2nPTpfbziTs5c1X358be3peVWA4wPxW7Nt53KIg1tnNw==} engines: {node: '>=14.0.0'} - dependencies: - tslib: 2.6.2 - dev: false - /@babel/code-frame@7.22.5: + '@babel/code-frame@7.22.5': resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.22.5 - /@babel/compat-data@7.20.0: + '@babel/compat-data@7.20.0': resolution: {integrity: sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==} engines: {node: '>=6.9.0'} - dev: false - /@babel/compat-data@7.22.5: + '@babel/compat-data@7.22.5': resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==} engines: {node: '>=6.9.0'} - dev: false - /@babel/core@7.12.9: + '@babel/core@7.12.9': resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.5 - '@babel/helper-module-transforms': 7.22.5 - '@babel/helpers': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - convert-source-map: 1.9.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - lodash: 4.17.21 - resolve: 1.22.1 - semver: 5.7.1 - source-map: 0.5.7 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/core@7.19.6: + '@babel/core@7.19.6': resolution: {integrity: sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) - '@babel/helper-module-transforms': 7.22.5 - '@babel/helpers': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - convert-source-map: 1.9.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/core@7.22.5: + '@babel/core@7.22.5': resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.22.5 - '@babel/generator': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-module-transforms': 7.22.5 - '@babel/helpers': 7.22.5 - '@babel/parser': 7.22.5 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - convert-source-map: 1.9.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/generator@7.20.0: + '@babel/generator@7.20.0': resolution: {integrity: sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - dev: false - /@babel/generator@7.22.5: + '@babel/generator@7.22.5': resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.17 - jsesc: 2.5.2 - dev: false - /@babel/helper-annotate-as-pure@7.18.6: + '@babel/helper-annotate-as-pure@7.18.6': resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.0 - dev: false - /@babel/helper-builder-binary-assignment-operator-visitor@7.18.9: + '@babel/helper-builder-binary-assignment-operator-visitor@7.18.9': resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.22.5 - dev: false - - /@babel/helper-compilation-targets@7.22.5(@babel/core@7.19.6): - resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.19.6 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.4 - lru-cache: 5.1.1 - semver: 6.3.0 - dev: false - /@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.5): + '@babel/helper-compilation-targets@7.22.5': resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.5 - '@babel/helper-validator-option': 7.22.5 - browserslist: 4.21.4 - lru-cache: 5.1.1 - semver: 6.3.0 - dev: false - - /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.19.6): - resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.22.5): + '@babel/helper-create-class-features-plugin@7.19.0': resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/helper-create-regexp-features-plugin@7.19.0(@babel/core@7.19.6): - resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.2.1 - dev: false - /@babel/helper-create-regexp-features-plugin@7.19.0(@babel/core@7.22.5): + '@babel/helper-create-regexp-features-plugin@7.19.0': resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.18.6 - regexpu-core: 5.2.1 - dev: false - - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.19.6): - resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} - peerDependencies: - '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - debug: 4.3.5 - lodash.debounce: 4.0.8 - resolve: 1.22.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.22.5): + '@babel/helper-define-polyfill-provider@0.3.3': resolution: {integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==} peerDependencies: '@babel/core': ^7.4.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - debug: 4.3.5 - lodash.debounce: 4.0.8 - resolve: 1.22.1 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-environment-visitor@7.18.9: + '@babel/helper-environment-visitor@7.18.9': resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-environment-visitor@7.22.5: + '@babel/helper-environment-visitor@7.22.5': resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-explode-assignable-expression@7.18.6: + '@babel/helper-explode-assignable-expression@7.18.6': resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-function-name@7.19.0: + '@babel/helper-function-name@7.19.0': resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.22.5 - dev: false - /@babel/helper-function-name@7.22.5: + '@babel/helper-function-name@7.22.5': resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/types': 7.22.5 - dev: false - /@babel/helper-hoist-variables@7.18.6: + '@babel/helper-hoist-variables@7.18.6': resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-hoist-variables@7.22.5: + '@babel/helper-hoist-variables@7.22.5': resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-member-expression-to-functions@7.18.9: + '@babel/helper-member-expression-to-functions@7.18.9': resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-module-imports@7.18.6: + '@babel/helper-module-imports@7.18.6': resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.20.0 - dev: false - /@babel/helper-module-imports@7.22.5: + '@babel/helper-module-imports@7.22.5': resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-module-transforms@7.22.5: + '@babel/helper-module-transforms@7.22.5': resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.5 - '@babel/helper-validator-identifier': 7.22.5 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-optimise-call-expression@7.18.6: + '@babel/helper-optimise-call-expression@7.18.6': resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-plugin-utils@7.10.4: + '@babel/helper-plugin-utils@7.10.4': resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} - dev: false - /@babel/helper-plugin-utils@7.19.0: + '@babel/helper-plugin-utils@7.19.0': resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} engines: {node: '>=6.9.0'} - dev: false - - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-wrap-function': 7.19.0 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.22.5): + '@babel/helper-remap-async-to-generator@7.18.9': resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-wrap-function': 7.19.0 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-replace-supers@7.19.1: + '@babel/helper-replace-supers@7.19.1': resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-member-expression-to-functions': 7.18.9 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helper-simple-access@7.22.5: + '@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.22.5 - dev: false - /@babel/helper-skip-transparent-expression-wrappers@7.20.0: + '@babel/helper-skip-transparent-expression-wrappers@7.20.0': resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-split-export-declaration@7.18.6: + '@babel/helper-split-export-declaration@7.18.6': resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-split-export-declaration@7.22.5: + '@babel/helper-split-export-declaration@7.22.5': resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/helper-string-parser@7.19.4: + '@babel/helper-string-parser@7.19.4': resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-string-parser@7.22.5: + '@babel/helper-string-parser@7.22.5': resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-validator-identifier@7.22.5: + '@babel/helper-validator-identifier@7.22.5': resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.18.6: + '@babel/helper-validator-option@7.18.6': resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-validator-option@7.22.5: + '@babel/helper-validator-option@7.22.5': resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} engines: {node: '>=6.9.0'} - dev: false - /@babel/helper-wrap-function@7.19.0: + '@babel/helper-wrap-function@7.19.0': resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.22.5 - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/helpers@7.22.5: + '@babel/helpers@7.22.5': resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.5 - '@babel/traverse': 7.22.5 - '@babel/types': 7.22.5 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/highlight@7.22.5: + '@babel/highlight@7.22.5': resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - /@babel/parser@7.22.5: + '@babel/parser@7.22.5': resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.22.5 - dev: false - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.19.6): + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6': resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9(@babel/core@7.19.6): + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9': resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.19.6) - dev: false - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} + '@babel/plugin-proposal-async-generator-functions@7.19.1': + resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.22.5) - dev: false + '@babel/core': ^7.0.0-0 - /@babel/plugin-proposal-async-generator-functions@7.19.1(@babel/core@7.19.6): - resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} + '@babel/plugin-proposal-class-properties@7.18.6': + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.19.6) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.19.6) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-async-generator-functions@7.19.1(@babel/core@7.22.5): - resolution: {integrity: sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==} + '@babel/plugin-proposal-class-static-block@7.18.6': + resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-proposal-dynamic-import@7.18.6': + resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.5) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + '@babel/plugin-proposal-export-namespace-from@7.18.9': + resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + '@babel/plugin-proposal-json-strings@7.18.6': + resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} + '@babel/plugin-proposal-logical-assignment-operators@7.18.9': + resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.19.6) - transitivePeerDependencies: - - supports-color - dev: false + '@babel/core': ^7.0.0-0 - /@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - dev: false - - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6': + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==} + '@babel/plugin-proposal-numeric-separator@7.18.6': + resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} - engines: {node: '>=6.9.0'} + '@babel/plugin-proposal-object-rest-spread@7.12.1': + resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==} + '@babel/plugin-proposal-object-rest-spread@7.19.4': + resolution: {integrity: sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + '@babel/plugin-proposal-optional-catch-binding@7.18.6': + resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} + '@babel/plugin-proposal-optional-chaining@7.18.9': + resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-logical-assignment-operators@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + '@babel/plugin-proposal-private-methods@7.18.6': + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-logical-assignment-operators@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} + '@babel/plugin-proposal-private-property-in-object@7.18.6': + resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} + '@babel/plugin-proposal-unicode-property-regex@7.18.6': + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9): - resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) - '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.12.9) - dev: false - /@babel/plugin-proposal-object-rest-spread@7.19.4(@babel/core@7.19.6): - resolution: {integrity: sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.19.6 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.19.6) - '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-object-rest-spread@7.19.4(@babel/core@7.22.5): - resolution: {integrity: sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==} + '@babel/plugin-syntax-import-assertions@7.20.0': + resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.22.5 - '@babel/core': 7.22.5 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5) - '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-jsx@7.12.1': + resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-optional-chaining@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} + '@babel/plugin-syntax-jsx@7.18.6': + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.6) - dev: false - /@babel/plugin-proposal-optional-chaining@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) - dev: false - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.19.6) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} - engines: {node: '>=6.9.0'} + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.19.6) - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} - engines: {node: '>=4'} + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.22.5) - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.19.6): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.5): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + '@babel/plugin-syntax-typescript@7.20.0': + resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.19.6): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + '@babel/plugin-transform-arrow-functions@7.18.6': + resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + '@babel/plugin-transform-async-to-generator@7.18.6': + resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.19.6): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-transform-block-scoped-functions@7.18.6': + resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.5): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-transform-block-scoping@7.20.0': + resolution: {integrity: sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + '@babel/plugin-transform-classes@7.19.0': + resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + '@babel/plugin-transform-computed-properties@7.18.9': + resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + '@babel/plugin-transform-destructuring@7.20.0': + resolution: {integrity: sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + '@babel/plugin-transform-dotall-regex@7.18.6': + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.19.6): - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + '@babel/plugin-transform-duplicate-keys@7.18.9': + resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.22.5): - resolution: {integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==} + '@babel/plugin-transform-exponentiation-operator@7.18.6': + resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + '@babel/plugin-transform-for-of@7.18.8': + resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + '@babel/plugin-transform-function-name@7.18.9': + resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9): - resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} + '@babel/plugin-transform-literals@7.18.9': + resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + '@babel/plugin-transform-member-expression-literals@7.18.6': + resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} + '@babel/plugin-transform-modules-amd@7.19.6': + resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.6): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + '@babel/plugin-transform-modules-commonjs@7.19.6': + resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.5): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + '@babel/plugin-transform-modules-systemjs@7.19.6': + resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + '@babel/plugin-transform-modules-umd@7.18.6': + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.19.1': + resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} + engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false + '@babel/core': ^7.0.0 - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.19.6): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + '@babel/plugin-transform-new-target@7.18.6': + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + '@babel/plugin-transform-object-super@7.18.6': + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + '@babel/plugin-transform-parameters@7.18.8': + resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + '@babel/plugin-transform-property-literals@7.18.6': + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + '@babel/plugin-transform-react-constant-elements@7.18.12': + resolution: {integrity: sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + '@babel/plugin-transform-react-display-name@7.18.6': + resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + '@babel/plugin-transform-react-jsx-development@7.18.6': + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.19.6): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + '@babel/plugin-transform-react-jsx-self@7.18.6': + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + '@babel/plugin-transform-react-jsx-source@7.19.6': + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.19.6): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + '@babel/plugin-transform-react-jsx@7.19.0': + resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.5): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + '@babel/plugin-transform-react-pure-annotations@7.18.6': + resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.19.6): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + '@babel/plugin-transform-regenerator@7.18.6': + resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + '@babel/plugin-transform-reserved-words@7.18.6': + resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.19.6): - resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + '@babel/plugin-transform-runtime@7.19.6': + resolution: {integrity: sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.22.5): - resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} + '@babel/plugin-transform-shorthand-properties@7.18.6': + resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + '@babel/plugin-transform-spread@7.19.0': + resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} + '@babel/plugin-transform-sticky-regex@7.18.6': + resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + '@babel/plugin-transform-template-literals@7.18.9': + resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.19.6) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} + '@babel/plugin-transform-typeof-symbol@7.18.9': + resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-module-imports': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.5) - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + '@babel/plugin-transform-typescript@7.20.0': + resolution: {integrity: sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} + '@babel/plugin-transform-unicode-escapes@7.18.10': + resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-block-scoping@7.20.0(@babel/core@7.19.6): - resolution: {integrity: sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==} + '@babel/plugin-transform-unicode-regex@7.18.6': + resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-block-scoping@7.20.0(@babel/core@7.22.5): - resolution: {integrity: sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==} + '@babel/preset-env@7.19.4': + resolution: {integrity: sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-classes@7.19.0(@babel/core@7.19.6): - resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} - engines: {node: '>=6.9.0'} + '@babel/preset-modules@0.1.5': + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.22.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-classes@7.19.0(@babel/core@7.22.5): - resolution: {integrity: sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==} + '@babel/preset-react@7.18.6': + resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) - '@babel/helper-environment-visitor': 7.22.5 - '@babel/helper-function-name': 7.22.5 - '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/helper-plugin-utils': 7.19.0 - '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.22.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - /@babel/plugin-transform-computed-properties@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + '@babel/preset-typescript@7.18.6': + resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-computed-properties@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} + '@babel/runtime-corejs3@7.20.0': + resolution: {integrity: sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-destructuring@7.20.0(@babel/core@7.19.6): - resolution: {integrity: sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==} + '@babel/runtime@7.19.4': + resolution: {integrity: sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-destructuring@7.20.0(@babel/core@7.22.5): - resolution: {integrity: sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==} + '@babel/runtime@7.23.2': + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + '@babel/template@7.22.5': + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: + + '@babel/traverse@7.20.0': + resolution: {integrity: sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.22.5': + resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.20.0': + resolution: {integrity: sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.22.5': + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + engines: {node: '>=6.9.0'} + + '@changesets/apply-release-plan@6.1.4': + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} + + '@changesets/assemble-release-plan@5.2.4': + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} + + '@changesets/changelog-git@0.1.14': + resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + + '@changesets/cli@2.26.2': + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} + hasBin: true + + '@changesets/config@2.3.1': + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + + '@changesets/errors@0.1.4': + resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + + '@changesets/get-dependents-graph@1.3.6': + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + + '@changesets/get-release-plan@3.0.17': + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + + '@changesets/get-version-range-type@0.3.2': + resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} + + '@changesets/git@2.0.0': + resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + + '@changesets/logger@0.0.5': + resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + + '@changesets/parse@0.3.16': + resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + + '@changesets/pre@1.0.14': + resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + + '@changesets/read@0.5.9': + resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + + '@changesets/types@4.1.0': + resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + + '@changesets/types@5.2.1': + resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} + + '@changesets/write@0.2.3': + resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + + '@chevrotain/cst-dts-gen@10.4.2': + resolution: {integrity: sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ==} + + '@chevrotain/gast@10.4.2': + resolution: {integrity: sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA==} + + '@chevrotain/types@10.4.2': + resolution: {integrity: sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw==} + + '@chevrotain/utils@10.4.2': + resolution: {integrity: sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw==} + + '@clack/core@0.2.1': + resolution: {integrity: sha512-MIZMbzA9IOdjXDAKh2/gfTic3yt554WFXszjjpVfI/Rs5/ofoEjuvdOE2amDQeVnGTHfRL0QB1SBPnoxyliuuA==} + + '@clack/prompts@0.5.1': + resolution: {integrity: sha512-qkaher9atkx4Sw+Ti1q05tc9ZvkmXNqBTYn6lf/xbD9lW4qZcGn8Nr6I66zGmhE2SpiyN878b9LWcSJShnRnYA==} + bundledDependencies: + - is-unicode-supported + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@docsearch/css@3.3.0': + resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} + + '@docsearch/react@3.3.0': + resolution: {integrity: sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + + '@docusaurus/core@2.1.0': + resolution: {integrity: sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==} + engines: {node: '>=16.14'} + hasBin: true + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/cssnano-preset@2.1.0': + resolution: {integrity: sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==} + engines: {node: '>=16.14'} + + '@docusaurus/logger@2.1.0': + resolution: {integrity: sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==} + engines: {node: '>=16.14'} + + '@docusaurus/mdx-loader@2.1.0': + resolution: {integrity: sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/module-type-aliases@2.1.0': + resolution: {integrity: sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==} + peerDependencies: + react: '*' + react-dom: '*' + + '@docusaurus/plugin-content-blog@2.1.0': + resolution: {integrity: sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/plugin-content-docs@2.1.0': + resolution: {integrity: sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/plugin-content-pages@2.1.0': + resolution: {integrity: sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/plugin-debug@2.1.0': + resolution: {integrity: sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/plugin-google-analytics@2.1.0': + resolution: {integrity: sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/plugin-google-gtag@2.1.0': + resolution: {integrity: sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/plugin-sitemap@2.1.0': + resolution: {integrity: sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/preset-classic@2.1.0': + resolution: {integrity: sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/react-loadable@5.5.2': + resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} + peerDependencies: + react: '*' + + '@docusaurus/theme-classic@2.1.0': + resolution: {integrity: sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/theme-common@2.1.0': + resolution: {integrity: sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/theme-search-algolia@2.1.0': + resolution: {integrity: sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==} + engines: {node: '>=16.14'} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/theme-translations@2.1.0': + resolution: {integrity: sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==} + engines: {node: '>=16.14'} + + '@docusaurus/types@2.1.0': + resolution: {integrity: sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==} + peerDependencies: + react: ^16.8.4 || ^17.0.0 + react-dom: ^16.8.4 || ^17.0.0 + + '@docusaurus/utils-common@2.1.0': + resolution: {integrity: sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==} + engines: {node: '>=16.14'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@docusaurus/utils-validation@2.1.0': + resolution: {integrity: sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==} + engines: {node: '>=16.14'} + + '@docusaurus/utils@2.1.0': + resolution: {integrity: sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==} + engines: {node: '>=16.14'} + peerDependencies: + '@docusaurus/types': '*' + peerDependenciesMeta: + '@docusaurus/types': + optional: true + + '@esbuild-kit/cjs-loader@2.4.0': + resolution: {integrity: sha512-DBBCiHPgL2B/elUpvCDhNHXnlZQ9sfO2uyt1OJyAXKT41beQEFY4OxZ6gwS+ZesRCbZ6JV8M7GEyOPkjv8kdIw==} + + '@esbuild-kit/core-utils@3.0.0': + resolution: {integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==} + + '@esbuild-kit/esm-loader@2.5.0': + resolution: {integrity: sha512-ySs0qOsiwj+hsgZM9/MniGdvfa9/WzqfFuIia8/5gSUPeIQIX2/tG91QakxPFOR35VFiwTB7wCiHtiS6dc6SkA==} + + '@esbuild/aix-ppc64@0.19.10': + resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.16.13': + resolution: {integrity: sha512-r4xetsd1ez1NF9/9R2f9Q6AlxqiZLwUqo7ICOcvEVwopVkXUcspIjEbJk0EVTgT6Cp5+ymzGPT6YNV0ievx4yA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.17.16': + resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.18.15': + resolution: {integrity: sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.19.10': + resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.19.5': + resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.15.13': + resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.16.13': + resolution: {integrity: sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.17.16': + resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.18.15': + resolution: {integrity: sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.19.10': + resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.19.5': + resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.16.13': + resolution: {integrity: sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.17.16': + resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.18.15': + resolution: {integrity: sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.19.10': + resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.19.5': + resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.16.13': + resolution: {integrity: sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.17.16': + resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.18.15': + resolution: {integrity: sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.19.10': + resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.19.5': + resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.16.13': + resolution: {integrity: sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.17.16': + resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.18.15': + resolution: {integrity: sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.10': + resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.5': + resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.16.13': + resolution: {integrity: sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.17.16': + resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.18.15': + resolution: {integrity: sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.19.10': + resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.19.5': + resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.16.13': + resolution: {integrity: sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.17.16': + resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.18.15': + resolution: {integrity: sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.10': + resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.5': + resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.16.13': + resolution: {integrity: sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.17.16': + resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.18.15': + resolution: {integrity: sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.19.10': + resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.19.5': + resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.16.13': + resolution: {integrity: sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.17.16': + resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.18.15': + resolution: {integrity: sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.19.10': + resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.19.5': + resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.16.13': + resolution: {integrity: sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.17.16': + resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.18.15': + resolution: {integrity: sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.19.10': + resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.19.5': + resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.15.13': + resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.16.13': + resolution: {integrity: sha512-x8KplRu9Y43Px8I9YS+sPBwQ+fw44Mvp2BPVADopKDWz+h3fcj1BvRU58kxb89WObmwKX9sWdtYzepL4Fmx03A==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.17.16': + resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.18.15': + resolution: {integrity: sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.19.10': + resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.19.5': + resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.16.13': + resolution: {integrity: sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.17.16': + resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.18.15': + resolution: {integrity: sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.19.10': + resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.19.5': + resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.16.13': + resolution: {integrity: sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.17.16': + resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.18.15': + resolution: {integrity: sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.19.10': + resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.19.5': + resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.16.13': + resolution: {integrity: sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.17.16': + resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.18.15': + resolution: {integrity: sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.10': + resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.5': + resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.16.13': + resolution: {integrity: sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.17.16': + resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.18.15': + resolution: {integrity: sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.19.10': + resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.19.5': + resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.16.13': + resolution: {integrity: sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.17.16': + resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.18.15': + resolution: {integrity: sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.19.10': + resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.19.5': + resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.16.13': + resolution: {integrity: sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.17.16': + resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.18.15': + resolution: {integrity: sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.19.10': + resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.19.5': + resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.16.13': + resolution: {integrity: sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.17.16': + resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.18.15': + resolution: {integrity: sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.10': + resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.5': + resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.16.13': + resolution: {integrity: sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.17.16': + resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.18.15': + resolution: {integrity: sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.19.10': + resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.19.5': + resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.16.13': + resolution: {integrity: sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.17.16': + resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.18.15': + resolution: {integrity: sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.19.10': + resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.19.5': + resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.16.13': + resolution: {integrity: sha512-AX6WjntGjhJHzrPSVvjMD7grxt41koHfAOx6lxLorrpDwwIKKPaGDASPZgvFIZHTbwhOtILW6vAXxYPDsKpDJA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.17.16': + resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.18.15': + resolution: {integrity: sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.19.10': + resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.19.5': + resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.16.13': + resolution: {integrity: sha512-A+U4gM6OOkPS03UgVU08GTpAAAxPsP/8Z4FmneGo4TaVSD99bK9gVJXlqUEPMO/htFXEAht2O6pX4ErtLY5tVg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.17.16': + resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.18.15': + resolution: {integrity: sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.19.10': + resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.19.5': + resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@floating-ui/core@0.7.3': + resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} + + '@floating-ui/dom@0.5.4': + resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} + + '@floating-ui/react-dom@0.7.2': + resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@formatjs/ecma402-abstract@1.13.0': + resolution: {integrity: sha512-CQ8Ykd51jYD1n05dtoX6ns6B9n/+6ZAxnWUAonvHC4kkuAemROYBhHkEB4tm1uVrRlE7gLDqXkAnY51Y0pRCWQ==} + + '@formatjs/fast-memoize@1.2.6': + resolution: {integrity: sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA==} + + '@formatjs/icu-messageformat-parser@2.1.10': + resolution: {integrity: sha512-KkRMxhifWkRC45dhM9tqm0GXbb6NPYTGVYY3xx891IKc6p++DQrZTnmkVSNNO47OEERLfuP2KkPFPJBuu8z/wg==} + + '@formatjs/icu-skeleton-parser@1.3.14': + resolution: {integrity: sha512-7bv60HQQcBb3+TSj+45tOb/CHV5z1hOpwdtS50jsSBXfB+YpGhnoRsZxSRksXeCxMy6xn6tA6VY2601BrrK+OA==} + + '@formatjs/intl-displaynames@6.1.4': + resolution: {integrity: sha512-sEbziGLsWQo6nA8ZUBcsDRlZzPg+uMVjDmbTalgGqRWLbdXuxMldTYdaCK+UptyJhkmNVM/erz3csTiyqamXHQ==} + + '@formatjs/intl-listformat@7.1.3': + resolution: {integrity: sha512-rs0Kxl78PeRCedx2cmFoBqcun2Kf0bCQrF8ycna54sfePpDhMskvODWeI4G/xBioW01FjK7CJSvtJJ87hrr79A==} + + '@formatjs/intl-localematcher@0.2.31': + resolution: {integrity: sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA==} + + '@formatjs/intl@2.5.1': + resolution: {integrity: sha512-P01ZGuDDlcN8bHHBCEHspJPvs8WJeO8SXlUIcVGWhS3IN5vUgz0QKUXcKBFnJbEHhONJ+azlObVwvlDKsE+kUg==} + peerDependencies: + typescript: ^4.7 + peerDependenciesMeta: + typescript: + optional: true + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.2.1': + resolution: {integrity: sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.1.1': + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} + engines: {node: '>=6.0.0'} + + '@jridgewell/gen-mapping@0.3.2': + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.0': + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.1.2': + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.2': + resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + + '@jridgewell/sourcemap-codec@1.4.14': + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + '@jridgewell/sourcemap-codec@1.4.15': + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.17': + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@kamilkisiela/fast-url-parser@1.1.4': + resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} + + '@leichtgewicht/ip-codec@2.0.4': + resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} + + '@manypkg/find-root@1.1.0': + resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + + '@manypkg/get-packages@1.1.3': + resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + + '@mdx-js/mdx@1.6.22': + resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==} + + '@mdx-js/react@1.6.22': + resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==} + peerDependencies: + react: ^16.13.1 || ^17.0.0 + + '@mdx-js/util@1.6.22': + resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@paralleldrive/cuid2@2.2.2': + resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@polka/url@1.0.0-next.21': + resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} + + '@puppeteer/browsers@2.2.3': + resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==} + engines: {node: '>=18'} + hasBin: true + + '@radix-ui/popper@0.1.0': + resolution: {integrity: sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==} + + '@radix-ui/primitive@0.1.0': + resolution: {integrity: sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==} + + '@radix-ui/primitive@1.0.0': + resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + + '@radix-ui/react-alert-dialog@1.0.2': + resolution: {integrity: sha512-0MtxV53FaEEBOKRgyLnEqHZKKDS5BldQ9oUBsKVXWI5FHbl2jp35qs+0aJET+K5hJDsc40kQUzP7g+wC7tqrqA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-arrow@0.1.3': + resolution: {integrity: sha512-9x1gRYdlUD5OUwY7L+M+4FY/YltDSsrNSj8QXGPbxZxL5ghWXB/4lhyIGccCwk/e8ggfmQYv9SRNmn3LavPo3A==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-arrow@1.0.0': + resolution: {integrity: sha512-1MUuv24HCdepi41+qfv125EwMuxgQ+U+h0A9K3BjCO/J8nVRREKHHpkD9clwfnjEDk9hgGzCnff4aUKCPiRepw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-arrow@1.0.1': + resolution: {integrity: sha512-1yientwXqXcErDHEv8av9ZVNEBldH8L9scVR3is20lL+jOCfcJyMFZFEY5cgIrgexsq1qggSXqiEL/d/4f+QXA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-collection@1.0.0': + resolution: {integrity: sha512-8i1pf5dKjnq90Z8udnnXKzdCEV3/FYrfw0n/b6NvB6piXEn3fO1bOh7HBcpG8XrnIXzxlYu2oCcR38QpyLS/mg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-compose-refs@0.1.0': + resolution: {integrity: sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-compose-refs@1.0.0': + resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-context-menu@1.0.0': + resolution: {integrity: sha512-JkwOgdXwErwEEpsmgu0Ob8zD3gzWS1brPXnNGPyZEtR6/EYyDgruQYKiihXVsCrPCdrNUHawop9I1+6JTdXPTA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-context@0.1.1': + resolution: {integrity: sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-context@1.0.0': + resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-dialog@1.0.2': + resolution: {integrity: sha512-EKxxp2WNSmUPkx4trtWNmZ4/vAYEg7JkAfa1HKBUnaubw9eHzf1Orr9B472lJYaYz327RHDrd4R95fsw7VR8DA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-direction@1.0.0': + resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-dismissable-layer@1.0.0': + resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-dismissable-layer@1.0.2': + resolution: {integrity: sha512-WjJzMrTWROozDqLB0uRWYvj4UuXsM/2L19EmQ3Au+IJWqwvwq9Bwd+P8ivo0Deg9JDPArR1I6MbWNi1CmXsskg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-dropdown-menu@1.0.0': + resolution: {integrity: sha512-Ptben3TxPWrZLbInO7zjAK73kmjYuStsxfg6ujgt+EywJyREoibhZYnsSNqC+UiOtl4PdW/MOHhxVDtew5fouQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-focus-guards@1.0.0': + resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-focus-scope@1.0.0': + resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-focus-scope@1.0.1': + resolution: {integrity: sha512-Ej2MQTit8IWJiS2uuujGUmxXjF/y5xZptIIQnyd2JHLwtV0R2j9NRVoRj/1j/gJ7e3REdaBw4Hjf4a1ImhkZcQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-icons@1.1.1': + resolution: {integrity: sha512-xc3wQC59rsFylVbSusQCrrM+6695ppF730Q6yqzhRdqDcRNWIm2R6ngpzBoSOQMcwnq4p805F+Gr7xo4fmtN1A==} + peerDependencies: + react: ^16.x || ^17.x || ^18.x + + '@radix-ui/react-id@0.1.4': + resolution: {integrity: sha512-/hq5m/D0ZfJWOS7TLF+G0l08KDRs87LBE46JkAvgKkg1fW4jkucx9At9D9vauIPSbdNmww5kXEp566hMlA8eXA==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-id@1.0.0': + resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-menu@1.0.0': + resolution: {integrity: sha512-icW4C64T6nHh3Z4Q1fxO1RlSShouFF4UpUmPV8FLaJZfphDljannKErDuALDx4ClRLihAPZ9i+PrLNPoWS2DMA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-popover@1.0.2': + resolution: {integrity: sha512-4tqZEl9w95R5mlZ/sFdgBnfhCBOEPepLIurBA5kt/qaAhldJ1tNQd0ngr0ET0AHbPotT4mwxMPr7a+MA/wbK0g==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-popper@0.1.3': + resolution: {integrity: sha512-2OV2YaJv7iTZexJY3HJ7B6Fs1A/3JXd3fRGU4JY0guACfGMD1C/jSgds505MKQOTiHE/quI6j3/q8yfzFjJR9g==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-popper@1.0.0': + resolution: {integrity: sha512-k2dDd+1Wl0XWAMs9ZvAxxYsB9sOsEhrFQV4CINd7IUZf0wfdye4OHen9siwxvZImbzhgVeKTJi68OQmPRvVdMg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-popper@1.0.1': + resolution: {integrity: sha512-J4Vj7k3k+EHNWgcKrE+BLlQfpewxA7Zd76h5I0bIa+/EqaIZ3DuwrbPj49O3wqN+STnXsBuxiHLiF0iU3yfovw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-portal@0.1.3': + resolution: {integrity: sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg==} + peerDependencies: + react: ^16.8 || ^17.0 + react-dom: ^16.8 || ^17.0 + + '@radix-ui/react-portal@0.1.4': + resolution: {integrity: sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==} + peerDependencies: + react: ^16.8 || ^17.0 + react-dom: ^16.8 || ^17.0 + + '@radix-ui/react-portal@1.0.0': + resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-portal@1.0.1': + resolution: {integrity: sha512-NY2vUWI5WENgAT1nfC6JS7RU5xRYBfjZVLq0HmgEN1Ezy3rk/UruMV4+Rd0F40PEaFC5SrLS1ixYvcYIQrb4Ig==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-presence@0.1.1': + resolution: {integrity: sha512-LsL+NcWDpFUAYCmXeH02o4pgqcSLpwxP84UIjCtpIKrsPe2vLuhcp79KC/jZJeXz+of2lUpMAxpM+eCpxFZtlg==} + peerDependencies: + react: '>=16.8' + + '@radix-ui/react-presence@1.0.0': + resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-primitive@0.1.3': + resolution: {integrity: sha512-fcyADaaAx2jdqEDLsTs6aX50S3L1c9K9CC6XMpJpuXFJCU4n9PGTFDZRtY2gAoXXoRCPIBsklCopSmGb6SsDjQ==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-primitive@0.1.4': + resolution: {integrity: sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-primitive@1.0.0': + resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-primitive@1.0.1': + resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-roving-focus@1.0.0': + resolution: {integrity: sha512-lHvO4MhvoWpeNbiJAoyDsEtbKqP2jkkdwsMVJ3kfqbkC71J/aXE6Th6gkZA1xHEqSku+t+UgoDjvE7Z3gsBpcg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-slot@0.1.2': + resolution: {integrity: sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-slot@1.0.0': + resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-slot@1.0.1': + resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-tooltip@0.1.6': + resolution: {integrity: sha512-0uaRpRmTCQo5yMUkDpv4LEDnaQDoeLXcNNhZonCZdbZBQ7ntvjURIWIigq1/pXZp0UX7oPpFzsXD9jUp8JT0WA==} + peerDependencies: + react: ^16.8 || ^17.0 + react-dom: ^16.8 || ^17.0 + + '@radix-ui/react-tooltip@1.0.2': + resolution: {integrity: sha512-11gUlok2rv5mu+KBtxniOKKNKjqC/uTbgFHWoQdbF46vMV+zjDaBvCtVDK9+MTddlpmlisGPGvvojX7Qm0yr+g==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-callback-ref@0.1.0': + resolution: {integrity: sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-callback-ref@1.0.0': + resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-controllable-state@0.1.0': + resolution: {integrity: sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-controllable-state@1.0.0': + resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-escape-keydown@0.1.0': + resolution: {integrity: sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-escape-keydown@1.0.0': + resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-escape-keydown@1.0.2': + resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-layout-effect@0.1.0': + resolution: {integrity: sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-layout-effect@1.0.0': + resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-previous@0.1.0': + resolution: {integrity: sha512-0fxNc33rYnCzDMPSiSnfS8YklnxQo8WqbAQXPAgIaaA1jRu2qFB916PL4qCIW+avcAAqFD38vWhqDqcVmBharA==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-rect@0.1.1': + resolution: {integrity: sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-rect@1.0.0': + resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-use-size@0.1.0': + resolution: {integrity: sha512-TcZAsR+BYI46w/RbaSFCRACl+Jh6mDqhu6GS2r0iuJpIVrj8atff7qtTjmMmfGtEDNEjhl7DxN3pr1nTS/oruQ==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-use-size@1.0.0': + resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/react-visually-hidden@0.1.3': + resolution: {integrity: sha512-dPU6ZR2WQ/W9qv7E1Y8/I8ymqG+8sViU6dQQ6sfr2/8yGr0I4mmI7ywTnqXaE+YS9gHLEZHdQcEqTNESg6YfdQ==} + peerDependencies: + react: ^16.8 || ^17.0 + + '@radix-ui/react-visually-hidden@1.0.1': + resolution: {integrity: sha512-K1hJcCMfWfiYUibRqf3V8r5Drpyf7rh44jnrwAbdvI5iCCijilBBeyQv9SKidYNZIopMdCyR9FnIjkHxHN0FcQ==} + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + + '@radix-ui/rect@0.1.1': + resolution: {integrity: sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==} + + '@radix-ui/rect@1.0.0': + resolution: {integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==} + + '@react-spring/animated@9.6.1': + resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@react-spring/animated@9.7.1': + resolution: {integrity: sha512-EX5KAD9y7sD43TnLeTNG1MgUVpuRO1YaSJRPawHNRgUWYfILge3s85anny4S4eTJGpdp5OoFV2kx9fsfeo0qsw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@react-spring/core@9.6.1': + resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@react-spring/core@9.7.1': + resolution: {integrity: sha512-8K9/FaRn5VvMa24mbwYxwkALnAAyMRdmQXrARZLcBW2vxLJ6uw9Cy3d06Z8M12kEqF2bDlccaCSDsn2bSz+Q4A==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@react-spring/rafz@9.6.1': + resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==} + + '@react-spring/rafz@9.7.1': + resolution: {integrity: sha512-JSsrRfbEJvuE3w/uvU3mCTuWwpQcBXkwoW14lBgzK9XJhuxmscGo59AgJUpFkGOiGAVXFBGB+nEXtSinFsopgw==} + + '@react-spring/shared@9.6.1': + resolution: {integrity: sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@react-spring/shared@9.7.1': + resolution: {integrity: sha512-R2kZ+VOO6IBeIAYTIA3C1XZ0ZVg/dDP5FKtWaY8k5akMer9iqf5H9BU0jyt3Qtxn0qQY7whQdf6MTcWtKeaawg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@react-spring/three@9.6.1': + resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} + peerDependencies: + '@react-three/fiber': '>=6.0' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + three: '>=0.126' + + '@react-spring/three@9.7.1': + resolution: {integrity: sha512-5leUe0PDwIIw1M3GN3788zwTY4Ykyy+kNvQmg9+Hqs1DN3T8J1ovRTGwqWfGAu4ApTta9p5BH7SWNxxt3NO59Q==} + peerDependencies: + '@react-three/fiber': '>=6.0' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + three: '>=0.126' + + '@react-spring/types@9.6.1': + resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} + + '@react-spring/types@9.7.1': + resolution: {integrity: sha512-yBcyfKUeZv9wf/ZFrQszvhSPuDx6Py6yMJzpMnS+zxcZmhXPeOCKZSHwqrUz1WxvuRckUhlgb7eNI/x5e1e8CA==} + + '@react-three/drei@9.57.0': + resolution: {integrity: sha512-jlGnzJ8zJdfFof8HtGGY7ANKvuupK81V0YX+lc4aayIlVFrN4Pi0GvpsR7+vhpkyPfxQ0qOOE6HWBqhfBm8EIg==} + peerDependencies: + '@react-three/fiber': '>=8.0' + react: '>=18.0' + react-dom: '>=18.0' + three: '>=0.137' + peerDependenciesMeta: + react-dom: + optional: true + + '@react-three/fiber@8.11.9': + resolution: {integrity: sha512-5vZBlbdy+QbNIIjohERs1NL59LOo6XQwM4x4jjV1PKc5KkSy+73Y+/tQGdz6muEkbeOCt4TeM2KtcFjoAdjl1g==} + peerDependencies: + expo: '>=43.0' + expo-asset: '>=8.4' + expo-gl: '>=11.0' + react: '>=18.0' + react-dom: '>=18.0' + react-native: '>=0.64' + three: '>=0.133' + peerDependenciesMeta: + expo: + optional: true + expo-asset: + optional: true + expo-gl: + optional: true + react-dom: + optional: true + react-native: + optional: true + + '@react-three/lightmap@0.0.8': + resolution: {integrity: sha512-KrsySqF8ghgsnZqn53+amD3PNAT5vOTWn3hj4yT9cytq1D/y02KHnp2D3kNk3RBpf0S1X4n19dBHlIQDb48yWw==} + engines: {node: '>=10'} + peerDependencies: + '@react-three/fiber': '>=6.0.0' + react: '>=16' + three: '>=0.128.0' + + '@react-three/postprocessing@2.7.0': + resolution: {integrity: sha512-lJfV8GYp+L1SlGRcl8QPUg9QMdO+8ojW2kfaEc/MuvoI4rX3TRhVd3qFjjF++0bBmzt8LeQpDHCOHFAaT3MNYA==} + peerDependencies: + '@react-three/fiber': '>=7.0' + react: '>=17.0' + three: '>=0.136.0' + + '@rollup/rollup-android-arm-eabi@4.9.1': + resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.9.1': + resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.9.1': + resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.9.1': + resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.9.1': + resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.9.1': + resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.9.1': + resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.9.1': + resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.9.1': + resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.9.1': + resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.9.1': + resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.9.1': + resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.9.1': + resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} + cpu: [x64] + os: [win32] + + '@sideway/address@4.1.4': + resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} + + '@sideway/formula@3.0.0': + resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@sindresorhus/is@0.14.0': + resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} + engines: {node: '>=6'} + + '@slorber/static-site-generator-webpack-plugin@4.0.7': + resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} + engines: {node: '>=14'} + + '@smithy/abort-controller@2.0.14': + resolution: {integrity: sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==} + engines: {node: '>=14.0.0'} + + '@smithy/chunked-blob-reader-native@2.0.1': + resolution: {integrity: sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw==} + + '@smithy/chunked-blob-reader@2.0.0': + resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} + + '@smithy/config-resolver@2.0.19': + resolution: {integrity: sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog==} + engines: {node: '>=14.0.0'} + + '@smithy/credential-provider-imds@2.1.2': + resolution: {integrity: sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-codec@2.0.14': + resolution: {integrity: sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA==} + + '@smithy/eventstream-serde-browser@2.0.14': + resolution: {integrity: sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-config-resolver@2.0.14': + resolution: {integrity: sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-node@2.0.14': + resolution: {integrity: sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA==} + engines: {node: '>=14.0.0'} + + '@smithy/eventstream-serde-universal@2.0.14': + resolution: {integrity: sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g==} + engines: {node: '>=14.0.0'} + + '@smithy/fetch-http-handler@2.2.7': + resolution: {integrity: sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ==} + + '@smithy/hash-blob-browser@2.0.15': + resolution: {integrity: sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg==} + + '@smithy/hash-node@2.0.16': + resolution: {integrity: sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg==} + engines: {node: '>=14.0.0'} + + '@smithy/hash-stream-node@2.0.16': + resolution: {integrity: sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A==} + engines: {node: '>=14.0.0'} + + '@smithy/invalid-dependency@2.0.14': + resolution: {integrity: sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ==} + + '@smithy/is-array-buffer@2.0.0': + resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} + engines: {node: '>=14.0.0'} + + '@smithy/md5-js@2.0.16': + resolution: {integrity: sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ==} + + '@smithy/middleware-content-length@2.0.16': + resolution: {integrity: sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-endpoint@2.2.1': + resolution: {integrity: sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-retry@2.0.21': + resolution: {integrity: sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-serde@2.0.14': + resolution: {integrity: sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g==} + engines: {node: '>=14.0.0'} + + '@smithy/middleware-stack@2.0.8': + resolution: {integrity: sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q==} + engines: {node: '>=14.0.0'} + + '@smithy/node-config-provider@2.1.6': + resolution: {integrity: sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA==} + engines: {node: '>=14.0.0'} + + '@smithy/node-http-handler@2.1.10': + resolution: {integrity: sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw==} + engines: {node: '>=14.0.0'} + + '@smithy/property-provider@2.0.15': + resolution: {integrity: sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew==} + engines: {node: '>=14.0.0'} + + '@smithy/protocol-http@3.0.10': + resolution: {integrity: sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==} + engines: {node: '>=14.0.0'} + + '@smithy/querystring-builder@2.0.14': + resolution: {integrity: sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==} + engines: {node: '>=14.0.0'} + + '@smithy/querystring-parser@2.0.14': + resolution: {integrity: sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A==} + engines: {node: '>=14.0.0'} + + '@smithy/service-error-classification@2.0.7': + resolution: {integrity: sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w==} + engines: {node: '>=14.0.0'} + + '@smithy/shared-ini-file-loader@2.2.5': + resolution: {integrity: sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w==} + engines: {node: '>=14.0.0'} + + '@smithy/signature-v4@2.0.16': + resolution: {integrity: sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg==} + engines: {node: '>=14.0.0'} + + '@smithy/smithy-client@2.1.16': + resolution: {integrity: sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ==} + engines: {node: '>=14.0.0'} + + '@smithy/types@2.6.0': + resolution: {integrity: sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==} + engines: {node: '>=14.0.0'} + + '@smithy/url-parser@2.0.14': + resolution: {integrity: sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw==} + + '@smithy/util-base64@2.0.1': + resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==} + engines: {node: '>=14.0.0'} + + '@smithy/util-body-length-browser@2.0.0': + resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} + + '@smithy/util-body-length-node@2.1.0': + resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-buffer-from@2.0.0': + resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-config-provider@2.0.0': + resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} + engines: {node: '>=14.0.0'} + + '@smithy/util-defaults-mode-browser@2.0.20': + resolution: {integrity: sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw==} + engines: {node: '>= 10.0.0'} + + '@smithy/util-defaults-mode-node@2.0.26': + resolution: {integrity: sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg==} + engines: {node: '>= 10.0.0'} + + '@smithy/util-endpoints@1.0.5': + resolution: {integrity: sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw==} + engines: {node: '>= 14.0.0'} + + '@smithy/util-hex-encoding@2.0.0': + resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-middleware@2.0.7': + resolution: {integrity: sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-retry@2.0.7': + resolution: {integrity: sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q==} + engines: {node: '>= 14.0.0'} + + '@smithy/util-stream@2.0.21': + resolution: {integrity: sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-uri-escape@2.0.0': + resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} + engines: {node: '>=14.0.0'} + + '@smithy/util-utf8@2.0.2': + resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==} + engines: {node: '>=14.0.0'} + + '@smithy/util-waiter@2.0.14': + resolution: {integrity: sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA==} + engines: {node: '>=14.0.0'} + + '@stitches/react@1.2.8': + resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==} + peerDependencies: + react: '>= 16.3.0' + + '@svgr/babel-plugin-add-jsx-attribute@6.5.1': + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-attribute@6.5.0': + resolution: {integrity: sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-remove-jsx-empty-expression@6.5.0': + resolution: {integrity: sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1': + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-dynamic-title@6.5.1': + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-svg-em-dimensions@6.5.1': + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-react-native-svg@6.5.1': + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-plugin-transform-svg-component@6.5.1': + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/babel-preset@6.5.1': + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@svgr/core@6.5.1': + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} + engines: {node: '>=10'} + + '@svgr/hast-util-to-babel-ast@6.5.1': + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} + engines: {node: '>=10'} + + '@svgr/plugin-jsx@6.5.1': + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + + '@svgr/plugin-svgo@6.5.1': + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + + '@svgr/webpack@6.5.1': + resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} + engines: {node: '>=10'} + + '@swc/core-android-arm-eabi@1.3.9': + resolution: {integrity: sha512-+F+sU2l49Po4tJoNtIpFwt0k1sspymvPMM+DCpnkHF1idzRiOU5NGgVzmLDjoO9AnxHa7EBJ3itN+PP2Dd06+A==} + engines: {node: '>=10'} + cpu: [arm] + os: [android] + + '@swc/core-android-arm64@1.3.9': + resolution: {integrity: sha512-HSWdex3yd4CRefkM2WVz0nTKjpirNZnwSlghqe4ct9QAYGMiiPesYgWPAnq/PpnYfmjQse4yvEclamGiek6zDA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [android] + + '@swc/core-darwin-arm64@1.3.50': + resolution: {integrity: sha512-riJGLORCFOMeUccEV0hzua0iyJFks7kef+5GfcmC93SLno+LHFDnaJ4mKVXcCAmQ7GYhVTPJs9gSHIW2fO5anQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-arm64@1.3.9': + resolution: {integrity: sha512-E7WJY1LsMJtOtUYc/JXl8qlt6USnzodWmdO1eAAOSAODEdX9AjgG3fRT94o3UcmvMrto7sxBXVExj8wG7Cxeng==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-arm64@1.6.13': + resolution: {integrity: sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.3.50': + resolution: {integrity: sha512-XaAhpeUoAK8tOUYSXH/v35yEjIoSP6ClGV/EaqBmDuCzAPue6uJMlIAW+nTmdtqVm5ZNZy2cKtP4ZHhVlfl7xw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-darwin-x64@1.3.9': + resolution: {integrity: sha512-0+dFCAcLEBxwIO+0Nt+OT8mjPpvBMBWIuFWB1DNiUu2K73+OB0i+llzsCJFoasISHR+YJD0bGyv+8AtVuUdFAw==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-darwin-x64@1.6.13': + resolution: {integrity: sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-freebsd-x64@1.3.9': + resolution: {integrity: sha512-JbHIeklQPRBEZUfKAKt/IB/ayi7dJZ9tEGu/fDxNfk8Znu1Md+YOKRyN5FPMXfYrL5yFUXnlFOb2LX6wjNhhjQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [freebsd] + + '@swc/core-linux-arm-gnueabihf@1.3.50': + resolution: {integrity: sha512-8hDtXs0T5biMtA3I21JQG1uxL+Hb/D2t0NZENuajVK5Vky3GXmf+ICVeQzwGzSXiyftaDgyNAvBidbKPBlNEtw==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm-gnueabihf@1.3.9': + resolution: {integrity: sha512-Yc1G8FGXmq6yGKtu5wYCcvVWBtqU0/3FUk6zJM+7pFiivKsVHJcgWrkgLO1u6h7bgEdQIYwfM3/BbRNE5CtdnA==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm-gnueabihf@1.6.13': + resolution: {integrity: sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.3.50': + resolution: {integrity: sha512-iS908P5cNTHWus4QefSg2jn4lDYcl15sN1Fvx8fQgqYQra2O9CsR8lXBJYkvllykkzoKvWfcOLRCTquz3vsnVQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.3.9': + resolution: {integrity: sha512-PrBjmPIMhoQLCpfaZl2b1cCXnaNPddQB/ssMVqQ6eXChBJfcv14M5BjxtI2ORi4HoEDlsbX+k50sL666M3lnBw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.6.13': + resolution: {integrity: sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.3.50': + resolution: {integrity: sha512-ysh8MeaWjGqVwIPCDUhUOr4oczIx5qb8vFBoegI+SOUfcpWik22/+hG25LWzZY6PwAtqUGkhsJt/+5dY4IMhEA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.3.9': + resolution: {integrity: sha512-jJT56vt81o2N3O2nXp+MZGM6mbgkNx6lvvRT6yISW29fLM6NHBXmkGcjaWOD9VFJDRmu/MtFxbElPxr6ikrFYQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.6.13': + resolution: {integrity: sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.3.50': + resolution: {integrity: sha512-Ci4LQaGIPweWNVWgR2f47nrYEfq7002Pj6WWKGrnO6g+k5cwR3izxHMOnZhcKyAD3cWOS904i/GbfgXs2wBCDQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.3.9': + resolution: {integrity: sha512-60ZreTvrJk3N7xvPzQeQJDePsXUmSUZkKD6lc0xzug4bv53NyUIQ8gH8nzVsV++D9NZeVxXp6WqqFLcgt7yEDQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.6.13': + resolution: {integrity: sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.3.50': + resolution: {integrity: sha512-SEXOhGjmC4rdBeucCvNmtO2vflUEhkmWLfqvkalHYDbPMA/gwLSoYu3D85u5XqB8DatDi4TOCUx80IR1b/vDBQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.3.9': + resolution: {integrity: sha512-UBApPfUSP+w6ye6V1oT4EGh3LFCFrZaQsC1CkTuiYXXSmQMzkYE0Jzegn3R7MHWCJSneRwXRTKrkdhrNBUqWKA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.6.13': + resolution: {integrity: sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.3.50': + resolution: {integrity: sha512-DPsJ2r9mYU8VzF9vhK323psyE8modj5be9M9diOsqF58Fu9ARtOfuulY+eiS5e41ya2XM/H2N/qOfsA+h2KRcg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-arm64-msvc@1.3.9': + resolution: {integrity: sha512-4FQSalXbbnqTLVGRljRnw/bJ99Jwj1WnXz/aJM/SVL8S9Zbc82+3v+wXL/9NGwaAndu2QUkb2KPYNAHvB7PCdw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-arm64-msvc@1.6.13': + resolution: {integrity: sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.3.50': + resolution: {integrity: sha512-2iyzHLat0C93S3XLp7QJ6RTA9Md+EcPl2fq1S/m2EZqofcq7wu5SuywaXoF89xOibOJBnWe6KwOnOFWFaXrPjQ==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.3.9': + resolution: {integrity: sha512-ZkTw1Cm+b2QBf/NjkJJbocvgT0NWdfPQL0OyMkuTAinRzfrMmq/lmshjnqj3ysFVeI4uuJTNemiT6mivpLmuBw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.6.13': + resolution: {integrity: sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.3.50': + resolution: {integrity: sha512-iFRU2Y5DVIEdjaWnlLij8QQBM5Q91UJotNNgzuevPSIOhOyhF6V2AQS1QC4mfkPCy3Bw0GrZDChu3GcuBj9Rzw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core-win32-x64-msvc@1.3.9': + resolution: {integrity: sha512-moKi2prCKzYnXXlrLf5nwAN4uGSm4YpsW2xzYiZWJJDRqu74VoUWoDkG25jalHTfN/PSBQg4dkFWhhUe89JJVw==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core-win32-x64-msvc@1.6.13': + resolution: {integrity: sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.3.50': + resolution: {integrity: sha512-soTAHlwkI8zukR9KftWZ0gZ7HKU99B/C3CtBxzSI3N23QG+EfSSOgrYARfuZk5g4yLWpsU0rEkojd78vixqkwg==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/core@1.3.9': + resolution: {integrity: sha512-PCRCO9vIoEX3FyS3z/FkWVYJzuspUq0LLaWdK3L30+KQDtH29K+LQdRc2Dzin2MU5MpY4bSHydAwl9M6cmZ9OA==} + engines: {node: '>=10'} + hasBin: true + + '@swc/core@1.6.13': + resolution: {integrity: sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.9': + resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} + + '@swc/wasm@1.2.122': + resolution: {integrity: sha512-sM1VCWQxmNhFtdxME+8UXNyPNhxNu7zdb6ikWpz0YKAQQFRGT5ThZgJrubEpah335SUToNg8pkdDF7ibVCjxbQ==} + + '@swc/wasm@1.2.130': + resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==} + + '@szmarczak/http-timer@1.1.2': + resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} + engines: {node: '>=6'} + + '@tldraw/core@1.20.1': + resolution: {integrity: sha512-DEeu64TvgttifJPt51hFYrzc6fwpYpjDMcvlqN6RZ4CfQftv9ZaZJA2KWbqf9EQGJT01ujYH9UM6MdkWp3lTyg==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@tldraw/intersect@1.8.0': + resolution: {integrity: sha512-0UarshNpyq2+O4o0xHMJIBgF0E630mes5CkMoO+D5xgYppSBIkeqYDcv0ujsmAhMKX1O6Y0ShuuHeflBEULUoQ==} + + '@tldraw/tldraw@1.26.2': + resolution: {integrity: sha512-quNY068Nq6geN4oGvTyGBjILYMi/XpaV8DTPes/JFWxqKxfOLlj9hsziwug+zIjPDa2k9EO4Q+yc0+z1RSFI9A==} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + + '@tldraw/vec@1.8.0': + resolution: {integrity: sha512-GiS5Df3CzXY/fPBFcM0CKFERZfI4Cg1X33VPZX+NLo7Fwm/h9zu/aU24N1mG75Q9LuMnwKm7woxKr8BiUXGYCg==} + + '@tokenizer/token@0.3.0': + resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@tsconfig/docusaurus@1.0.6': + resolution: {integrity: sha512-1QxDaP54hpzM6bq9E+yFEo4F9WbWHhsDe4vktZXF/iDlc9FqGr9qlg+3X/nuKQXx8QxHV7ue8NXFazzajsxFBA==} + + '@types/async-lock@1.3.0': + resolution: {integrity: sha512-Z93wDSYW9aMgPR5t+7ouwTvy91Vp3M0Snh4Pd3tf+caSAq5bXZaGnnH9CDbjrwgmfDkRIX0Dx8GvSDgwuoaxoA==} + + '@types/better-sqlite3@7.6.0': + resolution: {integrity: sha512-rnSP9vY+fVsF3iJja5yRGBJV63PNBiezJlYrCkqUmQWFoB16cxAHwOkjsAYEu317miOfKaJpa65cbp0P4XJ/jw==} + + '@types/body-parser@1.19.2': + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + + '@types/bonjour@3.5.10': + resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + + '@types/busboy@1.5.0': + resolution: {integrity: sha512-ncOOhwmyFDW76c/Tuvv9MA9VGYUCn8blzyWmzYELcNGDb0WXWLSmFi7hJq25YdRBYJrmMBB5jZZwUjlJe9HCjQ==} + + '@types/connect-history-api-fallback@1.3.5': + resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + + '@types/connect@3.4.35': + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + + '@types/cors@2.8.13': + resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} + + '@types/eslint-scope@3.7.4': + resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + + '@types/eslint@8.4.8': + resolution: {integrity: sha512-zUCKQI1bUCTi+0kQs5ZQzQ/XILWRLIlh15FXWNykJ+NG3TMKMVvwwC6GP3DR1Ylga15fB7iAExSzc4PNlR5i3w==} + + '@types/estree@0.0.51': + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + + '@types/estree@1.0.1': + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + + '@types/express-serve-static-core@4.17.31': + resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + + '@types/express@4.17.14': + resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + + '@types/express@4.17.15': + resolution: {integrity: sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==} + + '@types/hast@2.3.4': + resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + + '@types/history@4.7.11': + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + + '@types/hoist-non-react-statics@3.3.1': + resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} + + '@types/html-minifier-terser@6.1.0': + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} + + '@types/http-proxy@1.17.9': + resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} + + '@types/is-ci@3.0.0': + resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + + '@types/istanbul-lib-coverage@2.0.4': + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + + '@types/istanbul-lib-report@3.0.0': + resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + + '@types/istanbul-reports@3.0.1': + resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + + '@types/json-schema@7.0.11': + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + + '@types/jsonwebtoken@8.5.9': + resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/mdast@3.0.10': + resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + + '@types/mime@3.0.1': + resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + + '@types/minimist@1.2.2': + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + + '@types/node@12.20.55': + resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/node@20.10.5': + resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + + '@types/node@20.11.5': + resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} + + '@types/normalize-package-data@2.4.1': + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + + '@types/object-hash@3.0.4': + resolution: {integrity: sha512-w4fEy2suq1bepUxHoJRCBHJz0vS5DPAYpSbcgNwOahljxwyJsiKmi8qyes2/TJc+4Avd7fsgP+ZgUuXZjPvdug==} + + '@types/offscreencanvas@2019.7.0': + resolution: {integrity: sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==} + + '@types/parse-json@4.0.0': + resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} + + '@types/parse5@5.0.3': + resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} + + '@types/prop-types@15.7.5': + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + + '@types/qs@6.9.7': + resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + + '@types/range-parser@1.2.4': + resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + + '@types/react-dom@18.0.11': + resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + + '@types/react-dom@18.0.9': + resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} + + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react-reconciler@0.26.7': + resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==} + + '@types/react-reconciler@0.28.2': + resolution: {integrity: sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw==} + + '@types/react-router-config@5.0.6': + resolution: {integrity: sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==} + + '@types/react-router-dom@5.3.3': + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + + '@types/react-router@5.1.19': + resolution: {integrity: sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==} + + '@types/react@18.0.20': + resolution: {integrity: sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==} + + '@types/react@18.0.28': + resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + + '@types/react@18.3.3': + resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + + '@types/responselike@1.0.0': + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + + '@types/retry@0.12.0': + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + + '@types/sax@1.2.4': + resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} + + '@types/scheduler@0.16.2': + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + + '@types/semver@7.5.5': + resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} + + '@types/serve-index@1.9.1': + resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} + + '@types/serve-static@1.15.0': + resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} + + '@types/sockjs@0.3.33': + resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} + + '@types/three@0.149.0': + resolution: {integrity: sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg==} + + '@types/unist@2.0.6': + resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + + '@types/use-sync-external-store@0.0.3': + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/webxr@0.5.1': + resolution: {integrity: sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ==} + + '@types/ws@8.5.3': + resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + + '@types/yargs-parser@21.0.0': + resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + + '@types/yargs@17.0.29': + resolution: {integrity: sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@use-gesture/core@10.2.22': + resolution: {integrity: sha512-Ek0JZFYfk+hicLmoG094gm3YOuDMBNckHb988e59YOZoAkETT8dQSzT+g3QkSHSiP1m5wFXAGPSgxvOuwvGKHQ==} + + '@use-gesture/core@10.2.24': + resolution: {integrity: sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q==} + + '@use-gesture/react@10.2.22': + resolution: {integrity: sha512-ECo7ig16SxBE06ENIURO1woKEB6TC8qY3a0rugJjQ2f1o0Tj28xS/eYNyJuqzQB5YT0q5IrF7ZFpbx1p/5ohYA==} + peerDependencies: + react: '>= 16.8.0' + + '@use-gesture/react@10.2.24': + resolution: {integrity: sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg==} + peerDependencies: + react: '>= 16.8.0' + + '@vitejs/plugin-react-swc@3.3.0': + resolution: {integrity: sha512-Ycg+n2eyCOTpn/wRy+evVo859+hw7qCj9iaX5CMny6x1fx1Uoq0xBG+a98lFtwLNGfGEnpI0F26YigRuxCRkwg==} + peerDependencies: + vite: ^4 + + '@vitejs/plugin-react-swc@3.7.0': + resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} + peerDependencies: + vite: ^4 || ^5 + + '@vitejs/plugin-react@2.2.0': + resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^3.0.0 + + '@vitest/expect@2.0.5': + resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + + '@vitest/expect@2.1.3': + resolution: {integrity: sha512-SNBoPubeCJhZ48agjXruCI57DvxcsivVDdWz+SSsmjTT4QN/DfHk3zB/xKsJqMs26bLZ/pNRLnCf0j679i0uWQ==} + + '@vitest/mocker@2.1.3': + resolution: {integrity: sha512-eSpdY/eJDuOvuTA3ASzCjdithHa+GIF1L4PqtEELl6Qa3XafdMLBpBlZCIUCX2J+Q6sNmjmxtosAG62fK4BlqQ==} + peerDependencies: + '@vitest/spy': 2.1.3 + msw: ^2.3.5 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.0.5': + resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + + '@vitest/pretty-format@2.1.3': + resolution: {integrity: sha512-XH1XdtoLZCpqV59KRbPrIhFCOO0hErxrQCMcvnQete3Vibb9UeIOX02uFPfVn3Z9ZXsq78etlfyhnkmIZSzIwQ==} + + '@vitest/runner@2.0.5': + resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} + + '@vitest/runner@2.1.3': + resolution: {integrity: sha512-JGzpWqmFJ4fq5ZKHtVO3Xuy1iF2rHGV4d/pdzgkYHm1+gOzNZtqjvyiaDGJytRyMU54qkxpNzCx+PErzJ1/JqQ==} + + '@vitest/snapshot@2.0.5': + resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} + + '@vitest/snapshot@2.1.3': + resolution: {integrity: sha512-qWC2mWc7VAXmjAkEKxrScWHWFyCQx/cmiZtuGqMi+WwqQJ2iURsVY4ZfAK6dVo6K2smKRU6l3BPwqEBvhnpQGg==} + + '@vitest/spy@2.0.5': + resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + + '@vitest/spy@2.1.3': + resolution: {integrity: sha512-Nb2UzbcUswzeSP7JksMDaqsI43Sj5+Kry6ry6jQJT4b5gAK+NS9NED6mDb8FlMRCX8m5guaHCDZmqYMMWRy5nQ==} + + '@vitest/utils@2.0.5': + resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + + '@vitest/utils@2.1.3': + resolution: {integrity: sha512-xpiVfDSg1RrYT0tX6czgerkpcKFmFOF/gCr30+Mve5V2kewCy4Prn1/NDMSRwaSmT7PRaOF83wu+bEtsY1wrvA==} + + '@webassemblyjs/ast@1.11.1': + resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + + '@webassemblyjs/floating-point-hex-parser@1.11.1': + resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + + '@webassemblyjs/helper-api-error@1.11.1': + resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + + '@webassemblyjs/helper-buffer@1.11.1': + resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + + '@webassemblyjs/helper-numbers@1.11.1': + resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.1': + resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + + '@webassemblyjs/helper-wasm-section@1.11.1': + resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + + '@webassemblyjs/ieee754@1.11.1': + resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + + '@webassemblyjs/leb128@1.11.1': + resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + + '@webassemblyjs/utf8@1.11.1': + resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + + '@webassemblyjs/wasm-edit@1.11.1': + resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + + '@webassemblyjs/wasm-gen@1.11.1': + resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + + '@webassemblyjs/wasm-opt@1.11.1': + resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + + '@webassemblyjs/wasm-parser@1.11.1': + resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + + '@webassemblyjs/wast-printer@1.11.1': + resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + + '@webgpu/glslang@0.0.15': + resolution: {integrity: sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q==} + + '@whatwg-node/events@0.1.1': + resolution: {integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==} + engines: {node: '>=16.0.0'} + + '@whatwg-node/fetch@0.9.16': + resolution: {integrity: sha512-mqasZiUNquRe3ea9+aCAuo81BR6vq5opUKprPilIHTnrg8a21Z1T1OrI+KiMFX8OmwO5HUJe/vro47lpj2JPWQ==} + engines: {node: '>=16.0.0'} + + '@whatwg-node/node-fetch@0.5.6': + resolution: {integrity: sha512-cmAsGMHoI0S3AHi3CmD3ma1Q234ZI2JNmXyDyM9rLtbXejBKxU3ZWdhS+mzRIAyUxZCMGlFW1tHmROv0MDdxpw==} + engines: {node: '>=16.0.0'} + + '@whatwg-node/server@0.9.25': + resolution: {integrity: sha512-DlPqPPcfyzh4/9Lz1fl4c5bZsGp/1wCh7B+cK8FE1bWoW7tlZkVguvGn/XnYPKthGzEIwo/fLdHwevH44z+eeg==} + engines: {node: '>=16.0.0'} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + abab@2.0.6: + resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-globals@6.0.0: + resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + + acorn-import-assertions@1.8.0: + resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} + peerDependencies: + acorn: ^8 + + acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + + acorn-walk@8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.8.0: + resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.1: + resolution: {integrity: sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==} + engines: {node: '>= 10.0.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agent-base@7.1.0: + resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.11.0: + resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + + algoliasearch-helper@3.11.1: + resolution: {integrity: sha512-mvsPN3eK4E0bZG0/WlWJjeqe/bUD2KOEVOl0GyL/TGXn6wcpZU8NOuztGHCUKXkyg5gq6YzUakVTmnmSSO5Yiw==} + peerDependencies: + algoliasearch: '>= 3.1 < 6' + + algoliasearch@4.14.2: + resolution: {integrity: sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.2: + resolution: {integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + array-back@3.1.0: + resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} + engines: {node: '>=6'} + + array-back@4.0.2: + resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} + engines: {node: '>=8'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-flatten@2.1.2: + resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array.prototype.flat@1.3.0: + resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} + engines: {node: '>= 0.4'} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + + async-lock@1.4.0: + resolution: {integrity: sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + attr-accept@2.2.2: + resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} + engines: {node: '>=4'} + + autoprefixer@10.4.13: + resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + axios@0.25.0: + resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} + + b4a@1.6.4: + resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} + + babel-loader@8.2.5: + resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} + engines: {node: '>= 8.9'} + peerDependencies: + '@babel/core': ^7.0.0 + webpack: '>=2' + + babel-plugin-apply-mdx-type-prop@1.6.22: + resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} + peerDependencies: + '@babel/core': ^7.11.6 + + babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + + babel-plugin-extract-import-names@1.6.22: + resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} + + babel-plugin-polyfill-corejs2@0.3.3: + resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-polyfill-corejs3@0.6.0: + resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-polyfill-regenerator@0.4.1: + resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + bail@1.0.5: + resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + + bare-fs@2.3.1: + resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + + bare-os@2.4.0: + resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} + + bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + + bare-stream@2.1.3: + resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} + + base16@1.0.0: + resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + basic-ftp@5.0.3: + resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==} + engines: {node: '>=10.0.0'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + bcrypt@5.1.1: + resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==} + engines: {node: '>= 10.0.0'} + + better-path-resolve@1.0.0: + resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} + engines: {node: '>=4'} + + better-sqlite3@7.6.2: + resolution: {integrity: sha512-S5zIU1Hink2AH4xPsN0W43T1/AJ5jrPh7Oy07ocuW/AKYYY02GWzz9NH0nbSMn/gw6fDZ5jZ1QsHt1BXAwJ6Lg==} + + bidi-js@1.0.2: + resolution: {integrity: sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==} + + big-integer@1.6.51: + resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} + engines: {node: '>=0.6'} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.1: + resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bonjour-service@1.0.14: + resolution: {integrity: sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + + boxen@5.1.2: + resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} + engines: {node: '>=10'} + + boxen@6.2.1: + resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + + breakword@1.0.5: + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + + browser-fs-access@0.31.1: + resolution: {integrity: sha512-jMz9f56DkLM7LyA8wZYO7CtpoF3RdUk1/FXrnRNybgV0R5eqk/fgFWR0k5IMjPYgK4jmZecytP/UDO5WBi9Dhg==} + + browser-process-hrtime@1.0.0: + resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + + browserslist@4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.6.0: + resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + + busboy@1.6.0: + resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} + engines: {node: '>=10.16.0'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cacheable-request@6.1.0: + resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} + engines: {node: '>=8'} + + call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + + camelcase-keys@8.0.2: + resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==} + engines: {node: '>=14.16'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + camelcase@7.0.1: + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} + + camera-controls@2.3.1: + resolution: {integrity: sha512-mGPDOqCTSUqaeX3yR3bWQ/p1M5CR8C+cnqndBxQugfGKysn1dhRtw8Q6sG1hq4GL8RPsGwRanwQk5zwQjyrxyQ==} + peerDependencies: + three: '>=0.126.1' + + caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + + caniuse-lite@1.0.30001426: + resolution: {integrity: sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A==} + + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + + ccount@1.1.0: + resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} + + chai@5.1.1: + resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} + engines: {node: '>=12'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + + character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} + + character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} + + character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0-rc.12: + resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} + engines: {node: '>= 6'} + + chevrotain@10.4.2: + resolution: {integrity: sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg==} + + chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} + engines: {node: '>=6.0'} + + chromium-bidi@0.5.24: + resolution: {integrity: sha512-5xQNN2SVBdZv4TxeMLaI+PelrnZsHDhn8h2JtyriLr+0qHcZS8BMuo93qN6J1VmtmrgYP+rmcLHcbpnA8QJh+w==} + peerDependencies: + devtools-protocol: '*' + + ci-info@2.0.0: + resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} + + ci-info@3.5.0: + resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==} + + clean-css@5.3.1: + resolution: {integrity: sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==} + engines: {node: '>= 10.0'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-boxes@2.2.1: + resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} + engines: {node: '>=6'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-table3@0.6.3: + resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} + engines: {node: 10.* || >= 12.*} + + cliui@6.0.0: + resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + + collapse-white-space@1.0.6: + resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + + colorette@2.0.19: + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + + combine-promises@1.1.0: + resolution: {integrity: sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==} + engines: {node: '>=10'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} + + command-line-args@5.2.1: + resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} + engines: {node: '>=4.0.0'} + + command-line-usage@6.1.3: + resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} + engines: {node: '>=8.0.0'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concurrently@7.5.0: + resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} + engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} + hasBin: true + + configstore@5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + consola@2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + + content-disposition@0.5.2: + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.4: + resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.5.0: + resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} + engines: {node: '>= 0.6'} + + copy-text-to-clipboard@3.0.1: + resolution: {integrity: sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==} + engines: {node: '>=12'} + + copy-webpack-plugin@11.0.0: + resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.26.0: + resolution: {integrity: sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==} + + core-js-pure@3.26.0: + resolution: {integrity: sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==} + + core-js@3.26.0: + resolution: {integrity: sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + cosmiconfig@6.0.0: + resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} + engines: {node: '>=8'} + + cosmiconfig@7.0.1: + resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} + engines: {node: '>=10'} + + cosmiconfig@8.0.0: + resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} + engines: {node: '>=14'} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + cp-tpl@1.0.9: + resolution: {integrity: sha512-Akv9KUzVDBhj3E86n5PswqOn0/Ce8cLxqq3x/G333kz+LljsAT0QaOynD5Dsf52gelmO/iOq2p6mVyW5mXXolA==} + hasBin: true + + cross-env@7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + + cross-fetch@3.1.5: + resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} + + cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + crypto-random-string@4.0.0: + resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} + engines: {node: '>=12'} + + css-declaration-sorter@6.3.1: + resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + + css-loader@6.7.1: + resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + css-minimizer-webpack-plugin@4.2.2: + resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@parcel/css': '*' + '@swc/css': '*' + clean-css: '*' + csso: '*' + esbuild: '*' + lightningcss: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@parcel/css': + optional: true + '@swc/css': + optional: true + clean-css: + optional: true + csso: + optional: true + esbuild: + optional: true + lightningcss: + optional: true + + css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + cssnano-preset-advanced@5.3.9: + resolution: {integrity: sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-preset-default@5.2.13: + resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano-utils@3.1.0: + resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + cssnano@5.1.14: + resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + + cssom@0.3.8: + resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + + cssstyle@2.3.0: + resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} + engines: {node: '>=8'} + + cssstyle@4.0.1: + resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} + engines: {node: '>=18'} + + csstype@3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + + csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + + csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + + csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + + csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + + cuid@2.1.8: + resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} + deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead. + + data-uri-to-buffer@6.0.1: + resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} + engines: {node: '>= 14'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + + date-fns@2.29.3: + resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} + engines: {node: '>=0.11'} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.5: + resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.0: + resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@6.0.0: + resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + decimal.js@10.4.1: + resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + decompress-response@3.3.0: + resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} + engines: {node: '>=4'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.2.2: + resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} + engines: {node: '>=0.10.0'} + + default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + + default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + defer-to-connect@1.1.3: + resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + + degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detab@2.0.4: + resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} + + detect-gpu@5.0.14: + resolution: {integrity: sha512-CZwpdrG3hX4oYBcRATw8YaRV2I3AFIN2X6PA0rf9IQ0uYzi7w4gGQkmzazO9UtApHAYRraUICupnIQ+G3o0JDQ==} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@2.0.1: + resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + detect-port-alt@1.1.6: + resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} + engines: {node: '>= 4.2.1'} + hasBin: true + + detect-port@1.5.1: + resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} + hasBin: true + + devtools-protocol@0.0.1068969: + resolution: {integrity: sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==} + + devtools-protocol@0.0.1299070: + resolution: {integrity: sha512-+qtL3eX50qsJ7c+qVyagqi7AWMoQCBGNfoyJZMwm/NSXVqLYbuitrWEEIzxfUmTNy7//Xe8yhMmQ+elj3uAqSg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dns-equal@1.0.0: + resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} + + dns-packet@5.4.0: + resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==} + engines: {node: '>=6'} + + dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + + dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + + domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + + domutils@3.0.1: + resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + + draco3d@1.5.6: + resolution: {integrity: sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ==} + + duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + emoticon@3.2.0: + resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + enhanced-resolve@5.10.0: + resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} + engines: {node: '>=10.13.0'} + + enquirer@2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + + entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + + entities@4.4.0: + resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-abstract@1.20.4: + resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + engines: {node: '>= 0.4'} + + es-module-lexer@0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + + es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + + es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + + esbuild-android-64@0.15.13: + resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + esbuild-android-arm64@0.15.13: + resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + esbuild-darwin-64@0.15.13: + resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + esbuild-darwin-arm64@0.15.13: + resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + esbuild-freebsd-64@0.15.13: + resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + esbuild-freebsd-arm64@0.15.13: + resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + esbuild-linux-32@0.15.13: + resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + esbuild-linux-64@0.15.13: + resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + esbuild-linux-arm64@0.15.13: + resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + esbuild-linux-arm@0.15.13: + resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + esbuild-linux-mips64le@0.15.13: + resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + esbuild-linux-ppc64le@0.15.13: + resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + esbuild-linux-riscv64@0.15.13: + resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + esbuild-linux-s390x@0.15.13: + resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + esbuild-netbsd-64@0.15.13: + resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + esbuild-openbsd-64@0.15.13: + resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + esbuild-sunos-64@0.15.13: + resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + esbuild-windows-32@0.15.13: + resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + esbuild-windows-64@0.15.13: + resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + esbuild-windows-arm64@0.15.13: + resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + esbuild@0.15.13: + resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.16.13: + resolution: {integrity: sha512-oYwFdSEIoKM1oYzyem1osgKJAvg5447XF+05ava21fOtilyb2HeQQh26/74K4WeAk5dZmj/Mx10zUqUnI14jhA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.17.16: + resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.18.15: + resolution: {integrity: sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.19.10: + resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.19.5: + resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + escape-goat@2.1.1: + resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} + engines: {node: '>=8'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.0.0: + resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} + engines: {node: '>=6.0'} + hasBin: true + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eta@1.12.3: + resolution: {integrity: sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==} + engines: {node: '>=6.0.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eval@0.1.8: + resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} + engines: {node: '>= 0.8'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + express@4.18.2: + resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extendable-error@0.1.7: + resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fake-indexeddb@5.0.1: + resolution: {integrity: sha512-vxybH29Owtc6khV/Usy47B1g+eKwyhFiX8nwpCC4td320jvwrKQDH6vNtcJZgUzVxmfsSIlHzLKQzT76JMCO7A==} + engines: {node: '>=18'} + + fake-indexeddb@6.0.0: + resolution: {integrity: sha512-YEboHE5VfopUclOck7LncgIqskAqnv4q0EWbYCaxKKjAvO93c+TJIaBuGy8CBFdbg9nKdpN3AuPRwVBJ4k7NrQ==} + engines: {node: '>=18'} + + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + + fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + + fast-url-parser@1.1.3: + resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + + fast-xml-parser@4.2.5: + resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} + hasBin: true + + fastq@1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fbemitter@3.0.0: + resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} + + fbjs-css-vars@1.0.2: + resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + + fbjs@3.0.4: + resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + feed@4.2.2: + resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} + engines: {node: '>=0.4.0'} + + fflate@0.6.10: + resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} + + file-loader@6.2.0: + resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + file-selector@0.5.0: + resolution: {integrity: sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==} + engines: {node: '>= 10'} + + file-type@18.7.0: + resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==} + engines: {node: '>=14.16'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + filesize@8.0.7: + resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} + engines: {node: '>= 0.4.0'} + + fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + + finalhandler@1.2.0: + resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} + engines: {node: '>= 0.8'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-replace@3.0.0: + resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} + engines: {node: '>=4.0.0'} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + flux@4.0.3: + resolution: {integrity: sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==} + peerDependencies: + react: ^15.0.2 || ^16.0.0 || ^17.0.0 + + follow-redirects@1.15.2: + resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + + fork-ts-checker-webpack-plugin@6.5.2: + resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==} + engines: {node: '>=10', yarn: '>=1.0.0'} + peerDependencies: + eslint: '>= 6' + typescript: '>= 2.7' + vue-template-compiler: '*' + webpack: '>= 4' + peerDependenciesMeta: + eslint: + optional: true + vue-template-compiler: + optional: true + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.1.0: + resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-monkey@1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + + function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-port@7.0.0: + resolution: {integrity: sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==} + engines: {node: '>=16'} + + get-stdin@9.0.0: + resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} + engines: {node: '>=12'} + + get-stream@4.1.0: + resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} + engines: {node: '>=6'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + + get-tsconfig@4.7.5: + resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + + get-uri@6.0.2: + resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} + engines: {node: '>= 14'} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + gfynonce@1.0.2: + resolution: {integrity: sha512-ZadRAzhPtBIKED2/3NcWp2YjeQUO9xaybUyK4r3dHA1kUM7LUHqCW+7diDx4kdywbcI074sX/k4SHJmQHz9nsg==} + engines: {node: '>= 6'} + hasBin: true + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + + global-dirs@3.0.0: + resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} + engines: {node: '>=10'} + + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + globby@13.1.2: + resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + glsl-noise@0.0.0: + resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==} + + got@9.6.0: + resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} + engines: {node: '>=8.6'} + + graceful-fs@4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + + grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + gzip-size@6.0.0: + resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} + engines: {node: '>=10'} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has-yarn@2.1.0: + resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} + engines: {node: '>=8'} + + has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + + hast-to-hyperscript@9.0.1: + resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} + + hast-util-from-parse5@6.0.1: + resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} + + hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + + hast-util-raw@6.0.1: + resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==} + + hast-util-to-parse5@6.0.0: + resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} + + hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + + history@4.10.1: + resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + hosted-git-info@5.2.1: + resolution: {integrity: sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + hotkeys-js@3.9.4: + resolution: {integrity: sha512-2zuLt85Ta+gIyvs4N88pCYskNrxf1TFv3LR9t5mdAZIX8BcgQQ48F2opUptvHa6m8zsy5v/a0i9mWzTrlNWU0Q==} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + + html-entities@2.3.3: + resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} + + html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} + engines: {node: '>=12'} + hasBin: true + + html-tags@3.2.0: + resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} + engines: {node: '>=8'} + + html-void-elements@1.0.5: + resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} + + html-webpack-plugin@5.5.0: + resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} + engines: {node: '>=10.13.0'} + peerDependencies: + webpack: ^5.20.0 + + htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + + htmlparser2@8.0.1: + resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + + http-cache-semantics@4.1.0: + resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http-proxy-middleware@2.0.6: + resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + + human-id@1.0.2: + resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + idb-keyval@6.2.0: + resolution: {integrity: sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} + engines: {node: '>= 4'} + + image-size@1.0.2: + resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} + engines: {node: '>=14.0.0'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + immer@9.0.16: + resolution: {integrity: sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-lazy@2.1.0: + resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} + engines: {node: '>=4'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + infima@0.2.0-alpha.42: + resolution: {integrity: sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==} + engines: {node: '>=12'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + internal-slot@1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + + interpret@1.4.0: + resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} + engines: {node: '>= 0.10'} + + intl-messageformat@10.2.1: + resolution: {integrity: sha512-1lrJG2qKzcC1TVzYu1VuB1yiY68LU5rwpbHa2THCzA67Vutkz7+1lv5U20K3Lz5RAiH78zxNztMEtchokMWv8A==} + + invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + + ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} + + ip@2.0.0: + resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.0.1: + resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} + engines: {node: '>= 10'} + + is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} + + is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + + is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + + is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + + is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + + is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + + is-npm@5.0.0: + resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} + engines: {node: '>=10'} + + is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-potential-custom-element-name@1.0.1: + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + + is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-root@2.1.0: + resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} + engines: {node: '>=6'} + + is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + + is-subdir@1.2.0: + resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} + engines: {node: '>=4'} + + is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + + is-whitespace-character@1.0.4: + resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-word-character@1.0.4: + resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + is-yarn-global@0.3.0: + resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + its-fine@1.0.10: + resolution: {integrity: sha512-3ZRmDCocq0vmxplC866rEe4PPgOSsuRw90/tvT7nT5QndqIQWsecZPJh75rqSQSn06MxKOjX7rWV/7cFhVsCBg==} + peerDependencies: + react: '>=18.0' + + itty-router@4.0.27: + resolution: {integrity: sha512-Q3/GOE2EJvyu3hhxGN3WDWh3QNg4v7h1KFx/jSLcIOOkpSI1jUFTgGefEESXon4j5YwqCIf0DEemjiVAFSBiUw==} + + jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + + jest-util@29.2.1: + resolution: {integrity: sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jest-worker@29.2.1: + resolution: {integrity: sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + joi@17.6.4: + resolution: {integrity: sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsdom@20.0.0: + resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} + engines: {node: '>=14'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsdom@24.1.0: + resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + json-buffer@3.0.0: + resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonwebtoken@8.5.1: + resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} + engines: {node: '>=4', npm: '>=1.4.28'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + + jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + + jwt-decode@3.1.2: + resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} + + keyv@3.1.0: + resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + klona@2.0.5: + resolution: {integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==} + engines: {node: '>= 8'} + + ktx-parse@0.4.5: + resolution: {integrity: sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg==} + + kysely-plugin-serialize@0.5.7: + resolution: {integrity: sha512-FWPcH7eR3i059iogfzQS3qzNABQbUEnJug1paQ74G3MSUUgKAC5hp7T75oeHrnWgNHYCvQJfppD29vHXGVRgAg==} + peerDependencies: + kysely: '>=0.26' + + kysely@0.27.3: + resolution: {integrity: sha512-lG03Ru+XyOJFsjH3OMY6R/9U38IjDPfnOfDgO3ynhbDr+Dz8fak+X6L62vqu3iybQnj+lG84OttBuU9KY3L9kA==} + engines: {node: '>=14.0.0'} + + latest-version@5.1.0: + resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} + engines: {node: '>=8'} + + leva@0.9.34: + resolution: {integrity: sha512-hQmWAakOCuBXYIenJ7RaNIei5enDwHNNb6Gz5BUU3mZk+ElECdbvNJbmcMfkFAJslJw33MXRabt7OKIzItLLWw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.3.0: + resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lilconfig@2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + engines: {node: '>=10'} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.3: + resolution: {integrity: sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==} + engines: {node: '>=8.9.0'} + + loader-utils@3.2.0: + resolution: {integrity: sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==} + engines: {node: '>= 12.13.0'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + lodash.clamp@4.0.3: + resolution: {integrity: sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==} + + lodash.curry@4.1.1: + resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.flow@3.5.0: + resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==} + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + + lodash.omit@4.5.0: + resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + lodash.pick@4.4.0: + resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} + + lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + + lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@3.1.1: + resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} + engines: {node: '>=0.10.0'} + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + lru-cache@10.0.1: + resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} + engines: {node: 14 || >=16.14} + + lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + maath@0.5.2: + resolution: {integrity: sha512-MFjfnXF5CzZaVnBuKc9y1FJh/BiPGqf19NH8Jm4o/jKTxuQ3RyPkcSIpuwdDhXrWROVKAxi3KjmHFUNMuIndbg==} + peerDependencies: + '@types/three': '>=0.144.0' + three: '>=0.144.0' + + magic-string@0.26.7: + resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} + engines: {node: '>=12'} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + markdown-escapes@1.0.4: + resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} + + mdast-squeeze-paragraphs@4.0.0: + resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} + + mdast-util-definitions@4.0.0: + resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} + + mdast-util-to-hast@10.0.1: + resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} + + mdast-util-to-string@2.0.0: + resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdurl@1.0.1: + resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@3.4.8: + resolution: {integrity: sha512-E8QAFfd4csESWOqKIpN+khILPFSAZwPR9S+DO/5UtJNcuanF1jLZz0oWUAPF7xd2c1r6dGjGx+jH1st+MFWufA==} + engines: {node: '>= 4.0.0'} + + meow@11.0.0: + resolution: {integrity: sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==} + engines: {node: '>=14.16'} + + meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + + merge-descriptors@1.0.1: + resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge-value@1.0.0: + resolution: {integrity: sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ==} + engines: {node: '>=0.10.0'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + meshline@3.1.6: + resolution: {integrity: sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug==} + peerDependencies: + three: '>=0.137' + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + + mime-db@1.33.0: + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.18: + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + mini-css-extract-plugin@2.6.1: + resolution: {integrity: sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.6: + resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mixme@0.5.4: + resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} + engines: {node: '>= 8.0.0'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mmd-parser@1.0.4: + resolution: {integrity: sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg==} + + mrmime@1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + nanoid@3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-abi@3.24.0: + resolution: {integrity: sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==} + engines: {node: '>=10'} + + node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + + node-emoji@1.11.0: + resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + + node-fetch@2.6.7: + resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-releases@2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-package-data@4.0.1: + resolution: {integrity: sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + normalize-url@4.5.1: + resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} + engines: {node: '>=8'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.2.0: + resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + + nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nwsapi@2.2.10: + resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} + + nwsapi@2.2.2: + resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + object-inspect@1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + open-cli@7.2.0: + resolution: {integrity: sha512-1ANJc8oJ92FiaNZ0o2Hw4WBvDJoXs1P74aFMtpAvlbkIPV4uPcQvDz7V6kMOrsZkmB4tglrHVMlLQaafuUuxXg==} + engines: {node: '>=14.16'} + hasBin: true + + open@8.4.0: + resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} + engines: {node: '>=12'} + + open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + opentype.js@1.3.4: + resolution: {integrity: sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==} + engines: {node: '>= 8.0.0'} + hasBin: true + + optionator@0.8.3: + resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} + engines: {node: '>= 0.8.0'} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + outdent@0.5.0: + resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + + p-cancelable@1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + + p-filter@2.1.0: + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@2.1.0: + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + pac-proxy-agent@7.0.1: + resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} + engines: {node: '>= 14'} + + pac-resolver@7.0.0: + resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} + engines: {node: '>= 14'} + + package-json@6.5.0: + resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} + engines: {node: '>=8'} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + + parse5@7.1.1: + resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + + path-to-regexp@0.1.7: + resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} + + path-to-regexp@1.8.0: + resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + + path-to-regexp@2.2.1: + resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} + + path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + peek-readable@5.0.0: + resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} + engines: {node: '>=14.16'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + perfect-freehand@1.2.0: + resolution: {integrity: sha512-h/0ikF1M3phW7CwpZ5MMvKnfpHficWoOEyr//KVNTxV4F6deRK1eYMtHyBKEAKFK0aXIEUK9oBvlF6PNXMDsAw==} + + picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-up@3.1.0: + resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} + engines: {node: '>=8'} + + postcss-calc@8.2.4: + resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} + peerDependencies: + postcss: ^8.2.2 + + postcss-colormin@5.3.0: + resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-convert-values@5.1.3: + resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-comments@5.1.2: + resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-duplicates@5.1.0: + resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-empty@5.1.1: + resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0: + resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-discard-unused@5.1.0: + resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-loader@7.0.1: + resolution: {integrity: sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==} + engines: {node: '>= 14.15.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + + postcss-merge-idents@5.1.1: + resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-longhand@5.1.7: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-merge-rules@5.1.3: + resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-font-values@5.1.0: + resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-gradients@5.1.1: + resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-params@5.1.4: + resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-minify-selectors@5.2.1: + resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-modules-extract-imports@3.0.0: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.0: + resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.0.0: + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-normalize-charset@5.1.0: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-display-values@5.1.0: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-positions@5.1.1: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-repeat-style@5.1.1: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-string@5.1.0: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-timing-functions@5.1.0: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-unicode@5.1.1: + resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-url@5.1.0: + resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-normalize-whitespace@5.1.1: + resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-ordered-values@5.1.3: + resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-idents@5.2.0: + resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-initial@5.1.1: + resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-reduce-transforms@5.1.0: + resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + + postcss-sort-media-queries@4.3.0: + resolution: {integrity: sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.4.16 + + postcss-svgo@5.1.0: + resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-unique-selectors@5.1.1: + resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss-zindex@5.1.0: + resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + postcss@8.4.16: + resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.20: + resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.21: + resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.32: + resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + engines: {node: ^10 || ^12 || >=14} + + postprocessing@6.30.1: + resolution: {integrity: sha512-GkBrQtX6KjNz+Pz3+ABvP1aXKCCW7h/tuE37wlM90WZLbaGfJ7eSIBN2gPgKExuK584IPde0YOoNiuWMr7PNCQ==} + engines: {node: '>= 0.13.2'} + peerDependencies: + three: '>= 0.138.0 < 0.151.0' + + potpack@1.0.2: + resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} + + prebuild-install@7.1.1: + resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} + engines: {node: '>=10'} + hasBin: true + + preferred-pm@3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + + prelude-ls@1.1.2: + resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} + engines: {node: '>= 0.8.0'} + + prepend-http@2.0.0: + resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} + engines: {node: '>=4'} + + prettier@2.7.1: + resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + engines: {node: '>=14'} + hasBin: true + + pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + + pretty-time@1.1.0: + resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} + engines: {node: '>=4'} + + prism-react-renderer@1.3.5: + resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} + peerDependencies: + react: '>=0.14.9' + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + engines: {node: '>= 14'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + + psl@1.9.0: + resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + pupa@2.1.1: + resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} + engines: {node: '>=8'} + + puppeteer-core@19.4.1: + resolution: {integrity: sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==} + engines: {node: '>=14.1.0'} + + puppeteer-core@22.12.1: + resolution: {integrity: sha512-XmqeDPVdC5/3nGJys1jbgeoZ02wP0WV1GBlPtr/ULRbGXJFuqgXMcKQ3eeNtFpBzGRbpeoCGWHge1ZWKWl0Exw==} + engines: {node: '>=18'} + + puppeteer@19.4.1: + resolution: {integrity: sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==} + engines: {node: '>=14.1.0'} + + puppeteer@22.12.1: + resolution: {integrity: sha512-1GxY8dnEnHr1SLzdSDr0FCjM6JQfAh2E2I/EqzeF8a58DbGVk9oVjj4lFdqNoVbpgFSpAbz7VER9St7S1wDpNg==} + engines: {node: '>=18'} + hasBin: true + + pure-color@1.3.0: + resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==} + + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + + queue@6.0.2: + resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + + quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + + quick-lru@6.1.2: + resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==} + engines: {node: '>=12'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.0: + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.1: + resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} + engines: {node: '>= 0.8'} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-base16-styling@0.6.0: + resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==} + + react-colorful@5.6.1: + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + react-composer@5.0.3: + resolution: {integrity: sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + + react-dev-utils@12.0.1: + resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=2.7' + webpack: '>=4' + peerDependenciesMeta: + typescript: + optional: true + + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-dropzone@12.1.0: + resolution: {integrity: sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==} + engines: {node: '>= 10.13'} + peerDependencies: + react: '>= 16.8' + + react-error-boundary@3.1.4: + resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} + engines: {node: '>=10', npm: '>=6'} + peerDependencies: + react: '>=16.13.1' + + react-error-overlay@6.0.11: + resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} + + react-fast-compare@3.2.0: + resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} + + react-helmet-async@1.3.0: + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + + react-hotkeys-hook@3.4.7: + resolution: {integrity: sha512-+bbPmhPAl6ns9VkXkNNyxlmCAIyDAcWbB76O4I0ntr3uWCRuIQf/aRLartUahe9chVMPj+OEzzfk3CQSjclUEQ==} + peerDependencies: + react: '>=16.8.1' + react-dom: '>=16.8.1' + + react-intl@6.2.1: + resolution: {integrity: sha512-hYxcSamgoA3Mvc55nwhTF1v15T0NUSkaV/EScMNVZXg0kRyaMAoNHkCi9/9H+TnXWNiWrcWH9bjlMlJwrG2V7g==} + peerDependencies: + react: ^16.6.0 || 17 || 18 + typescript: ^4.7 + peerDependenciesMeta: + typescript: + optional: true + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-json-view@1.21.3: + resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==} + peerDependencies: + react: ^17.0.0 || ^16.3.0 || ^15.5.4 + react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4 + + react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + + react-loadable-ssr-addon-v5-slorber@1.0.1: + resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} + engines: {node: '>=10.13.0'} + peerDependencies: + react-loadable: '*' + webpack: '>=4.41.1 || 5.x' + + react-merge-refs@1.1.0: + resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==} + + react-reconciler@0.27.0: + resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} + engines: {node: '>=0.10.0'} + peerDependencies: + react: ^18.0.0 + + react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.4: + resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.4: + resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-router-config@5.1.1: + resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} + peerDependencies: + react: '>=15' + react-router: '>=5' + + react-router-dom@5.3.4: + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} + peerDependencies: + react: '>=15' + + react-router@5.3.4: + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} + peerDependencies: + react: '>=15' + + react-style-singleton@2.2.1: + resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-textarea-autosize@8.3.4: + resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} + engines: {node: '>=10'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + react-use-measure@2.1.1: + resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} + peerDependencies: + react: '>=16.13' + react-dom: '>=16.13' + + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg-up@9.1.0: + resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@7.1.0: + resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} + engines: {node: '>=12.20'} + + read-yaml-file@1.1.0: + resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} + engines: {node: '>=6'} + + readable-stream@2.3.7: + resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + + readable-stream@3.6.0: + resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + engines: {node: '>= 6'} + + readable-web-to-node-stream@3.0.2: + resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} + engines: {node: '>=8'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + + rechoir@0.6.2: + resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} + engines: {node: '>= 0.10'} + + recursive-readdir@2.2.3: + resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} + engines: {node: '>=6.0.0'} + + redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + reduce-flatten@2.0.0: + resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} + engines: {node: '>=6'} + + regenerate-unicode-properties@10.1.0: + resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.10: + resolution: {integrity: sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==} + + regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + + regenerator-transform@0.15.0: + resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} + + regexp-to-ast@0.5.0: + resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} + + regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + + regexpu-core@5.2.1: + resolution: {integrity: sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==} + engines: {node: '>=4'} + + registry-auth-token@4.2.2: + resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} + engines: {node: '>=6.0.0'} + + registry-url@5.1.0: + resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} + engines: {node: '>=8'} + + regjsgen@0.7.1: + resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} + + regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remark-emoji@2.2.0: + resolution: {integrity: sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==} + + remark-footnotes@2.0.0: + resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} + + remark-mdx@1.6.22: + resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} + + remark-parse@8.0.3: + resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} + + remark-squeeze-paragraphs@4.0.0: + resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} + + renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + require-like@0.1.2: + resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} + + require-main-filename@2.0.0: + resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pathname@3.0.0: + resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + + responselike@1.0.2: + resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + + rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + + rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@3.20.2: + resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + rollup@3.9.1: + resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + rollup@4.9.1: + resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rrweb-cssom@0.6.0: + resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} + + rrweb-cssom@0.7.1: + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + + rtl-detect@1.0.4: + resolution: {integrity: sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==} + + rtlcss@3.5.0: + resolution: {integrity: sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==} + hasBin: true + + run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.5.7: + resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} + + safari-14-idb-fix@3.0.0: + resolution: {integrity: sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} + + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + scheduler@0.21.0: + resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} + + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + schema-utils@2.7.0: + resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} + engines: {node: '>= 8.9.0'} + + schema-utils@2.7.1: + resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} + engines: {node: '>= 8.9.0'} + + schema-utils@3.1.1: + resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.0.0: + resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + engines: {node: '>= 12.13.0'} + + screen-space-reflections@2.5.0: + resolution: {integrity: sha512-fWSDMhJS0xwD3LTxRRch7Lb9NzxsR66sCmtDmAA7i+OGnghUrBBsrha85ng7StnCBaLq/BKmZ97dLxWd1XgWdQ==} + peerDependencies: + postprocessing: '>=6.28.0' + three: '>=0.141.0' + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.1.1: + resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} + engines: {node: '>=10'} + + semver-diff@3.1.1: + resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} + engines: {node: '>=8'} + + semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + + semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + + semver@7.3.7: + resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} + engines: {node: '>=10'} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + + send@0.18.0: + resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} + engines: {node: '>= 0.8.0'} + + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + + serialize-javascript@6.0.0: + resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + + serve-handler@6.1.3: + resolution: {integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.15.0: + resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.7.4: + resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} + + shelljs@0.8.5: + resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} + engines: {node: '>=4'} + hasBin: true + + side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + sirv@1.0.19: + resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + socks-proxy-agent@8.0.2: + resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + engines: {node: '>= 14'} + + socks@2.7.1: + resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} + engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + + sort-css-media-queries@2.1.0: + resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} + engines: {node: '>= 6.3.0'} + + source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + + spawn-command@0.0.2-1: + resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} + + spawndamnit@2.0.0: + resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + + spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + + spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + state-toggle@1.0.3: + resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} + + stats.js@0.17.0: + resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + std-env@3.3.0: + resolution: {integrity: sha512-cNNS+VYsXIs5gI6gJipO4qZ8YYT274JHvNnQ1/R/x8Q8mdP0qj0zoMchRXmBNPqp/0eOEhX+3g7g6Fgb7meLIQ==} + + std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + + stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + + stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + + streamsearch@1.1.0: + resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} + engines: {node: '>=10.0.0'} + + streamx@2.15.4: + resolution: {integrity: sha512-uSXKl88bibiUCQ1eMpItRljCzDENcDx18rsfDmV79r0e/ThfrAwxG4Y2FarQZ2G4/21xcOKmFFd1Hue+ZIDwHw==} + + streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.codepointat@0.2.1: + resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + + string.prototype.trimend@1.0.5: + resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + + string.prototype.trimstart@1.0.5: + resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.0.1: + resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + engines: {node: '>=12'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + strtok3@7.0.0: + resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} + engines: {node: '>=14.16'} + + style-to-object@0.3.0: + resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} + + stylehacks@5.1.1: + resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + suspend-react@0.0.8: + resolution: {integrity: sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg==} + peerDependencies: + react: '>=17.0' + + svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} + + svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + + symbol-tree@3.2.4: + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + + table-layout@1.0.2: + resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} + engines: {node: '>=8.0.0'} + + tapable@1.1.3: + resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} + engines: {node: '>=6'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-fs@3.0.5: + resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar-stream@3.1.6: + resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + + tar@6.2.0: + resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} + engines: {node: '>=10'} + + temp-dir@3.0.0: + resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} + engines: {node: '>=14.16'} + + tempy@3.1.0: + resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} + engines: {node: '>=14.16'} + + term-size@2.2.1: + resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} + engines: {node: '>=8'} + + terser-webpack-plugin@5.3.6: + resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.15.1: + resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} + engines: {node: '>=10'} + hasBin: true + + text-decoder@1.1.0: + resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + three-mesh-bvh@0.5.23: + resolution: {integrity: sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA==} + peerDependencies: + three: '>= 0.123.0' + + three-stdlib@2.21.8: + resolution: {integrity: sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA==} + peerDependencies: + three: '>=0.122.0' + + three@0.150.1: + resolution: {integrity: sha512-5C1MqKUWaHYo13BX0Q64qcdwImgnnjSOFgBscOzAo8MYCzEtqfQqorEKMcajnA3FHy1yVlIe9AmaMQ0OQracNA==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + + tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinypool@1.0.0: + resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} + engines: {node: '>=14.0.0'} + + tinyspy@3.0.0: + resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} + engines: {node: '>=14.0.0'} + + titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-readable-stream@1.0.0: + resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} + engines: {node: '>=6'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + token-types@5.0.1: + resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} + engines: {node: '>=14.16'} + + totalist@1.1.0: + resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} + engines: {node: '>=6'} + + tough-cookie@4.1.2: + resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + engines: {node: '>=6'} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + tr46@5.0.0: + resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} + engines: {node: '>=18'} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + trim-trailing-lines@1.1.4: + resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} + + trim@0.0.1: + resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} + + troika-three-text@0.47.1: + resolution: {integrity: sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA==} + peerDependencies: + three: '>=0.125.0' + + troika-three-utils@0.47.0: + resolution: {integrity: sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w==} + peerDependencies: + three: '>=0.125.0' + + troika-worker-utils@0.47.0: + resolution: {integrity: sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA==} + + trough@1.0.5: + resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.4.0: + resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tsx@3.12.1: + resolution: {integrity: sha512-Rcg1x+rNe7qwlP8j7kx4VjP/pJo/V57k+17hlrn6a7FuQLNwkaw5W4JF75tYornNVCxkXdSUnqlIT8JY/ttvIw==} + hasBin: true + + tsx@4.16.2: + resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==} + engines: {node: '>=18.0.0'} + hasBin: true + + tsx@4.6.2: + resolution: {integrity: sha512-QPpBdJo+ZDtqZgAnq86iY/PD2KYCUPSUGIunHdGwyII99GKH+f3z3FZ8XNFLSGQIA4I365ui8wnQpl8OKLqcsg==} + engines: {node: '>=18.0.0'} + hasBin: true + + tty-table@4.1.6: + resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} + engines: {node: '>=8.0.0'} + hasBin: true + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + turbo-darwin-64@2.0.11: + resolution: {integrity: sha512-YlHEEhcm+jI1BSZoLugGHUWDfRXaNaQIv7tGQBfadYjo9kixBnqoTOU6s1ubOrQMID+lizZZQs79GXwqM6vohg==} + cpu: [x64] + os: [darwin] + + turbo-darwin-arm64@2.0.11: + resolution: {integrity: sha512-K/YW+hWzRQ/wGmtffxllH4M1tgy8OlwgXODrIiAGzkSpZl9+pIsem/F86UULlhsIeavBYK/LS5+dzV3DPMjJ9w==} + cpu: [arm64] + os: [darwin] + + turbo-linux-64@2.0.11: + resolution: {integrity: sha512-mv8CwGP06UPweMh1Vlp6PI6OWnkuibxfIJ4Vlof7xqjohAaZU5FLqeOeHkjQflH/6YrCVuS9wrK0TFOu+meTtA==} + cpu: [x64] + os: [linux] + + turbo-linux-arm64@2.0.11: + resolution: {integrity: sha512-wLE5tl4oriTmHbuayc0ki0csaCplmVLj+uCWtecM/mfBuZgNS9ICNM9c4sB+Cfl5tlBBFeepqRNgvRvn8WeVZg==} + cpu: [arm64] + os: [linux] + + turbo-windows-64@2.0.11: + resolution: {integrity: sha512-tja3zvVCSWu3HizOoeQv0qDJ+GeWGWRFOOM6a8i3BYnXLgGKAaDZFcjwzgC50tWiAw4aowIVR4OouwIyRhLBaQ==} + cpu: [x64] + os: [win32] + + turbo-windows-arm64@2.0.11: + resolution: {integrity: sha512-sYjXP6k94Bqh99R+y3M1Ks6LRIEZybMz+7enA8GKl6JJ2ZFaXxTnS6q+/2+ii1+rRwxohj5OBb4gxODcF8Jd4w==} + cpu: [arm64] + os: [win32] + + turbo@2.0.11: + resolution: {integrity: sha512-imDlFFAvitbCm1JtDFJ6eG882qwxHUmVT2noPb3p2jq5o5DuXOchMbkVS9kUeC3/4WpY5N0GBZ3RvqNyjHZw1Q==} + hasBin: true + + type-check@0.3.2: + resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} + engines: {node: '>= 0.8.0'} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-fest@3.13.1: + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typedarray-to-buffer@3.1.5: + resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + + typescript@5.4.2: + resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} + engines: {node: '>=14.17'} + hasBin: true + + typical@4.0.0: + resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} + engines: {node: '>=8'} + + typical@5.2.0: + resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} + engines: {node: '>=8'} + + ua-parser-js@0.7.32: + resolution: {integrity: sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==} + + unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + unherit@1.1.3: + resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} + + unicode-canonical-property-names-ecmascript@2.0.0: + resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.0.0: + resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unified@9.2.0: + resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} + + unified@9.2.2: + resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + unique-string@3.0.0: + resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} + engines: {node: '>=12'} + + unist-builder@2.0.3: + resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} + + unist-util-generated@1.1.6: + resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} + + unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + + unist-util-position@3.1.0: + resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} + + unist-util-remove-position@2.0.1: + resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} + + unist-util-remove@2.1.0: + resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} + + unist-util-stringify-position@2.0.3: + resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + + unist-util-visit-parents@3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + + unist-util-visit@2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + + update-browserslist-db@1.0.10: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-notifier@5.1.0: + resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} + engines: {node: '>=10'} + + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-loader@4.1.1: + resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + file-loader: '*' + webpack: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + file-loader: + optional: true + + url-parse-lax@3.0.0: + resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} + engines: {node: '>=4'} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + + use-callback-ref@1.3.0: + resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-composed-ref@1.3.0: + resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + use-isomorphic-layout-effect@1.1.2: + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-latest@1.2.1: + resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.2: + resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + + utility-types@3.10.0: + resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==} + engines: {node: '>= 4'} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + v8n@1.5.1: + resolution: {integrity: sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + value-equal@1.0.1: + resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vfile-location@3.2.0: + resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} + + vfile-message@2.0.4: + resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + + vfile@4.2.1: + resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + + vite-node@2.0.5: + resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite-node@2.1.3: + resolution: {integrity: sha512-I1JadzO+xYX887S39Do+paRePCKoiDrWRRjp9kkG5he0t7RXNvPAJPCQSJqbGN4uCrFFeS3Kj3sLqY8NMYBEdA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + vite@3.2.4: + resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vite@4.0.4: + resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vite@4.2.1: + resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vite@5.0.10: + resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitest@2.0.5: + resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.0.5 + '@vitest/ui': 2.0.5 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vitest@2.1.3: + resolution: {integrity: sha512-Zrxbg/WiIvUP2uEzelDNTXmEMJXuzJ1kCpbDvaKByFA9MNeO95V+7r/3ti0qzJzrxdyuUw5VduN7k+D3VmVOSA==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 2.1.3 + '@vitest/ui': 2.1.3 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + w3c-hr-time@1.0.2: + resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} + deprecated: Use your platform's native performance.now() and performance.timeOrigin. + + w3c-xmlserializer@3.0.0: + resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} + engines: {node: '>=12'} + + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + + wait-on@6.0.1: + resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} + engines: {node: '>=10.0.0'} + hasBin: true + + watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + weak-event@2.0.5: + resolution: {integrity: sha512-EpmiDbg6NxSYgxd7UAZUUZaStlNpiAaCCsUqhXGdYQ6RyBtq9t5f0HOJmD9rn2mkDvfZOqlUtaJYoPYYtAIPLA==} + engines: {node: '>=14.6'} + + web-namespaces@1.1.4: + resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} + + webgl-constants@1.1.1: + resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} + + webgl-sdf-generator@1.1.1: + resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + + webpack-bundle-analyzer@4.7.0: + resolution: {integrity: sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==} + engines: {node: '>= 10.13.0'} + hasBin: true + + webpack-dev-middleware@5.3.3: + resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + + webpack-dev-server@4.11.1: + resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} + engines: {node: '>= 12.13.0'} + hasBin: true + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpack-merge@5.8.0: + resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} + engines: {node: '>=10.0.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack@5.74.0: + resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + webpackbar@5.0.2: + resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} + engines: {node: '>=12'} + peerDependencies: + webpack: 3 || 4 || 5 + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + whatwg-url@14.0.0: + resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + engines: {node: '>=18'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + + which-module@2.0.0: + resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} + + which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@3.1.0: + resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} + engines: {node: '>=8'} + + widest-line@4.0.1: + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} + + wildcard@2.0.0: + resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} + + word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + + wordwrapjs@4.0.1: + resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} + engines: {node: '>=8.0.0'} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@3.0.3: + resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + + ws@7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.11.0: + resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.14.2: + resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.9.0: + resolution: {integrity: sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + + xml-js@1.6.11: + resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} + hasBin: true + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@17.6.0: + resolution: {integrity: sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + + zstddec@0.0.2: + resolution: {integrity: sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA==} + + zustand@3.7.2: + resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} + engines: {node: '>=12.7.0'} + peerDependencies: + react: '>=16.8' + peerDependenciesMeta: + react: + optional: true + + zustand@4.1.4: + resolution: {integrity: sha512-k2jVOlWo8p4R83mQ+/uyB8ILPO2PCJOf+QVjcL+1PbMCk1w5OoPYpAIxy9zd93FSfmJqoH6lGdwzzjwqJIRU5A==} + engines: {node: '>=12.7.0'} + peerDependencies: + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + immer: + optional: true + react: + optional: true + + zwitch@1.0.5: + resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} + +snapshots: + + '@a-type/kysely@1.0.1(kysely@0.27.3)': + dependencies: + '@paralleldrive/cuid2': 2.2.2 + bcrypt: 5.1.1 + kysely: 0.27.3 + transitivePeerDependencies: + - encoding + - supports-color + + '@a-type/utils@1.0.2': {} + + '@algolia/autocomplete-core@1.7.2': + dependencies: + '@algolia/autocomplete-shared': 1.7.2 + + '@algolia/autocomplete-preset-algolia@1.7.2(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)': + dependencies: + '@algolia/autocomplete-shared': 1.7.2 + '@algolia/client-search': 4.14.2 + algoliasearch: 4.14.2 + + '@algolia/autocomplete-shared@1.7.2': {} + + '@algolia/cache-browser-local-storage@4.14.2': + dependencies: + '@algolia/cache-common': 4.14.2 + + '@algolia/cache-common@4.14.2': {} + + '@algolia/cache-in-memory@4.14.2': + dependencies: + '@algolia/cache-common': 4.14.2 + + '@algolia/client-account@4.14.2': + dependencies: + '@algolia/client-common': 4.14.2 + '@algolia/client-search': 4.14.2 + '@algolia/transporter': 4.14.2 + + '@algolia/client-analytics@4.14.2': + dependencies: + '@algolia/client-common': 4.14.2 + '@algolia/client-search': 4.14.2 + '@algolia/requester-common': 4.14.2 + '@algolia/transporter': 4.14.2 + + '@algolia/client-common@4.14.2': + dependencies: + '@algolia/requester-common': 4.14.2 + '@algolia/transporter': 4.14.2 + + '@algolia/client-personalization@4.14.2': + dependencies: + '@algolia/client-common': 4.14.2 + '@algolia/requester-common': 4.14.2 + '@algolia/transporter': 4.14.2 + + '@algolia/client-search@4.14.2': + dependencies: + '@algolia/client-common': 4.14.2 + '@algolia/requester-common': 4.14.2 + '@algolia/transporter': 4.14.2 + + '@algolia/events@4.0.1': {} + + '@algolia/logger-common@4.14.2': {} + + '@algolia/logger-console@4.14.2': + dependencies: + '@algolia/logger-common': 4.14.2 + + '@algolia/requester-browser-xhr@4.14.2': + dependencies: + '@algolia/requester-common': 4.14.2 + + '@algolia/requester-common@4.14.2': {} + + '@algolia/requester-node-http@4.14.2': + dependencies: + '@algolia/requester-common': 4.14.2 + + '@algolia/transporter@4.14.2': + dependencies: + '@algolia/cache-common': 4.14.2 + '@algolia/logger-common': 4.14.2 + '@algolia/requester-common': 4.14.2 + + '@ampproject/remapping@2.2.0': + dependencies: + '@jridgewell/gen-mapping': 0.1.1 + '@jridgewell/trace-mapping': 0.3.17 + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@aws-crypto/crc32@3.0.0': + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 + tslib: 1.14.1 + + '@aws-crypto/crc32c@3.0.0': + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 + tslib: 1.14.1 + + '@aws-crypto/ie11-detection@3.0.0': + dependencies: + tslib: 1.14.1 + + '@aws-crypto/sha1-browser@3.0.0': + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-locate-window': 3.310.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-crypto/sha256-browser@3.0.0': + dependencies: + '@aws-crypto/ie11-detection': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-crypto/supports-web-crypto': 3.0.0 + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-locate-window': 3.310.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-crypto/sha256-js@3.0.0': + dependencies: + '@aws-crypto/util': 3.0.0 + '@aws-sdk/types': 3.451.0 + tslib: 1.14.1 + + '@aws-crypto/supports-web-crypto@3.0.0': + dependencies: + tslib: 1.14.1 + + '@aws-crypto/util@3.0.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-utf8-browser': 3.259.0 + tslib: 1.14.1 + + '@aws-sdk/client-s3@3.456.0': + dependencies: + '@aws-crypto/sha1-browser': 3.0.0 + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/client-sts': 3.454.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-bucket-endpoint': 3.451.0 + '@aws-sdk/middleware-expect-continue': 3.451.0 + '@aws-sdk/middleware-flexible-checksums': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-location-constraint': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-sdk-s3': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-ssec': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/signature-v4-multi-region': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@aws-sdk/xml-builder': 3.310.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/eventstream-serde-browser': 2.0.14 + '@smithy/eventstream-serde-config-resolver': 2.0.14 + '@smithy/eventstream-serde-node': 2.0.14 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-blob-browser': 2.0.15 + '@smithy/hash-node': 2.0.16 + '@smithy/hash-stream-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/md5-js': 2.0.16 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-stream': 2.0.21 + '@smithy/util-utf8': 2.0.2 + '@smithy/util-waiter': 2.0.14 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sso@3.451.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-sts@3.454.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/core': 3.451.0 + '@aws-sdk/credential-provider-node': 3.451.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-sdk-sts': 3.451.0 + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 + fast-xml-parser: 4.2.5 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/core@3.451.0': + dependencies: + '@smithy/smithy-client': 2.1.16 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-env@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-ini@3.451.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.451.0 + '@aws-sdk/credential-provider-process': 3.451.0 + '@aws-sdk/credential-provider-sso': 3.451.0 + '@aws-sdk/credential-provider-web-identity': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/credential-provider-imds': 2.1.2 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.451.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.451.0 + '@aws-sdk/credential-provider-ini': 3.451.0 + '@aws-sdk/credential-provider-process': 3.451.0 + '@aws-sdk/credential-provider-sso': 3.451.0 + '@aws-sdk/credential-provider-web-identity': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/credential-provider-imds': 2.1.2 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/credential-provider-sso@3.451.0': + dependencies: + '@aws-sdk/client-sso': 3.451.0 + '@aws-sdk/token-providers': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-web-identity@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/lib-storage@3.456.0(@aws-sdk/client-s3@3.456.0)': + dependencies: + '@aws-sdk/client-s3': 3.456.0 + '@smithy/abort-controller': 2.0.14 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/smithy-client': 2.1.16 + buffer: 5.6.0 + events: 3.3.0 + stream-browserify: 3.0.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-bucket-endpoint@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-arn-parser': 3.310.0 + '@smithy/node-config-provider': 2.1.6 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 + '@smithy/util-config-provider': 2.0.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-expect-continue@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-flexible-checksums@3.451.0': + dependencies: + '@aws-crypto/crc32': 3.0.0 + '@aws-crypto/crc32c': 3.0.0 + '@aws-sdk/types': 3.451.0 + '@smithy/is-array-buffer': 2.0.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 + '@smithy/util-utf8': 2.0.2 + tslib: 2.6.2 + + '@aws-sdk/middleware-host-header@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-location-constraint@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-logger@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-recursion-detection@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-sdk-s3@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-arn-parser': 3.310.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-sdk-sts@3.451.0': + dependencies: + '@aws-sdk/middleware-signing': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-signing@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/property-provider': 2.0.15 + '@smithy/protocol-http': 3.0.10 + '@smithy/signature-v4': 2.0.16 + '@smithy/types': 2.6.0 + '@smithy/util-middleware': 2.0.7 + tslib: 2.6.2 + + '@aws-sdk/middleware-ssec@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/middleware-user-agent@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/region-config-resolver@3.451.0': + dependencies: + '@smithy/node-config-provider': 2.1.6 + '@smithy/types': 2.6.0 + '@smithy/util-config-provider': 2.0.0 + '@smithy/util-middleware': 2.0.7 + tslib: 2.6.2 + + '@aws-sdk/signature-v4-multi-region@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/protocol-http': 3.0.10 + '@smithy/signature-v4': 2.0.16 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/token-providers@3.451.0': + dependencies: + '@aws-crypto/sha256-browser': 3.0.0 + '@aws-crypto/sha256-js': 3.0.0 + '@aws-sdk/middleware-host-header': 3.451.0 + '@aws-sdk/middleware-logger': 3.451.0 + '@aws-sdk/middleware-recursion-detection': 3.451.0 + '@aws-sdk/middleware-user-agent': 3.451.0 + '@aws-sdk/region-config-resolver': 3.451.0 + '@aws-sdk/types': 3.451.0 + '@aws-sdk/util-endpoints': 3.451.0 + '@aws-sdk/util-user-agent-browser': 3.451.0 + '@aws-sdk/util-user-agent-node': 3.451.0 + '@smithy/config-resolver': 2.0.19 + '@smithy/fetch-http-handler': 2.2.7 + '@smithy/hash-node': 2.0.16 + '@smithy/invalid-dependency': 2.0.14 + '@smithy/middleware-content-length': 2.0.16 + '@smithy/middleware-endpoint': 2.2.1 + '@smithy/middleware-retry': 2.0.21 + '@smithy/middleware-serde': 2.0.14 + '@smithy/middleware-stack': 2.0.8 + '@smithy/node-config-provider': 2.1.6 + '@smithy/node-http-handler': 2.1.10 + '@smithy/property-provider': 2.0.15 + '@smithy/protocol-http': 3.0.10 + '@smithy/shared-ini-file-loader': 2.2.5 + '@smithy/smithy-client': 2.1.16 + '@smithy/types': 2.6.0 + '@smithy/url-parser': 2.0.14 + '@smithy/util-base64': 2.0.1 + '@smithy/util-body-length-browser': 2.0.0 + '@smithy/util-body-length-node': 2.1.0 + '@smithy/util-defaults-mode-browser': 2.0.20 + '@smithy/util-defaults-mode-node': 2.0.26 + '@smithy/util-endpoints': 1.0.5 + '@smithy/util-retry': 2.0.7 + '@smithy/util-utf8': 2.0.2 + tslib: 2.6.2 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/types@3.451.0': + dependencies: + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/util-arn-parser@3.310.0': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/util-endpoints@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/util-endpoints': 1.0.5 + tslib: 2.6.2 + + '@aws-sdk/util-locate-window@3.310.0': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/util-user-agent-browser@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/types': 2.6.0 + bowser: 2.11.0 + tslib: 2.6.2 + + '@aws-sdk/util-user-agent-node@3.451.0': + dependencies: + '@aws-sdk/types': 3.451.0 + '@smithy/node-config-provider': 2.1.6 + '@smithy/types': 2.6.0 + tslib: 2.6.2 + + '@aws-sdk/util-utf8-browser@3.259.0': + dependencies: + tslib: 2.6.2 + + '@aws-sdk/xml-builder@3.310.0': + dependencies: + tslib: 2.6.2 + + '@babel/code-frame@7.22.5': + dependencies: + '@babel/highlight': 7.22.5 + + '@babel/compat-data@7.20.0': {} + + '@babel/compat-data@7.22.5': {} + + '@babel/core@7.12.9': + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helpers': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + lodash: 4.17.21 + resolve: 1.22.1 + semver: 5.7.1 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.19.6': + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) + '@babel/helper-module-transforms': 7.22.5 + '@babel/helpers': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.22.5': + dependencies: + '@ampproject/remapping': 2.2.0 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) + '@babel/helper-module-transforms': 7.22.5 + '@babel/helpers': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.5 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.20.0': + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.2 + jsesc: 2.5.2 + + '@babel/generator@7.22.5': + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.17 + jsesc: 2.5.2 + + '@babel/helper-annotate-as-pure@7.18.6': + dependencies: + '@babel/types': 7.20.0 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.18.9': + dependencies: + '@babel/helper-explode-assignable-expression': 7.18.6 + '@babel/types': 7.22.5 + + '@babel/helper-compilation-targets@7.22.5(@babel/core@7.19.6)': + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.19.6 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + + '@babel/helper-compilation-targets@7.22.5(@babel/core@7.22.5)': + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.4 + lru-cache: 5.1.1 + semver: 6.3.0 + + '@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.19.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.19.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.1 + + '@babel/helper-create-regexp-features-plugin@7.19.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.1 + + '@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + debug: 4.3.5 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.3.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + debug: 4.3.5 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-environment-visitor@7.18.9': {} + + '@babel/helper-environment-visitor@7.22.5': {} + + '@babel/helper-explode-assignable-expression@7.18.6': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-function-name@7.19.0': + dependencies: + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 + + '@babel/helper-function-name@7.22.5': + dependencies: + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 + + '@babel/helper-hoist-variables@7.18.6': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-hoist-variables@7.22.5': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-member-expression-to-functions@7.18.9': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-module-imports@7.18.6': + dependencies: + '@babel/types': 7.20.0 + + '@babel/helper-module-imports@7.22.5': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-module-transforms@7.22.5': + dependencies: + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.18.6': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-plugin-utils@7.10.4': {} + + '@babel/helper-plugin-utils@7.19.0': {} + + '@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-wrap-function': 7.19.0 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-remap-async-to-generator@7.18.9(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-wrap-function': 7.19.0 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.19.1': + dependencies: + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.18.9 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.22.5': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-skip-transparent-expression-wrappers@7.20.0': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-split-export-declaration@7.18.6': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-split-export-declaration@7.22.5': + dependencies: + '@babel/types': 7.22.5 + + '@babel/helper-string-parser@7.19.4': {} + + '@babel/helper-string-parser@7.22.5': {} + + '@babel/helper-validator-identifier@7.22.5': {} + + '@babel/helper-validator-option@7.18.6': {} + + '@babel/helper-validator-option@7.22.5': {} + + '@babel/helper-wrap-function@7.19.0': + dependencies: + '@babel/helper-function-name': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.22.5': + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + + '@babel/highlight@7.22.5': + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + + '@babel/parser@7.22.5': + dependencies: + '@babel/types': 7.22.5 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.19.6) + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.18.9(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-proposal-optional-chaining': 7.18.9(@babel/core@7.22.5) + + '@babel/plugin-proposal-async-generator-functions@7.19.1(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.19.6) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.19.6) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-async-generator-functions@7.19.1(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.5) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.22.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.19.6) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-class-static-block@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.22.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.19.6) + + '@babel/plugin-proposal-dynamic-import@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.22.5) + + '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.19.6) + + '@babel/plugin-proposal-export-namespace-from@7.18.9(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.22.5) + + '@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.19.6) + + '@babel/plugin-proposal-json-strings@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.22.5) + + '@babel/plugin-proposal-logical-assignment-operators@7.18.9(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.19.6) + + '@babel/plugin-proposal-logical-assignment-operators@7.18.9(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.22.5) + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.19.6) + + '@babel/plugin-proposal-nullish-coalescing-operator@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.22.5) + + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.19.6) + + '@babel/plugin-proposal-numeric-separator@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.22.5) + + '@babel/plugin-proposal-object-rest-spread@7.12.1(@babel/core@7.12.9)': + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.12.9) + '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.12.9) + + '@babel/plugin-proposal-object-rest-spread@7.19.4(@babel/core@7.19.6)': + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.19.6 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.19.6) + '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.19.6) + + '@babel/plugin-proposal-object-rest-spread@7.19.4(@babel/core@7.22.5)': + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.22.5) + '@babel/plugin-transform-parameters': 7.18.8(@babel/core@7.22.5) + + '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.19.6) + + '@babel/plugin-proposal-optional-catch-binding@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.22.5) + + '@babel/plugin-proposal-optional-chaining@7.18.9(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.19.6) + + '@babel/plugin-proposal-optional-chaining@7.18.9(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.22.5) + + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.19.6) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.22.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.19.6) + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-proposal-unicode-property-regex@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.22.5) + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-import-assertions@7.20.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-jsx@7.12.1(@babel/core@7.12.9)': + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.12.9)': + dependencies: + '@babel/core': 7.12.9 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-syntax-typescript@7.20.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-arrow-functions@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.19.6) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-remap-async-to-generator': 7.18.9(@babel/core@7.22.5) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-block-scoped-functions@7.18.6(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-block-scoping@7.20.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-block-scoping@7.20.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-classes@7.19.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.22.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.19.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-replace-supers': 7.19.1 + '@babel/helper-split-export-declaration': 7.22.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.18.9(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-computed-properties@7.18.9(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-destructuring@7.20.0(@babel/core@7.19.6)': + dependencies: + '@babel/core': 7.19.6 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-destructuring@7.20.0(@babel/core@7.22.5)': + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.19.6)': + dependencies: '@babel/core': 7.19.6 '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.19.6) '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.18.9(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.6): - resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.18.8(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-for-of@7.18.8(@babel/core@7.22.5): - resolution: {integrity: sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.18.8(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.18.9(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.19.6) '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-function-name@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.18.9(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-compilation-targets': 7.22.5(@babel/core@7.22.5) '@babel/helper-function-name': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.18.9(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-literals@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.18.9(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - '@babel/helper-plugin-utils': 7.19.0 - dev: false - - /@babel/plugin-transform-modules-amd@7.19.6(@babel/core@7.19.6): - resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/helper-plugin-utils': 7.19.0 + + '@babel/plugin-transform-modules-amd@7.19.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-module-transforms': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-amd@7.19.6(@babel/core@7.22.5): - resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-amd@7.19.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-module-transforms': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-commonjs@7.19.6(@babel/core@7.19.6): - resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.19.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-module-transforms': 7.22.5 @@ -2928,13 +11342,8 @@ packages: '@babel/helper-simple-access': 7.22.5 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-commonjs@7.19.6(@babel/core@7.22.5): - resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.19.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-module-transforms': 7.22.5 @@ -2942,13 +11351,8 @@ packages: '@babel/helper-simple-access': 7.22.5 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-systemjs@7.19.6(@babel/core@7.19.6): - resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.19.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-hoist-variables': 7.22.5 @@ -2957,13 +11361,8 @@ packages: '@babel/helper-validator-identifier': 7.22.5 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-systemjs@7.19.6(@babel/core@7.22.5): - resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.19.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-hoist-variables': 7.22.5 @@ -2972,227 +11371,122 @@ packages: '@babel/helper-validator-identifier': 7.22.5 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-module-transforms': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-module-transforms': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-named-capturing-groups-regex@7.19.1(@babel/core@7.19.6): - resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.19.1(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.19.6) '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-named-capturing-groups-regex@7.19.1(@babel/core@7.22.5): - resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.19.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-new-target@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-new-target@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-new-target@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 '@babel/helper-replace-supers': 7.19.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-object-super@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 '@babel/helper-replace-supers': 7.19.1 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.12.9): - resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.18.8(@babel/core@7.12.9)': dependencies: '@babel/core': 7.12.9 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.6): - resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.18.8(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-parameters@7.18.8(@babel/core@7.22.5): - resolution: {integrity: sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.18.8(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-constant-elements@7.18.12(@babel/core@7.22.5): - resolution: {integrity: sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-constant-elements@7.18.12(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-display-name@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.19.6) - dev: false - /@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-development@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5) - dev: false - /@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.19.6): - resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.19.6): - resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-annotate-as-pure': 7.18.6 @@ -3200,13 +11494,8 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.6) '@babel/types': 7.20.0 - dev: false - /@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.22.5): - resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx@7.19.0(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.18.6 @@ -3214,77 +11503,42 @@ packages: '@babel/helper-plugin-utils': 7.19.0 '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.5) '@babel/types': 7.20.0 - dev: false - /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-pure-annotations@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 regenerator-transform: 0.15.0 - dev: false - /@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 regenerator-transform: 0.15.0 - dev: false - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-reserved-words@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-runtime@7.19.6(@babel/core@7.19.6): - resolution: {integrity: sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.19.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-module-imports': 7.18.6 @@ -3295,115 +11549,60 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-spread@7.19.0(@babel/core@7.19.6): - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.19.0(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: false - /@babel/plugin-transform-spread@7.19.0(@babel/core@7.22.5): - resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.19.0(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 - dev: false - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.18.9(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.19.6): - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.22.5): - resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.18.9(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-typescript@7.20.0(@babel/core@7.19.6): - resolution: {integrity: sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.20.0(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.19.6) @@ -3411,13 +11610,8 @@ packages: '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.19.6) transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-typescript@7.20.0(@babel/core@7.22.5): - resolution: {integrity: sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.20.0(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-create-class-features-plugin': 7.19.0(@babel/core@7.22.5) @@ -3425,55 +11619,30 @@ packages: '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.22.5) transitivePeerDependencies: - supports-color - dev: false - /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.19.6): - resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.22.5): - resolution: {integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.18.10(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.19.6) '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-create-regexp-features-plugin': 7.19.0(@babel/core@7.22.5) '@babel/helper-plugin-utils': 7.19.0 - dev: false - /@babel/preset-env@7.19.4(@babel/core@7.19.6): - resolution: {integrity: sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.19.4(@babel/core@7.19.6)': dependencies: '@babel/compat-data': 7.20.0 '@babel/core': 7.19.6 @@ -3553,13 +11722,8 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/preset-env@7.19.4(@babel/core@7.22.5): - resolution: {integrity: sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.19.4(@babel/core@7.22.5)': dependencies: '@babel/compat-data': 7.20.0 '@babel/core': 7.22.5 @@ -3639,12 +11803,8 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/preset-modules@0.1.5(@babel/core@7.19.6): - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-modules@0.1.5(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 @@ -3652,12 +11812,8 @@ packages: '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.19.6) '@babel/types': 7.22.5 esutils: 2.0.3 - dev: false - /@babel/preset-modules@0.1.5(@babel/core@7.22.5): - resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-modules@0.1.5(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 @@ -3665,13 +11821,8 @@ packages: '@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.22.5) '@babel/types': 7.22.5 esutils: 2.0.3 - dev: false - /@babel/preset-react@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-react@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 @@ -3680,13 +11831,8 @@ packages: '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.19.6) '@babel/plugin-transform-react-jsx-development': 7.18.6(@babel/core@7.19.6) '@babel/plugin-transform-react-pure-annotations': 7.18.6(@babel/core@7.19.6) - dev: false - /@babel/preset-react@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-react@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 @@ -3695,13 +11841,8 @@ packages: '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.22.5) '@babel/plugin-transform-react-jsx-development': 7.18.6(@babel/core@7.22.5) '@babel/plugin-transform-react-pure-annotations': 7.18.6(@babel/core@7.22.5) - dev: false - /@babel/preset-typescript@7.18.6(@babel/core@7.19.6): - resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.18.6(@babel/core@7.19.6)': dependencies: '@babel/core': 7.19.6 '@babel/helper-plugin-utils': 7.19.0 @@ -3709,13 +11850,8 @@ packages: '@babel/plugin-transform-typescript': 7.20.0(@babel/core@7.19.6) transitivePeerDependencies: - supports-color - dev: false - /@babel/preset-typescript@7.18.6(@babel/core@7.22.5): - resolution: {integrity: sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.18.6(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@babel/helper-plugin-utils': 7.19.0 @@ -3723,41 +11859,27 @@ packages: '@babel/plugin-transform-typescript': 7.20.0(@babel/core@7.22.5) transitivePeerDependencies: - supports-color - dev: false - /@babel/runtime-corejs3@7.20.0: - resolution: {integrity: sha512-v1JH7PeAAGBEyTQM9TqojVl+b20zXtesFKCJHu50xMxZKD1fX0TKaKHPsZfFkXfs7D1M9M6Eeqg1FkJ3a0x2dA==} - engines: {node: '>=6.9.0'} + '@babel/runtime-corejs3@7.20.0': dependencies: core-js-pure: 3.26.0 regenerator-runtime: 0.13.10 - dev: false - /@babel/runtime@7.19.4: - resolution: {integrity: sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==} - engines: {node: '>=6.9.0'} + '@babel/runtime@7.19.4': dependencies: regenerator-runtime: 0.13.10 - /@babel/runtime@7.23.2: - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} - engines: {node: '>=6.9.0'} + '@babel/runtime@7.23.2': dependencies: regenerator-runtime: 0.14.0 - dev: true - /@babel/template@7.22.5: - resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} - engines: {node: '>=6.9.0'} + '@babel/template@7.22.5': dependencies: '@babel/code-frame': 7.22.5 '@babel/parser': 7.22.5 '@babel/types': 7.22.5 - dev: false - /@babel/traverse@7.20.0: - resolution: {integrity: sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==} - engines: {node: '>=6.9.0'} + '@babel/traverse@7.20.0': dependencies: '@babel/code-frame': 7.22.5 '@babel/generator': 7.22.5 @@ -3771,11 +11893,8 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/traverse@7.22.5: - resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} - engines: {node: '>=6.9.0'} + '@babel/traverse@7.22.5': dependencies: '@babel/code-frame': 7.22.5 '@babel/generator': 7.22.5 @@ -3789,28 +11908,20 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: false - /@babel/types@7.20.0: - resolution: {integrity: sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==} - engines: {node: '>=6.9.0'} + '@babel/types@7.20.0': dependencies: '@babel/helper-string-parser': 7.19.4 '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 - dev: false - /@babel/types@7.22.5: - resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} - engines: {node: '>=6.9.0'} + '@babel/types@7.22.5': dependencies: '@babel/helper-string-parser': 7.22.5 '@babel/helper-validator-identifier': 7.22.5 to-fast-properties: 2.0.0 - dev: false - /@changesets/apply-release-plan@6.1.4: - resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} + '@changesets/apply-release-plan@6.1.4': dependencies: '@babel/runtime': 7.23.2 '@changesets/config': 2.3.1 @@ -3825,10 +11936,8 @@ packages: prettier: 2.7.1 resolve-from: 5.0.0 semver: 7.5.4 - dev: true - /@changesets/assemble-release-plan@5.2.4: - resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} + '@changesets/assemble-release-plan@5.2.4': dependencies: '@babel/runtime': 7.23.2 '@changesets/errors': 0.1.4 @@ -3836,17 +11945,12 @@ packages: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 semver: 7.5.4 - dev: true - /@changesets/changelog-git@0.1.14: - resolution: {integrity: sha512-+vRfnKtXVWsDDxGctOfzJsPhaCdXRYoe+KyWYoq5X/GqoISREiat0l3L8B0a453B2B4dfHGcZaGyowHbp9BSaA==} + '@changesets/changelog-git@0.1.14': dependencies: '@changesets/types': 5.2.1 - dev: true - /@changesets/cli@2.26.2: - resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} - hasBin: true + '@changesets/cli@2.26.2': dependencies: '@babel/runtime': 7.23.2 '@changesets/apply-release-plan': 6.1.4 @@ -3881,10 +11985,8 @@ packages: spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.1.6 - dev: true - /@changesets/config@2.3.1: - resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} + '@changesets/config@2.3.1': dependencies: '@changesets/errors': 0.1.4 '@changesets/get-dependents-graph': 1.3.6 @@ -3893,26 +11995,20 @@ packages: '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 micromatch: 4.0.5 - dev: true - /@changesets/errors@0.1.4: - resolution: {integrity: sha512-HAcqPF7snsUJ/QzkWoKfRfXushHTu+K5KZLJWPb34s4eCZShIf8BFO3fwq6KU8+G7L5KdtN2BzQAXOSXEyiY9Q==} + '@changesets/errors@0.1.4': dependencies: extendable-error: 0.1.7 - dev: true - /@changesets/get-dependents-graph@1.3.6: - resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} + '@changesets/get-dependents-graph@1.3.6': dependencies: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 semver: 7.5.4 - dev: true - /@changesets/get-release-plan@3.0.17: - resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} + '@changesets/get-release-plan@3.0.17': dependencies: '@babel/runtime': 7.23.2 '@changesets/assemble-release-plan': 5.2.4 @@ -3921,14 +12017,10 @@ packages: '@changesets/read': 0.5.9 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - dev: true - /@changesets/get-version-range-type@0.3.2: - resolution: {integrity: sha512-SVqwYs5pULYjYT4op21F2pVbcrca4qA/bAA3FmFXKMN7Y+HcO8sbZUTx3TAy2VXulP2FACd1aC7f2nTuqSPbqg==} - dev: true + '@changesets/get-version-range-type@0.3.2': {} - /@changesets/git@2.0.0: - resolution: {integrity: sha512-enUVEWbiqUTxqSnmesyJGWfzd51PY4H7mH9yUw0hPVpZBJ6tQZFMU3F3mT/t9OJ/GjyiM4770i+sehAn6ymx6A==} + '@changesets/git@2.0.0': dependencies: '@babel/runtime': 7.23.2 '@changesets/errors': 0.1.4 @@ -3937,33 +12029,25 @@ packages: is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 - dev: true - /@changesets/logger@0.0.5: - resolution: {integrity: sha512-gJyZHomu8nASHpaANzc6bkQMO9gU/ib20lqew1rVx753FOxffnCrJlGIeQVxNWCqM+o6OOleCo/ivL8UAO5iFw==} + '@changesets/logger@0.0.5': dependencies: chalk: 2.4.2 - dev: true - /@changesets/parse@0.3.16: - resolution: {integrity: sha512-127JKNd167ayAuBjUggZBkmDS5fIKsthnr9jr6bdnuUljroiERW7FBTDNnNVyJ4l69PzR57pk6mXQdtJyBCJKg==} + '@changesets/parse@0.3.16': dependencies: '@changesets/types': 5.2.1 js-yaml: 3.14.1 - dev: true - /@changesets/pre@1.0.14: - resolution: {integrity: sha512-dTsHmxQWEQekHYHbg+M1mDVYFvegDh9j/kySNuDKdylwfMEevTeDouR7IfHNyVodxZXu17sXoJuf2D0vi55FHQ==} + '@changesets/pre@1.0.14': dependencies: '@babel/runtime': 7.23.2 '@changesets/errors': 0.1.4 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - dev: true - /@changesets/read@0.5.9: - resolution: {integrity: sha512-T8BJ6JS6j1gfO1HFq50kU3qawYxa4NTbI/ASNVVCBTsKquy2HYwM9r7ZnzkiMe8IEObAJtUVGSrePCOxAK2haQ==} + '@changesets/read@0.5.9': dependencies: '@babel/runtime': 7.23.2 '@changesets/git': 2.0.0 @@ -3973,109 +12057,64 @@ packages: chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - dev: true - /@changesets/types@4.1.0: - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} - dev: true + '@changesets/types@4.1.0': {} - /@changesets/types@5.2.1: - resolution: {integrity: sha512-myLfHbVOqaq9UtUKqR/nZA/OY7xFjQMdfgfqeZIBK4d0hA6pgxArvdv8M+6NUzzBsjWLOtvApv8YHr4qM+Kpfg==} - dev: true + '@changesets/types@5.2.1': {} - /@changesets/write@0.2.3: - resolution: {integrity: sha512-Dbamr7AIMvslKnNYsLFafaVORx4H0pvCA2MHqgtNCySMe1blImEyAEOzDmcgKAkgz4+uwoLz7demIrX+JBr/Xw==} + '@changesets/write@0.2.3': dependencies: '@babel/runtime': 7.23.2 '@changesets/types': 5.2.1 fs-extra: 7.0.1 human-id: 1.0.2 prettier: 2.7.1 - dev: true - /@chevrotain/cst-dts-gen@10.4.2: - resolution: {integrity: sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ==} + '@chevrotain/cst-dts-gen@10.4.2': dependencies: '@chevrotain/gast': 10.4.2 '@chevrotain/types': 10.4.2 lodash: 4.17.21 - dev: false - /@chevrotain/gast@10.4.2: - resolution: {integrity: sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA==} + '@chevrotain/gast@10.4.2': dependencies: '@chevrotain/types': 10.4.2 lodash: 4.17.21 - dev: false - /@chevrotain/types@10.4.2: - resolution: {integrity: sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw==} - dev: false + '@chevrotain/types@10.4.2': {} - /@chevrotain/utils@10.4.2: - resolution: {integrity: sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw==} - dev: false + '@chevrotain/utils@10.4.2': {} - /@clack/core@0.2.1: - resolution: {integrity: sha512-MIZMbzA9IOdjXDAKh2/gfTic3yt554WFXszjjpVfI/Rs5/ofoEjuvdOE2amDQeVnGTHfRL0QB1SBPnoxyliuuA==} + '@clack/core@0.2.1': dependencies: picocolors: 1.0.0 sisteransi: 1.0.5 - dev: false - /@clack/prompts@0.5.1: - resolution: {integrity: sha512-qkaher9atkx4Sw+Ti1q05tc9ZvkmXNqBTYn6lf/xbD9lW4qZcGn8Nr6I66zGmhE2SpiyN878b9LWcSJShnRnYA==} + '@clack/prompts@0.5.1': dependencies: '@clack/core': 0.2.1 picocolors: 1.0.0 sisteransi: 1.0.5 - dev: false - bundledDependencies: - - is-unicode-supported - /@colors/colors@1.5.0: - resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} - engines: {node: '>=0.1.90'} - requiresBuild: true - dev: false + '@colors/colors@1.5.0': optional: true - /@docsearch/css@3.3.0: - resolution: {integrity: sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==} - dev: false + '@docsearch/css@3.3.0': {} - /@docsearch/react@3.3.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==} - peerDependencies: - '@types/react': '>= 16.8.0 < 19.0.0' - react: '>= 16.8.0 < 19.0.0' - react-dom: '>= 16.8.0 < 19.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - react-dom: - optional: true + '@docsearch/react@3.3.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@algolia/autocomplete-core': 1.7.2 '@algolia/autocomplete-preset-algolia': 1.7.2(@algolia/client-search@4.14.2)(algoliasearch@4.14.2) '@docsearch/css': 3.3.0 - '@types/react': 18.0.20 algoliasearch: 4.14.2 + optionalDependencies: + '@types/react': 18.0.20 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@algolia/client-search' - dev: false - /@docusaurus/core@2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-/ZJ6xmm+VB9Izbn0/s6h6289cbPy2k4iYFwWDhjiLsVqwa/Y0YBBcXvStfaHccudUC3OfP+26hMk7UCjc50J6Q==} - engines: {node: '>=16.14'} - hasBin: true - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/core@2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: '@babel/core': 7.19.6 '@babel/generator': 7.20.0 @@ -4089,11 +12128,11 @@ packages: '@babel/traverse': 7.20.0 '@docusaurus/cssnano-preset': 2.1.0 '@docusaurus/logger': 2.1.0 - '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0) + '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@docusaurus/react-loadable': 5.5.2(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@slorber/static-site-generator-webpack-plugin': 4.0.7 '@svgr/webpack': 6.5.1 autoprefixer: 10.4.13(postcss@8.4.16) @@ -4130,11 +12169,11 @@ packages: react: 18.2.0 react-dev-utils: 12.0.1(typescript@5.4.2)(webpack@5.74.0) react-dom: 18.2.0(react@18.2.0) - react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.74.0) + react-helmet-async: 1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@5.5.2(react@18.2.0))(webpack@5.74.0) react-router: 5.3.4(react@18.2.0) - react-router-config: 5.1.1(react-router@5.3.4)(react@18.2.0) + react-router-config: 5.1.1(react-router@5.3.4(react@18.2.0))(react@18.2.0) react-router-dom: 5.3.4(react@18.2.0) rtl-detect: 1.0.4 semver: 7.3.7 @@ -4143,7 +12182,7 @@ packages: terser-webpack-plugin: 5.3.6(webpack@5.74.0) tslib: 2.4.0 update-notifier: 5.1.0 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.74.0) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.74.0))(webpack@5.74.0) wait-on: 6.0.1 webpack: 5.74.0 webpack-bundle-analyzer: 4.7.0 @@ -4167,37 +12206,25 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/cssnano-preset@2.1.0: - resolution: {integrity: sha512-pRLewcgGhOies6pzsUROfmPStDRdFw+FgV5sMtLr5+4Luv2rty5+b/eSIMMetqUsmg3A9r9bcxHk9bKAKvx3zQ==} - engines: {node: '>=16.14'} + '@docusaurus/cssnano-preset@2.1.0': dependencies: cssnano-preset-advanced: 5.3.9(postcss@8.4.21) postcss: 8.4.21 postcss-sort-media-queries: 4.3.0(postcss@8.4.21) tslib: 2.6.2 - dev: false - /@docusaurus/logger@2.1.0: - resolution: {integrity: sha512-uuJx2T6hDBg82joFeyobywPjSOIfeq05GfyKGHThVoXuXsu1KAzMDYcjoDxarb9CoHCI/Dor8R2MoL6zII8x1Q==} - engines: {node: '>=16.14'} + '@docusaurus/logger@2.1.0': dependencies: chalk: 4.1.2 tslib: 2.6.2 - dev: false - /@docusaurus/mdx-loader@2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-i97hi7hbQjsD3/8OSFhLy7dbKGH8ryjEzOfyhQIn2CFBYOY3ko0vMVEf3IY9nD3Ld7amYzsZ8153RPkcnXA+Lg==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/mdx-loader@2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/parser': 7.22.5 '@babel/traverse': 7.22.5 '@docusaurus/logger': 2.1.0 - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@mdx-js/mdx': 1.6.22 escape-html: 1.0.3 file-loader: 6.2.0(webpack@5.74.0) @@ -4211,7 +12238,7 @@ packages: tslib: 2.6.2 unified: 9.2.2 unist-util-visit: 2.0.3 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.74.0) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.74.0))(webpack@5.74.0) webpack: 5.74.0 transitivePeerDependencies: - '@docusaurus/types' @@ -4220,44 +12247,34 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/module-type-aliases@2.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Z8WZaK5cis3xEtyfOT817u9xgGUauT0PuuVo85ysnFRX8n7qLN1lTPCkC+aCmFm/UcV8h/W5T4NtIsst94UntQ==} - peerDependencies: - react: '*' - react-dom: '*' + '@docusaurus/module-type-aliases@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@docusaurus/react-loadable': 5.5.2(react@18.2.0) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@types/history': 4.7.11 '@types/react': 18.0.20 '@types/react-router-config': 5.0.6 '@types/react-router-dom': 5.3.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-helmet-async: 1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' transitivePeerDependencies: - '@swc/core' - esbuild - uglify-js - webpack-cli - /@docusaurus/plugin-content-blog@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-xEp6jlu92HMNUmyRBEeJ4mCW1s77aAEQO4Keez94cUY/Ap7G/r0Awa6xSLff7HL0Fjg8KK1bEbDy7q9voIavdg==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-content-blog@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/logger': 2.1.0 - '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 10.1.0 @@ -4285,22 +12302,16 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-docs@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-Rup5pqXrXlKGIC4VgwvioIhGWF7E/NNSlxv+JAxRYpik8VKlWsk9ysrdHIlpX+KJUCO9irnY21kQh2814mlp/Q==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-content-docs@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/logger': 2.1.0 - '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/module-type-aliases': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/module-type-aliases': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@types/react-router-config': 5.0.6 combine-promises: 1.1.0 fs-extra: 10.1.0 @@ -4328,20 +12339,14 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-content-pages@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-SwZdDZRlObHNKXTnFo7W2aF6U5ZqNVI55Nw2GCBryL7oKQSLeI0lsrMlMXdzn+fS7OuBTd3MJBO1T4Zpz0i/+g==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-content-pages@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) fs-extra: 10.1.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4363,22 +12368,16 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-debug@2.1.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-8wsDq3OIfiy6440KLlp/qT5uk+WRHQXIXklNHEeZcar+Of0TZxCNe2FBpv+bzb/0qcdP45ia5i5WmR5OjN6DPw==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-debug@2.1.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) fs-extra: 10.1.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-json-view: 1.21.3(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) + react-json-view: 1.21.3(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) tslib: 2.6.2 transitivePeerDependencies: - '@parcel/css' @@ -4398,18 +12397,12 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-analytics@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-4cgeqIly/wcFVbbWP03y1QJJBgH8W+Bv6AVbWnsXNOZa1yB3AO6hf3ZdeQH9x20v9T2pREogVgAH0rSoVnNsgg==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-google-analytics@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.6.2 @@ -4429,18 +12422,12 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-google-gtag@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-/3aDlv2dMoCeiX2e+DTGvvrdTA+v3cKQV3DbmfsF4ENhvc5nKV23nth04Z3Vq0Ci1ui6Sn80TkhGk/tiCMW2AA==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-google-gtag@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) tslib: 2.6.2 @@ -4460,21 +12447,15 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/plugin-sitemap@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-2Y6Br8drlrZ/jN9MwMBl0aoi9GAjpfyfMBYpaQZXimbK+e9VjYnujXlvQ4SxtM60ASDgtHIAzfVFBkSR/MwRUw==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/plugin-sitemap@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/logger': 2.1.0 - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) fs-extra: 10.1.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -4496,27 +12477,21 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/preset-classic@2.1.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-NQMnaq974K4BcSMXFSJBQ5itniw6RSyW+VT+6i90kGZzTwiuKZmsp0r9lC6BYAvvVMQUNJQwrETmlu7y2XKW7w==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 - dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-blog': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-pages': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-debug': 2.1.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-google-analytics': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-google-gtag': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-sitemap': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/theme-classic': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/theme-common': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/theme-search-algolia': 2.1.0(@algolia/client-search@4.14.2)(@docusaurus/types@2.1.0)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) + '@docusaurus/preset-classic@2.1.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': + dependencies: + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-blog': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-pages': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-debug': 2.1.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-google-analytics': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-google-gtag': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-sitemap': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/theme-classic': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/theme-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/theme-search-algolia': 2.1.0(@algolia/client-search@4.14.2)(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: @@ -4538,36 +12513,27 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/react-loadable@5.5.2(react@18.2.0): - resolution: {integrity: sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==} - peerDependencies: - react: '*' + '@docusaurus/react-loadable@5.5.2(react@18.2.0)': dependencies: '@types/react': 18.3.3 prop-types: 15.8.1 react: 18.2.0 - /@docusaurus/theme-classic@2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-xn8ZfNMsf7gaSy9+ClFnUu71o7oKgMo5noYSS1hy3svNifRTkrBp6+MReLDsmIaj3mLf2e7+JCBYKBFbaGzQng==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/theme-classic@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/module-type-aliases': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/plugin-content-blog': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-pages': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/theme-common': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/module-type-aliases': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/plugin-content-blog': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-pages': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/theme-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/theme-translations': 2.1.0 - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@mdx-js/react': 1.6.22(react@18.2.0) clsx: 1.2.1 copy-text-to-clipboard: 3.0.1 @@ -4599,21 +12565,15 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-common@2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-vT1otpVPbKux90YpZUnvknsn5zvpLf+AW1W0EDcpE9up4cDrPqfsh0QoxGHFJnobE2/qftsBFC19BneN4BH8Ag==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/theme-common@2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/module-type-aliases': 2.1.0(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/plugin-content-blog': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/plugin-content-pages': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/mdx-loader': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/module-type-aliases': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/plugin-content-blog': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-pages': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) '@types/history': 4.7.11 '@types/react': 18.3.3 '@types/react-router-config': 5.0.6 @@ -4641,23 +12601,17 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-search-algolia@2.1.0(@algolia/client-search@4.14.2)(@docusaurus/types@2.1.0)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-rNBvi35VvENhucslEeVPOtbAzBdZY/9j55gdsweGV5bYoAXy4mHB6zTGjealcB4pJ6lJY4a5g75fXXMOlUqPfg==} - engines: {node: '>=16.14'} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/theme-search-algolia@2.1.0(@algolia/client-search@4.14.2)(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@docsearch/react': 3.3.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + '@docsearch/react': 3.3.0(@algolia/client-search@4.14.2)(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@docusaurus/core': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/logger': 2.1.0 - '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) - '@docusaurus/theme-common': 2.1.0(@docusaurus/types@2.1.0)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2) + '@docusaurus/plugin-content-docs': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) + '@docusaurus/theme-common': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2) '@docusaurus/theme-translations': 2.1.0 - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) - '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) + '@docusaurus/utils-validation': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) algoliasearch: 4.14.2 algoliasearch-helper: 3.11.1(algoliasearch@4.14.2) clsx: 1.2.1 @@ -4687,21 +12641,13 @@ packages: - utf-8-validate - vue-template-compiler - webpack-cli - dev: false - /@docusaurus/theme-translations@2.1.0: - resolution: {integrity: sha512-07n2akf2nqWvtJeMy3A+7oSGMuu5F673AovXVwY0aGAux1afzGCiqIFlYW3EP0CujvDJAEFSQi/Tetfh+95JNg==} - engines: {node: '>=16.14'} + '@docusaurus/theme-translations@2.1.0': dependencies: fs-extra: 10.1.0 tslib: 2.6.2 - dev: false - /@docusaurus/types@2.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-BS1ebpJZnGG6esKqsjtEC9U9qSaPylPwlO7cQ1GaIE7J/kMZI3FITnNn0otXXu7c7ZTqhb6+8dOrG6fZn6fqzQ==} - peerDependencies: - react: ^16.8.4 || ^17.0.0 - react-dom: ^16.8.4 || ^17.0.0 + '@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@types/history': 4.7.11 '@types/react': 18.3.3 @@ -4709,7 +12655,7 @@ packages: joi: 17.6.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0) + react-helmet-async: 1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) utility-types: 3.10.0 webpack: 5.74.0 webpack-merge: 5.8.0 @@ -4719,25 +12665,16 @@ packages: - uglify-js - webpack-cli - /@docusaurus/utils-common@2.1.0(@docusaurus/types@2.1.0): - resolution: {integrity: sha512-F2vgmt4yRFgRQR2vyEFGTWeyAdmgKbtmu3sjHObF0tjjx/pN0Iw/c6eCopaH34E6tc9nO0nvp01pwW+/86d1fg==} - engines: {node: '>=16.14'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils-common@2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': dependencies: - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) tslib: 2.6.2 - dev: false + optionalDependencies: + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - /@docusaurus/utils-validation@2.1.0(@docusaurus/types@2.1.0): - resolution: {integrity: sha512-AMJzWYKL3b7FLltKtDXNLO9Y649V2BXvrnRdnW2AA+PpBnYV78zKLSCz135cuWwRj1ajNtP4onbXdlnyvCijGQ==} - engines: {node: '>=16.14'} + '@docusaurus/utils-validation@2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': dependencies: '@docusaurus/logger': 2.1.0 - '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0) + '@docusaurus/utils': 2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)) joi: 17.6.4 js-yaml: 4.1.0 tslib: 2.6.2 @@ -4748,19 +12685,10 @@ packages: - supports-color - uglify-js - webpack-cli - dev: false - /@docusaurus/utils@2.1.0(@docusaurus/types@2.1.0): - resolution: {integrity: sha512-fPvrfmAuC54n8MjZuG4IysaMdmvN5A/qr7iFLbSGSyDrsbP4fnui6KdZZIa/YOLIPLec8vjZ8RIITJqF18mx4A==} - engines: {node: '>=16.14'} - peerDependencies: - '@docusaurus/types': '*' - peerDependenciesMeta: - '@docusaurus/types': - optional: true + '@docusaurus/utils@2.1.0(@docusaurus/types@2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0))': dependencies: '@docusaurus/logger': 2.1.0 - '@docusaurus/types': 2.1.0(react-dom@18.2.0)(react@18.2.0) '@svgr/webpack': 6.5.1 file-loader: 6.2.0(webpack@5.74.0) fs-extra: 10.1.0 @@ -4773,1424 +12701,513 @@ packages: resolve-pathname: 3.0.0 shelljs: 0.8.5 tslib: 2.6.2 - url-loader: 4.1.1(file-loader@6.2.0)(webpack@5.74.0) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.74.0))(webpack@5.74.0) webpack: 5.74.0 + optionalDependencies: + '@docusaurus/types': 2.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - '@swc/core' - esbuild - supports-color - uglify-js - webpack-cli - dev: false - /@esbuild-kit/cjs-loader@2.4.0: - resolution: {integrity: sha512-DBBCiHPgL2B/elUpvCDhNHXnlZQ9sfO2uyt1OJyAXKT41beQEFY4OxZ6gwS+ZesRCbZ6JV8M7GEyOPkjv8kdIw==} + '@esbuild-kit/cjs-loader@2.4.0': dependencies: '@esbuild-kit/core-utils': 3.0.0 get-tsconfig: 4.7.2 - /@esbuild-kit/core-utils@3.0.0: - resolution: {integrity: sha512-TXmwH9EFS3DC2sI2YJWJBgHGhlteK0Xyu1VabwetMULfm3oYhbrsWV5yaSr2NTWZIgDGVLHbRf0inxbjXqAcmQ==} + '@esbuild-kit/core-utils@3.0.0': dependencies: esbuild: 0.15.13 source-map-support: 0.5.21 - /@esbuild-kit/esm-loader@2.5.0: - resolution: {integrity: sha512-ySs0qOsiwj+hsgZM9/MniGdvfa9/WzqfFuIia8/5gSUPeIQIX2/tG91QakxPFOR35VFiwTB7wCiHtiS6dc6SkA==} + '@esbuild-kit/esm-loader@2.5.0': dependencies: '@esbuild-kit/core-utils': 3.0.0 get-tsconfig: 4.7.2 - /@esbuild/aix-ppc64@0.19.10: - resolution: {integrity: sha512-Q+mk96KJ+FZ30h9fsJl+67IjNJm3x2eX+GBWGmocAKgzp27cowCOOqSdscX80s0SpdFXZnIv/+1xD1EctFx96Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - optional: true - - /@esbuild/aix-ppc64@0.21.5: - resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm64@0.16.13: - resolution: {integrity: sha512-r4xetsd1ez1NF9/9R2f9Q6AlxqiZLwUqo7ICOcvEVwopVkXUcspIjEbJk0EVTgT6Cp5+ymzGPT6YNV0ievx4yA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm64@0.17.16: - resolution: {integrity: sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.18.15: - resolution: {integrity: sha512-NI/gnWcMl2kXt1HJKOn2H69SYn4YNheKo6NZt1hyfKWdMbaGadxjZIkcj4Gjk/WPxnbFXs9/3HjGHaknCqjrww==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + '@esbuild/aix-ppc64@0.19.10': optional: true - /@esbuild/android-arm64@0.19.10: - resolution: {integrity: sha512-1X4CClKhDgC3by7k8aOWZeBXQX8dHT5QAMCAQDArCLaYfkppoARvh0fit3X2Qs+MXDngKcHv6XXyQCpY0hkK1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + '@esbuild/aix-ppc64@0.21.5': optional: true - /@esbuild/android-arm64@0.19.5: - resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-arm64@0.16.13': optional: true - /@esbuild/android-arm64@0.21.5: - resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-arm64@0.17.16': optional: true - /@esbuild/android-arm@0.15.13: - resolution: {integrity: sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + '@esbuild/android-arm64@0.18.15': optional: true - /@esbuild/android-arm@0.16.13: - resolution: {integrity: sha512-JmtqThupn9Yf+FzANE+GG73ASUkssnPwOsndUElhp23685QzRK+MO1UompOlBaXV9D5FTuYcPnw7p4mCq2YbZQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-arm64@0.18.20': optional: true - /@esbuild/android-arm@0.17.16: - resolution: {integrity: sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true + '@esbuild/android-arm64@0.19.10': optional: true - /@esbuild/android-arm@0.18.15: - resolution: {integrity: sha512-wlkQBWb79/jeEEoRmrxt/yhn5T1lU236OCNpnfRzaCJHZ/5gf82uYx1qmADTBWE0AR/v7FiozE1auk2riyQd3w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true + '@esbuild/android-arm64@0.19.5': optional: true - /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + '@esbuild/android-arm64@0.21.5': optional: true - /@esbuild/android-arm@0.19.10: - resolution: {integrity: sha512-7W0bK7qfkw1fc2viBfrtAEkDKHatYfHzr/jKAHNr9BvkYDXPcC6bodtm8AyLJNNuqClLNaeTLuwURt4PRT9d7w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true + '@esbuild/android-arm@0.15.13': optional: true - /@esbuild/android-arm@0.19.5: - resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-arm@0.16.13': optional: true - /@esbuild/android-arm@0.21.5: - resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-arm@0.17.16': optional: true - /@esbuild/android-x64@0.16.13: - resolution: {integrity: sha512-hKt1bFht/Vtp0xJ0ZVzFMnPy1y1ycmM3KNnp3zsyZfQmw7nhs2WLO4vxdR5YG+6RsHKCb2zbZ3VwlC0Tij0qyA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-arm@0.18.15': optional: true - /@esbuild/android-x64@0.17.16: - resolution: {integrity: sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true + '@esbuild/android-arm@0.18.20': optional: true - /@esbuild/android-x64@0.18.15: - resolution: {integrity: sha512-FM9NQamSaEm/IZIhegF76aiLnng1kEsZl2eve/emxDeReVfRuRNmvT28l6hoFD9TsCxpK+i4v8LPpEj74T7yjA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true + '@esbuild/android-arm@0.19.10': optional: true - /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + '@esbuild/android-arm@0.19.5': optional: true - /@esbuild/android-x64@0.19.10: - resolution: {integrity: sha512-O/nO/g+/7NlitUxETkUv/IvADKuZXyH4BHf/g/7laqKC4i/7whLpB0gvpPc2zpF0q9Q6FXS3TS75QHac9MvVWw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + '@esbuild/android-arm@0.21.5': optional: true - /@esbuild/android-x64@0.19.5: - resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-x64@0.16.13': optional: true - /@esbuild/android-x64@0.21.5: - resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false + '@esbuild/android-x64@0.17.16': optional: true - /@esbuild/darwin-arm64@0.16.13: - resolution: {integrity: sha512-ogrVuNi2URocrr3Ps20f075EMm9V7IeenOi9FRj4qdbT6mQlwLuP4l90PW2iBrKERx0oRkcZprEUNsz/3xd7ww==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@esbuild/android-x64@0.18.15': optional: true - - /@esbuild/darwin-arm64@0.17.16: - resolution: {integrity: sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + + '@esbuild/android-x64@0.18.20': optional: true - /@esbuild/darwin-arm64@0.18.15: - resolution: {integrity: sha512-XmrFwEOYauKte9QjS6hz60FpOCnw4zaPAb7XV7O4lx1r39XjJhTN7ZpXqJh4sN6q60zbP6QwAVVA8N/wUyBH/w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + '@esbuild/android-x64@0.19.10': optional: true - /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + '@esbuild/android-x64@0.19.5': optional: true - /@esbuild/darwin-arm64@0.19.10: - resolution: {integrity: sha512-YSRRs2zOpwypck+6GL3wGXx2gNP7DXzetmo5pHXLrY/VIMsS59yKfjPizQ4lLt5vEI80M41gjm2BxrGZ5U+VMA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + '@esbuild/android-x64@0.21.5': optional: true - /@esbuild/darwin-arm64@0.19.5: - resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@esbuild/darwin-arm64@0.16.13': optional: true - /@esbuild/darwin-arm64@0.21.5: - resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@esbuild/darwin-arm64@0.17.16': optional: true - /@esbuild/darwin-x64@0.16.13: - resolution: {integrity: sha512-Agajik9SBGiKD7FPXE+ExW6x3MgA/dUdpZnXa9y1tyfE4lKQx+eQiknSdrBnWPeqa9wL0AOvkhghmYhpVkyqkA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@esbuild/darwin-arm64@0.18.15': optional: true - /@esbuild/darwin-x64@0.17.16: - resolution: {integrity: sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + '@esbuild/darwin-arm64@0.18.20': optional: true - /@esbuild/darwin-x64@0.18.15: - resolution: {integrity: sha512-bMqBmpw1e//7Fh5GLetSZaeo9zSC4/CMtrVFdj+bqKPGJuKyfNJ5Nf2m3LknKZTS+Q4oyPiON+v3eaJ59sLB5A==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + '@esbuild/darwin-arm64@0.19.10': optional: true - /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-arm64@0.19.5': optional: true - /@esbuild/darwin-x64@0.19.10: - resolution: {integrity: sha512-alfGtT+IEICKtNE54hbvPg13xGBe4GkVxyGWtzr+yHO7HIiRJppPDhOKq3zstTcVf8msXb/t4eavW3jCDpMSmA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + '@esbuild/darwin-arm64@0.21.5': optional: true - /@esbuild/darwin-x64@0.19.5: - resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@esbuild/darwin-x64@0.16.13': optional: true - /@esbuild/darwin-x64@0.21.5: - resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@esbuild/darwin-x64@0.17.16': optional: true - /@esbuild/freebsd-arm64@0.16.13: - resolution: {integrity: sha512-KxMO3/XihBcHM+xQUM6nQZO1SgQuOsd1DCnKF1a4SIf/i5VD45vrqN3k8ePgFrEbMi7m5JeGmvNqwJXinF0a4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false + '@esbuild/darwin-x64@0.18.15': optional: true - /@esbuild/freebsd-arm64@0.17.16: - resolution: {integrity: sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true + '@esbuild/darwin-x64@0.18.20': optional: true - /@esbuild/freebsd-arm64@0.18.15: - resolution: {integrity: sha512-LoTK5N3bOmNI9zVLCeTgnk5Rk0WdUTrr9dyDAQGVMrNTh9EAPuNwSTCgaKOKiDpverOa0htPcO9NwslSE5xuLA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true + '@esbuild/darwin-x64@0.19.10': optional: true - /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + '@esbuild/darwin-x64@0.19.5': optional: true - /@esbuild/freebsd-arm64@0.19.10: - resolution: {integrity: sha512-dMtk1wc7FSH8CCkE854GyGuNKCewlh+7heYP/sclpOG6Cectzk14qdUIY5CrKDbkA/OczXq9WesqnPl09mj5dg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + '@esbuild/darwin-x64@0.21.5': optional: true - /@esbuild/freebsd-arm64@0.19.5: - resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false + '@esbuild/freebsd-arm64@0.16.13': optional: true - /@esbuild/freebsd-arm64@0.21.5: - resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false + '@esbuild/freebsd-arm64@0.17.16': optional: true - /@esbuild/freebsd-x64@0.16.13: - resolution: {integrity: sha512-Ez15oqV1vwvZ30cVLeBW14BsWq/fdWNQGMOxxqaSJVQVLqHhvgfQ7gxGDiN9tpJdeQhqJO+Q0r02/Tce5+USNg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false + '@esbuild/freebsd-arm64@0.18.15': optional: true - /@esbuild/freebsd-x64@0.17.16: - resolution: {integrity: sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true + '@esbuild/freebsd-arm64@0.18.20': optional: true - /@esbuild/freebsd-x64@0.18.15: - resolution: {integrity: sha512-62jX5n30VzgrjAjOk5orYeHFq6sqjvsIj1QesXvn5OZtdt5Gdj0vUNJy9NIpjfdNdqr76jjtzBJKf+h2uzYuTQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true + '@esbuild/freebsd-arm64@0.19.10': optional: true - /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-arm64@0.19.5': optional: true - /@esbuild/freebsd-x64@0.19.10: - resolution: {integrity: sha512-G5UPPspryHu1T3uX8WiOEUa6q6OlQh6gNl4CO4Iw5PS+Kg5bVggVFehzXBJY6X6RSOMS8iXDv2330VzaObm4Ag==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + '@esbuild/freebsd-arm64@0.21.5': optional: true - /@esbuild/freebsd-x64@0.19.5: - resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false + '@esbuild/freebsd-x64@0.16.13': optional: true - /@esbuild/freebsd-x64@0.21.5: - resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false + '@esbuild/freebsd-x64@0.17.16': optional: true - /@esbuild/linux-arm64@0.16.13: - resolution: {integrity: sha512-qi5n7KwcGViyJeZeQnu8fB6dC3Mlm5PGaqSv2HhQDDx/MPvVfQGNMcv7zcBL4qk3FkuWhGVwXkjQ76x7R0PWlA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/freebsd-x64@0.18.15': optional: true - /@esbuild/linux-arm64@0.17.16: - resolution: {integrity: sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/freebsd-x64@0.18.20': optional: true - /@esbuild/linux-arm64@0.18.15: - resolution: {integrity: sha512-BWncQeuWDgYv0jTNzJjaNgleduV4tMbQjmk/zpPh/lUdMcNEAxy+jvneDJ6RJkrqloG7tB9S9rCrtfk/kuplsQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/freebsd-x64@0.19.10': optional: true - /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@esbuild/freebsd-x64@0.19.5': optional: true - /@esbuild/linux-arm64@0.19.10: - resolution: {integrity: sha512-QxaouHWZ+2KWEj7cGJmvTIHVALfhpGxo3WLmlYfJ+dA5fJB6lDEIg+oe/0//FuyVHuS3l79/wyBxbHr0NgtxJQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@esbuild/freebsd-x64@0.21.5': optional: true - /@esbuild/linux-arm64@0.19.5: - resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-arm64@0.16.13': optional: true - /@esbuild/linux-arm64@0.21.5: - resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-arm64@0.17.16': optional: true - /@esbuild/linux-arm@0.16.13: - resolution: {integrity: sha512-18dLd2L3mda+iFj6sswyBMSh2UwniamD9M4DwPv8VM+9apRFlQ5IGKxBdumnTuOI4NvwwAernmUseWhYQ9k+rg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-arm64@0.18.15': optional: true - /@esbuild/linux-arm@0.17.16: - resolution: {integrity: sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-arm64@0.18.20': optional: true - /@esbuild/linux-arm@0.18.15: - resolution: {integrity: sha512-dT4URUv6ir45ZkBqhwZwyFV6cH61k8MttIwhThp2BGiVtagYvCToF+Bggyx2VI57RG4Fbt21f9TmXaYx0DeUJg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-arm64@0.19.10': optional: true - /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm64@0.19.5': optional: true - /@esbuild/linux-arm@0.19.10: - resolution: {integrity: sha512-j6gUW5aAaPgD416Hk9FHxn27On28H4eVI9rJ4az7oCGTFW48+LcgNDBN+9f8rKZz7EEowo889CPKyeaD0iw9Kg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm64@0.21.5': optional: true - /@esbuild/linux-arm@0.19.5: - resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-arm@0.16.13': optional: true - /@esbuild/linux-arm@0.21.5: - resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-arm@0.17.16': optional: true - /@esbuild/linux-ia32@0.16.13: - resolution: {integrity: sha512-2489Xad9sr+6GD7nB913fUqpCsSwVwgskkQTq4Or2mZntSPYPebyJm8l1YruHo7oqYMTGV6RiwGE4gRo3H+EPQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-arm@0.18.15': optional: true - /@esbuild/linux-ia32@0.17.16: - resolution: {integrity: sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-arm@0.18.20': optional: true - /@esbuild/linux-ia32@0.18.15: - resolution: {integrity: sha512-JPXORvgHRHITqfms1dWT/GbEY89u848dC08o0yK3fNskhp0t2TuNUnsrrSgOdH28ceb1hJuwyr8R/1RnyPwocw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-arm@0.19.10': optional: true - /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm@0.19.5': optional: true - /@esbuild/linux-ia32@0.19.10: - resolution: {integrity: sha512-4ub1YwXxYjj9h1UIZs2hYbnTZBtenPw5NfXCRgEkGb0b6OJ2gpkMvDqRDYIDRjRdWSe/TBiZltm3Y3Q8SN1xNg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + '@esbuild/linux-arm@0.21.5': optional: true - /@esbuild/linux-ia32@0.19.5: - resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-ia32@0.16.13': optional: true - /@esbuild/linux-ia32@0.21.5: - resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-ia32@0.17.16': optional: true - /@esbuild/linux-loong64@0.15.13: - resolution: {integrity: sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ia32@0.18.15': optional: true - /@esbuild/linux-loong64@0.16.13: - resolution: {integrity: sha512-x8KplRu9Y43Px8I9YS+sPBwQ+fw44Mvp2BPVADopKDWz+h3fcj1BvRU58kxb89WObmwKX9sWdtYzepL4Fmx03A==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-ia32@0.18.20': optional: true - /@esbuild/linux-loong64@0.17.16: - resolution: {integrity: sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-ia32@0.19.10': optional: true - /@esbuild/linux-loong64@0.18.15: - resolution: {integrity: sha512-kArPI0DopjJCEplsVj/H+2Qgzz7vdFSacHNsgoAKpPS6W/Ndh8Oe24HRDQ5QCu4jHgN6XOtfFfLpRx3TXv/mEg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-ia32@0.19.5': optional: true - /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ia32@0.21.5': optional: true - /@esbuild/linux-loong64@0.19.10: - resolution: {integrity: sha512-lo3I9k+mbEKoxtoIbM0yC/MZ1i2wM0cIeOejlVdZ3D86LAcFXFRdeuZmh91QJvUTW51bOK5W2BznGNIl4+mDaA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true + '@esbuild/linux-loong64@0.15.13': optional: true - /@esbuild/linux-loong64@0.19.5: - resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-loong64@0.16.13': optional: true - /@esbuild/linux-loong64@0.21.5: - resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-loong64@0.17.16': optional: true - /@esbuild/linux-mips64el@0.16.13: - resolution: {integrity: sha512-qhhdWph9FLwD9rVVC/nUf7k2U4NZIA6/mGx0B7+O6PFV0GjmPA2E3zDQ4NUjq9P26E0DeAZy9akH9dYcUBRU7A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-loong64@0.18.15': optional: true - /@esbuild/linux-mips64el@0.17.16: - resolution: {integrity: sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-loong64@0.18.20': optional: true - /@esbuild/linux-mips64el@0.18.15: - resolution: {integrity: sha512-b/tmngUfO02E00c1XnNTw/0DmloKjb6XQeqxaYuzGwHe0fHVgx5/D6CWi+XH1DvkszjBUkK9BX7n1ARTOst59w==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-loong64@0.19.10': optional: true - /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + '@esbuild/linux-loong64@0.19.5': optional: true - /@esbuild/linux-mips64el@0.19.10: - resolution: {integrity: sha512-J4gH3zhHNbdZN0Bcr1QUGVNkHTdpijgx5VMxeetSk6ntdt+vR1DqGmHxQYHRmNb77tP6GVvD+K0NyO4xjd7y4A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + '@esbuild/linux-loong64@0.21.5': optional: true - /@esbuild/linux-mips64el@0.19.5: - resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-mips64el@0.16.13': optional: true - /@esbuild/linux-mips64el@0.21.5: - resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-mips64el@0.17.16': optional: true - /@esbuild/linux-ppc64@0.16.13: - resolution: {integrity: sha512-cVWAPKsrRVxI1jCeJHnYSbE3BrEU+pZTZK2gfao9HRxuc+3m4+RLfs3EVEpGLmMKEcWfVCB9wZ3yNxnknutGKQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-mips64el@0.18.15': + optional: true + + '@esbuild/linux-mips64el@0.18.20': + optional: true + + '@esbuild/linux-mips64el@0.19.10': optional: true - /@esbuild/linux-ppc64@0.17.16: - resolution: {integrity: sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-mips64el@0.19.5': optional: true - /@esbuild/linux-ppc64@0.18.15: - resolution: {integrity: sha512-KXPY69MWw79QJkyvUYb2ex/OgnN/8N/Aw5UDPlgoRtoEfcBqfeLodPr42UojV3NdkoO4u10NXQdamWm1YEzSKw==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-mips64el@0.21.5': optional: true - /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ppc64@0.16.13': optional: true - /@esbuild/linux-ppc64@0.19.10: - resolution: {integrity: sha512-tgT/7u+QhV6ge8wFMzaklOY7KqiyitgT1AUHMApau32ZlvTB/+efeCtMk4eXS+uEymYK249JsoiklZN64xt6oQ==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + '@esbuild/linux-ppc64@0.17.16': optional: true - /@esbuild/linux-ppc64@0.19.5: - resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-ppc64@0.18.15': optional: true - /@esbuild/linux-ppc64@0.21.5: - resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-ppc64@0.18.20': optional: true - /@esbuild/linux-riscv64@0.16.13: - resolution: {integrity: sha512-Agb7dbRyZWnmPn5Vvf0eyqaEUqSsaIUwwyInu2EoFTaIDRp093QU2M5alUyOooMLkRbD1WvqQNwx08Z/g+SAcQ==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-ppc64@0.19.10': optional: true - /@esbuild/linux-riscv64@0.17.16: - resolution: {integrity: sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-ppc64@0.19.5': optional: true - /@esbuild/linux-riscv64@0.18.15: - resolution: {integrity: sha512-komK3NEAeeGRnvFEjX1SfVg6EmkfIi5aKzevdvJqMydYr9N+pRQK0PGJXk+bhoPZwOUgLO4l99FZmLGk/L1jWg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-ppc64@0.21.5': optional: true - /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + '@esbuild/linux-riscv64@0.16.13': optional: true - /@esbuild/linux-riscv64@0.19.10: - resolution: {integrity: sha512-0f/spw0PfBMZBNqtKe5FLzBDGo0SKZKvMl5PHYQr3+eiSscfJ96XEknCe+JoOayybWUFQbcJTrk946i3j9uYZA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + '@esbuild/linux-riscv64@0.17.16': optional: true - /@esbuild/linux-riscv64@0.19.5: - resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-riscv64@0.18.15': optional: true - /@esbuild/linux-riscv64@0.21.5: - resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-riscv64@0.18.20': optional: true - /@esbuild/linux-s390x@0.16.13: - resolution: {integrity: sha512-AqRBIrc/+kl08ahliNG+EyU+j41wIzQfwBTKpi80cCDiYvYFPuXjvzZsD9muiu58Isj0RVni9VgC4xK/AnSW4g==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-riscv64@0.19.10': optional: true - /@esbuild/linux-s390x@0.17.16: - resolution: {integrity: sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-riscv64@0.19.5': optional: true - /@esbuild/linux-s390x@0.18.15: - resolution: {integrity: sha512-632T5Ts6gQ2WiMLWRRyeflPAm44u2E/s/TJvn+BP6M5mnHSk93cieaypj3VSMYO2ePTCRqAFXtuYi1yv8uZJNA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-riscv64@0.21.5': optional: true - /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + '@esbuild/linux-s390x@0.16.13': optional: true - /@esbuild/linux-s390x@0.19.10: - resolution: {integrity: sha512-pZFe0OeskMHzHa9U38g+z8Yx5FNCLFtUnJtQMpwhS+r4S566aK2ci3t4NCP4tjt6d5j5uo4h7tExZMjeKoehAA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + '@esbuild/linux-s390x@0.17.16': optional: true - /@esbuild/linux-s390x@0.19.5: - resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-s390x@0.18.15': optional: true - /@esbuild/linux-s390x@0.21.5: - resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-s390x@0.18.20': optional: true - /@esbuild/linux-x64@0.16.13: - resolution: {integrity: sha512-S4wn2BimuhPcoArRtVrdHUKIymCCZcYAXQE47kUiX4yrUrEX2/ifn5eKNbZ5c1jJKUlh1gC2ESIN+iw3wQax3g==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-s390x@0.19.10': optional: true - /@esbuild/linux-x64@0.17.16: - resolution: {integrity: sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-s390x@0.19.5': optional: true - /@esbuild/linux-x64@0.18.15: - resolution: {integrity: sha512-MsHtX0NgvRHsoOtYkuxyk4Vkmvk3PLRWfA4okK7c+6dT0Fu4SUqXAr9y4Q3d8vUf1VWWb6YutpL4XNe400iQ1g==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@esbuild/linux-s390x@0.21.5': optional: true - /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + '@esbuild/linux-x64@0.16.13': optional: true - /@esbuild/linux-x64@0.19.10: - resolution: {integrity: sha512-SpYNEqg/6pZYoc+1zLCjVOYvxfZVZj6w0KROZ3Fje/QrM3nfvT2llI+wmKSrWuX6wmZeTapbarvuNNK/qepSgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + '@esbuild/linux-x64@0.17.16': optional: true - /@esbuild/linux-x64@0.19.5: - resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-x64@0.18.15': optional: true - /@esbuild/linux-x64@0.21.5: - resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@esbuild/linux-x64@0.18.20': optional: true - /@esbuild/netbsd-x64@0.16.13: - resolution: {integrity: sha512-2c8JWgfUMlQHTdaR5X3xNMwqOyad8kgeCupuVkdm3QkUOzGREjlTETQsK6oHifocYzDCo9FeKcUwsK356SdR+g==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false + '@esbuild/linux-x64@0.19.10': optional: true - /@esbuild/netbsd-x64@0.17.16: - resolution: {integrity: sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true + '@esbuild/linux-x64@0.19.5': optional: true - /@esbuild/netbsd-x64@0.18.15: - resolution: {integrity: sha512-djST6s+jQiwxMIVQ5rlt24JFIAr4uwUnzceuFL7BQT4CbrRtqBPueS4GjXSiIpmwVri1Icj/9pFRJ7/aScvT+A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true + '@esbuild/linux-x64@0.21.5': optional: true - /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + '@esbuild/netbsd-x64@0.16.13': optional: true - /@esbuild/netbsd-x64@0.19.10: - resolution: {integrity: sha512-ACbZ0vXy9zksNArWlk2c38NdKg25+L9pr/mVaj9SUq6lHZu/35nx2xnQVRGLrC1KKQqJKRIB0q8GspiHI3J80Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + '@esbuild/netbsd-x64@0.17.16': optional: true - /@esbuild/netbsd-x64@0.19.5: - resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false + '@esbuild/netbsd-x64@0.18.15': optional: true - /@esbuild/netbsd-x64@0.21.5: - resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false + '@esbuild/netbsd-x64@0.18.20': optional: true - /@esbuild/openbsd-x64@0.16.13: - resolution: {integrity: sha512-Bwh+PmKD/LK+xBjqIpnYnKYj0fIyQJ0YpRxsn0F+WfzvQ2OA+GKDlf8AHosiCns26Q4Dje388jQVwfOBZ1GaFw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false + '@esbuild/netbsd-x64@0.19.10': optional: true - /@esbuild/openbsd-x64@0.17.16: - resolution: {integrity: sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true + '@esbuild/netbsd-x64@0.19.5': optional: true - /@esbuild/openbsd-x64@0.18.15: - resolution: {integrity: sha512-naeRhUIvhsgeounjkF5mvrNAVMGAm6EJWiabskeE5yOeBbLp7T89tAEw0j5Jm/CZAwyLe3c67zyCWH6fsBLCpw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true + '@esbuild/netbsd-x64@0.21.5': optional: true - /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + '@esbuild/openbsd-x64@0.16.13': optional: true - /@esbuild/openbsd-x64@0.19.10: - resolution: {integrity: sha512-PxcgvjdSjtgPMiPQrM3pwSaG4kGphP+bLSb+cihuP0LYdZv1epbAIecHVl5sD3npkfYBZ0ZnOjR878I7MdJDFg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + '@esbuild/openbsd-x64@0.17.16': optional: true - /@esbuild/openbsd-x64@0.19.5: - resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false + '@esbuild/openbsd-x64@0.18.15': optional: true - /@esbuild/openbsd-x64@0.21.5: - resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false + '@esbuild/openbsd-x64@0.18.20': optional: true - /@esbuild/sunos-x64@0.16.13: - resolution: {integrity: sha512-8wwk6f9XGnhrF94/DBdFM4Xm1JeCyGTCj67r516VS9yvBVQf3Rar54L+XPVDs/oZOokwH+XsktrgkuTMAmjntg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false + '@esbuild/openbsd-x64@0.19.10': optional: true - /@esbuild/sunos-x64@0.17.16: - resolution: {integrity: sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true + '@esbuild/openbsd-x64@0.19.5': optional: true - /@esbuild/sunos-x64@0.18.15: - resolution: {integrity: sha512-qkT2+WxyKbNIKV1AEhI8QiSIgTHMcRctzSaa/I3kVgMS5dl3fOeoqkb7pW76KwxHoriImhx7Mg3TwN/auMDsyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true + '@esbuild/openbsd-x64@0.21.5': optional: true - /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + '@esbuild/sunos-x64@0.16.13': optional: true - /@esbuild/sunos-x64@0.19.10: - resolution: {integrity: sha512-ZkIOtrRL8SEJjr+VHjmW0znkPs+oJXhlJbNwfI37rvgeMtk3sxOQevXPXjmAPZPigVTncvFqLMd+uV0IBSEzqA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + '@esbuild/sunos-x64@0.17.16': optional: true - /@esbuild/sunos-x64@0.19.5: - resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false + '@esbuild/sunos-x64@0.18.15': optional: true - /@esbuild/sunos-x64@0.21.5: - resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false + '@esbuild/sunos-x64@0.18.20': optional: true - /@esbuild/win32-arm64@0.16.13: - resolution: {integrity: sha512-Jmwbp/5ArLCiRAHC33ODfcrlIcbP/exXkOEUVkADNJC4e/so2jm+i8IQFvVX/lA2GWvK3GdgcN0VFfp9YITAbg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/sunos-x64@0.19.10': optional: true - /@esbuild/win32-arm64@0.17.16: - resolution: {integrity: sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + '@esbuild/sunos-x64@0.19.5': optional: true - /@esbuild/win32-arm64@0.18.15: - resolution: {integrity: sha512-HC4/feP+pB2Vb+cMPUjAnFyERs+HJN7E6KaeBlFdBv799MhD+aPJlfi/yk36SED58J9TPwI8MAcVpJgej4ud0A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + '@esbuild/sunos-x64@0.21.5': optional: true - /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@esbuild/win32-arm64@0.16.13': optional: true - /@esbuild/win32-arm64@0.19.10: - resolution: {integrity: sha512-+Sa4oTDbpBfGpl3Hn3XiUe4f8TU2JF7aX8cOfqFYMMjXp6ma6NJDztl5FDG8Ezx0OjwGikIHw+iA54YLDNNVfw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@esbuild/win32-arm64@0.17.16': optional: true - /@esbuild/win32-arm64@0.19.5: - resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-arm64@0.18.15': optional: true - /@esbuild/win32-arm64@0.21.5: - resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-arm64@0.18.20': optional: true - /@esbuild/win32-ia32@0.16.13: - resolution: {integrity: sha512-AX6WjntGjhJHzrPSVvjMD7grxt41koHfAOx6lxLorrpDwwIKKPaGDASPZgvFIZHTbwhOtILW6vAXxYPDsKpDJA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-arm64@0.19.10': optional: true - /@esbuild/win32-ia32@0.17.16: - resolution: {integrity: sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true + '@esbuild/win32-arm64@0.19.5': optional: true - /@esbuild/win32-ia32@0.18.15: - resolution: {integrity: sha512-ovjwoRXI+gf52EVF60u9sSDj7myPixPxqzD5CmkEUmvs+W9Xd0iqISVBQn8xcx4ciIaIVlWCuTbYDOXOnOL44Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true + '@esbuild/win32-arm64@0.21.5': optional: true - /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@esbuild/win32-ia32@0.16.13': optional: true - /@esbuild/win32-ia32@0.19.10: - resolution: {integrity: sha512-EOGVLK1oWMBXgfttJdPHDTiivYSjX6jDNaATeNOaCOFEVcfMjtbx7WVQwPSE1eIfCp/CaSF2nSrDtzc4I9f8TQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@esbuild/win32-ia32@0.17.16': optional: true - /@esbuild/win32-ia32@0.19.5: - resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-ia32@0.18.15': optional: true - /@esbuild/win32-ia32@0.21.5: - resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-ia32@0.18.20': optional: true - /@esbuild/win32-x64@0.16.13: - resolution: {integrity: sha512-A+U4gM6OOkPS03UgVU08GTpAAAxPsP/8Z4FmneGo4TaVSD99bK9gVJXlqUEPMO/htFXEAht2O6pX4ErtLY5tVg==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-ia32@0.19.10': + optional: true + + '@esbuild/win32-ia32@0.19.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': optional: true - /@esbuild/win32-x64@0.17.16: - resolution: {integrity: sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + '@esbuild/win32-x64@0.16.13': optional: true - /@esbuild/win32-x64@0.18.15: - resolution: {integrity: sha512-imUxH9a3WJARyAvrG7srLyiK73XdX83NXQkjKvQ+7vPh3ZxoLrzvPkQKKw2DwZ+RV2ZB6vBfNHP8XScAmQC3aA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + '@esbuild/win32-x64@0.17.16': optional: true - /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + '@esbuild/win32-x64@0.18.15': optional: true - /@esbuild/win32-x64@0.19.10: - resolution: {integrity: sha512-whqLG6Sc70AbU73fFYvuYzaE4MNMBIlR1Y/IrUeOXFrWHxBEjjbZaQ3IXIQS8wJdAzue2GwYZCjOrgrU1oUHoA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + '@esbuild/win32-x64@0.18.20': optional: true - /@esbuild/win32-x64@0.19.5: - resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-x64@0.19.10': optional: true - /@esbuild/win32-x64@0.21.5: - resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@esbuild/win32-x64@0.19.5': optional: true - /@floating-ui/core@0.7.3: - resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} - dev: false + '@esbuild/win32-x64@0.21.5': + optional: true - /@floating-ui/dom@0.5.4: - resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} + '@floating-ui/core@0.7.3': {} + + '@floating-ui/dom@0.5.4': dependencies: '@floating-ui/core': 0.7.3 - dev: false - /@floating-ui/react-dom@0.7.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@floating-ui/react-dom@0.7.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@floating-ui/dom': 0.5.4 react: 18.2.0 @@ -6198,65 +13215,44 @@ packages: use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.20)(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@formatjs/ecma402-abstract@1.13.0: - resolution: {integrity: sha512-CQ8Ykd51jYD1n05dtoX6ns6B9n/+6ZAxnWUAonvHC4kkuAemROYBhHkEB4tm1uVrRlE7gLDqXkAnY51Y0pRCWQ==} + '@formatjs/ecma402-abstract@1.13.0': dependencies: '@formatjs/intl-localematcher': 0.2.31 tslib: 2.4.0 - dev: false - /@formatjs/fast-memoize@1.2.6: - resolution: {integrity: sha512-9CWZ3+wCkClKHX+i5j+NyoBVqGf0pIskTo6Xl6ihGokYM2yqSSS68JIgeo+99UIHc+7vi9L3/SDSz/dWI9SNlA==} + '@formatjs/fast-memoize@1.2.6': dependencies: tslib: 2.4.0 - dev: false - /@formatjs/icu-messageformat-parser@2.1.10: - resolution: {integrity: sha512-KkRMxhifWkRC45dhM9tqm0GXbb6NPYTGVYY3xx891IKc6p++DQrZTnmkVSNNO47OEERLfuP2KkPFPJBuu8z/wg==} + '@formatjs/icu-messageformat-parser@2.1.10': dependencies: '@formatjs/ecma402-abstract': 1.13.0 '@formatjs/icu-skeleton-parser': 1.3.14 tslib: 2.4.0 - dev: false - /@formatjs/icu-skeleton-parser@1.3.14: - resolution: {integrity: sha512-7bv60HQQcBb3+TSj+45tOb/CHV5z1hOpwdtS50jsSBXfB+YpGhnoRsZxSRksXeCxMy6xn6tA6VY2601BrrK+OA==} + '@formatjs/icu-skeleton-parser@1.3.14': dependencies: '@formatjs/ecma402-abstract': 1.13.0 tslib: 2.4.0 - dev: false - /@formatjs/intl-displaynames@6.1.4: - resolution: {integrity: sha512-sEbziGLsWQo6nA8ZUBcsDRlZzPg+uMVjDmbTalgGqRWLbdXuxMldTYdaCK+UptyJhkmNVM/erz3csTiyqamXHQ==} + '@formatjs/intl-displaynames@6.1.4': dependencies: '@formatjs/ecma402-abstract': 1.13.0 '@formatjs/intl-localematcher': 0.2.31 tslib: 2.4.0 - dev: false - /@formatjs/intl-listformat@7.1.3: - resolution: {integrity: sha512-rs0Kxl78PeRCedx2cmFoBqcun2Kf0bCQrF8ycna54sfePpDhMskvODWeI4G/xBioW01FjK7CJSvtJJ87hrr79A==} + '@formatjs/intl-listformat@7.1.3': dependencies: '@formatjs/ecma402-abstract': 1.13.0 '@formatjs/intl-localematcher': 0.2.31 tslib: 2.4.0 - dev: false - /@formatjs/intl-localematcher@0.2.31: - resolution: {integrity: sha512-9QTjdSBpQ7wHShZgsNzNig5qT3rCPvmZogS/wXZzKotns5skbXgs0I7J8cuN0PPqXyynvNVuN+iOKhNS2eb+ZA==} + '@formatjs/intl-localematcher@0.2.31': dependencies: tslib: 2.4.0 - dev: false - /@formatjs/intl@2.5.1(typescript@5.4.2): - resolution: {integrity: sha512-P01ZGuDDlcN8bHHBCEHspJPvs8WJeO8SXlUIcVGWhS3IN5vUgz0QKUXcKBFnJbEHhONJ+azlObVwvlDKsE+kUg==} - peerDependencies: - typescript: ^4.7 - peerDependenciesMeta: - typescript: - optional: true + '@formatjs/intl@2.5.1(typescript@5.4.2)': dependencies: '@formatjs/ecma402-abstract': 1.13.0 '@formatjs/fast-memoize': 1.2.6 @@ -6265,39 +13261,29 @@ packages: '@formatjs/intl-listformat': 7.1.3 intl-messageformat: 10.2.1 tslib: 2.4.0 + optionalDependencies: typescript: 5.4.2 - dev: false - /@hapi/hoek@9.3.0: - resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + '@hapi/hoek@9.3.0': {} - /@hapi/topo@5.1.0: - resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hapi/topo@5.1.0': dependencies: '@hapi/hoek': 9.3.0 - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 + string-width-cjs: string-width@4.2.3 strip-ansi: 7.0.1 - strip-ansi-cjs: /strip-ansi@6.0.1 + strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true + wrap-ansi-cjs: wrap-ansi@7.0.0 - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 - dev: false - /@jest/types@29.2.1: - resolution: {integrity: sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jest/types@29.2.1': dependencies: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 @@ -6305,90 +13291,63 @@ packages: '@types/node': 20.11.5 '@types/yargs': 17.0.29 chalk: 4.1.2 - dev: false - /@jridgewell/gen-mapping@0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.1.1': dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - dev: false - /@jridgewell/gen-mapping@0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.2': dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.17 - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.25 - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} + '@jridgewell/resolve-uri@3.1.0': {} - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.1.2': {} - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} + '@jridgewell/set-array@1.2.1': {} - /@jridgewell/source-map@0.3.2: - resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==} + '@jridgewell/source-map@0.3.2': dependencies: '@jridgewell/gen-mapping': 0.3.2 '@jridgewell/trace-mapping': 0.3.17 - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + '@jridgewell/sourcemap-codec@1.4.14': {} - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/sourcemap-codec@1.4.15': {} - /@jridgewell/sourcemap-codec@1.5.0: - resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.0': {} - /@jridgewell/trace-mapping@0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} + '@jridgewell/trace-mapping@0.3.17': dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.15 - /@kamilkisiela/fast-url-parser@1.1.4: - resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} - dev: false + '@kamilkisiela/fast-url-parser@1.1.4': {} - /@leichtgewicht/ip-codec@2.0.4: - resolution: {integrity: sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==} - dev: false + '@leichtgewicht/ip-codec@2.0.4': {} - /@manypkg/find-root@1.1.0: - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.23.2 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 - dev: true - /@manypkg/get-packages@1.1.3: - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@manypkg/get-packages@1.1.3': dependencies: '@babel/runtime': 7.23.2 '@changesets/types': 4.1.0 @@ -6396,11 +13355,8 @@ packages: fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 - dev: true - /@mapbox/node-pre-gyp@1.0.11: - resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} - hasBin: true + '@mapbox/node-pre-gyp@1.0.11': dependencies: detect-libc: 2.0.1 https-proxy-agent: 5.0.1 @@ -6414,10 +13370,8 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false - /@mdx-js/mdx@1.6.22: - resolution: {integrity: sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==} + '@mdx-js/mdx@1.6.22': dependencies: '@babel/core': 7.12.9 '@babel/plugin-syntax-jsx': 7.12.1(@babel/core@7.12.9) @@ -6440,64 +13394,37 @@ packages: unist-util-visit: 2.0.3 transitivePeerDependencies: - supports-color - dev: false - /@mdx-js/react@1.6.22(react@18.2.0): - resolution: {integrity: sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==} - peerDependencies: - react: ^16.13.1 || ^17.0.0 + '@mdx-js/react@1.6.22(react@18.2.0)': dependencies: react: 18.2.0 - dev: false - /@mdx-js/util@1.6.22: - resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} - dev: false + '@mdx-js/util@1.6.22': {} - /@noble/hashes@1.4.0: - resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} - engines: {node: '>= 16'} - dev: false + '@noble/hashes@1.4.0': {} - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + '@nodelib/fs.stat@2.0.5': {} - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 fastq: 1.13.0 - /@paralleldrive/cuid2@2.2.2: - resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} + '@paralleldrive/cuid2@2.2.2': dependencies: '@noble/hashes': 1.4.0 - dev: false - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true + '@pkgjs/parseargs@0.11.0': optional: true - /@polka/url@1.0.0-next.21: - resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} - dev: false + '@polka/url@1.0.0-next.21': {} - /@puppeteer/browsers@2.2.3: - resolution: {integrity: sha512-bJ0UBsk0ESOs6RFcLXOt99a3yTDcOKlzfjad+rhFwdaG1Lu/Wzq58GHYCDTlZ9z6mldf4g+NTb+TXEfe0PpnsQ==} - engines: {node: '>=18'} - hasBin: true + '@puppeteer/browsers@2.2.3': dependencies: debug: 4.3.4 extract-zip: 2.0.1 @@ -6509,167 +13436,111 @@ packages: yargs: 17.7.2 transitivePeerDependencies: - supports-color - dev: true - /@radix-ui/popper@0.1.0: - resolution: {integrity: sha512-uzYeElL3w7SeNMuQpXiFlBhTT+JyaNMCwDfjKkrzugEcYrf5n52PHqncNdQPUtR42hJh8V9FsqyEDbDxkeNjJQ==} + '@radix-ui/popper@0.1.0': dependencies: '@babel/runtime': 7.19.4 csstype: 3.1.1 - dev: false - /@radix-ui/primitive@0.1.0: - resolution: {integrity: sha512-tqxZKybwN5Fa3VzZry4G6mXAAb9aAqKmPtnVbZpL0vsBwvOHTBwsjHVPXylocYLwEtBY9SCe665bYnNB515uoA==} + '@radix-ui/primitive@0.1.0': dependencies: '@babel/runtime': 7.19.4 - dev: false - /@radix-ui/primitive@1.0.0: - resolution: {integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==} + '@radix-ui/primitive@1.0.0': dependencies: '@babel/runtime': 7.19.4 - dev: false - /@radix-ui/react-alert-dialog@1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-0MtxV53FaEEBOKRgyLnEqHZKKDS5BldQ9oUBsKVXWI5FHbl2jp35qs+0aJET+K5hJDsc40kQUzP7g+wC7tqrqA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-alert-dialog@1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dialog': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-arrow@0.1.3(react@18.2.0): - resolution: {integrity: sha512-9x1gRYdlUD5OUwY7L+M+4FY/YltDSsrNSj8QXGPbxZxL5ghWXB/4lhyIGccCwk/e8ggfmQYv9SRNmn3LavPo3A==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-arrow@0.1.3(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-primitive': 0.1.3(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-arrow@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1MUuv24HCdepi41+qfv125EwMuxgQ+U+h0A9K3BjCO/J8nVRREKHHpkD9clwfnjEDk9hgGzCnff4aUKCPiRepw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-arrow@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-arrow@1.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1yientwXqXcErDHEv8av9ZVNEBldH8L9scVR3is20lL+jOCfcJyMFZFEY5cgIrgexsq1qggSXqiEL/d/4f+QXA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-arrow@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-collection@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-8i1pf5dKjnq90Z8udnnXKzdCEV3/FYrfw0n/b6NvB6piXEn3fO1bOh7HBcpG8XrnIXzxlYu2oCcR38QpyLS/mg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-collection@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-compose-refs@0.1.0(react@18.2.0): - resolution: {integrity: sha512-eyclbh+b77k+69Dk72q3694OHrn9B3QsoIRx7ywX341U9RK1ThgQjMFZoPtmZNQTksXHLNEiefR8hGVeFyInGg==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-compose-refs@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-compose-refs@1.0.0(react@18.2.0): - resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-compose-refs@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-context-menu@1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-JkwOgdXwErwEEpsmgu0Ob8zD3gzWS1brPXnNGPyZEtR6/EYyDgruQYKiihXVsCrPCdrNUHawop9I1+6JTdXPTA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-context-menu@1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-context@0.1.1(react@18.2.0): - resolution: {integrity: sha512-PkyVX1JsLBioeu0jB9WvRpDBBLtLZohVDT3BB5CTSJqActma8S8030P57mWZb4baZifMvN7KKWPAA40UmWKkQg==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-context@0.1.1(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-context@1.0.0(react@18.2.0): - resolution: {integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-context@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-dialog@1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EKxxp2WNSmUPkx4trtWNmZ4/vAYEg7JkAfa1HKBUnaubw9eHzf1Orr9B472lJYaYz327RHDrd4R95fsw7VR8DA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-dialog@1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.1(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) aria-hidden: 1.2.2(@types/react@18.0.20)(react@18.2.0) @@ -6678,155 +13549,105 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.0.20)(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-direction@1.0.0(react@18.2.0): - resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-direction@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-dismissable-layer@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) '@radix-ui/react-use-escape-keydown': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-dismissable-layer@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-WjJzMrTWROozDqLB0uRWYvj4UuXsM/2L19EmQ3Au+IJWqwvwq9Bwd+P8ivo0Deg9JDPArR1I6MbWNi1CmXsskg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-dismissable-layer@1.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) '@radix-ui/react-use-escape-keydown': 1.0.2(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-dropdown-menu@1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Ptben3TxPWrZLbInO7zjAK73kmjYuStsxfg6ujgt+EywJyREoibhZYnsSNqC+UiOtl4PdW/MOHhxVDtew5fouQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-dropdown-menu@1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-focus-guards@1.0.0(react@18.2.0): - resolution: {integrity: sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-focus-guards@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-focus-scope@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-focus-scope@1.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Ej2MQTit8IWJiS2uuujGUmxXjF/y5xZptIIQnyd2JHLwtV0R2j9NRVoRj/1j/gJ7e3REdaBw4Hjf4a1ImhkZcQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-focus-scope@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-icons@1.1.1(react@18.2.0): - resolution: {integrity: sha512-xc3wQC59rsFylVbSusQCrrM+6695ppF730Q6yqzhRdqDcRNWIm2R6ngpzBoSOQMcwnq4p805F+Gr7xo4fmtN1A==} - peerDependencies: - react: ^16.x || ^17.x || ^18.x + '@radix-ui/react-icons@1.1.1(react@18.2.0)': dependencies: react: 18.2.0 - dev: false - /@radix-ui/react-id@0.1.4(react@18.2.0): - resolution: {integrity: sha512-/hq5m/D0ZfJWOS7TLF+G0l08KDRs87LBE46JkAvgKkg1fW4jkucx9At9D9vauIPSbdNmww5kXEp566hMlA8eXA==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-id@0.1.4(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-id@1.0.0(react@18.2.0): - resolution: {integrity: sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-id@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-menu@1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-icW4C64T6nHh3Z4Q1fxO1RlSShouFF4UpUmPV8FLaJZfphDljannKErDuALDx4ClRLihAPZ9i+PrLNPoWS2DMA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-menu@1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.0(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) aria-hidden: 1.2.2(@types/react@18.0.20)(react@18.2.0) @@ -6835,26 +13656,21 @@ packages: react-remove-scroll: 2.5.4(@types/react@18.0.20)(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-popover@1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4tqZEl9w95R5mlZ/sFdgBnfhCBOEPepLIurBA5kt/qaAhldJ1tNQd0ngr0ET0AHbPotT4mwxMPr7a+MA/wbK0g==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-popover@1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.0.1(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.0.1(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.1(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) aria-hidden: 1.2.2(@types/react@18.0.20)(react@18.2.0) @@ -6863,12 +13679,8 @@ packages: react-remove-scroll: 2.5.5(@types/react@18.0.20)(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-popper@0.1.3(react@18.2.0): - resolution: {integrity: sha512-2OV2YaJv7iTZexJY3HJ7B6Fs1A/3JXd3fRGU4JY0guACfGMD1C/jSgds505MKQOTiHE/quI6j3/q8yfzFjJR9g==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-popper@0.1.3(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/popper': 0.1.0 @@ -6880,20 +13692,15 @@ packages: '@radix-ui/react-use-size': 0.1.0(react@18.2.0) '@radix-ui/rect': 0.1.1 react: 18.2.0 - dev: false - /@radix-ui/react-popper@1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-k2dDd+1Wl0XWAMs9ZvAxxYsB9sOsEhrFQV4CINd7IUZf0wfdye4OHen9siwxvZImbzhgVeKTJi68OQmPRvVdMg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-popper@1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@floating-ui/react-dom': 0.7.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 0.7.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) '@radix-ui/react-use-size': 1.0.0(react@18.2.0) @@ -6902,20 +13709,15 @@ packages: react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-popper@1.0.1(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-J4Vj7k3k+EHNWgcKrE+BLlQfpewxA7Zd76h5I0bIa+/EqaIZ3DuwrbPj49O3wqN+STnXsBuxiHLiF0iU3yfovw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-popper@1.0.1(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@floating-ui/react-dom': 0.7.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@floating-ui/react-dom': 0.7.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-arrow': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) '@radix-ui/react-use-size': 1.0.0(react@18.2.0) @@ -6924,181 +13726,112 @@ packages: react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-portal@0.1.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-DrV+sPYLs0HhmX5/b7yRT6nLM9Nl6FtQe2KUG+46kiCOKQ+0XzNMO5hmeQtyq0mRf/qlC02rFu6OMsWpIqVsJg==} - peerDependencies: - react: ^16.8 || ^17.0 - react-dom: ^16.8 || ^17.0 + '@radix-ui/react-portal@0.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-primitive': 0.1.3(react@18.2.0) '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-portal@0.1.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-MO0wRy2eYRTZ/CyOri9NANCAtAtq89DEtg90gicaTlkCfdqCLEBsLb+/q66BZQTr3xX/Vq01nnVfc/TkCqoqvw==} - peerDependencies: - react: ^16.8 || ^17.0 - react-dom: ^16.8 || ^17.0 + '@radix-ui/react-portal@0.1.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-primitive': 0.1.4(react@18.2.0) '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-portal@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-portal@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-portal@1.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-NY2vUWI5WENgAT1nfC6JS7RU5xRYBfjZVLq0HmgEN1Ezy3rk/UruMV4+Rd0F40PEaFC5SrLS1ixYvcYIQrb4Ig==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-portal@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-presence@0.1.1(react@18.2.0): - resolution: {integrity: sha512-LsL+NcWDpFUAYCmXeH02o4pgqcSLpwxP84UIjCtpIKrsPe2vLuhcp79KC/jZJeXz+of2lUpMAxpM+eCpxFZtlg==} - peerDependencies: - react: '>=16.8' + '@radix-ui/react-presence@0.1.1(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) '@radix-ui/react-use-layout-effect': 0.1.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-presence@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-presence@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-primitive@0.1.3(react@18.2.0): - resolution: {integrity: sha512-fcyADaaAx2jdqEDLsTs6aX50S3L1c9K9CC6XMpJpuXFJCU4n9PGTFDZRtY2gAoXXoRCPIBsklCopSmGb6SsDjQ==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-primitive@0.1.3(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-slot': 0.1.2(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-primitive@0.1.4(react@18.2.0): - resolution: {integrity: sha512-6gSl2IidySupIMJFjYnDIkIWRyQdbu/AHK7rbICPani+LW4b0XdxBXc46og/iZvuwW8pjCS8I2SadIerv84xYA==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-primitive@0.1.4(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-slot': 0.1.2(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-primitive@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-primitive@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-slot': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-primitive@1.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-primitive@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-slot': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-roving-focus@1.0.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lHvO4MhvoWpeNbiJAoyDsEtbKqP2jkkdwsMVJ3kfqbkC71J/aXE6Th6gkZA1xHEqSku+t+UgoDjvE7Z3gsBpcg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-roving-focus@1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-collection': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) '@radix-ui/react-direction': 1.0.0(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/react-slot@0.1.2(react@18.2.0): - resolution: {integrity: sha512-ADkqfL+agEzEguU3yS26jfB50hRrwf7U4VTwAOZEmi/g+ITcBWe12yM46ueS/UCIMI9Py+gFUaAdxgxafFvY2Q==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-slot@0.1.2(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 0.1.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-slot@1.0.0(react@18.2.0): - resolution: {integrity: sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-slot@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-slot@1.0.1(react@18.2.0): - resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-slot@1.0.1(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-tooltip@0.1.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-0uaRpRmTCQo5yMUkDpv4LEDnaQDoeLXcNNhZonCZdbZBQ7ntvjURIWIigq1/pXZp0UX7oPpFzsXD9jUp8JT0WA==} - peerDependencies: - react: ^16.8 || ^17.0 - react-dom: ^16.8 || ^17.0 + '@radix-ui/react-tooltip@0.1.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 0.1.0 @@ -7106,7 +13839,7 @@ packages: '@radix-ui/react-context': 0.1.1(react@18.2.0) '@radix-ui/react-id': 0.1.4(react@18.2.0) '@radix-ui/react-popper': 0.1.3(react@18.2.0) - '@radix-ui/react-portal': 0.1.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 0.1.3(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-presence': 0.1.1(react@18.2.0) '@radix-ui/react-primitive': 0.1.3(react@18.2.0) '@radix-ui/react-slot': 0.1.2(react@18.2.0) @@ -7115,329 +13848,201 @@ packages: '@radix-ui/react-use-previous': 0.1.0(react@18.2.0) '@radix-ui/react-use-rect': 0.1.1(react@18.2.0) '@radix-ui/react-visually-hidden': 0.1.3(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-tooltip@1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-11gUlok2rv5mu+KBtxniOKKNKjqC/uTbgFHWoQdbF46vMV+zjDaBvCtVDK9+MTddlpmlisGPGvvojX7Qm0yr+g==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + + '@radix-ui/react-tooltip@1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/primitive': 1.0.0 '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.2(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.0.1(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popper': 1.0.1(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-portal': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-slot': 1.0.1(react@18.2.0) '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /@radix-ui/react-use-callback-ref@0.1.0(react@18.2.0): - resolution: {integrity: sha512-Va041McOFFl+aV+sejvl0BS2aeHx86ND9X/rVFmEFQKTXCp6xgUK0NGUAGcgBlIjnJSbMYPGEk1xKSSlVcN2Aw==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-callback-ref@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0): - resolution: {integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-callback-ref@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-use-controllable-state@0.1.0(react@18.2.0): - resolution: {integrity: sha512-zv7CX/PgsRl46a52Tl45TwqwVJdmqnlQEQhaYMz/yBOD2sx2gCkCFSoF/z9mpnYWmS6DTLNTg5lIps3fV6EnXg==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-controllable-state@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-callback-ref': 0.1.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0): - resolution: {integrity: sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-controllable-state@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-use-escape-keydown@0.1.0(react@18.2.0): - resolution: {integrity: sha512-tDLZbTGFmvXaazUXXv8kYbiCcbAE8yKgng9s95d8fCO+Eundv0Jngbn/hKPhDDs4jj9ChwRX5cDDnlaN+ugYYQ==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-escape-keydown@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-callback-ref': 0.1.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0): - resolution: {integrity: sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-escape-keydown@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-use-escape-keydown@1.0.2(react@18.2.0): - resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-escape-keydown@1.0.2(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-use-layout-effect@0.1.0(react@18.2.0): - resolution: {integrity: sha512-+wdeS51Y+E1q1Wmd+1xSSbesZkpVj4jsg0BojCbopWvgq5iBvixw5vgemscdh58ep98BwUbsFYnrywFhV9yrVg==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-layout-effect@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0): - resolution: {integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-layout-effect@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-use-previous@0.1.0(react@18.2.0): - resolution: {integrity: sha512-0fxNc33rYnCzDMPSiSnfS8YklnxQo8WqbAQXPAgIaaA1jRu2qFB916PL4qCIW+avcAAqFD38vWhqDqcVmBharA==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-previous@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-use-rect@0.1.1(react@18.2.0): - resolution: {integrity: sha512-kHNNXAsP3/PeszEmM/nxBBS9Jbo93sO+xuMTcRfwzXsmxT5gDXQzAiKbZQ0EecCPtJIzqvr7dlaQi/aP1PKYqQ==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-rect@0.1.1(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/rect': 0.1.1 react: 18.2.0 - dev: false - /@radix-ui/react-use-rect@1.0.0(react@18.2.0): - resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-rect@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/rect': 1.0.0 react: 18.2.0 - dev: false - /@radix-ui/react-use-size@0.1.0(react@18.2.0): - resolution: {integrity: sha512-TcZAsR+BYI46w/RbaSFCRACl+Jh6mDqhu6GS2r0iuJpIVrj8atff7qtTjmMmfGtEDNEjhl7DxN3pr1nTS/oruQ==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-use-size@0.1.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /@radix-ui/react-use-size@1.0.0(react@18.2.0): - resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-use-size@1.0.0(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-visually-hidden@0.1.3(react@18.2.0): - resolution: {integrity: sha512-dPU6ZR2WQ/W9qv7E1Y8/I8ymqG+8sViU6dQQ6sfr2/8yGr0I4mmI7ywTnqXaE+YS9gHLEZHdQcEqTNESg6YfdQ==} - peerDependencies: - react: ^16.8 || ^17.0 + '@radix-ui/react-visually-hidden@0.1.3(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 '@radix-ui/react-primitive': 0.1.3(react@18.2.0) react: 18.2.0 - dev: false - /@radix-ui/react-visually-hidden@1.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-K1hJcCMfWfiYUibRqf3V8r5Drpyf7rh44jnrwAbdvI5iCCijilBBeyQv9SKidYNZIopMdCyR9FnIjkHxHN0FcQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 + '@radix-ui/react-visually-hidden@1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@babel/runtime': 7.19.4 - '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@radix-ui/rect@0.1.1: - resolution: {integrity: sha512-g3hnE/UcOg7REdewduRPAK88EPuLZtaq7sA9ouu8S+YEtnyFRI16jgv6GZYe3VMoQLL1T171ebmEPtDjyxWLzw==} + '@radix-ui/rect@0.1.1': dependencies: '@babel/runtime': 7.19.4 - dev: false - /@radix-ui/rect@1.0.0: - resolution: {integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==} + '@radix-ui/rect@1.0.0': dependencies: '@babel/runtime': 7.19.4 - dev: false - /@react-spring/animated@9.6.1(react@18.2.0): - resolution: {integrity: sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@react-spring/animated@9.6.1(react@18.2.0)': dependencies: '@react-spring/shared': 9.6.1(react@18.2.0) '@react-spring/types': 9.6.1 react: 18.2.0 - dev: false - /@react-spring/animated@9.7.1(react@18.2.0): - resolution: {integrity: sha512-EX5KAD9y7sD43TnLeTNG1MgUVpuRO1YaSJRPawHNRgUWYfILge3s85anny4S4eTJGpdp5OoFV2kx9fsfeo0qsw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@react-spring/animated@9.7.1(react@18.2.0)': dependencies: '@react-spring/shared': 9.7.1(react@18.2.0) '@react-spring/types': 9.7.1 react: 18.2.0 - dev: false - /@react-spring/core@9.6.1(react@18.2.0): - resolution: {integrity: sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@react-spring/core@9.6.1(react@18.2.0)': dependencies: '@react-spring/animated': 9.6.1(react@18.2.0) '@react-spring/rafz': 9.6.1 '@react-spring/shared': 9.6.1(react@18.2.0) '@react-spring/types': 9.6.1 react: 18.2.0 - dev: false - /@react-spring/core@9.7.1(react@18.2.0): - resolution: {integrity: sha512-8K9/FaRn5VvMa24mbwYxwkALnAAyMRdmQXrARZLcBW2vxLJ6uw9Cy3d06Z8M12kEqF2bDlccaCSDsn2bSz+Q4A==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@react-spring/core@9.7.1(react@18.2.0)': dependencies: '@react-spring/animated': 9.7.1(react@18.2.0) '@react-spring/rafz': 9.7.1 '@react-spring/shared': 9.7.1(react@18.2.0) '@react-spring/types': 9.7.1 react: 18.2.0 - dev: false - /@react-spring/rafz@9.6.1: - resolution: {integrity: sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ==} - dev: false + '@react-spring/rafz@9.6.1': {} - /@react-spring/rafz@9.7.1: - resolution: {integrity: sha512-JSsrRfbEJvuE3w/uvU3mCTuWwpQcBXkwoW14lBgzK9XJhuxmscGo59AgJUpFkGOiGAVXFBGB+nEXtSinFsopgw==} - dev: false + '@react-spring/rafz@9.7.1': {} - /@react-spring/shared@9.6.1(react@18.2.0): - resolution: {integrity: sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@react-spring/shared@9.6.1(react@18.2.0)': dependencies: '@react-spring/rafz': 9.6.1 '@react-spring/types': 9.6.1 react: 18.2.0 - dev: false - /@react-spring/shared@9.7.1(react@18.2.0): - resolution: {integrity: sha512-R2kZ+VOO6IBeIAYTIA3C1XZ0ZVg/dDP5FKtWaY8k5akMer9iqf5H9BU0jyt3Qtxn0qQY7whQdf6MTcWtKeaawg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@react-spring/shared@9.7.1(react@18.2.0)': dependencies: '@react-spring/rafz': 9.7.1 '@react-spring/types': 9.7.1 react: 18.2.0 - dev: false - /@react-spring/three@9.6.1(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA==} - peerDependencies: - '@react-three/fiber': '>=6.0' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - three: '>=0.126' + '@react-spring/three@9.6.1(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1)': dependencies: '@react-spring/animated': 9.6.1(react@18.2.0) '@react-spring/core': 9.6.1(react@18.2.0) '@react-spring/shared': 9.6.1(react@18.2.0) '@react-spring/types': 9.6.1 - '@react-three/fiber': 8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) react: 18.2.0 three: 0.150.1 - dev: false - /@react-spring/three@9.7.1(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-5leUe0PDwIIw1M3GN3788zwTY4Ykyy+kNvQmg9+Hqs1DN3T8J1ovRTGwqWfGAu4ApTta9p5BH7SWNxxt3NO59Q==} - peerDependencies: - '@react-three/fiber': '>=6.0' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - three: '>=0.126' + '@react-spring/three@9.7.1(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1)': dependencies: '@react-spring/animated': 9.7.1(react@18.2.0) '@react-spring/core': 9.7.1(react@18.2.0) '@react-spring/shared': 9.7.1(react@18.2.0) '@react-spring/types': 9.7.1 - '@react-three/fiber': 8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) react: 18.2.0 three: 0.150.1 - dev: false - /@react-spring/types@9.6.1: - resolution: {integrity: sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q==} - dev: false + '@react-spring/types@9.6.1': {} - /@react-spring/types@9.7.1: - resolution: {integrity: sha512-yBcyfKUeZv9wf/ZFrQszvhSPuDx6Py6yMJzpMnS+zxcZmhXPeOCKZSHwqrUz1WxvuRckUhlgb7eNI/x5e1e8CA==} - dev: false + '@react-spring/types@9.7.1': {} - /@react-three/drei@9.57.0(@react-three/fiber@8.11.9)(@types/three@0.149.0)(react-dom@18.2.0)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-jlGnzJ8zJdfFof8HtGGY7ANKvuupK81V0YX+lc4aayIlVFrN4Pi0GvpsR7+vhpkyPfxQ0qOOE6HWBqhfBm8EIg==} - peerDependencies: - '@react-three/fiber': '>=8.0' - react: '>=18.0' - react-dom: '>=18.0' - three: '>=0.137' - peerDependenciesMeta: - react-dom: - optional: true + '@react-three/drei@9.57.0(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(@types/three@0.149.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1)': dependencies: '@babel/runtime': 7.19.4 - '@react-spring/three': 9.6.1(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1) - '@react-three/fiber': 8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-spring/three': 9.6.1(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) '@use-gesture/react': 10.2.24(react@18.2.0) camera-controls: 2.3.1(three@0.150.1) detect-gpu: 5.0.14 @@ -7449,7 +14054,6 @@ packages: meshline: 3.1.6(three@0.150.1) react: 18.2.0 react-composer: 5.0.3(react@18.2.0) - react-dom: 18.2.0(react@18.2.0) react-merge-refs: 1.1.0 stats.js: 0.17.0 suspend-react: 0.0.8(react@18.2.0) @@ -7459,354 +14063,210 @@ packages: troika-three-text: 0.47.1(three@0.150.1) utility-types: 3.10.0 zustand: 3.7.2(react@18.2.0) + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - '@types/three' - dev: false - /@react-three/fiber@8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-5vZBlbdy+QbNIIjohERs1NL59LOo6XQwM4x4jjV1PKc5KkSy+73Y+/tQGdz6muEkbeOCt4TeM2KtcFjoAdjl1g==} - peerDependencies: - expo: '>=43.0' - expo-asset: '>=8.4' - expo-gl: '>=11.0' - react: '>=18.0' - react-dom: '>=18.0' - react-native: '>=0.64' - three: '>=0.133' - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true + '@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1)': dependencies: '@babel/runtime': 7.19.4 '@types/react-reconciler': 0.26.7 its-fine: 1.0.10(react@18.2.0) react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) react-reconciler: 0.27.0(react@18.2.0) - react-use-measure: 2.1.1(react-dom@18.2.0)(react@18.2.0) + react-use-measure: 2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) scheduler: 0.21.0 suspend-react: 0.0.8(react@18.2.0) three: 0.150.1 zustand: 3.7.2(react@18.2.0) - dev: false + optionalDependencies: + react-dom: 18.2.0(react@18.2.0) - /@react-three/lightmap@0.0.8(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-KrsySqF8ghgsnZqn53+amD3PNAT5vOTWn3hj4yT9cytq1D/y02KHnp2D3kNk3RBpf0S1X4n19dBHlIQDb48yWw==} - engines: {node: '>=10'} - peerDependencies: - '@react-three/fiber': '>=6.0.0' - react: '>=16' - three: '>=0.128.0' + '@react-three/lightmap@0.0.8(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1)': dependencies: - '@react-three/fiber': 8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) potpack: 1.0.2 react: 18.2.0 three: 0.150.1 - dev: false - /@react-three/postprocessing@2.7.0(@react-three/fiber@8.11.9)(react@18.2.0)(three@0.150.1): - resolution: {integrity: sha512-lJfV8GYp+L1SlGRcl8QPUg9QMdO+8ojW2kfaEc/MuvoI4rX3TRhVd3qFjjF++0bBmzt8LeQpDHCOHFAaT3MNYA==} - peerDependencies: - '@react-three/fiber': '>=7.0' - react: '>=17.0' - three: '>=0.136.0' + '@react-three/postprocessing@2.7.0(@react-three/fiber@8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1))(react@18.2.0)(three@0.150.1)': dependencies: - '@react-three/fiber': 8.11.9(react-dom@18.2.0)(react@18.2.0)(three@0.150.1) + '@react-three/fiber': 8.11.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(three@0.150.1) postprocessing: 6.30.1(three@0.150.1) react: 18.2.0 react-merge-refs: 1.1.0 - screen-space-reflections: 2.5.0(postprocessing@6.30.1)(three@0.150.1) + screen-space-reflections: 2.5.0(postprocessing@6.30.1(three@0.150.1))(three@0.150.1) three: 0.150.1 three-stdlib: 2.21.8(three@0.150.1) - dev: false - /@rollup/rollup-android-arm-eabi@4.9.1: - resolution: {integrity: sha512-6vMdBZqtq1dVQ4CWdhFwhKZL6E4L1dV6jUjuBvsavvNJSppzi6dLBbuV+3+IyUREaj9ZFvQefnQm28v4OCXlig==} - cpu: [arm] - os: [android] - requiresBuild: true + '@rollup/rollup-android-arm-eabi@4.9.1': optional: true - /@rollup/rollup-android-arm64@4.9.1: - resolution: {integrity: sha512-Jto9Fl3YQ9OLsTDWtLFPtaIMSL2kwGyGoVCmPC8Gxvym9TCZm4Sie+cVeblPO66YZsYH8MhBKDMGZ2NDxuk/XQ==} - cpu: [arm64] - os: [android] - requiresBuild: true + '@rollup/rollup-android-arm64@4.9.1': optional: true - /@rollup/rollup-darwin-arm64@4.9.1: - resolution: {integrity: sha512-LtYcLNM+bhsaKAIGwVkh5IOWhaZhjTfNOkGzGqdHvhiCUVuJDalvDxEdSnhFzAn+g23wgsycmZk1vbnaibZwwA==} - cpu: [arm64] - os: [darwin] - requiresBuild: true + '@rollup/rollup-darwin-arm64@4.9.1': optional: true - /@rollup/rollup-darwin-x64@4.9.1: - resolution: {integrity: sha512-KyP/byeXu9V+etKO6Lw3E4tW4QdcnzDG/ake031mg42lob5tN+5qfr+lkcT/SGZaH2PdW4Z1NX9GHEkZ8xV7og==} - cpu: [x64] - os: [darwin] - requiresBuild: true + '@rollup/rollup-darwin-x64@4.9.1': optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.1: - resolution: {integrity: sha512-Yqz/Doumf3QTKplwGNrCHe/B2p9xqDghBZSlAY0/hU6ikuDVQuOUIpDP/YcmoT+447tsZTmirmjgG3znvSCR0Q==} - cpu: [arm] - os: [linux] - requiresBuild: true + '@rollup/rollup-linux-arm-gnueabihf@4.9.1': optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.1: - resolution: {integrity: sha512-u3XkZVvxcvlAOlQJ3UsD1rFvLWqu4Ef/Ggl40WAVCuogf4S1nJPHh5RTgqYFpCOvuGJ7H5yGHabjFKEZGExk5Q==} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@rollup/rollup-linux-arm64-gnu@4.9.1': optional: true - /@rollup/rollup-linux-arm64-musl@4.9.1: - resolution: {integrity: sha512-0XSYN/rfWShW+i+qjZ0phc6vZ7UWI8XWNz4E/l+6edFt+FxoEghrJHjX1EY/kcUGCnZzYYRCl31SNdfOi450Aw==} - cpu: [arm64] - os: [linux] - requiresBuild: true + '@rollup/rollup-linux-arm64-musl@4.9.1': optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.1: - resolution: {integrity: sha512-LmYIO65oZVfFt9t6cpYkbC4d5lKHLYv5B4CSHRpnANq0VZUQXGcCPXHzbCXCz4RQnx7jvlYB1ISVNCE/omz5cw==} - cpu: [riscv64] - os: [linux] - requiresBuild: true + '@rollup/rollup-linux-riscv64-gnu@4.9.1': optional: true - /@rollup/rollup-linux-x64-gnu@4.9.1: - resolution: {integrity: sha512-kr8rEPQ6ns/Lmr/hiw8sEVj9aa07gh1/tQF2Y5HrNCCEPiCBGnBUt9tVusrcBBiJfIt1yNaXN6r1CCmpbFEDpg==} - cpu: [x64] - os: [linux] - requiresBuild: true + '@rollup/rollup-linux-x64-gnu@4.9.1': optional: true - /@rollup/rollup-linux-x64-musl@4.9.1: - resolution: {integrity: sha512-t4QSR7gN+OEZLG0MiCgPqMWZGwmeHhsM4AkegJ0Kiy6TnJ9vZ8dEIwHw1LcZKhbHxTY32hp9eVCMdR3/I8MGRw==} - cpu: [x64] - os: [linux] - requiresBuild: true + '@rollup/rollup-linux-x64-musl@4.9.1': optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.1: - resolution: {integrity: sha512-7XI4ZCBN34cb+BH557FJPmh0kmNz2c25SCQeT9OiFWEgf8+dL6ZwJ8f9RnUIit+j01u07Yvrsuu1rZGxJCc51g==} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@rollup/rollup-win32-arm64-msvc@4.9.1': optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.1: - resolution: {integrity: sha512-yE5c2j1lSWOH5jp+Q0qNL3Mdhr8WuqCNVjc6BxbVfS5cAS6zRmdiw7ktb8GNpDCEUJphILY6KACoFoRtKoqNQg==} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@rollup/rollup-win32-ia32-msvc@4.9.1': optional: true - /@rollup/rollup-win32-x64-msvc@4.9.1: - resolution: {integrity: sha512-PyJsSsafjmIhVgaI1Zdj7m8BB8mMckFah/xbpplObyHfiXzKcI5UOUXRyOdHW7nz4DpMCuzLnF7v5IWHenCwYA==} - cpu: [x64] - os: [win32] - requiresBuild: true + '@rollup/rollup-win32-x64-msvc@4.9.1': optional: true - /@sideway/address@4.1.4: - resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} + '@sideway/address@4.1.4': dependencies: '@hapi/hoek': 9.3.0 - /@sideway/formula@3.0.0: - resolution: {integrity: sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==} + '@sideway/formula@3.0.0': {} - /@sideway/pinpoint@2.0.0: - resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + '@sideway/pinpoint@2.0.0': {} - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: false + '@sinclair/typebox@0.27.8': {} - /@sindresorhus/is@0.14.0: - resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} - engines: {node: '>=6'} - dev: false + '@sindresorhus/is@0.14.0': {} - /@slorber/static-site-generator-webpack-plugin@4.0.7: - resolution: {integrity: sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==} - engines: {node: '>=14'} + '@slorber/static-site-generator-webpack-plugin@4.0.7': dependencies: eval: 0.1.8 p-map: 4.0.0 webpack-sources: 3.2.3 - dev: false - /@smithy/abort-controller@2.0.14: - resolution: {integrity: sha512-zXtteuYLWbSXnzI3O6xq3FYvigYZFW8mdytGibfarLL2lxHto9L3ILtGVnVGmFZa7SDh62l39EnU5hesLN87Fw==} - engines: {node: '>=14.0.0'} + '@smithy/abort-controller@2.0.14': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/chunked-blob-reader-native@2.0.1: - resolution: {integrity: sha512-N2oCZRglhWKm7iMBu7S6wDzXirjAofi7tAd26cxmgibRYOBS4D3hGfmkwCpHdASZzwZDD8rluh0Rcqw1JeZDRw==} + '@smithy/chunked-blob-reader-native@2.0.1': dependencies: '@smithy/util-base64': 2.0.1 tslib: 2.6.2 - dev: false - /@smithy/chunked-blob-reader@2.0.0: - resolution: {integrity: sha512-k+J4GHJsMSAIQPChGBrjEmGS+WbPonCXesoqP9fynIqjn7rdOThdH8FAeCmokP9mxTYKQAKoHCLPzNlm6gh7Wg==} + '@smithy/chunked-blob-reader@2.0.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/config-resolver@2.0.19: - resolution: {integrity: sha512-JsghnQ5zjWmjEVY8TFOulLdEOCj09SjRLugrHlkPZTIBBm7PQitCFVLThbsKPZQOP7N3ME1DU1nKUc1UaVnBog==} - engines: {node: '>=14.0.0'} + '@smithy/config-resolver@2.0.19': dependencies: '@smithy/node-config-provider': 2.1.6 '@smithy/types': 2.6.0 '@smithy/util-config-provider': 2.0.0 '@smithy/util-middleware': 2.0.7 tslib: 2.6.2 - dev: false - /@smithy/credential-provider-imds@2.1.2: - resolution: {integrity: sha512-Y62jBWdoLPSYjr9fFvJf+KwTa1EunjVr6NryTEWCnwIY93OJxwV4t0qxjwdPl/XMsUkq79ppNJSEQN6Ohnhxjw==} - engines: {node: '>=14.0.0'} + '@smithy/credential-provider-imds@2.1.2': dependencies: '@smithy/node-config-provider': 2.1.6 '@smithy/property-provider': 2.0.15 '@smithy/types': 2.6.0 '@smithy/url-parser': 2.0.14 tslib: 2.6.2 - dev: false - /@smithy/eventstream-codec@2.0.14: - resolution: {integrity: sha512-g/OU/MeWGfHDygoXgMWfG/Xb0QqDnAGcM9t2FRrVAhleXYRddGOEnfanR5cmHgB9ue52MJsyorqFjckzXsylaA==} + '@smithy/eventstream-codec@2.0.14': dependencies: '@aws-crypto/crc32': 3.0.0 '@smithy/types': 2.6.0 '@smithy/util-hex-encoding': 2.0.0 tslib: 2.6.2 - dev: false - /@smithy/eventstream-serde-browser@2.0.14: - resolution: {integrity: sha512-41wmYE9smDGJi1ZXp+LogH6BR7MkSsQD91wneIFISF/mupKULvoOJUkv/Nf0NMRxWlM3Bf1Vvi9FlR2oV4KU8Q==} - engines: {node: '>=14.0.0'} + '@smithy/eventstream-serde-browser@2.0.14': dependencies: '@smithy/eventstream-serde-universal': 2.0.14 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/eventstream-serde-config-resolver@2.0.14: - resolution: {integrity: sha512-43IyRIzQ82s+5X+t/3Ood00CcWtAXQdmUIUKMed2Qg9REPk8SVIHhpm3rwewLwg+3G2Nh8NOxXlEQu6DsPUcMw==} - engines: {node: '>=14.0.0'} + '@smithy/eventstream-serde-config-resolver@2.0.14': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/eventstream-serde-node@2.0.14: - resolution: {integrity: sha512-jVh9E2qAr6DxH5tWfCAl9HV6tI0pEQ3JVmu85JknDvYTC66djcjDdhctPV2EHuKWf2kjRiFJcMIn0eercW4THA==} - engines: {node: '>=14.0.0'} + '@smithy/eventstream-serde-node@2.0.14': dependencies: '@smithy/eventstream-serde-universal': 2.0.14 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/eventstream-serde-universal@2.0.14: - resolution: {integrity: sha512-Ie35+AISNn1NmEjn5b2SchIE49pvKp4Q74bE9ME5RULWI1MgXyGkQUajWd5E6OBSr/sqGcs+rD3IjPErXnCm9g==} - engines: {node: '>=14.0.0'} + '@smithy/eventstream-serde-universal@2.0.14': dependencies: '@smithy/eventstream-codec': 2.0.14 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/fetch-http-handler@2.2.7: - resolution: {integrity: sha512-iSDBjxuH9TgrtMYAr7j5evjvkvgwLY3y+9D547uep+JNkZ1ZT+BaeU20j6I/bO/i26ilCWFImrlXTPsfQtZdIQ==} + '@smithy/fetch-http-handler@2.2.7': dependencies: '@smithy/protocol-http': 3.0.10 '@smithy/querystring-builder': 2.0.14 '@smithy/types': 2.6.0 '@smithy/util-base64': 2.0.1 tslib: 2.6.2 - dev: false - /@smithy/hash-blob-browser@2.0.15: - resolution: {integrity: sha512-HX/7GIyPUT/HDWVYe2HYQu0iRnSYpF4uZVNhAhZsObPRawk5Mv0PbyluBgIFI2DDCCKgL/tloCYYwycff1GtQg==} + '@smithy/hash-blob-browser@2.0.15': dependencies: '@smithy/chunked-blob-reader': 2.0.0 '@smithy/chunked-blob-reader-native': 2.0.1 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/hash-node@2.0.16: - resolution: {integrity: sha512-Wbi9A0PacMYUOwjAulQP90Wl3mQ6NDwnyrZQzFjDz+UzjXOSyQMgBrTkUBz+pVoYVlX3DUu24gWMZBcit+wOGg==} - engines: {node: '>=14.0.0'} + '@smithy/hash-node@2.0.16': dependencies: '@smithy/types': 2.6.0 '@smithy/util-buffer-from': 2.0.0 '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 - dev: false - /@smithy/hash-stream-node@2.0.16: - resolution: {integrity: sha512-4x24GFdeWos1Z49MC5sYdM1j+z32zcUr6oWM9Ggm3WudFAcRIcbG9uDQ1XgJ0Kl+ZTjpqLKniG0iuWvQb2Ud1A==} - engines: {node: '>=14.0.0'} + '@smithy/hash-stream-node@2.0.16': dependencies: '@smithy/types': 2.6.0 '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 - dev: false - /@smithy/invalid-dependency@2.0.14: - resolution: {integrity: sha512-d8ohpwZo9RzTpGlAfsWtfm1SHBSU7+N4iuZ6MzR10xDTujJJWtmXYHK1uzcr7rggbpUTaWyHpPFgnf91q0EFqQ==} + '@smithy/invalid-dependency@2.0.14': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/is-array-buffer@2.0.0: - resolution: {integrity: sha512-z3PjFjMyZNI98JFRJi/U0nGoLWMSJlDjAW4QUX2WNZLas5C0CmVV6LJ01JI0k90l7FvpmixjWxPFmENSClQ7ug==} - engines: {node: '>=14.0.0'} + '@smithy/is-array-buffer@2.0.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/md5-js@2.0.16: - resolution: {integrity: sha512-YhWt9aKl+EMSNXyUTUo7I01WHf3HcCkPu/Hl2QmTNwrHT49eWaY7hptAMaERZuHFH0V5xHgPKgKZo2I93DFtgQ==} + '@smithy/md5-js@2.0.16': dependencies: '@smithy/types': 2.6.0 '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 - dev: false - /@smithy/middleware-content-length@2.0.16: - resolution: {integrity: sha512-9ddDia3pp1d3XzLXKcm7QebGxLq9iwKf+J1LapvlSOhpF8EM9SjMeSrMOOFgG+2TfW5K3+qz4IAJYYm7INYCng==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-content-length@2.0.16': dependencies: '@smithy/protocol-http': 3.0.10 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/middleware-endpoint@2.2.1: - resolution: {integrity: sha512-dVDS7HNJl/wb0lpByXor6whqDbb1YlLoaoWYoelyYzLHioXOE7y/0iDwJWtDcN36/tVCw9EPBFZ3aans84jLpg==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-endpoint@2.2.1': dependencies: '@smithy/middleware-serde': 2.0.14 '@smithy/node-config-provider': 2.1.6 @@ -7815,11 +14275,8 @@ packages: '@smithy/url-parser': 2.0.14 '@smithy/util-middleware': 2.0.7 tslib: 2.6.2 - dev: false - /@smithy/middleware-retry@2.0.21: - resolution: {integrity: sha512-EZS1EXv1k6IJX6hyu/0yNQuPcPaXwG8SWljQHYueyRbOxmqYgoWMWPtfZj0xRRQ4YtLawQSpBgAeiJltq8/MPw==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-retry@2.0.21': dependencies: '@smithy/node-config-provider': 2.1.6 '@smithy/protocol-http': 3.0.10 @@ -7829,96 +14286,63 @@ packages: '@smithy/util-retry': 2.0.7 tslib: 2.6.2 uuid: 8.3.2 - dev: false - /@smithy/middleware-serde@2.0.14: - resolution: {integrity: sha512-hFi3FqoYWDntCYA2IGY6gJ6FKjq2gye+1tfxF2HnIJB5uW8y2DhpRNBSUMoqP+qvYzRqZ6ntv4kgbG+o3pX57g==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-serde@2.0.14': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/middleware-stack@2.0.8: - resolution: {integrity: sha512-7/N59j0zWqVEKExJcA14MrLDZ/IeN+d6nbkN8ucs+eURyaDUXWYlZrQmMOd/TyptcQv0+RDlgag/zSTTV62y/Q==} - engines: {node: '>=14.0.0'} + '@smithy/middleware-stack@2.0.8': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/node-config-provider@2.1.6: - resolution: {integrity: sha512-HLqTs6O78m3M3z1cPLFxddxhEPv5MkVatfPuxoVO3A+cHZanNd/H5I6btcdHy6N2CB1MJ/lihJC92h30SESsBA==} - engines: {node: '>=14.0.0'} + '@smithy/node-config-provider@2.1.6': dependencies: '@smithy/property-provider': 2.0.15 '@smithy/shared-ini-file-loader': 2.2.5 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/node-http-handler@2.1.10: - resolution: {integrity: sha512-lkALAwtN6odygIM4nB8aHDahINM6WXXjNrZmWQAh0RSossySRT2qa31cFv0ZBuAYVWeprskRk13AFvvLmf1WLw==} - engines: {node: '>=14.0.0'} + '@smithy/node-http-handler@2.1.10': dependencies: '@smithy/abort-controller': 2.0.14 '@smithy/protocol-http': 3.0.10 '@smithy/querystring-builder': 2.0.14 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/property-provider@2.0.15: - resolution: {integrity: sha512-YbRFBn8oiiC3o1Kn3a4KjGa6k47rCM9++5W9cWqYn9WnkyH+hBWgfJAckuxpyA2Hq6Ys4eFrWzXq6fqHEw7iew==} - engines: {node: '>=14.0.0'} + '@smithy/property-provider@2.0.15': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/protocol-http@3.0.10: - resolution: {integrity: sha512-6+tjNk7rXW7YTeGo9qwxXj/2BFpJTe37kTj3EnZCoX/nH+NP/WLA7O83fz8XhkGqsaAhLUPo/bB12vvd47nsmg==} - engines: {node: '>=14.0.0'} + '@smithy/protocol-http@3.0.10': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/querystring-builder@2.0.14: - resolution: {integrity: sha512-lQ4pm9vTv9nIhl5jt6uVMPludr6syE2FyJmHsIJJuOD7QPIJnrf9HhUGf1iHh9KJ4CUv21tpOU3X6s0rB6uJ0g==} - engines: {node: '>=14.0.0'} + '@smithy/querystring-builder@2.0.14': dependencies: '@smithy/types': 2.6.0 '@smithy/util-uri-escape': 2.0.0 tslib: 2.6.2 - dev: false - /@smithy/querystring-parser@2.0.14: - resolution: {integrity: sha512-+cbtXWI9tNtQjlgQg3CA+pvL3zKTAxPnG3Pj6MP89CR3vi3QMmD0SOWoq84tqZDnJCxlsusbgIXk1ngMReXo+A==} - engines: {node: '>=14.0.0'} + '@smithy/querystring-parser@2.0.14': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/service-error-classification@2.0.7: - resolution: {integrity: sha512-LLxgW12qGz8doYto15kZ4x1rHjtXl0BnCG6T6Wb8z2DI4PT9cJfOSvzbuLzy7+5I24PAepKgFeWHRd9GYy3Z9w==} - engines: {node: '>=14.0.0'} + '@smithy/service-error-classification@2.0.7': dependencies: '@smithy/types': 2.6.0 - dev: false - /@smithy/shared-ini-file-loader@2.2.5: - resolution: {integrity: sha512-LHA68Iu7SmNwfAVe8egmjDCy648/7iJR/fK1UnVw+iAOUJoEYhX2DLgVd5pWllqdDiRbQQzgaHLcRokM+UFR1w==} - engines: {node: '>=14.0.0'} + '@smithy/shared-ini-file-loader@2.2.5': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/signature-v4@2.0.16: - resolution: {integrity: sha512-ilLY85xS2kZZzTb83diQKYLIYALvart0KnBaKnIRnMBHAGEio5aHSlANQoxVn0VsonwmQ3CnWhnCT0sERD8uTg==} - engines: {node: '>=14.0.0'} + '@smithy/signature-v4@2.0.16': dependencies: '@smithy/eventstream-codec': 2.0.14 '@smithy/is-array-buffer': 2.0.0 @@ -7928,83 +14352,55 @@ packages: '@smithy/util-uri-escape': 2.0.0 '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 - dev: false - /@smithy/smithy-client@2.1.16: - resolution: {integrity: sha512-Lw67+yQSpLl4YkDLUzI2KgS8TXclXmbzSeOJUmRFS4ueT56B4pw3RZRF/SRzvgyxM/HxgkUan8oSHXCujPDafQ==} - engines: {node: '>=14.0.0'} + '@smithy/smithy-client@2.1.16': dependencies: '@smithy/middleware-stack': 2.0.8 '@smithy/types': 2.6.0 '@smithy/util-stream': 2.0.21 tslib: 2.6.2 - dev: false - /@smithy/types@2.6.0: - resolution: {integrity: sha512-PgqxJq2IcdMF9iAasxcqZqqoOXBHufEfmbEUdN1pmJrJltT42b0Sc8UiYSWWzKkciIp9/mZDpzYi4qYG1qqg6g==} - engines: {node: '>=14.0.0'} + '@smithy/types@2.6.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/url-parser@2.0.14: - resolution: {integrity: sha512-kbu17Y1AFXi5lNlySdDj7ZzmvupyWKCX/0jNZ8ffquRyGdbDZb+eBh0QnWqsSmnZa/ctyWaTf7n4l/pXLExrnw==} + '@smithy/url-parser@2.0.14': dependencies: '@smithy/querystring-parser': 2.0.14 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/util-base64@2.0.1: - resolution: {integrity: sha512-DlI6XFYDMsIVN+GH9JtcRp3j02JEVuWIn/QOZisVzpIAprdsxGveFed0bjbMRCqmIFe8uetn5rxzNrBtIGrPIQ==} - engines: {node: '>=14.0.0'} + '@smithy/util-base64@2.0.1': dependencies: '@smithy/util-buffer-from': 2.0.0 tslib: 2.6.2 - dev: false - /@smithy/util-body-length-browser@2.0.0: - resolution: {integrity: sha512-JdDuS4ircJt+FDnaQj88TzZY3+njZ6O+D3uakS32f2VNnDo3vyEuNdBOh/oFd8Df1zSZOuH1HEChk2AOYDezZg==} + '@smithy/util-body-length-browser@2.0.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/util-body-length-node@2.1.0: - resolution: {integrity: sha512-/li0/kj/y3fQ3vyzn36NTLGmUwAICb7Jbe/CsWCktW363gh1MOcpEcSO3mJ344Gv2dqz8YJCLQpb6hju/0qOWw==} - engines: {node: '>=14.0.0'} + '@smithy/util-body-length-node@2.1.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/util-buffer-from@2.0.0: - resolution: {integrity: sha512-/YNnLoHsR+4W4Vf2wL5lGv0ksg8Bmk3GEGxn2vEQt52AQaPSCuaO5PM5VM7lP1K9qHRKHwrPGktqVoAHKWHxzw==} - engines: {node: '>=14.0.0'} + '@smithy/util-buffer-from@2.0.0': dependencies: '@smithy/is-array-buffer': 2.0.0 tslib: 2.6.2 - dev: false - /@smithy/util-config-provider@2.0.0: - resolution: {integrity: sha512-xCQ6UapcIWKxXHEU4Mcs2s7LcFQRiU3XEluM2WcCjjBtQkUN71Tb+ydGmJFPxMUrW/GWMgQEEGipLym4XG0jZg==} - engines: {node: '>=14.0.0'} + '@smithy/util-config-provider@2.0.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/util-defaults-mode-browser@2.0.20: - resolution: {integrity: sha512-QJtnbTIl0/BbEASkx1MUFf6EaoWqWW1/IM90N++8NNscePvPf77GheYfpoPis6CBQawUWq8QepTP2QUSAdrVkw==} - engines: {node: '>= 10.0.0'} + '@smithy/util-defaults-mode-browser@2.0.20': dependencies: '@smithy/property-provider': 2.0.15 '@smithy/smithy-client': 2.1.16 '@smithy/types': 2.6.0 bowser: 2.11.0 tslib: 2.6.2 - dev: false - /@smithy/util-defaults-mode-node@2.0.26: - resolution: {integrity: sha512-lGFPOFCHv1ql019oegYqa54BZH7HREw6EBqjDLbAr0wquMX0BDi2sg8TJ6Eq+JGLijkZbJB73m4+aK8OFAapMg==} - engines: {node: '>= 10.0.0'} + '@smithy/util-defaults-mode-node@2.0.26': dependencies: '@smithy/config-resolver': 2.0.19 '@smithy/credential-provider-imds': 2.1.2 @@ -8013,44 +14409,29 @@ packages: '@smithy/smithy-client': 2.1.16 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/util-endpoints@1.0.5: - resolution: {integrity: sha512-K7qNuCOD5K/90MjHvHm9kJldrfm40UxWYQxNEShMFxV/lCCCRIg8R4uu1PFAxRvPxNpIdcrh1uK6I1ISjDXZJw==} - engines: {node: '>= 14.0.0'} + '@smithy/util-endpoints@1.0.5': dependencies: '@smithy/node-config-provider': 2.1.6 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/util-hex-encoding@2.0.0: - resolution: {integrity: sha512-c5xY+NUnFqG6d7HFh1IFfrm3mGl29lC+vF+geHv4ToiuJCBmIfzx6IeHLg+OgRdPFKDXIw6pvi+p3CsscaMcMA==} - engines: {node: '>=14.0.0'} + '@smithy/util-hex-encoding@2.0.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/util-middleware@2.0.7: - resolution: {integrity: sha512-tRINOTlf1G9B0ECarFQAtTgMhpnrMPSa+5j4ZEwEawCLfTFTavk6757sxhE4RY5RMlD/I3x+DCS8ZUiR8ho9Pw==} - engines: {node: '>=14.0.0'} + '@smithy/util-middleware@2.0.7': dependencies: '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/util-retry@2.0.7: - resolution: {integrity: sha512-fIe5yARaF0+xVT1XKcrdnHKTJ1Vc4+3e3tLDjCuIcE9b6fkBzzGFY7AFiX4M+vj6yM98DrwkuZeHf7/hmtVp0Q==} - engines: {node: '>= 14.0.0'} + '@smithy/util-retry@2.0.7': dependencies: '@smithy/service-error-classification': 2.0.7 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@smithy/util-stream@2.0.21: - resolution: {integrity: sha512-0BUE16d7n1x7pi1YluXJdB33jOTyBChT0j/BlOkFa9uxfg6YqXieHxjHNuCdJRARa7AZEj32LLLEPJ1fSa4inA==} - engines: {node: '>=14.0.0'} + '@smithy/util-stream@2.0.21': dependencies: '@smithy/fetch-http-handler': 2.2.7 '@smithy/node-http-handler': 2.1.10 @@ -8060,117 +14441,59 @@ packages: '@smithy/util-hex-encoding': 2.0.0 '@smithy/util-utf8': 2.0.2 tslib: 2.6.2 - dev: false - /@smithy/util-uri-escape@2.0.0: - resolution: {integrity: sha512-ebkxsqinSdEooQduuk9CbKcI+wheijxEb3utGXkCoYQkJnwTnLbH1JXGimJtUkQwNQbsbuYwG2+aFVyZf5TLaw==} - engines: {node: '>=14.0.0'} + '@smithy/util-uri-escape@2.0.0': dependencies: tslib: 2.6.2 - dev: false - /@smithy/util-utf8@2.0.2: - resolution: {integrity: sha512-qOiVORSPm6Ce4/Yu6hbSgNHABLP2VMv8QOC3tTDNHHlWY19pPyc++fBTbZPtx6egPXi4HQxKDnMxVxpbtX2GoA==} - engines: {node: '>=14.0.0'} + '@smithy/util-utf8@2.0.2': dependencies: '@smithy/util-buffer-from': 2.0.0 tslib: 2.6.2 - dev: false - /@smithy/util-waiter@2.0.14: - resolution: {integrity: sha512-Q6gSz4GUNjNGhrfNg+2Mjy+7K4pEI3r82x1b/+3dSc03MQqobMiUrRVN/YK/4nHVagvBELCoXsiHAFQJNQ5BeA==} - engines: {node: '>=14.0.0'} + '@smithy/util-waiter@2.0.14': dependencies: '@smithy/abort-controller': 2.0.14 '@smithy/types': 2.6.0 tslib: 2.6.2 - dev: false - /@stitches/react@1.2.8(react@18.2.0): - resolution: {integrity: sha512-9g9dWI4gsSVe8bNLlb+lMkBYsnIKCZTmvqvDG+Avnn69XfmHZKiaMrx7cgTaddq7aTPPmXiTsbFcUy0xgI4+wA==} - peerDependencies: - react: '>= 16.3.0' + '@stitches/react@1.2.8(react@18.2.0)': dependencies: react: 18.2.0 - dev: false - /@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-remove-jsx-attribute@6.5.0(@babel/core@7.22.5): - resolution: {integrity: sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-attribute@6.5.0(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-remove-jsx-empty-expression@6.5.0(@babel/core@7.22.5): - resolution: {integrity: sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-remove-jsx-empty-expression@6.5.0(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==} - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 - dev: false - /@svgr/babel-preset@6.5.1(@babel/core@7.22.5): - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==} - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@svgr/babel-preset@6.5.1(@babel/core@7.22.5)': dependencies: '@babel/core': 7.22.5 '@svgr/babel-plugin-add-jsx-attribute': 6.5.1(@babel/core@7.22.5) @@ -8181,11 +14504,8 @@ packages: '@svgr/babel-plugin-svg-em-dimensions': 6.5.1(@babel/core@7.22.5) '@svgr/babel-plugin-transform-react-native-svg': 6.5.1(@babel/core@7.22.5) '@svgr/babel-plugin-transform-svg-component': 6.5.1(@babel/core@7.22.5) - dev: false - /@svgr/core@6.5.1: - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==} - engines: {node: '>=10'} + '@svgr/core@6.5.1': dependencies: '@babel/core': 7.22.5 '@svgr/babel-preset': 6.5.1(@babel/core@7.22.5) @@ -8194,21 +14514,13 @@ packages: cosmiconfig: 7.0.1 transitivePeerDependencies: - supports-color - dev: false - /@svgr/hast-util-to-babel-ast@6.5.1: - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==} - engines: {node: '>=10'} + '@svgr/hast-util-to-babel-ast@6.5.1': dependencies: '@babel/types': 7.22.5 entities: 4.4.0 - dev: false - /@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 + '@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1)': dependencies: '@babel/core': 7.22.5 '@svgr/babel-preset': 6.5.1(@babel/core@7.22.5) @@ -8217,23 +14529,15 @@ packages: svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - dev: false - /@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==} - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' + '@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1)': dependencies: '@svgr/core': 6.5.1 cosmiconfig: 7.0.1 deepmerge: 4.2.2 svgo: 2.8.0 - dev: false - /@svgr/webpack@6.5.1: - resolution: {integrity: sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==} - engines: {node: '>=10'} + '@svgr/webpack@6.5.1': dependencies: '@babel/core': 7.22.5 '@babel/plugin-transform-react-constant-elements': 7.18.12(@babel/core@7.22.5) @@ -8245,326 +14549,119 @@ packages: '@svgr/plugin-svgo': 6.5.1(@svgr/core@6.5.1) transitivePeerDependencies: - supports-color - dev: false - /@swc/core-android-arm-eabi@1.3.9: - resolution: {integrity: sha512-+F+sU2l49Po4tJoNtIpFwt0k1sspymvPMM+DCpnkHF1idzRiOU5NGgVzmLDjoO9AnxHa7EBJ3itN+PP2Dd06+A==} - engines: {node: '>=10'} - cpu: [arm] - os: [android] - requiresBuild: true + '@swc/core-android-arm-eabi@1.3.9': dependencies: '@swc/wasm': 1.2.122 - dev: false optional: true - /@swc/core-android-arm64@1.3.9: - resolution: {integrity: sha512-HSWdex3yd4CRefkM2WVz0nTKjpirNZnwSlghqe4ct9QAYGMiiPesYgWPAnq/PpnYfmjQse4yvEclamGiek6zDA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [android] - requiresBuild: true + '@swc/core-android-arm64@1.3.9': dependencies: '@swc/wasm': 1.2.130 - dev: false optional: true - /@swc/core-darwin-arm64@1.3.50: - resolution: {integrity: sha512-riJGLORCFOMeUccEV0hzua0iyJFks7kef+5GfcmC93SLno+LHFDnaJ4mKVXcCAmQ7GYhVTPJs9gSHIW2fO5anQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + '@swc/core-darwin-arm64@1.3.50': optional: true - /@swc/core-darwin-arm64@1.3.9: - resolution: {integrity: sha512-E7WJY1LsMJtOtUYc/JXl8qlt6USnzodWmdO1eAAOSAODEdX9AjgG3fRT94o3UcmvMrto7sxBXVExj8wG7Cxeng==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@swc/core-darwin-arm64@1.3.9': optional: true - /@swc/core-darwin-arm64@1.6.13: - resolution: {integrity: sha512-SOF4buAis72K22BGJ3N8y88mLNfxLNprTuJUpzikyMGrvkuBFNcxYtMhmomO0XHsgLDzOJ+hWzcgjRNzjMsUcQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false + '@swc/core-darwin-arm64@1.6.13': optional: true - /@swc/core-darwin-x64@1.3.50: - resolution: {integrity: sha512-XaAhpeUoAK8tOUYSXH/v35yEjIoSP6ClGV/EaqBmDuCzAPue6uJMlIAW+nTmdtqVm5ZNZy2cKtP4ZHhVlfl7xw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + '@swc/core-darwin-x64@1.3.50': optional: true - /@swc/core-darwin-x64@1.3.9: - resolution: {integrity: sha512-0+dFCAcLEBxwIO+0Nt+OT8mjPpvBMBWIuFWB1DNiUu2K73+OB0i+llzsCJFoasISHR+YJD0bGyv+8AtVuUdFAw==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@swc/core-darwin-x64@1.3.9': optional: true - /@swc/core-darwin-x64@1.6.13: - resolution: {integrity: sha512-AW8akFSC+tmPE6YQQvK9S2A1B8pjnXEINg+gGgw0KRUUXunvu1/OEOeC5L2Co1wAwhD7bhnaefi06Qi9AiwOag==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false + '@swc/core-darwin-x64@1.6.13': optional: true - /@swc/core-freebsd-x64@1.3.9: - resolution: {integrity: sha512-JbHIeklQPRBEZUfKAKt/IB/ayi7dJZ9tEGu/fDxNfk8Znu1Md+YOKRyN5FPMXfYrL5yFUXnlFOb2LX6wjNhhjQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + '@swc/core-freebsd-x64@1.3.9': dependencies: '@swc/wasm': 1.2.130 - dev: false optional: true - /@swc/core-linux-arm-gnueabihf@1.3.50: - resolution: {integrity: sha512-8hDtXs0T5biMtA3I21JQG1uxL+Hb/D2t0NZENuajVK5Vky3GXmf+ICVeQzwGzSXiyftaDgyNAvBidbKPBlNEtw==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-arm-gnueabihf@1.3.50': optional: true - /@swc/core-linux-arm-gnueabihf@1.3.9: - resolution: {integrity: sha512-Yc1G8FGXmq6yGKtu5wYCcvVWBtqU0/3FUk6zJM+7pFiivKsVHJcgWrkgLO1u6h7bgEdQIYwfM3/BbRNE5CtdnA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true + '@swc/core-linux-arm-gnueabihf@1.3.9': dependencies: '@swc/wasm': 1.2.130 - dev: false optional: true - /@swc/core-linux-arm-gnueabihf@1.6.13: - resolution: {integrity: sha512-f4gxxvDXVUm2HLYXRd311mSrmbpQF2MZ4Ja6XCQz1hWAxXdhRl1gpnZ+LH/xIfGSwQChrtLLVrkxdYUCVuIjFg==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-arm-gnueabihf@1.6.13': optional: true - /@swc/core-linux-arm64-gnu@1.3.50: - resolution: {integrity: sha512-iS908P5cNTHWus4QefSg2jn4lDYcl15sN1Fvx8fQgqYQra2O9CsR8lXBJYkvllykkzoKvWfcOLRCTquz3vsnVQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-arm64-gnu@1.3.50': optional: true - /@swc/core-linux-arm64-gnu@1.3.9: - resolution: {integrity: sha512-PrBjmPIMhoQLCpfaZl2b1cCXnaNPddQB/ssMVqQ6eXChBJfcv14M5BjxtI2ORi4HoEDlsbX+k50sL666M3lnBw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-arm64-gnu@1.3.9': optional: true - /@swc/core-linux-arm64-gnu@1.6.13: - resolution: {integrity: sha512-Nf/eoW2CbG8s+9JoLtjl9FByBXyQ5cjdBsA4efO7Zw4p+YSuXDgc8HRPC+E2+ns0praDpKNZtLvDtmF2lL+2Gg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-arm64-gnu@1.6.13': optional: true - /@swc/core-linux-arm64-musl@1.3.50: - resolution: {integrity: sha512-ysh8MeaWjGqVwIPCDUhUOr4oczIx5qb8vFBoegI+SOUfcpWik22/+hG25LWzZY6PwAtqUGkhsJt/+5dY4IMhEA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-arm64-musl@1.3.50': optional: true - /@swc/core-linux-arm64-musl@1.3.9: - resolution: {integrity: sha512-jJT56vt81o2N3O2nXp+MZGM6mbgkNx6lvvRT6yISW29fLM6NHBXmkGcjaWOD9VFJDRmu/MtFxbElPxr6ikrFYQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-arm64-musl@1.3.9': optional: true - /@swc/core-linux-arm64-musl@1.6.13: - resolution: {integrity: sha512-2OysYSYtdw79prJYuKIiux/Gj0iaGEbpS2QZWCIY4X9sGoETJ5iMg+lY+YCrIxdkkNYd7OhIbXdYFyGs/w5LDg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-arm64-musl@1.6.13': optional: true - /@swc/core-linux-x64-gnu@1.3.50: - resolution: {integrity: sha512-Ci4LQaGIPweWNVWgR2f47nrYEfq7002Pj6WWKGrnO6g+k5cwR3izxHMOnZhcKyAD3cWOS904i/GbfgXs2wBCDQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-x64-gnu@1.3.50': optional: true - /@swc/core-linux-x64-gnu@1.3.9: - resolution: {integrity: sha512-60ZreTvrJk3N7xvPzQeQJDePsXUmSUZkKD6lc0xzug4bv53NyUIQ8gH8nzVsV++D9NZeVxXp6WqqFLcgt7yEDQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-x64-gnu@1.3.9': optional: true - /@swc/core-linux-x64-gnu@1.6.13: - resolution: {integrity: sha512-PkR4CZYJNk5hcd2+tMWBpnisnmYsUzazI1O5X7VkIGFcGePTqJ/bWlfUIVVExWxvAI33PQFzLbzmN5scyIUyGQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-x64-gnu@1.6.13': optional: true - /@swc/core-linux-x64-musl@1.3.50: - resolution: {integrity: sha512-SEXOhGjmC4rdBeucCvNmtO2vflUEhkmWLfqvkalHYDbPMA/gwLSoYu3D85u5XqB8DatDi4TOCUx80IR1b/vDBQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + '@swc/core-linux-x64-musl@1.3.50': optional: true - /@swc/core-linux-x64-musl@1.3.9: - resolution: {integrity: sha512-UBApPfUSP+w6ye6V1oT4EGh3LFCFrZaQsC1CkTuiYXXSmQMzkYE0Jzegn3R7MHWCJSneRwXRTKrkdhrNBUqWKA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-x64-musl@1.3.9': optional: true - /@swc/core-linux-x64-musl@1.6.13: - resolution: {integrity: sha512-OdsY7wryTxCKwGQcwW9jwWg3cxaHBkTTHi91+5nm7hFPpmZMz1HivJrWAMwVE7iXFw+M4l6ugB/wCvpYrUAAjA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false + '@swc/core-linux-x64-musl@1.6.13': optional: true - /@swc/core-win32-arm64-msvc@1.3.50: - resolution: {integrity: sha512-DPsJ2r9mYU8VzF9vhK323psyE8modj5be9M9diOsqF58Fu9ARtOfuulY+eiS5e41ya2XM/H2N/qOfsA+h2KRcg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + '@swc/core-win32-arm64-msvc@1.3.50': optional: true - /@swc/core-win32-arm64-msvc@1.3.9: - resolution: {integrity: sha512-4FQSalXbbnqTLVGRljRnw/bJ99Jwj1WnXz/aJM/SVL8S9Zbc82+3v+wXL/9NGwaAndu2QUkb2KPYNAHvB7PCdw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true + '@swc/core-win32-arm64-msvc@1.3.9': dependencies: '@swc/wasm': 1.2.130 - dev: false optional: true - /@swc/core-win32-arm64-msvc@1.6.13: - resolution: {integrity: sha512-ap6uNmYjwk9M/+bFEuWRNl3hq4VqgQ/Lk+ID/F5WGqczNr0L7vEf+pOsRAn0F6EV+o/nyb3ePt8rLhE/wjHpPg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false + '@swc/core-win32-arm64-msvc@1.6.13': optional: true - /@swc/core-win32-ia32-msvc@1.3.50: - resolution: {integrity: sha512-2iyzHLat0C93S3XLp7QJ6RTA9Md+EcPl2fq1S/m2EZqofcq7wu5SuywaXoF89xOibOJBnWe6KwOnOFWFaXrPjQ==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true + '@swc/core-win32-ia32-msvc@1.3.50': optional: true - /@swc/core-win32-ia32-msvc@1.3.9: - resolution: {integrity: sha512-ZkTw1Cm+b2QBf/NjkJJbocvgT0NWdfPQL0OyMkuTAinRzfrMmq/lmshjnqj3ysFVeI4uuJTNemiT6mivpLmuBw==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true + '@swc/core-win32-ia32-msvc@1.3.9': dependencies: '@swc/wasm': 1.2.130 - dev: false optional: true - /@swc/core-win32-ia32-msvc@1.6.13: - resolution: {integrity: sha512-IJ8KH4yIUHTnS/U1jwQmtbfQals7zWPG0a9hbEfIr4zI0yKzjd83lmtS09lm2Q24QBWOCFGEEbuZxR4tIlvfzA==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false + '@swc/core-win32-ia32-msvc@1.6.13': optional: true - /@swc/core-win32-x64-msvc@1.3.50: - resolution: {integrity: sha512-iFRU2Y5DVIEdjaWnlLij8QQBM5Q91UJotNNgzuevPSIOhOyhF6V2AQS1QC4mfkPCy3Bw0GrZDChu3GcuBj9Rzw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + '@swc/core-win32-x64-msvc@1.3.50': optional: true - /@swc/core-win32-x64-msvc@1.3.9: - resolution: {integrity: sha512-moKi2prCKzYnXXlrLf5nwAN4uGSm4YpsW2xzYiZWJJDRqu74VoUWoDkG25jalHTfN/PSBQg4dkFWhhUe89JJVw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@swc/core-win32-x64-msvc@1.3.9': optional: true - /@swc/core-win32-x64-msvc@1.6.13: - resolution: {integrity: sha512-f6/sx6LMuEnbuxtiSL/EkR0Y6qUHFw1XVrh6rwzKXptTipUdOY+nXpKoh+1UsBm/r7H0/5DtOdrn3q5ZHbFZjQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false + '@swc/core-win32-x64-msvc@1.6.13': optional: true - /@swc/core@1.3.50: - resolution: {integrity: sha512-soTAHlwkI8zukR9KftWZ0gZ7HKU99B/C3CtBxzSI3N23QG+EfSSOgrYARfuZk5g4yLWpsU0rEkojd78vixqkwg==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true + '@swc/core@1.3.50': optionalDependencies: '@swc/core-darwin-arm64': 1.3.50 '@swc/core-darwin-x64': 1.3.50 @@ -8576,13 +14673,8 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.50 '@swc/core-win32-ia32-msvc': 1.3.50 '@swc/core-win32-x64-msvc': 1.3.50 - dev: true - /@swc/core@1.3.9: - resolution: {integrity: sha512-PCRCO9vIoEX3FyS3z/FkWVYJzuspUq0LLaWdK3L30+KQDtH29K+LQdRc2Dzin2MU5MpY4bSHydAwl9M6cmZ9OA==} - engines: {node: '>=10'} - hasBin: true - requiresBuild: true + '@swc/core@1.3.9': optionalDependencies: '@swc/core-android-arm-eabi': 1.3.9 '@swc/core-android-arm64': 1.3.9 @@ -8597,17 +14689,8 @@ packages: '@swc/core-win32-arm64-msvc': 1.3.9 '@swc/core-win32-ia32-msvc': 1.3.9 '@swc/core-win32-x64-msvc': 1.3.9 - dev: false - /@swc/core@1.6.13: - resolution: {integrity: sha512-eailUYex6fkfaQTev4Oa3mwn0/e3mQU4H8y1WPuImYQESOQDtVrowwUGDSc19evpBbHpKtwM+hw8nLlhIsF+Tw==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': '*' - peerDependenciesMeta: - '@swc/helpers': - optional: true + '@swc/core@1.6.13': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.9 @@ -8622,42 +14705,24 @@ packages: '@swc/core-win32-arm64-msvc': 1.6.13 '@swc/core-win32-ia32-msvc': 1.6.13 '@swc/core-win32-x64-msvc': 1.6.13 - dev: false - /@swc/counter@0.1.3: - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - dev: false + '@swc/counter@0.1.3': {} - /@swc/types@0.1.9: - resolution: {integrity: sha512-qKnCno++jzcJ4lM4NTfYifm1EFSCeIfKiAHAfkENZAV5Kl9PjJIyd2yeeVv6c/2CckuLyv2NmRC5pv6pm2WQBg==} + '@swc/types@0.1.9': dependencies: '@swc/counter': 0.1.3 - dev: false - /@swc/wasm@1.2.122: - resolution: {integrity: sha512-sM1VCWQxmNhFtdxME+8UXNyPNhxNu7zdb6ikWpz0YKAQQFRGT5ThZgJrubEpah335SUToNg8pkdDF7ibVCjxbQ==} - requiresBuild: true - dev: false + '@swc/wasm@1.2.122': optional: true - /@swc/wasm@1.2.130: - resolution: {integrity: sha512-rNcJsBxS70+pv8YUWwf5fRlWX6JoY/HJc25HD/F8m6Kv7XhJdqPPMhyX6TKkUBPAG7TWlZYoxa+rHAjPy4Cj3Q==} - requiresBuild: true - dev: false + '@swc/wasm@1.2.130': optional: true - /@szmarczak/http-timer@1.1.2: - resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} - engines: {node: '>=6'} + '@szmarczak/http-timer@1.1.2': dependencies: defer-to-connect: 1.1.3 - dev: false - /@tldraw/core@1.20.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-DEeu64TvgttifJPt51hFYrzc6fwpYpjDMcvlqN6RZ4CfQftv9ZaZJA2KWbqf9EQGJT01ujYH9UM6MdkWp3lTyg==} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + '@tldraw/core@1.20.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@tldraw/intersect': 1.8.0 '@tldraw/vec': 1.8.0 @@ -8665,29 +14730,22 @@ packages: perfect-freehand: 1.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /@tldraw/intersect@1.8.0: - resolution: {integrity: sha512-0UarshNpyq2+O4o0xHMJIBgF0E630mes5CkMoO+D5xgYppSBIkeqYDcv0ujsmAhMKX1O6Y0ShuuHeflBEULUoQ==} + '@tldraw/intersect@1.8.0': dependencies: '@tldraw/vec': 1.8.0 - dev: false - /@tldraw/tldraw@1.26.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-quNY068Nq6geN4oGvTyGBjILYMi/XpaV8DTPes/JFWxqKxfOLlj9hsziwug+zIjPDa2k9EO4Q+yc0+z1RSFI9A==} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + '@tldraw/tldraw@1.26.2(@types/react@18.0.20)(immer@9.0.16)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.4.2)': dependencies: - '@radix-ui/react-alert-dialog': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-context-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-dialog': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-dropdown-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-alert-dialog': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-context-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dialog': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-dropdown-menu': 1.0.0(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@radix-ui/react-icons': 1.1.1(react@18.2.0) - '@radix-ui/react-popover': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-tooltip': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popover': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tooltip': 1.0.2(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@stitches/react': 1.2.8(react@18.2.0) - '@tldraw/core': 1.20.1(react-dom@18.2.0)(react@18.2.0) + '@tldraw/core': 1.20.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@tldraw/intersect': 1.8.0 '@tldraw/vec': 1.8.0 browser-fs-access: 0.31.1 @@ -8696,459 +14754,307 @@ packages: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-error-boundary: 3.1.4(react@18.2.0) - react-hotkeys-hook: 3.4.7(react-dom@18.2.0)(react@18.2.0) + react-hotkeys-hook: 3.4.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-intl: 6.2.1(react@18.2.0)(typescript@5.4.2) tslib: 2.4.0 - zustand: 4.1.4(react@18.2.0) + zustand: 4.1.4(immer@9.0.16)(react@18.2.0) transitivePeerDependencies: - '@types/react' - immer - typescript - dev: false - /@tldraw/vec@1.8.0: - resolution: {integrity: sha512-GiS5Df3CzXY/fPBFcM0CKFERZfI4Cg1X33VPZX+NLo7Fwm/h9zu/aU24N1mG75Q9LuMnwKm7woxKr8BiUXGYCg==} - dev: false + '@tldraw/vec@1.8.0': {} - /@tokenizer/token@0.3.0: - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - dev: true + '@tokenizer/token@0.3.0': {} - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} + '@tootallnate/once@2.0.0': {} - /@tootallnate/quickjs-emscripten@0.23.0: - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} - dev: true + '@tootallnate/quickjs-emscripten@0.23.0': {} - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - dev: false + '@trysound/sax@0.2.0': {} - /@tsconfig/docusaurus@1.0.6: - resolution: {integrity: sha512-1QxDaP54hpzM6bq9E+yFEo4F9WbWHhsDe4vktZXF/iDlc9FqGr9qlg+3X/nuKQXx8QxHV7ue8NXFazzajsxFBA==} - dev: true + '@tsconfig/docusaurus@1.0.6': {} - /@types/async-lock@1.3.0: - resolution: {integrity: sha512-Z93wDSYW9aMgPR5t+7ouwTvy91Vp3M0Snh4Pd3tf+caSAq5bXZaGnnH9CDbjrwgmfDkRIX0Dx8GvSDgwuoaxoA==} - dev: true + '@types/async-lock@1.3.0': {} - /@types/better-sqlite3@7.6.0: - resolution: {integrity: sha512-rnSP9vY+fVsF3iJja5yRGBJV63PNBiezJlYrCkqUmQWFoB16cxAHwOkjsAYEu317miOfKaJpa65cbp0P4XJ/jw==} + '@types/better-sqlite3@7.6.0': dependencies: '@types/node': 20.11.5 - dev: true - /@types/body-parser@1.19.2: - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + '@types/body-parser@1.19.2': dependencies: '@types/connect': 3.4.35 '@types/node': 20.11.5 - /@types/bonjour@3.5.10: - resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} + '@types/bonjour@3.5.10': dependencies: '@types/node': 20.11.5 - dev: false - /@types/busboy@1.5.0: - resolution: {integrity: sha512-ncOOhwmyFDW76c/Tuvv9MA9VGYUCn8blzyWmzYELcNGDb0WXWLSmFi7hJq25YdRBYJrmMBB5jZZwUjlJe9HCjQ==} + '@types/busboy@1.5.0': dependencies: '@types/node': 20.11.5 - dev: true - /@types/connect-history-api-fallback@1.3.5: - resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + '@types/connect-history-api-fallback@1.3.5': dependencies: '@types/express-serve-static-core': 4.17.31 '@types/node': 20.11.5 - dev: false - /@types/connect@3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + '@types/connect@3.4.35': dependencies: '@types/node': 20.11.5 - /@types/cors@2.8.13: - resolution: {integrity: sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==} + '@types/cors@2.8.13': dependencies: '@types/node': 20.11.5 - dev: true - /@types/eslint-scope@3.7.4: - resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} + '@types/eslint-scope@3.7.4': dependencies: '@types/eslint': 8.4.8 '@types/estree': 1.0.1 - /@types/eslint@8.4.8: - resolution: {integrity: sha512-zUCKQI1bUCTi+0kQs5ZQzQ/XILWRLIlh15FXWNykJ+NG3TMKMVvwwC6GP3DR1Ylga15fB7iAExSzc4PNlR5i3w==} + '@types/eslint@8.4.8': dependencies: '@types/estree': 1.0.1 '@types/json-schema': 7.0.11 - /@types/estree@0.0.51: - resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + '@types/estree@0.0.51': {} - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + '@types/estree@1.0.1': {} - /@types/express-serve-static-core@4.17.31: - resolution: {integrity: sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==} + '@types/express-serve-static-core@4.17.31': dependencies: '@types/node': 20.11.5 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 - /@types/express@4.17.14: - resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} + '@types/express@4.17.14': dependencies: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.31 '@types/qs': 6.9.7 '@types/serve-static': 1.15.0 - dev: false - /@types/express@4.17.15: - resolution: {integrity: sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==} + '@types/express@4.17.15': dependencies: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.31 '@types/qs': 6.9.7 '@types/serve-static': 1.15.0 - /@types/hast@2.3.4: - resolution: {integrity: sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==} + '@types/hast@2.3.4': dependencies: '@types/unist': 2.0.6 - dev: false - /@types/history@4.7.11: - resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} + '@types/history@4.7.11': {} - /@types/hoist-non-react-statics@3.3.1: - resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} + '@types/hoist-non-react-statics@3.3.1': dependencies: '@types/react': 18.3.3 hoist-non-react-statics: 3.3.2 - dev: false - /@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==} - dev: false + '@types/html-minifier-terser@6.1.0': {} - /@types/http-proxy@1.17.9: - resolution: {integrity: sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==} + '@types/http-proxy@1.17.9': dependencies: '@types/node': 20.11.5 - dev: false - /@types/is-ci@3.0.0: - resolution: {integrity: sha512-Q0Op0hdWbYd1iahB+IFNQcWXFq4O0Q5MwQP7uN0souuQ4rPg1vEYcnIOfr1gY+M+6rc8FGoRaBO1mOOvL29sEQ==} + '@types/is-ci@3.0.0': dependencies: ci-info: 3.5.0 - dev: true - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: false + '@types/istanbul-lib-coverage@2.0.4': {} - /@types/istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} + '@types/istanbul-lib-report@3.0.0': dependencies: '@types/istanbul-lib-coverage': 2.0.4 - dev: false - /@types/istanbul-reports@3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} + '@types/istanbul-reports@3.0.1': dependencies: '@types/istanbul-lib-report': 3.0.0 - dev: false - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + '@types/json-schema@7.0.11': {} - /@types/jsonwebtoken@8.5.9: - resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} + '@types/jsonwebtoken@8.5.9': dependencies: '@types/node': 20.11.5 - dev: true - /@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + '@types/keyv@3.1.4': dependencies: '@types/node': 20.11.5 - dev: false - /@types/mdast@3.0.10: - resolution: {integrity: sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==} + '@types/mdast@3.0.10': dependencies: '@types/unist': 2.0.6 - dev: false - /@types/mime@3.0.1: - resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} + '@types/mime@3.0.1': {} - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true + '@types/minimist@1.2.2': {} - /@types/node@12.20.55: - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - dev: true + '@types/node@12.20.55': {} - /@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} - dev: false + '@types/node@17.0.45': {} - /@types/node@20.10.5: - resolution: {integrity: sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw==} + '@types/node@20.10.5': dependencies: undici-types: 5.26.5 - /@types/node@20.11.5: - resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} + '@types/node@20.11.5': dependencies: undici-types: 5.26.5 - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true + '@types/normalize-package-data@2.4.1': {} - /@types/object-hash@3.0.4: - resolution: {integrity: sha512-w4fEy2suq1bepUxHoJRCBHJz0vS5DPAYpSbcgNwOahljxwyJsiKmi8qyes2/TJc+4Avd7fsgP+ZgUuXZjPvdug==} - dev: true + '@types/object-hash@3.0.4': {} - /@types/offscreencanvas@2019.7.0: - resolution: {integrity: sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg==} - dev: false + '@types/offscreencanvas@2019.7.0': {} - /@types/parse-json@4.0.0: - resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - dev: false + '@types/parse-json@4.0.0': {} - /@types/parse5@5.0.3: - resolution: {integrity: sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==} - dev: false + '@types/parse5@5.0.3': {} - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + '@types/prop-types@15.7.5': {} - /@types/qs@6.9.7: - resolution: {integrity: sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==} + '@types/qs@6.9.7': {} - /@types/range-parser@1.2.4: - resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} + '@types/range-parser@1.2.4': {} - /@types/react-dom@18.0.11: - resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + '@types/react-dom@18.0.11': dependencies: '@types/react': 18.0.28 - dev: true - /@types/react-dom@18.0.9: - resolution: {integrity: sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==} + '@types/react-dom@18.0.9': dependencies: '@types/react': 18.0.20 - dev: false - /@types/react-dom@18.3.0: - resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + '@types/react-dom@18.3.0': dependencies: '@types/react': 18.3.3 - dev: false - /@types/react-reconciler@0.26.7: - resolution: {integrity: sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==} + '@types/react-reconciler@0.26.7': dependencies: '@types/react': 18.3.3 - dev: false - /@types/react-reconciler@0.28.2: - resolution: {integrity: sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw==} + '@types/react-reconciler@0.28.2': dependencies: '@types/react': 18.3.3 - dev: false - /@types/react-router-config@5.0.6: - resolution: {integrity: sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==} + '@types/react-router-config@5.0.6': dependencies: '@types/history': 4.7.11 '@types/react': 18.3.3 '@types/react-router': 5.1.19 - /@types/react-router-dom@5.3.3: - resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} + '@types/react-router-dom@5.3.3': dependencies: '@types/history': 4.7.11 '@types/react': 18.3.3 '@types/react-router': 5.1.19 - /@types/react-router@5.1.19: - resolution: {integrity: sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==} + '@types/react-router@5.1.19': dependencies: '@types/history': 4.7.11 '@types/react': 18.3.3 - /@types/react@18.0.20: - resolution: {integrity: sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==} + '@types/react@18.0.20': dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 csstype: 3.1.1 - /@types/react@18.0.28: - resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + '@types/react@18.0.28': dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 csstype: 3.1.1 - dev: true - /@types/react@18.3.3: - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} + '@types/react@18.3.3': dependencies: '@types/prop-types': 15.7.5 csstype: 3.1.1 - /@types/responselike@1.0.0: - resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + '@types/responselike@1.0.0': dependencies: '@types/node': 20.11.5 - dev: false - /@types/retry@0.12.0: - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} - dev: false + '@types/retry@0.12.0': {} - /@types/sax@1.2.4: - resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} + '@types/sax@1.2.4': dependencies: '@types/node': 20.11.5 - dev: false - /@types/scheduler@0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + '@types/scheduler@0.16.2': {} - /@types/semver@7.5.5: - resolution: {integrity: sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==} - dev: true + '@types/semver@7.5.5': {} - /@types/serve-index@1.9.1: - resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==} + '@types/serve-index@1.9.1': dependencies: '@types/express': 4.17.15 - dev: false - /@types/serve-static@1.15.0: - resolution: {integrity: sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==} + '@types/serve-static@1.15.0': dependencies: '@types/mime': 3.0.1 '@types/node': 20.11.5 - /@types/sockjs@0.3.33: - resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} + '@types/sockjs@0.3.33': dependencies: '@types/node': 20.11.5 - dev: false - /@types/three@0.149.0: - resolution: {integrity: sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg==} + '@types/three@0.149.0': dependencies: '@types/webxr': 0.5.1 - dev: false - /@types/unist@2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} - dev: false + '@types/unist@2.0.6': {} - /@types/use-sync-external-store@0.0.3: - resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} - dev: true + '@types/use-sync-external-store@0.0.3': {} - /@types/uuid@8.3.4: - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - dev: true + '@types/uuid@8.3.4': {} - /@types/webxr@0.5.1: - resolution: {integrity: sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ==} - dev: false + '@types/webxr@0.5.1': {} - /@types/ws@8.5.3: - resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} + '@types/ws@8.5.3': dependencies: '@types/node': 20.11.5 - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} + '@types/yargs-parser@21.0.0': {} - /@types/yargs@17.0.29: - resolution: {integrity: sha512-nacjqA3ee9zRF/++a3FUY1suHTFKZeHba2n8WeDw9cCVdmzmHpIxyzOJBcpHvvEmS8E9KqWlSnWHUkOrkhWcvA==} + '@types/yargs@17.0.29': dependencies: '@types/yargs-parser': 21.0.0 - /@types/yauzl@2.10.3: - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - requiresBuild: true + '@types/yauzl@2.10.3': dependencies: '@types/node': 20.11.5 optional: true - /@use-gesture/core@10.2.22: - resolution: {integrity: sha512-Ek0JZFYfk+hicLmoG094gm3YOuDMBNckHb988e59YOZoAkETT8dQSzT+g3QkSHSiP1m5wFXAGPSgxvOuwvGKHQ==} - dev: false + '@use-gesture/core@10.2.22': {} - /@use-gesture/core@10.2.24: - resolution: {integrity: sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q==} - dev: false + '@use-gesture/core@10.2.24': {} - /@use-gesture/react@10.2.22(react@18.2.0): - resolution: {integrity: sha512-ECo7ig16SxBE06ENIURO1woKEB6TC8qY3a0rugJjQ2f1o0Tj28xS/eYNyJuqzQB5YT0q5IrF7ZFpbx1p/5ohYA==} - peerDependencies: - react: '>= 16.8.0' + '@use-gesture/react@10.2.22(react@18.2.0)': dependencies: '@use-gesture/core': 10.2.22 react: 18.2.0 - dev: false - /@use-gesture/react@10.2.24(react@18.2.0): - resolution: {integrity: sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg==} - peerDependencies: - react: '>= 16.8.0' + '@use-gesture/react@10.2.24(react@18.2.0)': dependencies: '@use-gesture/core': 10.2.24 react: 18.2.0 - dev: false - /@vitejs/plugin-react-swc@3.3.0(vite@4.2.1): - resolution: {integrity: sha512-Ycg+n2eyCOTpn/wRy+evVo859+hw7qCj9iaX5CMny6x1fx1Uoq0xBG+a98lFtwLNGfGEnpI0F26YigRuxCRkwg==} - peerDependencies: - vite: ^4 + '@vitejs/plugin-react-swc@3.3.0(vite@4.2.1(@types/node@20.11.5)(terser@5.15.1))': dependencies: '@swc/core': 1.3.50 - vite: 4.2.1(@types/node@20.10.5) + vite: 4.2.1(@types/node@20.11.5)(terser@5.15.1) transitivePeerDependencies: - '@swc/helpers' - dev: true - /@vitejs/plugin-react-swc@3.7.0(vite@3.2.4): - resolution: {integrity: sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==} - peerDependencies: - vite: ^4 || ^5 + '@vitejs/plugin-react-swc@3.7.0(vite@3.2.4(@types/node@20.11.5)(terser@5.15.1))': dependencies: '@swc/core': 1.6.13 - vite: 3.2.4(@types/node@20.10.5) + vite: 3.2.4(@types/node@20.11.5)(terser@5.15.1) transitivePeerDependencies: - '@swc/helpers' - dev: false - /@vitejs/plugin-react@2.2.0(vite@3.2.4): - resolution: {integrity: sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^3.0.0 + '@vitejs/plugin-react@2.2.0(vite@3.2.4(@types/node@20.11.5)(terser@5.15.1))': dependencies: '@babel/core': 7.19.6 '@babel/plugin-transform-react-jsx': 7.19.0(@babel/core@7.19.6) @@ -9157,98 +15063,120 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.19.6) magic-string: 0.26.7 react-refresh: 0.14.0 - vite: 3.2.4(@types/node@20.10.5) + vite: 3.2.4(@types/node@20.11.5)(terser@5.15.1) transitivePeerDependencies: - supports-color - dev: false - /@vitest/expect@2.0.5: - resolution: {integrity: sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==} + '@vitest/expect@2.0.5': dependencies: '@vitest/spy': 2.0.5 '@vitest/utils': 2.0.5 chai: 5.1.1 tinyrainbow: 1.2.0 - /@vitest/pretty-format@2.0.5: - resolution: {integrity: sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==} + '@vitest/expect@2.1.3': dependencies: + '@vitest/spy': 2.1.3 + '@vitest/utils': 2.1.3 + chai: 5.1.1 tinyrainbow: 1.2.0 - /@vitest/runner@2.0.5: - resolution: {integrity: sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==} + '@vitest/mocker@2.1.3(@vitest/spy@2.1.3)(vite@5.0.10(@types/node@20.11.5)(terser@5.15.1))': + dependencies: + '@vitest/spy': 2.1.3 + estree-walker: 3.0.3 + magic-string: 0.30.11 + optionalDependencies: + vite: 5.0.10(@types/node@20.11.5)(terser@5.15.1) + + '@vitest/pretty-format@2.0.5': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/pretty-format@2.1.3': + dependencies: + tinyrainbow: 1.2.0 + + '@vitest/runner@2.0.5': dependencies: '@vitest/utils': 2.0.5 pathe: 1.1.2 - /@vitest/snapshot@2.0.5: - resolution: {integrity: sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==} + '@vitest/runner@2.1.3': + dependencies: + '@vitest/utils': 2.1.3 + pathe: 1.1.2 + + '@vitest/snapshot@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 magic-string: 0.30.11 pathe: 1.1.2 - /@vitest/spy@2.0.5: - resolution: {integrity: sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==} + '@vitest/snapshot@2.1.3': + dependencies: + '@vitest/pretty-format': 2.1.3 + magic-string: 0.30.11 + pathe: 1.1.2 + + '@vitest/spy@2.0.5': dependencies: tinyspy: 3.0.0 - /@vitest/utils@2.0.5: - resolution: {integrity: sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==} + '@vitest/spy@2.1.3': + dependencies: + tinyspy: 3.0.0 + + '@vitest/utils@2.0.5': dependencies: '@vitest/pretty-format': 2.0.5 estree-walker: 3.0.3 loupe: 3.1.1 tinyrainbow: 1.2.0 - /@webassemblyjs/ast@1.11.1: - resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} + '@vitest/utils@2.1.3': + dependencies: + '@vitest/pretty-format': 2.1.3 + loupe: 3.1.1 + tinyrainbow: 1.2.0 + + '@webassemblyjs/ast@1.11.1': dependencies: '@webassemblyjs/helper-numbers': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 - /@webassemblyjs/floating-point-hex-parser@1.11.1: - resolution: {integrity: sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==} + '@webassemblyjs/floating-point-hex-parser@1.11.1': {} - /@webassemblyjs/helper-api-error@1.11.1: - resolution: {integrity: sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==} + '@webassemblyjs/helper-api-error@1.11.1': {} - /@webassemblyjs/helper-buffer@1.11.1: - resolution: {integrity: sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==} + '@webassemblyjs/helper-buffer@1.11.1': {} - /@webassemblyjs/helper-numbers@1.11.1: - resolution: {integrity: sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==} + '@webassemblyjs/helper-numbers@1.11.1': dependencies: '@webassemblyjs/floating-point-hex-parser': 1.11.1 '@webassemblyjs/helper-api-error': 1.11.1 '@xtuc/long': 4.2.2 - /@webassemblyjs/helper-wasm-bytecode@1.11.1: - resolution: {integrity: sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==} + '@webassemblyjs/helper-wasm-bytecode@1.11.1': {} - /@webassemblyjs/helper-wasm-section@1.11.1: - resolution: {integrity: sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==} + '@webassemblyjs/helper-wasm-section@1.11.1': dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-buffer': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 '@webassemblyjs/wasm-gen': 1.11.1 - /@webassemblyjs/ieee754@1.11.1: - resolution: {integrity: sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==} + '@webassemblyjs/ieee754@1.11.1': dependencies: '@xtuc/ieee754': 1.2.0 - /@webassemblyjs/leb128@1.11.1: - resolution: {integrity: sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==} + '@webassemblyjs/leb128@1.11.1': dependencies: '@xtuc/long': 4.2.2 - /@webassemblyjs/utf8@1.11.1: - resolution: {integrity: sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==} + '@webassemblyjs/utf8@1.11.1': {} - /@webassemblyjs/wasm-edit@1.11.1: - resolution: {integrity: sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==} + '@webassemblyjs/wasm-edit@1.11.1': dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-buffer': 1.11.1 @@ -9259,8 +15187,7 @@ packages: '@webassemblyjs/wasm-parser': 1.11.1 '@webassemblyjs/wast-printer': 1.11.1 - /@webassemblyjs/wasm-gen@1.11.1: - resolution: {integrity: sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==} + '@webassemblyjs/wasm-gen@1.11.1': dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-wasm-bytecode': 1.11.1 @@ -9268,16 +15195,14 @@ packages: '@webassemblyjs/leb128': 1.11.1 '@webassemblyjs/utf8': 1.11.1 - /@webassemblyjs/wasm-opt@1.11.1: - resolution: {integrity: sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==} + '@webassemblyjs/wasm-opt@1.11.1': dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-buffer': 1.11.1 '@webassemblyjs/wasm-gen': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 - /@webassemblyjs/wasm-parser@1.11.1: - resolution: {integrity: sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==} + '@webassemblyjs/wasm-parser@1.11.1': dependencies: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/helper-api-error': 1.11.1 @@ -9286,191 +15211,117 @@ packages: '@webassemblyjs/leb128': 1.11.1 '@webassemblyjs/utf8': 1.11.1 - /@webassemblyjs/wast-printer@1.11.1: - resolution: {integrity: sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==} + '@webassemblyjs/wast-printer@1.11.1': dependencies: '@webassemblyjs/ast': 1.11.1 '@xtuc/long': 4.2.2 - /@webgpu/glslang@0.0.15: - resolution: {integrity: sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q==} - dev: false + '@webgpu/glslang@0.0.15': {} - /@whatwg-node/events@0.1.1: - resolution: {integrity: sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==} - engines: {node: '>=16.0.0'} - dev: false + '@whatwg-node/events@0.1.1': {} - /@whatwg-node/fetch@0.9.16: - resolution: {integrity: sha512-mqasZiUNquRe3ea9+aCAuo81BR6vq5opUKprPilIHTnrg8a21Z1T1OrI+KiMFX8OmwO5HUJe/vro47lpj2JPWQ==} - engines: {node: '>=16.0.0'} + '@whatwg-node/fetch@0.9.16': dependencies: '@whatwg-node/node-fetch': 0.5.6 urlpattern-polyfill: 10.0.0 - dev: false - /@whatwg-node/node-fetch@0.5.6: - resolution: {integrity: sha512-cmAsGMHoI0S3AHi3CmD3ma1Q234ZI2JNmXyDyM9rLtbXejBKxU3ZWdhS+mzRIAyUxZCMGlFW1tHmROv0MDdxpw==} - engines: {node: '>=16.0.0'} + '@whatwg-node/node-fetch@0.5.6': dependencies: '@kamilkisiela/fast-url-parser': 1.1.4 '@whatwg-node/events': 0.1.1 busboy: 1.6.0 fast-querystring: 1.1.2 tslib: 2.6.2 - dev: false - /@whatwg-node/server@0.9.25: - resolution: {integrity: sha512-DlPqPPcfyzh4/9Lz1fl4c5bZsGp/1wCh7B+cK8FE1bWoW7tlZkVguvGn/XnYPKthGzEIwo/fLdHwevH44z+eeg==} - engines: {node: '>=16.0.0'} + '@whatwg-node/server@0.9.25': dependencies: '@whatwg-node/fetch': 0.9.16 tslib: 2.6.2 - dev: false - /@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + '@xtuc/ieee754@1.2.0': {} - /@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@xtuc/long@4.2.2': {} - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} + abab@2.0.6: {} - /abbrev@1.1.1: - resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} - dev: false + abbrev@1.1.1: {} - /accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + accepts@1.3.8: dependencies: mime-types: 2.1.35 negotiator: 0.6.3 - dev: false - /acorn-globals@6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} + acorn-globals@6.0.0: dependencies: acorn: 7.4.1 acorn-walk: 7.2.0 - /acorn-import-assertions@1.8.0(acorn@8.8.0): - resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} - peerDependencies: - acorn: ^8 + acorn-import-assertions@1.8.0(acorn@8.8.0): dependencies: acorn: 8.8.0 - /acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} + acorn-walk@7.2.0: {} - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: false + acorn-walk@8.2.0: {} - /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn@7.4.1: {} - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn@8.11.2: {} - /acorn@8.8.0: - resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} - engines: {node: '>=0.4.0'} - hasBin: true + acorn@8.8.0: {} - /address@1.2.1: - resolution: {integrity: sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==} - engines: {node: '>= 10.0.0'} - dev: false + address@1.2.1: {} - /agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + agent-base@6.0.2: dependencies: debug: 4.3.5 transitivePeerDependencies: - supports-color - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} - engines: {node: '>= 14'} + agent-base@7.1.0: dependencies: debug: 4.3.5 transitivePeerDependencies: - supports-color - dev: true - /aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 indent-string: 4.0.0 - dev: false - /ajv-formats@2.1.1(ajv@8.11.0): - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - dependencies: + ajv-formats@2.1.1(ajv@8.11.0): + optionalDependencies: ajv: 8.11.0 - dev: false - /ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} - peerDependencies: - ajv: ^6.9.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - /ajv-keywords@5.1.0(ajv@8.11.0): - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} - peerDependencies: - ajv: ^8.8.2 + ajv-keywords@5.1.0(ajv@8.11.0): dependencies: ajv: 8.11.0 fast-deep-equal: 3.1.3 - dev: false - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 - /ajv@8.11.0: - resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} + ajv@8.11.0: dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 uri-js: 4.4.1 - dev: false - /algoliasearch-helper@3.11.1(algoliasearch@4.14.2): - resolution: {integrity: sha512-mvsPN3eK4E0bZG0/WlWJjeqe/bUD2KOEVOl0GyL/TGXn6wcpZU8NOuztGHCUKXkyg5gq6YzUakVTmnmSSO5Yiw==} - peerDependencies: - algoliasearch: '>= 3.1 < 6' + algoliasearch-helper@3.11.1(algoliasearch@4.14.2): dependencies: '@algolia/events': 4.0.1 algoliasearch: 4.14.2 - dev: false - /algoliasearch@4.14.2: - resolution: {integrity: sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==} + algoliasearch@4.14.2: dependencies: '@algolia/cache-browser-local-storage': 4.14.2 '@algolia/cache-common': 4.14.2 @@ -9486,176 +15337,94 @@ packages: '@algolia/requester-common': 4.14.2 '@algolia/requester-node-http': 4.14.2 '@algolia/transporter': 4.14.2 - dev: false - /ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-align@3.0.1: dependencies: string-width: 4.2.3 - dev: false - /ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - dev: true + ansi-colors@4.1.3: {} - /ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} - engines: {'0': node >= 0.8.0} - hasBin: true - dev: false + ansi-html-community@0.0.8: {} - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + ansi-regex@5.0.1: {} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} + ansi-regex@6.0.1: {} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + ansi-styles@6.2.1: {} - /anymatch@3.1.2: - resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} - engines: {node: '>= 8'} + anymatch@3.1.2: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: false - /aproba@2.0.0: - resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: false + aproba@2.0.0: {} - /are-we-there-yet@2.0.0: - resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} - engines: {node: '>=10'} + are-we-there-yet@2.0.0: dependencies: delegates: 1.0.0 readable-stream: 3.6.0 - dev: false - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: false + arg@5.0.2: {} - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + argparse@2.0.1: {} - /aria-hidden@1.2.2(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.9.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + aria-hidden@1.2.2(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 tslib: 2.6.2 - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - dev: false + array-back@3.1.0: {} - /array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} - dev: false + array-back@4.0.2: {} - /array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - dev: false + array-flatten@1.1.1: {} - /array-flatten@2.1.2: - resolution: {integrity: sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==} - dev: false + array-flatten@2.1.2: {} - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + array-union@2.1.0: {} - /array.prototype.flat@1.3.0: - resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==} - engines: {node: '>= 0.4'} + array.prototype.flat@1.3.0: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.4 es-shim-unscopables: 1.0.0 - dev: true - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true + arrify@1.0.1: {} - /asap@2.0.6: - resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - dev: false + asap@2.0.6: {} - /assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + assertion-error@2.0.1: {} - /assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: false + assign-symbols@1.0.0: {} - /ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} + ast-types@0.13.4: dependencies: tslib: 2.6.2 - dev: true - /async-lock@1.4.0: - resolution: {integrity: sha512-coglx5yIWuetakm3/1dsX9hxCNox22h7+V80RQOu2XUUMidtArxKoZoOtHUPuR84SycKTXzgGzAUR5hJxujyJQ==} - dev: false + async-lock@1.4.0: {} - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + asynckit@0.4.0: {} - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: false + at-least-node@1.0.0: {} - /attr-accept@2.2.2: - resolution: {integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==} - engines: {node: '>=4'} - dev: false + attr-accept@2.2.2: {} - /autoprefixer@10.4.13(postcss@8.4.16): - resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + autoprefixer@10.4.13(postcss@8.4.16): dependencies: browserslist: 4.21.4 caniuse-lite: 1.0.30001426 @@ -9664,14 +15433,8 @@ packages: picocolors: 1.0.0 postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /autoprefixer@10.4.13(postcss@8.4.21): - resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 + autoprefixer@10.4.13(postcss@8.4.21): dependencies: browserslist: 4.21.4 caniuse-lite: 1.0.30001426 @@ -9680,26 +15443,16 @@ packages: picocolors: 1.0.0 postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /axios@0.25.0: - resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==} + axios@0.25.0: dependencies: follow-redirects: 1.15.2 transitivePeerDependencies: - - debug - dev: false - - /b4a@1.6.4: - resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} - dev: true - - /babel-loader@8.2.5(@babel/core@7.19.6)(webpack@5.74.0): - resolution: {integrity: sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==} - engines: {node: '>= 8.9'} - peerDependencies: - '@babel/core': ^7.0.0 - webpack: '>=2' + - debug + + b4a@1.6.4: {} + + babel-loader@8.2.5(@babel/core@7.19.6)(webpack@5.74.0): dependencies: '@babel/core': 7.19.6 find-cache-dir: 3.3.2 @@ -9707,34 +15460,22 @@ packages: make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 5.74.0 - dev: false - /babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): - resolution: {integrity: sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==} - peerDependencies: - '@babel/core': ^7.11.6 + babel-plugin-apply-mdx-type-prop@1.6.22(@babel/core@7.12.9): dependencies: '@babel/core': 7.12.9 '@babel/helper-plugin-utils': 7.10.4 '@mdx-js/util': 1.6.22 - dev: false - /babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==} + babel-plugin-dynamic-import-node@2.3.3: dependencies: object.assign: 4.1.4 - dev: false - /babel-plugin-extract-import-names@1.6.22: - resolution: {integrity: sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==} + babel-plugin-extract-import-names@1.6.22: dependencies: '@babel/helper-plugin-utils': 7.10.4 - dev: false - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.19.6): - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.19.6): dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.19.6 @@ -9742,12 +15483,8 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.22.5): - resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.22.5): dependencies: '@babel/compat-data': 7.22.5 '@babel/core': 7.22.5 @@ -9755,179 +15492,110 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: false - /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.19.6): - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.19.6): dependencies: '@babel/core': 7.19.6 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.19.6) core-js-compat: 3.26.0 transitivePeerDependencies: - supports-color - dev: false - /babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.22.5): - resolution: {integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-plugin-polyfill-corejs3@0.6.0(@babel/core@7.22.5): dependencies: '@babel/core': 7.22.5 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.22.5) core-js-compat: 3.26.0 transitivePeerDependencies: - supports-color - dev: false - /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.19.6): - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.19.6): dependencies: '@babel/core': 7.19.6 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.19.6) transitivePeerDependencies: - supports-color - dev: false - /babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.22.5): - resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} - peerDependencies: - '@babel/core': ^7.0.0-0 + babel-plugin-polyfill-regenerator@0.4.1(@babel/core@7.22.5): dependencies: '@babel/core': 7.22.5 '@babel/helper-define-polyfill-provider': 0.3.3(@babel/core@7.22.5) transitivePeerDependencies: - supports-color - dev: false - /bail@1.0.5: - resolution: {integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==} - dev: false + bail@1.0.5: {} - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@1.0.2: {} - /bare-events@2.4.2: - resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} - requiresBuild: true - dev: true + bare-events@2.4.2: optional: true - /bare-fs@2.3.1: - resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} - requiresBuild: true + bare-fs@2.3.1: dependencies: bare-events: 2.4.2 bare-path: 2.1.3 bare-stream: 2.1.3 - dev: true optional: true - /bare-os@2.4.0: - resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} - requiresBuild: true - dev: true + bare-os@2.4.0: optional: true - /bare-path@2.1.3: - resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} - requiresBuild: true + bare-path@2.1.3: dependencies: bare-os: 2.4.0 - dev: true optional: true - /bare-stream@2.1.3: - resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} - requiresBuild: true + bare-stream@2.1.3: dependencies: streamx: 2.18.0 - dev: true optional: true - /base16@1.0.0: - resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} - dev: false + base16@1.0.0: {} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64-js@1.5.1: {} - /basic-ftp@5.0.3: - resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==} - engines: {node: '>=10.0.0'} - dev: true + basic-ftp@5.0.3: {} - /batch@0.6.1: - resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} - dev: false + batch@0.6.1: {} - /bcrypt@5.1.1: - resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==} - engines: {node: '>= 10.0.0'} - requiresBuild: true + bcrypt@5.1.1: dependencies: '@mapbox/node-pre-gyp': 1.0.11 node-addon-api: 5.1.0 transitivePeerDependencies: - encoding - supports-color - dev: false - /better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} + better-path-resolve@1.0.0: dependencies: is-windows: 1.0.2 - dev: true - /better-sqlite3@7.6.2: - resolution: {integrity: sha512-S5zIU1Hink2AH4xPsN0W43T1/AJ5jrPh7Oy07ocuW/AKYYY02GWzz9NH0nbSMn/gw6fDZ5jZ1QsHt1BXAwJ6Lg==} - requiresBuild: true + better-sqlite3@7.6.2: dependencies: bindings: 1.5.0 prebuild-install: 7.1.1 - dev: false - /bidi-js@1.0.2: - resolution: {integrity: sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==} + bidi-js@1.0.2: dependencies: require-from-string: 2.0.2 - dev: false - /big-integer@1.6.51: - resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==} - engines: {node: '>=0.6'} - dev: true + big-integer@1.6.51: {} - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: false + big.js@5.2.2: {} - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: false + binary-extensions@2.2.0: {} - /bindings@1.5.0: - resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + bindings@1.5.0: dependencies: file-uri-to-path: 1.0.0 - dev: false - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + bl@4.1.0: dependencies: buffer: 5.7.1 inherits: 2.0.4 readable-stream: 3.6.0 - dev: false - /body-parser@1.20.1: - resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.1: dependencies: bytes: 3.1.2 content-type: 1.0.4 @@ -9943,28 +15611,19 @@ packages: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - dev: false - /bonjour-service@1.0.14: - resolution: {integrity: sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==} + bonjour-service@1.0.14: dependencies: array-flatten: 2.1.2 dns-equal: 1.0.0 fast-deep-equal: 3.1.3 multicast-dns: 7.2.5 - dev: false - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - dev: false + boolbase@1.0.0: {} - /bowser@2.11.0: - resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} - dev: false + bowser@2.11.0: {} - /boxen@5.1.2: - resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} - engines: {node: '>=10'} + boxen@5.1.2: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -9974,11 +15633,8 @@ packages: type-fest: 0.20.2 widest-line: 3.1.0 wrap-ansi: 7.0.0 - dev: false - /boxen@6.2.1: - resolution: {integrity: sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + boxen@6.2.1: dependencies: ansi-align: 3.0.1 camelcase: 6.3.0 @@ -9988,111 +15644,70 @@ packages: type-fest: 2.19.0 widest-line: 4.0.1 wrap-ansi: 8.1.0 - dev: false - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} + bplist-parser@0.2.0: dependencies: big-integer: 1.6.51 - dev: true - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 - dev: false - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@2.0.1: dependencies: balanced-match: 1.0.2 - dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} + braces@3.0.2: dependencies: fill-range: 7.0.1 - /breakword@1.0.5: - resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + breakword@1.0.5: dependencies: wcwidth: 1.0.1 - dev: true - /browser-fs-access@0.31.1: - resolution: {integrity: sha512-jMz9f56DkLM7LyA8wZYO7CtpoF3RdUk1/FXrnRNybgV0R5eqk/fgFWR0k5IMjPYgK4jmZecytP/UDO5WBi9Dhg==} - dev: false + browser-fs-access@0.31.1: {} - /browser-process-hrtime@1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} + browser-process-hrtime@1.0.0: {} - /browserslist@4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true + browserslist@4.21.4: dependencies: caniuse-lite: 1.0.30001426 electron-to-chromium: 1.4.284 node-releases: 2.0.6 update-browserslist-db: 1.0.10(browserslist@4.21.4) - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-crc32@0.2.13: {} - /buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} - dev: false + buffer-equal-constant-time@1.0.1: {} - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-from@1.1.2: {} - /buffer@5.6.0: - resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + buffer@5.6.0: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: false - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} + bundle-name@3.0.0: dependencies: run-applescript: 5.0.0 - dev: true - /busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} + busboy@1.6.0: dependencies: streamsearch: 1.1.0 - dev: false - /bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - dev: false + bytes@3.0.0: {} - /bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - dev: false + bytes@3.1.2: {} - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + cac@6.7.14: {} - /cacheable-request@6.1.0: - resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} - engines: {node: '>=8'} + cacheable-request@6.1.0: dependencies: clone-response: 1.0.3 get-stream: 5.2.0 @@ -10101,99 +15716,62 @@ packages: lowercase-keys: 2.0.0 normalize-url: 4.5.1 responselike: 1.0.2 - dev: false - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + call-bind@1.0.2: dependencies: function-bind: 1.1.1 get-intrinsic: 1.1.3 - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + callsites@3.1.0: {} - /camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + camel-case@4.1.2: dependencies: pascal-case: 3.1.2 tslib: 2.6.2 - dev: false - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: false + camelcase-css@2.0.1: {} - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} + camelcase-keys@6.2.2: dependencies: camelcase: 5.3.1 map-obj: 4.3.0 quick-lru: 4.0.1 - dev: true - /camelcase-keys@8.0.2: - resolution: {integrity: sha512-qMKdlOfsjlezMqxkUGGMaWWs17i2HoL15tM+wtx8ld4nLrUwU58TFdvyGOz/piNP842KeO8yXvggVQSdQ828NA==} - engines: {node: '>=14.16'} + camelcase-keys@8.0.2: dependencies: camelcase: 7.0.1 map-obj: 4.3.0 quick-lru: 6.1.2 type-fest: 2.19.0 - dev: true - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true + camelcase@5.3.1: {} - /camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} - engines: {node: '>=10'} - dev: false + camelcase@6.3.0: {} - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} - dev: true + camelcase@7.0.1: {} - /camera-controls@2.3.1(three@0.150.1): - resolution: {integrity: sha512-mGPDOqCTSUqaeX3yR3bWQ/p1M5CR8C+cnqndBxQugfGKysn1dhRtw8Q6sG1hq4GL8RPsGwRanwQk5zwQjyrxyQ==} - peerDependencies: - three: '>=0.126.1' + camera-controls@2.3.1(three@0.150.1): dependencies: three: 0.150.1 - dev: false - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + caniuse-api@3.0.0: dependencies: browserslist: 4.21.4 caniuse-lite: 1.0.30001426 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 - dev: false - /caniuse-lite@1.0.30001426: - resolution: {integrity: sha512-n7cosrHLl8AWt0wwZw/PJZgUg3lV0gk9LMI7ikGJwhyhgsd2Nb65vKvmSexCqq/J7rbH3mFG6yZZiPR5dLPW5A==} + caniuse-lite@1.0.30001426: {} - /capital-case@1.0.4: - resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + capital-case@1.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 upper-case-first: 2.0.2 - dev: false - /ccount@1.1.0: - resolution: {integrity: sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==} - dev: false + ccount@1.1.0: {} - /chai@5.1.1: - resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} - engines: {node: '>=12'} + chai@5.1.1: dependencies: assertion-error: 2.0.1 check-error: 2.1.1 @@ -10201,23 +15779,18 @@ packages: loupe: 3.1.1 pathval: 2.0.0 - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - /change-case@4.1.2: - resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + change-case@4.1.2: dependencies: camel-case: 4.1.2 capital-case: 1.0.4 @@ -10231,30 +15804,18 @@ packages: sentence-case: 3.0.4 snake-case: 3.0.4 tslib: 2.4.0 - dev: false - /character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==} - dev: false + character-entities-legacy@1.1.4: {} - /character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==} - dev: false + character-entities@1.2.4: {} - /character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==} - dev: false + character-reference-invalid@1.1.4: {} - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true + chardet@0.7.0: {} - /check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} + check-error@2.1.1: {} - /cheerio-select@2.1.0: - resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + cheerio-select@2.1.0: dependencies: boolbase: 1.0.0 css-select: 5.1.0 @@ -10262,11 +15823,8 @@ packages: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.0.1 - dev: false - /cheerio@1.0.0-rc.12: - resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} - engines: {node: '>= 6'} + cheerio@1.0.0-rc.12: dependencies: cheerio-select: 2.1.0 dom-serializer: 2.0.0 @@ -10275,10 +15833,8 @@ packages: htmlparser2: 8.0.1 parse5: 7.1.1 parse5-htmlparser2-tree-adapter: 7.0.0 - dev: false - /chevrotain@10.4.2: - resolution: {integrity: sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg==} + chevrotain@10.4.2: dependencies: '@chevrotain/cst-dts-gen': 10.4.2 '@chevrotain/gast': 10.4.2 @@ -10286,11 +15842,8 @@ packages: '@chevrotain/utils': 10.4.2 lodash: 4.17.21 regexp-to-ast: 0.5.0 - dev: false - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} + chokidar@3.5.3: dependencies: anymatch: 3.1.2 braces: 3.0.2 @@ -10301,210 +15854,123 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.3 - dev: false - /chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: false + chownr@1.1.4: {} - /chownr@2.0.0: - resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} - engines: {node: '>=10'} - dev: false + chownr@2.0.0: {} - /chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==} - engines: {node: '>=6.0'} + chrome-trace-event@1.0.3: {} - /chromium-bidi@0.5.24(devtools-protocol@0.0.1299070): - resolution: {integrity: sha512-5xQNN2SVBdZv4TxeMLaI+PelrnZsHDhn8h2JtyriLr+0qHcZS8BMuo93qN6J1VmtmrgYP+rmcLHcbpnA8QJh+w==} - peerDependencies: - devtools-protocol: '*' + chromium-bidi@0.5.24(devtools-protocol@0.0.1299070): dependencies: devtools-protocol: 0.0.1299070 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 zod: 3.23.8 - dev: true - /ci-info@2.0.0: - resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: false + ci-info@2.0.0: {} - /ci-info@3.5.0: - resolution: {integrity: sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==} + ci-info@3.5.0: {} - /clean-css@5.3.1: - resolution: {integrity: sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==} - engines: {node: '>= 10.0'} + clean-css@5.3.1: dependencies: source-map: 0.6.1 - dev: false - /clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} - dev: false + clean-stack@2.2.0: {} - /cli-boxes@2.2.1: - resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} - engines: {node: '>=6'} - dev: false + cli-boxes@2.2.1: {} - /cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - dev: false + cli-boxes@3.0.0: {} - /cli-table3@0.6.3: - resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} - engines: {node: 10.* || >= 12.*} + cli-table3@0.6.3: dependencies: string-width: 4.2.3 optionalDependencies: '@colors/colors': 1.5.0 - dev: false - /cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} + cliui@6.0.0: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: true - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - /clone-deep@4.0.1: - resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} - engines: {node: '>=6'} + clone-deep@4.0.1: dependencies: is-plain-object: 2.0.4 kind-of: 6.0.3 shallow-clone: 3.0.1 - /clone-response@1.0.3: - resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + clone-response@1.0.3: dependencies: mimic-response: 1.0.1 - dev: false - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true + clone@1.0.4: {} - /clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - dev: false + clsx@1.2.1: {} - /collapse-white-space@1.0.6: - resolution: {integrity: sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==} - dev: false + collapse-white-space@1.0.6: {} - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + color-convert@1.9.3: dependencies: color-name: 1.1.3 - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + color-convert@2.0.1: dependencies: color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + color-name@1.1.3: {} - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-name@1.1.4: {} - /color-support@1.1.3: - resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} - hasBin: true - dev: false + color-support@1.1.3: {} - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: false + colord@2.9.3: {} - /colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} - dev: false + colorette@2.0.19: {} - /combine-promises@1.1.0: - resolution: {integrity: sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==} - engines: {node: '>=10'} - dev: false + combine-promises@1.1.0: {} - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 - /comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==} - dev: false + comma-separated-tokens@1.0.8: {} - /command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} + command-line-args@5.2.1: dependencies: array-back: 3.1.0 find-replace: 3.0.0 lodash.camelcase: 4.3.0 typical: 4.0.0 - dev: false - /command-line-usage@6.1.3: - resolution: {integrity: sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==} - engines: {node: '>=8.0.0'} + command-line-usage@6.1.3: dependencies: array-back: 4.0.2 chalk: 2.4.2 table-layout: 1.0.2 typical: 5.2.0 - dev: false - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@2.20.3: {} - /commander@5.1.0: - resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} - engines: {node: '>= 6'} + commander@5.1.0: {} - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: false + commander@7.2.0: {} - /commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} - dev: false + commander@8.3.0: {} - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: false + commondir@1.0.1: {} - /compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + compressible@2.0.18: dependencies: mime-db: 1.52.0 - dev: false - /compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + compression@1.7.4: dependencies: accepts: 1.3.8 bytes: 3.0.0 @@ -10515,16 +15981,10 @@ packages: vary: 1.1.2 transitivePeerDependencies: - supports-color - dev: false - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: false + concat-map@0.0.1: {} - /concurrently@7.5.0: - resolution: {integrity: sha512-5E3mwiS+i2JYBzr5BpXkFxOnleZTMsG+WnE/dCG4/P+oiVXrbmrBwJ2ozn4SxwB2EZDrKR568X+puVohxz3/Mg==} - engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} - hasBin: true + concurrently@7.5.0: dependencies: chalk: 4.1.2 date-fns: 2.29.3 @@ -10535,11 +15995,8 @@ packages: supports-color: 8.1.1 tree-kill: 1.2.2 yargs: 17.6.0 - dev: false - /configstore@5.0.1: - resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} - engines: {node: '>=8'} + configstore@5.0.1: dependencies: dot-prop: 5.3.0 graceful-fs: 4.2.10 @@ -10547,69 +16004,36 @@ packages: unique-string: 2.0.0 write-file-atomic: 3.0.3 xdg-basedir: 4.0.0 - dev: false - /connect-history-api-fallback@2.0.0: - resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} - engines: {node: '>=0.8'} - dev: false + connect-history-api-fallback@2.0.0: {} - /consola@2.15.3: - resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} - dev: false + consola@2.15.3: {} - /console-control-strings@1.1.0: - resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: false + console-control-strings@1.1.0: {} - /constant-case@3.0.4: - resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + constant-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 upper-case: 2.0.2 - dev: false - /content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} - dev: false + content-disposition@0.5.2: {} - /content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 - dev: false - /content-type@1.0.4: - resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==} - engines: {node: '>= 0.6'} - dev: false + content-type@1.0.4: {} - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: false + convert-source-map@1.9.0: {} - /cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - dev: false + cookie-signature@1.0.6: {} - /cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - dev: false + cookie@0.5.0: {} - /copy-text-to-clipboard@3.0.1: - resolution: {integrity: sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==} - engines: {node: '>=12'} - dev: false + copy-text-to-clipboard@3.0.1: {} - /copy-webpack-plugin@11.0.0(webpack@5.74.0): - resolution: {integrity: sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - webpack: ^5.1.0 + copy-webpack-plugin@11.0.0(webpack@5.74.0): dependencies: fast-glob: 3.2.12 glob-parent: 6.0.2 @@ -10618,160 +16042,97 @@ packages: schema-utils: 4.0.0 serialize-javascript: 6.0.0 webpack: 5.74.0 - dev: false - /core-js-compat@3.26.0: - resolution: {integrity: sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==} + core-js-compat@3.26.0: dependencies: browserslist: 4.21.4 - dev: false - /core-js-pure@3.26.0: - resolution: {integrity: sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==} - requiresBuild: true - dev: false + core-js-pure@3.26.0: {} - /core-js@3.26.0: - resolution: {integrity: sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==} - requiresBuild: true - dev: false + core-js@3.26.0: {} - /core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - dev: false + core-util-is@1.0.3: {} - /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} + cors@2.8.5: dependencies: object-assign: 4.1.1 vary: 1.1.2 - dev: false - /cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} + cosmiconfig@6.0.0: dependencies: '@types/parse-json': 4.0.0 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@7.0.1: - resolution: {integrity: sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==} - engines: {node: '>=10'} + cosmiconfig@7.0.1: dependencies: '@types/parse-json': 4.0.0 import-fresh: 3.3.0 parse-json: 5.2.0 path-type: 4.0.0 yaml: 1.10.2 - dev: false - /cosmiconfig@8.0.0: - resolution: {integrity: sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==} - engines: {node: '>=14'} + cosmiconfig@8.0.0: dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - dev: false - /cosmiconfig@9.0.0(typescript@5.4.2): - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true + cosmiconfig@9.0.0(typescript@5.4.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 + optionalDependencies: typescript: 5.4.2 - dev: true - /cp-tpl@1.0.9: - resolution: {integrity: sha512-Akv9KUzVDBhj3E86n5PswqOn0/Ce8cLxqq3x/G333kz+LljsAT0QaOynD5Dsf52gelmO/iOq2p6mVyW5mXXolA==} - hasBin: true + cp-tpl@1.0.9: dependencies: command-line-args: 5.2.1 command-line-usage: 6.1.3 globby: 13.1.2 - dev: false - /cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} - hasBin: true + cross-env@7.0.3: dependencies: cross-spawn: 7.0.3 - dev: true - /cross-fetch@3.1.5: - resolution: {integrity: sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==} + cross-fetch@3.1.5: dependencies: node-fetch: 2.6.7 transitivePeerDependencies: - encoding - dev: false - /cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} + cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 shebang-command: 1.2.0 which: 1.3.1 - dev: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} - dev: false + crypto-random-string@2.0.0: {} - /crypto-random-string@4.0.0: - resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} - engines: {node: '>=12'} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 - dev: true - /css-declaration-sorter@6.3.1(postcss@8.4.16): - resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 + css-declaration-sorter@6.3.1(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - /css-declaration-sorter@6.3.1(postcss@8.4.21): - resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 + css-declaration-sorter@6.3.1(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /css-loader@6.7.1(webpack@5.74.0): - resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + css-loader@6.7.1(webpack@5.74.0): dependencies: icss-utils: 5.1.0(postcss@8.4.21) postcss: 8.4.21 @@ -10782,34 +16143,9 @@ packages: postcss-value-parser: 4.2.0 semver: 7.5.4 webpack: 5.74.0 - dev: false - /css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.1)(webpack@5.74.0): - resolution: {integrity: sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==} - engines: {node: '>= 14.15.0'} - peerDependencies: - '@parcel/css': '*' - '@swc/css': '*' - clean-css: '*' - csso: '*' - esbuild: '*' - lightningcss: '*' - webpack: ^5.0.0 - peerDependenciesMeta: - '@parcel/css': - optional: true - '@swc/css': - optional: true - clean-css: - optional: true - csso: - optional: true - esbuild: - optional: true - lightningcss: - optional: true + css-minimizer-webpack-plugin@4.2.2(clean-css@5.3.1)(webpack@5.74.0): dependencies: - clean-css: 5.3.1 cssnano: 5.1.14(postcss@8.4.21) jest-worker: 29.2.1 postcss: 8.4.21 @@ -10817,52 +16153,35 @@ packages: serialize-javascript: 6.0.0 source-map: 0.6.1 webpack: 5.74.0 - dev: false + optionalDependencies: + clean-css: 5.3.1 - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-select@4.3.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 4.3.1 domutils: 2.8.0 nth-check: 2.1.1 - dev: false - /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-select@5.1.0: dependencies: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 domutils: 3.0.1 nth-check: 2.1.1 - dev: false - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} + css-tree@1.1.3: dependencies: mdn-data: 2.0.14 source-map: 0.6.1 - dev: false - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: false + css-what@6.1.0: {} - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: false + cssesc@3.0.0: {} - /cssnano-preset-advanced@5.3.9(postcss@8.4.21): - resolution: {integrity: sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-advanced@5.3.9(postcss@8.4.21): dependencies: autoprefixer: 10.4.13(postcss@8.4.21) cssnano-preset-default: 5.2.13(postcss@8.4.21) @@ -10871,13 +16190,8 @@ packages: postcss-merge-idents: 5.1.1(postcss@8.4.21) postcss-reduce-idents: 5.2.0(postcss@8.4.21) postcss-zindex: 5.1.0(postcss@8.4.21) - dev: false - /cssnano-preset-default@5.2.13(postcss@8.4.16): - resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-default@5.2.13(postcss@8.4.16): dependencies: css-declaration-sorter: 6.3.1(postcss@8.4.16) cssnano-utils: 3.1.0(postcss@8.4.16) @@ -10909,13 +16223,8 @@ packages: postcss-reduce-transforms: 5.1.0(postcss@8.4.16) postcss-svgo: 5.1.0(postcss@8.4.16) postcss-unique-selectors: 5.1.1(postcss@8.4.16) - dev: false - /cssnano-preset-default@5.2.13(postcss@8.4.21): - resolution: {integrity: sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-preset-default@5.2.13(postcss@8.4.21): dependencies: css-declaration-sorter: 6.3.1(postcss@8.4.21) cssnano-utils: 3.1.0(postcss@8.4.21) @@ -10947,289 +16256,162 @@ packages: postcss-reduce-transforms: 5.1.0(postcss@8.4.21) postcss-svgo: 5.1.0(postcss@8.4.21) postcss-unique-selectors: 5.1.1(postcss@8.4.21) - dev: false - /cssnano-utils@3.1.0(postcss@8.4.16): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-utils@3.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - /cssnano-utils@3.1.0(postcss@8.4.21): - resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano-utils@3.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /cssnano@5.1.14(postcss@8.4.16): - resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano@5.1.14(postcss@8.4.16): dependencies: cssnano-preset-default: 5.2.13(postcss@8.4.16) lilconfig: 2.0.6 postcss: 8.4.16 yaml: 1.10.2 - dev: false - /cssnano@5.1.14(postcss@8.4.21): - resolution: {integrity: sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + cssnano@5.1.14(postcss@8.4.21): dependencies: cssnano-preset-default: 5.2.13(postcss@8.4.21) lilconfig: 2.0.6 postcss: 8.4.21 yaml: 1.10.2 - dev: false - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} + csso@4.2.0: dependencies: css-tree: 1.1.3 - dev: false - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} + cssom@0.3.8: {} - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + cssom@0.5.0: {} - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} + cssstyle@2.3.0: dependencies: cssom: 0.3.8 - /cssstyle@4.0.1: - resolution: {integrity: sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==} - engines: {node: '>=18'} + cssstyle@4.0.1: dependencies: rrweb-cssom: 0.6.0 - dev: true - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + csstype@3.1.1: {} - /csv-generate@3.4.3: - resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} - dev: true + csv-generate@3.4.3: {} - /csv-parse@4.16.3: - resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} - dev: true + csv-parse@4.16.3: {} - /csv-stringify@5.6.5: - resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} - dev: true + csv-stringify@5.6.5: {} - /csv@5.5.3: - resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} - engines: {node: '>= 0.1.90'} + csv@5.5.3: dependencies: csv-generate: 3.4.3 csv-parse: 4.16.3 csv-stringify: 5.6.5 stream-transform: 2.1.3 - dev: true - /cuid@2.1.8: - resolution: {integrity: sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg==} - deprecated: Cuid and other k-sortable and non-cryptographic ids (Ulid, ObjectId, KSUID, all UUIDs) are all insecure. Use @paralleldrive/cuid2 instead. - dev: false + cuid@2.1.8: {} - /data-uri-to-buffer@6.0.1: - resolution: {integrity: sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg==} - engines: {node: '>= 14'} - dev: true + data-uri-to-buffer@6.0.1: {} - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} + data-urls@3.0.2: dependencies: abab: 2.0.6 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - /data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 - dev: true - /date-fns@2.29.3: - resolution: {integrity: sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==} - engines: {node: '>=0.11'} - dev: false + date-fns@2.29.3: {} - /debounce@1.2.1: - resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} - dev: false + debounce@1.2.1: {} - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@2.6.9: dependencies: ms: 2.0.0 - dev: false - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.4: dependencies: ms: 2.1.2 - /debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + debug@4.3.5: dependencies: ms: 2.1.2 - /decamelize-keys@1.1.0: - resolution: {integrity: sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==} - engines: {node: '>=0.10.0'} + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decamelize-keys@1.1.0: dependencies: decamelize: 1.2.0 map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true + decamelize@1.2.0: {} - /decamelize@6.0.0: - resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + decamelize@6.0.0: {} - /decimal.js@10.4.1: - resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} + decimal.js@10.4.1: {} - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true + decimal.js@10.4.3: {} - /decompress-response@3.3.0: - resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} - engines: {node: '>=4'} + decompress-response@3.3.0: dependencies: mimic-response: 1.0.1 - dev: false - /decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - dev: false - /deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} + deep-eql@5.0.2: {} - /deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - dev: false + deep-extend@0.6.0: {} - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deep-is@0.1.4: {} - /deepmerge@4.2.2: - resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} - engines: {node: '>=0.10.0'} - dev: false + deepmerge@4.2.2: {} - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} + default-browser-id@3.0.0: dependencies: bplist-parser: 0.2.0 untildify: 4.0.0 - dev: true - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} + default-browser@4.0.0: dependencies: bundle-name: 3.0.0 default-browser-id: 3.0.0 execa: 7.2.0 titleize: 3.0.0 - dev: true - /default-gateway@6.0.3: - resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} - engines: {node: '>= 10'} + default-gateway@6.0.3: dependencies: execa: 5.1.1 - dev: false - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + defaults@1.0.4: dependencies: clone: 1.0.4 - dev: true - /defer-to-connect@1.1.3: - resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} - dev: false + defer-to-connect@1.1.3: {} - /define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - dev: false + define-lazy-prop@2.0.0: {} - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true + define-lazy-prop@3.0.0: {} - /define-properties@1.1.4: - resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} - engines: {node: '>= 0.4'} + define-properties@1.1.4: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 - /degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} + degenerator@5.0.1: dependencies: ast-types: 0.13.4 escodegen: 2.1.0 esprima: 4.0.1 - dev: true - /del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} + del@6.1.1: dependencies: globby: 11.1.0 graceful-fs: 4.2.10 @@ -11239,276 +16421,164 @@ packages: p-map: 4.0.0 rimraf: 3.0.2 slash: 3.0.0 - dev: false - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + delayed-stream@1.0.0: {} - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false + delegates@1.0.0: {} - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: false + depd@1.1.2: {} - /depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - dev: false + depd@2.0.0: {} - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: false + dequal@2.0.3: {} - /destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - dev: false + destroy@1.2.0: {} - /detab@2.0.4: - resolution: {integrity: sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==} + detab@2.0.4: dependencies: repeat-string: 1.6.1 - dev: false - /detect-gpu@5.0.14: - resolution: {integrity: sha512-CZwpdrG3hX4oYBcRATw8YaRV2I3AFIN2X6PA0rf9IQ0uYzi7w4gGQkmzazO9UtApHAYRraUICupnIQ+G3o0JDQ==} + detect-gpu@5.0.14: dependencies: webgl-constants: 1.1.1 - dev: false - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true + detect-indent@6.1.0: {} - /detect-libc@2.0.1: - resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} - engines: {node: '>=8'} - dev: false + detect-libc@2.0.1: {} - /detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - dev: false + detect-node-es@1.1.0: {} - /detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - dev: false + detect-node@2.1.0: {} - /detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true + detect-port-alt@1.1.6: dependencies: address: 1.2.1 debug: 2.6.9 transitivePeerDependencies: - supports-color - dev: false - /detect-port@1.5.1: - resolution: {integrity: sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==} - hasBin: true + detect-port@1.5.1: dependencies: address: 1.2.1 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: false - /devtools-protocol@0.0.1068969: - resolution: {integrity: sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==} - dev: false + devtools-protocol@0.0.1068969: {} - /devtools-protocol@0.0.1299070: - resolution: {integrity: sha512-+qtL3eX50qsJ7c+qVyagqi7AWMoQCBGNfoyJZMwm/NSXVqLYbuitrWEEIzxfUmTNy7//Xe8yhMmQ+elj3uAqSg==} - dev: true + devtools-protocol@0.0.1299070: {} - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 - /dns-equal@1.0.0: - resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} - dev: false + dns-equal@1.0.0: {} - /dns-packet@5.4.0: - resolution: {integrity: sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==} - engines: {node: '>=6'} + dns-packet@5.4.0: dependencies: '@leichtgewicht/ip-codec': 2.0.4 - dev: false - /dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dom-converter@0.2.0: dependencies: utila: 0.4.0 - dev: false - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dom-serializer@1.4.1: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 entities: 2.2.0 - dev: false - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 entities: 4.4.0 - dev: false - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: false + domelementtype@2.3.0: {} - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} + domexception@4.0.0: dependencies: webidl-conversions: 7.0.0 - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 - dev: false - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + domhandler@5.0.3: dependencies: domelementtype: 2.3.0 - dev: false - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + domutils@2.8.0: dependencies: dom-serializer: 1.4.1 domelementtype: 2.3.0 domhandler: 4.3.1 - dev: false - /domutils@3.0.1: - resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + domutils@3.0.1: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dev: false - /dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: false - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} + dot-prop@5.3.0: dependencies: is-obj: 2.0.0 - dev: false - /draco3d@1.5.6: - resolution: {integrity: sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ==} - dev: false + draco3d@1.5.6: {} - /duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} - dev: false + duplexer3@0.1.5: {} - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: false + duplexer@0.1.2: {} - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + eastasianwidth@0.2.0: {} - /ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + ecdsa-sig-formatter@1.0.11: dependencies: safe-buffer: 5.2.1 - dev: false - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: false + ee-first@1.1.1: {} - /electron-to-chromium@1.4.284: - resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} + electron-to-chromium@1.4.284: {} - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@8.0.0: {} - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emoji-regex@9.2.2: {} - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: false + emojis-list@3.0.0: {} - /emoticon@3.2.0: - resolution: {integrity: sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==} - dev: false + emoticon@3.2.0: {} - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: false + encodeurl@1.0.2: {} - /end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.4: dependencies: once: 1.4.0 - /enhanced-resolve@5.10.0: - resolution: {integrity: sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==} - engines: {node: '>=10.13.0'} + enhanced-resolve@5.10.0: dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 - /enquirer@2.3.6: - resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} - engines: {node: '>=8.6'} + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 - dev: true - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: false + entities@2.2.0: {} - /entities@4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} - engines: {node: '>=0.12'} + entities@4.4.0: {} - /env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - dev: true + env-paths@2.2.1: {} - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 - /es-abstract@1.20.4: - resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} - engines: {node: '>= 0.4'} + es-abstract@1.20.4: dependencies: call-bind: 1.0.2 es-to-primitive: 1.2.1 @@ -11534,191 +16604,80 @@ packages: string.prototype.trimend: 1.0.5 string.prototype.trimstart: 1.0.5 unbox-primitive: 1.0.2 - dev: true - /es-module-lexer@0.9.3: - resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + es-module-lexer@0.9.3: {} - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + es-shim-unscopables@1.0.0: dependencies: has: 1.0.3 - dev: true - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true - - /esbuild-android-64@0.15.13: - resolution: {integrity: sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - /esbuild-android-arm64@0.15.13: - resolution: {integrity: sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + esbuild-android-64@0.15.13: optional: true - /esbuild-darwin-64@0.15.13: - resolution: {integrity: sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + esbuild-android-arm64@0.15.13: optional: true - /esbuild-darwin-arm64@0.15.13: - resolution: {integrity: sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + esbuild-darwin-64@0.15.13: optional: true - - /esbuild-freebsd-64@0.15.13: - resolution: {integrity: sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + + esbuild-darwin-arm64@0.15.13: optional: true - /esbuild-freebsd-arm64@0.15.13: - resolution: {integrity: sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true + esbuild-freebsd-64@0.15.13: optional: true - /esbuild-linux-32@0.15.13: - resolution: {integrity: sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true + esbuild-freebsd-arm64@0.15.13: optional: true - /esbuild-linux-64@0.15.13: - resolution: {integrity: sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true + esbuild-linux-32@0.15.13: optional: true - /esbuild-linux-arm64@0.15.13: - resolution: {integrity: sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true + esbuild-linux-64@0.15.13: optional: true - /esbuild-linux-arm@0.15.13: - resolution: {integrity: sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true + esbuild-linux-arm64@0.15.13: optional: true - /esbuild-linux-mips64le@0.15.13: - resolution: {integrity: sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true + esbuild-linux-arm@0.15.13: optional: true - /esbuild-linux-ppc64le@0.15.13: - resolution: {integrity: sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true + esbuild-linux-mips64le@0.15.13: optional: true - /esbuild-linux-riscv64@0.15.13: - resolution: {integrity: sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true + esbuild-linux-ppc64le@0.15.13: optional: true - /esbuild-linux-s390x@0.15.13: - resolution: {integrity: sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true + esbuild-linux-riscv64@0.15.13: optional: true - /esbuild-netbsd-64@0.15.13: - resolution: {integrity: sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true + esbuild-linux-s390x@0.15.13: optional: true - /esbuild-openbsd-64@0.15.13: - resolution: {integrity: sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true + esbuild-netbsd-64@0.15.13: optional: true - /esbuild-sunos-64@0.15.13: - resolution: {integrity: sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true + esbuild-openbsd-64@0.15.13: optional: true - /esbuild-windows-32@0.15.13: - resolution: {integrity: sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true + esbuild-sunos-64@0.15.13: optional: true - /esbuild-windows-64@0.15.13: - resolution: {integrity: sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true + esbuild-windows-32@0.15.13: optional: true - /esbuild-windows-arm64@0.15.13: - resolution: {integrity: sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true + esbuild-windows-64@0.15.13: optional: true - /esbuild@0.15.13: - resolution: {integrity: sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild-windows-arm64@0.15.13: + optional: true + + esbuild@0.15.13: optionalDependencies: '@esbuild/android-arm': 0.15.13 '@esbuild/linux-loong64': 0.15.13 @@ -11743,11 +16702,7 @@ packages: esbuild-windows-64: 0.15.13 esbuild-windows-arm64: 0.15.13 - /esbuild@0.16.13: - resolution: {integrity: sha512-oYwFdSEIoKM1oYzyem1osgKJAvg5447XF+05ava21fOtilyb2HeQQh26/74K4WeAk5dZmj/Mx10zUqUnI14jhA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.16.13: optionalDependencies: '@esbuild/android-arm': 0.16.13 '@esbuild/android-arm64': 0.16.13 @@ -11771,13 +16726,8 @@ packages: '@esbuild/win32-arm64': 0.16.13 '@esbuild/win32-ia32': 0.16.13 '@esbuild/win32-x64': 0.16.13 - dev: false - /esbuild@0.17.16: - resolution: {integrity: sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.17.16: optionalDependencies: '@esbuild/android-arm': 0.17.16 '@esbuild/android-arm64': 0.17.16 @@ -11801,13 +16751,8 @@ packages: '@esbuild/win32-arm64': 0.17.16 '@esbuild/win32-ia32': 0.17.16 '@esbuild/win32-x64': 0.17.16 - dev: true - /esbuild@0.18.15: - resolution: {integrity: sha512-3WOOLhrvuTGPRzQPU6waSDWrDTnQriia72McWcn6UCi43GhCHrXH4S59hKMeez+IITmdUuUyvbU9JIp+t3xlPQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.18.15: optionalDependencies: '@esbuild/android-arm': 0.18.15 '@esbuild/android-arm64': 0.18.15 @@ -11831,13 +16776,8 @@ packages: '@esbuild/win32-arm64': 0.18.15 '@esbuild/win32-ia32': 0.18.15 '@esbuild/win32-x64': 0.18.15 - dev: true - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.18.20: optionalDependencies: '@esbuild/android-arm': 0.18.20 '@esbuild/android-arm64': 0.18.20 @@ -11862,11 +16802,7 @@ packages: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - /esbuild@0.19.10: - resolution: {integrity: sha512-S1Y27QGt/snkNYrRcswgRFqZjaTG5a5xM3EQo97uNBnH505pdzSNe/HLBq1v0RO7iK/ngdbhJB6mDAp0OK+iUA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.19.10: optionalDependencies: '@esbuild/aix-ppc64': 0.19.10 '@esbuild/android-arm': 0.19.10 @@ -11892,11 +16828,7 @@ packages: '@esbuild/win32-ia32': 0.19.10 '@esbuild/win32-x64': 0.19.10 - /esbuild@0.19.5: - resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.19.5: optionalDependencies: '@esbuild/android-arm': 0.19.5 '@esbuild/android-arm64': 0.19.5 @@ -11920,13 +16852,8 @@ packages: '@esbuild/win32-arm64': 0.19.5 '@esbuild/win32-ia32': 0.19.5 '@esbuild/win32-x64': 0.19.5 - dev: false - /esbuild@0.21.5: - resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 '@esbuild/android-arm': 0.21.5 @@ -11951,34 +16878,18 @@ packages: '@esbuild/win32-arm64': 0.21.5 '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - dev: false - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} + escalade@3.1.1: {} - /escape-goat@2.1.1: - resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} - engines: {node: '>=8'} - dev: false + escape-goat@2.1.1: {} - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: false + escape-html@1.0.3: {} - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + escape-string-regexp@1.0.5: {} - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: false + escape-string-regexp@4.0.0: {} - /escodegen@2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true + escodegen@2.0.0: dependencies: esprima: 4.0.1 estraverse: 5.3.0 @@ -11987,82 +16898,49 @@ packages: optionalDependencies: source-map: 0.6.1 - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true + escodegen@2.1.0: dependencies: esprima: 4.0.1 estraverse: 5.3.0 esutils: 2.0.3 optionalDependencies: source-map: 0.6.1 - dev: true - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + eslint-scope@5.1.1: dependencies: esrecurse: 4.3.0 estraverse: 4.3.0 - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true + esprima@4.0.1: {} - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + estraverse@4.3.0: {} - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + estraverse@5.3.0: {} - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.1 - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + esutils@2.0.3: {} - /eta@1.12.3: - resolution: {integrity: sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==} - engines: {node: '>=6.0.0'} - dev: false + eta@1.12.3: {} - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: false + etag@1.8.1: {} - /eval@0.1.8: - resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} - engines: {node: '>= 0.8'} + eval@0.1.8: dependencies: '@types/node': 20.11.5 require-like: 0.1.2 - dev: false - /eventemitter3@4.0.7: - resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: false + eventemitter3@4.0.7: {} - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + events@3.3.0: {} - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + execa@5.1.1: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -12074,9 +16952,7 @@ packages: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + execa@7.2.0: dependencies: cross-spawn: 7.0.3 get-stream: 6.0.1 @@ -12087,11 +16963,8 @@ packages: onetime: 6.0.0 signal-exit: 3.0.7 strip-final-newline: 3.0.0 - dev: true - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + execa@8.0.1: dependencies: cross-spawn: 7.0.3 get-stream: 8.0.1 @@ -12103,14 +16976,9 @@ packages: signal-exit: 4.1.0 strip-final-newline: 3.0.0 - /expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - dev: false + expand-template@2.0.3: {} - /express@4.18.2: - resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} - engines: {node: '>= 0.10.0'} + express@4.18.2: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 @@ -12145,44 +17013,27 @@ packages: vary: 1.1.2 transitivePeerDependencies: - supports-color - dev: false - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 - dev: false - /extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} + extend-shallow@3.0.2: dependencies: assign-symbols: 1.0.0 is-extendable: 1.0.1 - dev: false - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false + extend@3.0.2: {} - /extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - dev: true + extendable-error@0.1.7: {} - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + external-editor@3.1.0: dependencies: chardet: 0.7.0 iconv-lite: 0.4.24 tmp: 0.0.33 - dev: true - /extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true + extract-zip@2.0.1: dependencies: debug: 4.3.5 get-stream: 5.2.0 @@ -12192,29 +17043,17 @@ packages: transitivePeerDependencies: - supports-color - /fake-indexeddb@5.0.1: - resolution: {integrity: sha512-vxybH29Owtc6khV/Usy47B1g+eKwyhFiX8nwpCC4td320jvwrKQDH6vNtcJZgUzVxmfsSIlHzLKQzT76JMCO7A==} - engines: {node: '>=18'} + fake-indexeddb@5.0.1: {} - /fake-indexeddb@6.0.0: - resolution: {integrity: sha512-YEboHE5VfopUclOck7LncgIqskAqnv4q0EWbYCaxKKjAvO93c+TJIaBuGy8CBFdbg9nKdpN3AuPRwVBJ4k7NrQ==} - engines: {node: '>=18'} - dev: true + fake-indexeddb@6.0.0: {} - /fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - dev: false + fast-decode-uri-component@1.0.1: {} - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-deep-equal@3.1.3: {} - /fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - dev: true + fast-fifo@1.3.2: {} - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} - engines: {node: '>=8.6.0'} + fast-glob@3.2.12: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -12222,57 +17061,39 @@ packages: merge2: 1.4.1 micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + fast-json-stable-stringify@2.1.0: {} - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-levenshtein@2.0.6: {} - /fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + fast-querystring@1.1.2: dependencies: fast-decode-uri-component: 1.0.1 - dev: false - /fast-url-parser@1.1.3: - resolution: {integrity: sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==} + fast-url-parser@1.1.3: dependencies: punycode: 1.4.1 - dev: false - /fast-xml-parser@4.2.5: - resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} - hasBin: true + fast-xml-parser@4.2.5: dependencies: strnum: 1.0.5 - dev: false - /fastq@1.13.0: - resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + fastq@1.13.0: dependencies: reusify: 1.0.4 - /faye-websocket@0.11.4: - resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} - engines: {node: '>=0.8.0'} + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 - dev: false - /fbemitter@3.0.0: - resolution: {integrity: sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==} + fbemitter@3.0.0: dependencies: fbjs: 3.0.4 transitivePeerDependencies: - encoding - dev: false - /fbjs-css-vars@1.0.2: - resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} - dev: false + fbjs-css-vars@1.0.2: {} - /fbjs@3.0.4: - resolution: {integrity: sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==} + fbjs@3.0.4: dependencies: cross-fetch: 3.1.5 fbjs-css-vars: 1.0.2 @@ -12283,69 +17104,42 @@ packages: ua-parser-js: 0.7.32 transitivePeerDependencies: - encoding - dev: false - /fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fd-slicer@1.1.0: dependencies: pend: 1.2.0 - /feed@4.2.2: - resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} - engines: {node: '>=0.4.0'} + feed@4.2.2: dependencies: xml-js: 1.6.11 - dev: false - /fflate@0.6.10: - resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} - dev: false + fflate@0.6.10: {} - /file-loader@6.2.0(webpack@5.74.0): - resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==} - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + file-loader@6.2.0(webpack@5.74.0): dependencies: loader-utils: 2.0.3 schema-utils: 3.1.1 webpack: 5.74.0 - dev: false - /file-selector@0.5.0: - resolution: {integrity: sha512-s8KNnmIDTBoD0p9uJ9uD0XY38SCeBOtj0UMXyQSLg1Ypfrfj8+dAvwsLjYQkQ2GjhVtp2HrnF5cJzMhBjfD8HA==} - engines: {node: '>= 10'} + file-selector@0.5.0: dependencies: tslib: 2.6.2 - dev: false - /file-type@18.7.0: - resolution: {integrity: sha512-ihHtXRzXEziMrQ56VSgU7wkxh55iNchFkosu7Y9/S+tXHdKyrGjVK0ujbqNnsxzea+78MaLhN6PGmfYSAv1ACw==} - engines: {node: '>=14.16'} + file-type@18.7.0: dependencies: readable-web-to-node-stream: 3.0.2 strtok3: 7.0.0 token-types: 5.0.1 - dev: true - /file-uri-to-path@1.0.0: - resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} - dev: false + file-uri-to-path@1.0.0: {} - /filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - dev: false + filesize@8.0.7: {} - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} + fill-range@7.0.1: dependencies: to-regex-range: 5.0.1 - /finalhandler@1.2.0: - resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} - engines: {node: '>= 0.8'} + finalhandler@1.2.0: dependencies: debug: 2.6.9 encodeurl: 1.0.2 @@ -12356,108 +17150,59 @@ packages: unpipe: 1.0.0 transitivePeerDependencies: - supports-color - dev: false - /find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} + find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 make-dir: 3.1.0 pkg-dir: 4.2.0 - dev: false - /find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} + find-replace@3.0.0: dependencies: array-back: 3.1.0 - dev: false - /find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} + find-up@3.0.0: dependencies: locate-path: 3.0.0 - dev: false - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 - /find-up@6.3.0: - resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + find-up@6.3.0: dependencies: locate-path: 7.2.0 path-exists: 5.0.0 - dev: true - /find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + find-yarn-workspace-root2@1.2.16: dependencies: micromatch: 4.0.5 pkg-dir: 4.2.0 - dev: true - /flux@4.0.3(react@18.2.0): - resolution: {integrity: sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==} - peerDependencies: - react: ^15.0.2 || ^16.0.0 || ^17.0.0 + flux@4.0.3(react@18.2.0): dependencies: fbemitter: 3.0.0 fbjs: 3.0.4 react: 18.2.0 transitivePeerDependencies: - encoding - dev: false - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false + follow-redirects@1.15.2: {} - /for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: false + for-in@1.0.2: {} - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} + foreground-child@3.1.1: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 - dev: true - /fork-ts-checker-webpack-plugin@6.5.2(typescript@5.4.2)(webpack@5.74.0): - resolution: {integrity: sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true + fork-ts-checker-webpack-plugin@6.5.2(typescript@5.4.2)(webpack@5.74.0): dependencies: '@babel/code-frame': 7.22.5 '@types/json-schema': 7.0.11 @@ -12474,122 +17219,75 @@ packages: tapable: 1.1.3 typescript: 5.4.2 webpack: 5.74.0 - dev: false - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} + form-data@4.0.0: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 - /forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - dev: false + forwarded@0.2.0: {} - /fraction.js@4.2.0: - resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} - dev: false + fraction.js@4.2.0: {} - /fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - dev: false + fresh@0.5.2: {} - /fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: false + fs-constants@1.0.0: {} - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 - dev: false - /fs-extra@11.1.0: - resolution: {integrity: sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==} - engines: {node: '>=14.14'} + fs-extra@11.1.0: dependencies: graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 - dev: false - /fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.10 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true - /fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} + fs-extra@8.1.0: dependencies: graceful-fs: 4.2.10 jsonfile: 4.0.0 universalify: 0.1.2 - dev: true - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + fs-extra@9.1.0: dependencies: at-least-node: 1.0.0 graceful-fs: 4.2.10 jsonfile: 6.1.0 universalify: 2.0.0 - dev: false - /fs-minipass@2.1.0: - resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} - engines: {node: '>= 8'} + fs-minipass@2.1.0: dependencies: minipass: 3.3.6 - dev: false - /fs-monkey@1.0.3: - resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} - dev: false + fs-monkey@1.0.3: {} - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: false + fs.realpath@1.0.0: {} - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true + fsevents@2.3.3: optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + function-bind@1.1.1: {} - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} + function.prototype.name@1.1.5: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.4 functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true + functions-have-names@1.2.3: {} - /gauge@3.0.2: - resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} - engines: {node: '>=10'} + gauge@3.0.2: dependencies: aproba: 2.0.0 color-support: 1.1.3 @@ -12600,89 +17298,53 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 - dev: false - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - dev: false + gensync@1.0.0-beta.2: {} - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + get-caller-file@2.0.5: {} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + get-func-name@2.0.2: {} - /get-intrinsic@1.1.3: - resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + get-intrinsic@1.1.3: dependencies: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.3 - /get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} - dev: false + get-nonce@1.0.1: {} - /get-own-enumerable-property-symbols@3.0.2: - resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: false + get-own-enumerable-property-symbols@3.0.2: {} - /get-port@7.0.0: - resolution: {integrity: sha512-mDHFgApoQd+azgMdwylJrv2DX47ywGq1i5VFJE7fZ0dttNq3iQMfsU4IvEgBHojA3KqEudyu7Vq+oN8kNaNkWw==} - engines: {node: '>=16'} - dev: false + get-port@7.0.0: {} - /get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - dev: true + get-stdin@9.0.0: {} - /get-stream@4.1.0: - resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} - engines: {node: '>=6'} + get-stream@4.1.0: dependencies: pump: 3.0.0 - dev: false - /get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + get-stream@5.2.0: dependencies: pump: 3.0.0 - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + get-stream@6.0.1: {} - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + get-stream@8.0.1: {} - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} + get-symbol-description@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.3 - dev: true - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} + get-tsconfig@4.7.2: dependencies: resolve-pkg-maps: 1.0.0 - /get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-tsconfig@4.7.5: dependencies: resolve-pkg-maps: 1.0.0 - dev: false - /get-uri@6.0.2: - resolution: {integrity: sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw==} - engines: {node: '>= 14'} + get-uri@6.0.2: dependencies: basic-ftp: 5.0.3 data-uri-to-buffer: 6.0.1 @@ -12690,59 +17352,36 @@ packages: fs-extra: 8.1.0 transitivePeerDependencies: - supports-color - dev: true - /get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: false + get-value@2.0.6: {} - /gfynonce@1.0.2: - resolution: {integrity: sha512-ZadRAzhPtBIKED2/3NcWp2YjeQUO9xaybUyK4r3dHA1kUM7LUHqCW+7diDx4kdywbcI074sX/k4SHJmQHz9nsg==} - engines: {node: '>= 6'} - hasBin: true + gfynonce@1.0.2: dependencies: minimist: 1.2.6 - dev: false - /github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - dev: false + github-from-package@0.0.0: {} - /github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} - dev: false + github-slugger@1.5.0: {} - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} + glob-parent@6.0.2: dependencies: is-glob: 4.0.3 - dev: false - /glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob-to-regexp@0.4.1: {} - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true + glob@10.3.10: dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 minimatch: 9.0.3 minipass: 7.0.4 path-scurry: 1.10.1 - dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + glob@7.2.3: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -12750,39 +17389,24 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: false - /global-dirs@3.0.0: - resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} - engines: {node: '>=10'} + global-dirs@3.0.0: dependencies: ini: 2.0.0 - dev: false - /global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} + global-modules@2.0.0: dependencies: global-prefix: 3.0.0 - dev: false - /global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} + global-prefix@3.0.0: dependencies: ini: 1.3.8 kind-of: 6.0.3 which: 1.3.1 - dev: false - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: false + globals@11.12.0: {} - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 @@ -12791,24 +17415,17 @@ packages: merge2: 1.4.1 slash: 3.0.0 - /globby@13.1.2: - resolution: {integrity: sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@13.1.2: dependencies: dir-glob: 3.0.1 fast-glob: 3.2.12 ignore: 5.2.0 merge2: 1.4.1 slash: 4.0.0 - dev: false - /glsl-noise@0.0.0: - resolution: {integrity: sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==} - dev: false + glsl-noise@0.0.0: {} - /got@9.6.0: - resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} - engines: {node: '>=8.6'} + got@9.6.0: dependencies: '@sindresorhus/is': 0.14.0 '@szmarczak/http-timer': 1.1.2 @@ -12823,86 +17440,51 @@ packages: p-cancelable: 1.1.0 to-readable-stream: 1.0.0 url-parse-lax: 3.0.0 - dev: false - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} + graceful-fs@4.2.10: {} - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true + grapheme-splitter@1.0.4: {} - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + gray-matter@4.0.3: dependencies: js-yaml: 3.14.1 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 - dev: false - /gzip-size@6.0.0: - resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} - engines: {node: '>=10'} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 - dev: false - /handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} - dev: false + handle-thing@2.0.1: {} - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true + hard-rejection@2.1.0: {} - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.0.2: {} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-flag@3.0.0: {} - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + has-flag@4.0.0: {} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + has-property-descriptors@1.0.0: dependencies: get-intrinsic: 1.1.3 - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} + has-symbols@1.0.3: {} - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} + has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 - dev: true - /has-unicode@2.0.1: - resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: false + has-unicode@2.0.1: {} - /has-yarn@2.1.0: - resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} - engines: {node: '>=8'} - dev: false + has-yarn@2.1.0: {} - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} + has@1.0.3: dependencies: function-bind: 1.1.1 - /hast-to-hyperscript@9.0.1: - resolution: {integrity: sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==} + hast-to-hyperscript@9.0.1: dependencies: '@types/unist': 2.0.6 comma-separated-tokens: 1.0.8 @@ -12911,10 +17493,8 @@ packages: style-to-object: 0.3.0 unist-util-is: 4.1.0 web-namespaces: 1.1.4 - dev: false - /hast-util-from-parse5@6.0.1: - resolution: {integrity: sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==} + hast-util-from-parse5@6.0.1: dependencies: '@types/parse5': 5.0.3 hastscript: 6.0.0 @@ -12922,14 +17502,10 @@ packages: vfile: 4.2.1 vfile-location: 3.2.0 web-namespaces: 1.1.4 - dev: false - /hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} - dev: false + hast-util-parse-selector@2.2.5: {} - /hast-util-raw@6.0.1: - resolution: {integrity: sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==} + hast-util-raw@6.0.1: dependencies: '@types/hast': 2.3.4 hast-util-from-parse5: 6.0.1 @@ -12941,42 +17517,31 @@ packages: web-namespaces: 1.1.4 xtend: 4.0.2 zwitch: 1.0.5 - dev: false - /hast-util-to-parse5@6.0.0: - resolution: {integrity: sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==} + hast-util-to-parse5@6.0.0: dependencies: hast-to-hyperscript: 9.0.1 property-information: 5.6.0 web-namespaces: 1.1.4 xtend: 4.0.2 zwitch: 1.0.5 - dev: false - /hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + hastscript@6.0.0: dependencies: '@types/hast': 2.3.4 comma-separated-tokens: 1.0.8 hast-util-parse-selector: 2.2.5 property-information: 5.6.0 space-separated-tokens: 1.1.5 - dev: false - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: false + he@1.2.0: {} - /header-case@2.0.4: - resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + header-case@2.0.4: dependencies: capital-case: 1.0.4 tslib: 2.6.2 - dev: false - /history@4.10.1: - resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + history@4.10.1: dependencies: '@babel/runtime': 7.19.4 loose-envify: 1.4.0 @@ -12984,66 +17549,41 @@ packages: tiny-invariant: 1.3.1 tiny-warning: 1.0.3 value-equal: 1.0.1 - dev: false - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 - dev: false - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true + hosted-git-info@2.8.9: {} - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} + hosted-git-info@4.1.0: dependencies: lru-cache: 6.0.0 - dev: true - /hosted-git-info@5.2.1: - resolution: {integrity: sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hosted-git-info@5.2.1: dependencies: lru-cache: 7.18.3 - dev: true - /hotkeys-js@3.9.4: - resolution: {integrity: sha512-2zuLt85Ta+gIyvs4N88pCYskNrxf1TFv3LR9t5mdAZIX8BcgQQ48F2opUptvHa6m8zsy5v/a0i9mWzTrlNWU0Q==} - dev: false + hotkeys-js@3.9.4: {} - /hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + hpack.js@2.1.6: dependencies: inherits: 2.0.4 obuf: 1.1.2 readable-stream: 2.3.7 wbuf: 1.7.3 - dev: false - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} + html-encoding-sniffer@3.0.0: dependencies: whatwg-encoding: 2.0.0 - /html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + html-encoding-sniffer@4.0.0: dependencies: whatwg-encoding: 3.1.1 - dev: true - /html-entities@2.3.3: - resolution: {integrity: sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==} - dev: false + html-entities@2.3.3: {} - /html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==} - engines: {node: '>=12'} - hasBin: true + html-minifier-terser@6.1.0: dependencies: camel-case: 4.1.2 clean-css: 5.3.1 @@ -13052,22 +17592,12 @@ packages: param-case: 3.0.4 relateurl: 0.2.7 terser: 5.15.1 - dev: false - /html-tags@3.2.0: - resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} - engines: {node: '>=8'} - dev: false + html-tags@3.2.0: {} - /html-void-elements@1.0.5: - resolution: {integrity: sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==} - dev: false + html-void-elements@1.0.5: {} - /html-webpack-plugin@5.5.0(webpack@5.74.0): - resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==} - engines: {node: '>=10.13.0'} - peerDependencies: - webpack: ^5.20.0 + html-webpack-plugin@5.5.0(webpack@5.74.0): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -13075,62 +17605,43 @@ packages: pretty-error: 4.0.0 tapable: 2.2.1 webpack: 5.74.0 - dev: false - /htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 domhandler: 4.3.1 domutils: 2.8.0 entities: 2.2.0 - dev: false - /htmlparser2@8.0.1: - resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} + htmlparser2@8.0.1: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 domutils: 3.0.1 entities: 4.4.0 - dev: false - /http-cache-semantics@4.1.0: - resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} - dev: false + http-cache-semantics@4.1.0: {} - /http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} - dev: false + http-deceiver@1.2.7: {} - /http-errors@1.6.3: - resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} - engines: {node: '>= 0.6'} + http-errors@1.6.3: dependencies: depd: 1.1.2 inherits: 2.0.3 setprototypeof: 1.1.0 statuses: 1.5.0 - dev: false - /http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + http-errors@2.0.0: dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 statuses: 2.0.1 toidentifier: 1.0.1 - dev: false - /http-parser-js@0.5.8: - resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} - dev: false + http-parser-js@0.5.8: {} - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} + http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 @@ -13138,559 +17649,312 @@ packages: transitivePeerDependencies: - supports-color - /http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /http-proxy-middleware@2.0.6(@types/express@4.17.15): - resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} - engines: {node: '>=12.0.0'} - peerDependencies: - '@types/express': ^4.17.13 - peerDependenciesMeta: - '@types/express': - optional: true + http-proxy-middleware@2.0.6(@types/express@4.17.15): dependencies: - '@types/express': 4.17.15 '@types/http-proxy': 1.17.9 http-proxy: 1.18.1 is-glob: 4.0.3 is-plain-obj: 3.0.0 micromatch: 4.0.5 + optionalDependencies: + '@types/express': 4.17.15 transitivePeerDependencies: - debug - dev: false - /http-proxy@1.18.1: - resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} - engines: {node: '>=8.0.0'} + http-proxy@1.18.1: dependencies: eventemitter3: 4.0.7 follow-redirects: 1.15.2 requires-port: 1.0.0 transitivePeerDependencies: - debug - dev: false - /https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 debug: 4.3.4 transitivePeerDependencies: - supports-color - /https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} - engines: {node: '>= 14'} + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.0 debug: 4.3.4 transitivePeerDependencies: - supports-color - dev: true - /human-id@1.0.2: - resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - dev: true + human-id@1.0.2: {} - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + human-signals@2.1.0: {} - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true + human-signals@4.3.1: {} - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + human-signals@5.0.0: {} - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - /icss-utils@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + icss-utils@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /idb-keyval@6.2.0: - resolution: {integrity: sha512-uw+MIyQn2jl3+hroD7hF8J7PUviBU7BPKWw4f/ISf32D4LoGu98yHjrzWWJDASu9QNrX10tCJqk9YY0ClWm8Ng==} + idb-keyval@6.2.0: dependencies: safari-14-idb-fix: 3.0.0 - dev: false - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ieee754@1.2.1: {} - /ignore@5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} + ignore@5.2.0: {} - /image-size@1.0.2: - resolution: {integrity: sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==} - engines: {node: '>=14.0.0'} - hasBin: true + image-size@1.0.2: dependencies: queue: 6.0.2 - dev: false - /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: false + immediate@3.0.6: {} - /immer@9.0.16: - resolution: {integrity: sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==} - dev: false + immer@9.0.16: {} - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} - engines: {node: '>=4'} - dev: false + import-lazy@2.1.0: {} - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: false + imurmurhash@0.1.4: {} - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + indent-string@4.0.0: {} - /indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - dev: true + indent-string@5.0.0: {} - /infima@0.2.0-alpha.42: - resolution: {integrity: sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==} - engines: {node: '>=12'} - dev: false + infima@0.2.0-alpha.42: {} - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + inflight@1.0.6: dependencies: once: 1.4.0 wrappy: 1.0.2 - dev: false - /inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} - dev: false + inherits@2.0.3: {} - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + inherits@2.0.4: {} - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: false + ini@1.3.8: {} - /ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} - dev: false + ini@2.0.0: {} - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: false + inline-style-parser@0.1.1: {} - /internal-slot@1.0.3: - resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} - engines: {node: '>= 0.4'} + internal-slot@1.0.3: dependencies: get-intrinsic: 1.1.3 has: 1.0.3 side-channel: 1.0.4 - dev: true - /interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - dev: false + interpret@1.4.0: {} - /intl-messageformat@10.2.1: - resolution: {integrity: sha512-1lrJG2qKzcC1TVzYu1VuB1yiY68LU5rwpbHa2THCzA67Vutkz7+1lv5U20K3Lz5RAiH78zxNztMEtchokMWv8A==} + intl-messageformat@10.2.1: dependencies: '@formatjs/ecma402-abstract': 1.13.0 '@formatjs/fast-memoize': 1.2.6 '@formatjs/icu-messageformat-parser': 2.1.10 tslib: 2.4.0 - dev: false - /invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + invariant@2.2.4: dependencies: loose-envify: 1.4.0 - /ip@1.1.8: - resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==} - dev: true + ip@1.1.8: {} - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: true + ip@2.0.0: {} - /ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - dev: false + ipaddr.js@1.9.1: {} - /ipaddr.js@2.0.1: - resolution: {integrity: sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==} - engines: {node: '>= 10'} - dev: false + ipaddr.js@2.0.1: {} - /is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==} - dev: false + is-alphabetical@1.0.4: {} - /is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==} + is-alphanumerical@1.0.4: dependencies: is-alphabetical: 1.0.4 is-decimal: 1.0.4 - dev: false - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.2.1: {} - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 - dev: true - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + is-binary-path@2.1.0: dependencies: binary-extensions: 2.2.0 - dev: false - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} + is-boolean-object@1.1.2: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - dev: false + is-buffer@2.0.5: {} - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true + is-callable@1.2.7: {} - /is-ci@2.0.0: - resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} - hasBin: true + is-ci@2.0.0: dependencies: ci-info: 2.0.0 - dev: false - /is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true + is-ci@3.0.1: dependencies: ci-info: 3.5.0 - dev: true - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + is-core-module@2.11.0: dependencies: has: 1.0.3 - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} + is-date-object@1.0.5: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==} - dev: false + is-decimal@1.0.4: {} - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true + is-docker@2.2.1: {} - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true + is-docker@3.0.0: {} - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: false + is-extendable@0.1.1: {} - /is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} + is-extendable@1.0.1: dependencies: is-plain-object: 2.0.4 - dev: false - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + is-extglob@2.1.1: {} - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + is-fullwidth-code-point@3.0.0: {} - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 - /is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==} - dev: false + is-hexadecimal@1.0.4: {} - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true + is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - dev: true - /is-installed-globally@0.4.0: - resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} - engines: {node: '>=10'} + is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.0 is-path-inside: 3.0.3 - dev: false - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true + is-negative-zero@2.0.2: {} - /is-npm@5.0.0: - resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} - engines: {node: '>=10'} - dev: false + is-npm@5.0.0: {} - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - /is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} - engines: {node: '>=0.10.0'} - dev: false + is-number@7.0.0: {} - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: false + is-obj@1.0.1: {} - /is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - dev: false + is-obj@2.0.0: {} - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: false + is-path-cwd@2.2.0: {} - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true + is-path-inside@3.0.3: {} - /is-plain-obj@2.1.0: - resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} - engines: {node: '>=8'} - dev: false + is-plain-obj@1.1.0: {} - /is-plain-obj@3.0.0: - resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} - engines: {node: '>=10'} - dev: false + is-plain-obj@2.1.0: {} - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + is-plain-obj@3.0.0: {} + + is-plain-object@2.0.4: dependencies: isobject: 3.0.1 - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + is-potential-custom-element-name@1.0.1: {} - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} + is-regex@1.1.4: dependencies: call-bind: 1.0.2 has-tostringtag: 1.0.0 - dev: true - /is-regexp@1.0.0: - resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} - engines: {node: '>=0.10.0'} - dev: false + is-regexp@1.0.0: {} - /is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - dev: false + is-root@2.1.0: {} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + is-stream@2.0.1: {} - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-stream@3.0.0: {} - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} + is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 - dev: true - /is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} + is-symbol@1.0.4: dependencies: has-symbols: 1.0.3 - dev: true - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: false + is-typedarray@1.0.0: {} - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.0.2: dependencies: call-bind: 1.0.2 - dev: true - /is-whitespace-character@1.0.4: - resolution: {integrity: sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==} - dev: false + is-whitespace-character@1.0.4: {} - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true + is-windows@1.0.2: {} - /is-word-character@1.0.4: - resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} - dev: false + is-word-character@1.0.4: {} - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@2.2.0: dependencies: is-docker: 2.2.1 - /is-yarn-global@0.3.0: - resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} - dev: false + is-yarn-global@0.3.0: {} - /isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false + isarray@0.0.1: {} - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: false + isarray@1.0.0: {} - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + isexe@2.0.0: {} - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + isobject@3.0.1: {} - /its-fine@1.0.10(react@18.2.0): - resolution: {integrity: sha512-3ZRmDCocq0vmxplC866rEe4PPgOSsuRw90/tvT7nT5QndqIQWsecZPJh75rqSQSn06MxKOjX7rWV/7cFhVsCBg==} - peerDependencies: - react: '>=18.0' + its-fine@1.0.10(react@18.2.0): dependencies: '@types/react-reconciler': 0.28.2 react: 18.2.0 - dev: false - /itty-router@4.0.27: - resolution: {integrity: sha512-Q3/GOE2EJvyu3hhxGN3WDWh3QNg4v7h1KFx/jSLcIOOkpSI1jUFTgGefEESXon4j5YwqCIf0DEemjiVAFSBiUw==} - dev: false + itty-router@4.0.27: {} - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} + jackspeak@2.3.6: dependencies: '@isaacs/cliui': 8.0.2 optionalDependencies: '@pkgjs/parseargs': 0.11.0 - dev: true - /jest-util@29.2.1: - resolution: {integrity: sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-util@29.2.1: dependencies: '@jest/types': 29.2.1 '@types/node': 20.11.5 @@ -13698,28 +17962,21 @@ packages: ci-info: 3.5.0 graceful-fs: 4.2.10 picomatch: 2.3.1 - dev: false - /jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + jest-worker@27.5.1: dependencies: '@types/node': 20.11.5 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest-worker@29.2.1: - resolution: {integrity: sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-worker@29.2.1: dependencies: '@types/node': 20.11.5 jest-util: 29.2.1 merge-stream: 2.0.0 supports-color: 8.1.1 - dev: false - /joi@17.6.4: - resolution: {integrity: sha512-tPzkTJHZQjSFCc842QpdVpOZ9LI2txApboNUbW70qgnRB14Lzl+oWQOPdF2N4yqyiY14wBGe8lc7f/2hZxbGmw==} + joi@17.6.4: dependencies: '@hapi/hoek': 9.3.0 '@hapi/topo': 5.1.0 @@ -13727,30 +17984,18 @@ packages: '@sideway/formula': 3.0.0 '@sideway/pinpoint': 2.0.0 - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@4.0.0: {} - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true + js-yaml@3.14.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true + js-yaml@4.1.0: dependencies: argparse: 2.0.1 - /jsdom@20.0.0: - resolution: {integrity: sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true + jsdom@20.0.0: dependencies: abab: 2.0.6 acorn: 8.8.0 @@ -13784,14 +18029,7 @@ packages: - supports-color - utf-8-validate - /jsdom@24.1.0: - resolution: {integrity: sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==} - engines: {node: '>=18'} - peerDependencies: - canvas: ^2.11.2 - peerDependenciesMeta: - canvas: - optional: true + jsdom@24.1.0: dependencies: cssstyle: 4.0.1 data-urls: 5.0.0 @@ -13818,56 +18056,32 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: false + jsesc@0.5.0: {} - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: false + jsesc@2.5.2: {} - /json-buffer@3.0.0: - resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} - dev: false + json-buffer@3.0.0: {} - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + json-parse-even-better-errors@2.3.1: {} - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema-traverse@0.4.1: {} - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: false + json-schema-traverse@1.0.0: {} - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - dev: false + json5@2.2.3: {} - /jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.10 - dev: true - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + jsonfile@6.1.0: dependencies: universalify: 2.0.0 optionalDependencies: graceful-fs: 4.2.10 - dev: false - /jsonwebtoken@8.5.1: - resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==} - engines: {node: '>=4', npm: '>=1.4.28'} + jsonwebtoken@8.5.1: dependencies: jws: 3.2.2 lodash.includes: 4.3.0 @@ -13879,372 +18093,217 @@ packages: lodash.once: 4.1.1 ms: 2.1.3 semver: 5.7.1 - dev: false - /jszip@3.10.1: - resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + jszip@3.10.1: dependencies: lie: 3.3.0 pako: 1.0.11 readable-stream: 2.3.7 setimmediate: 1.0.5 - dev: false - /jwa@1.4.1: - resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + jwa@1.4.1: dependencies: buffer-equal-constant-time: 1.0.1 ecdsa-sig-formatter: 1.0.11 safe-buffer: 5.2.1 - dev: false - /jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + jws@3.2.2: dependencies: jwa: 1.4.1 safe-buffer: 5.2.1 - dev: false - /jwt-decode@3.1.2: - resolution: {integrity: sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==} - dev: false + jwt-decode@3.1.2: {} - /keyv@3.1.0: - resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} + keyv@3.1.0: dependencies: json-buffer: 3.0.0 - dev: false - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} + kind-of@6.0.3: {} - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: false + kleur@3.0.3: {} - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: true + kleur@4.1.5: {} - /klona@2.0.5: - resolution: {integrity: sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==} - engines: {node: '>= 8'} - dev: false + klona@2.0.5: {} - /ktx-parse@0.4.5: - resolution: {integrity: sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg==} - dev: false + ktx-parse@0.4.5: {} - /kysely-plugin-serialize@0.5.7(kysely@0.27.3): - resolution: {integrity: sha512-FWPcH7eR3i059iogfzQS3qzNABQbUEnJug1paQ74G3MSUUgKAC5hp7T75oeHrnWgNHYCvQJfppD29vHXGVRgAg==} - peerDependencies: - kysely: '>=0.26' + kysely-plugin-serialize@0.5.7(kysely@0.27.3): dependencies: kysely: 0.27.3 - dev: false - /kysely@0.27.3: - resolution: {integrity: sha512-lG03Ru+XyOJFsjH3OMY6R/9U38IjDPfnOfDgO3ynhbDr+Dz8fak+X6L62vqu3iybQnj+lG84OttBuU9KY3L9kA==} - engines: {node: '>=14.0.0'} - dev: false + kysely@0.27.3: {} - /latest-version@5.1.0: - resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} - engines: {node: '>=8'} + latest-version@5.1.0: dependencies: package-json: 6.5.0 - dev: false - /leva@0.9.34(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-hQmWAakOCuBXYIenJ7RaNIei5enDwHNNb6Gz5BUU3mZk+ElECdbvNJbmcMfkFAJslJw33MXRabt7OKIzItLLWw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + leva@0.9.34(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@radix-ui/react-portal': 0.1.4(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-tooltip': 0.1.6(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 0.1.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@radix-ui/react-tooltip': 0.1.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@stitches/react': 1.2.8(react@18.2.0) '@use-gesture/react': 10.2.24(react@18.2.0) colord: 2.9.3 dequal: 2.0.3 merge-value: 1.0.0 react: 18.2.0 - react-colorful: 5.6.1(react-dom@18.2.0)(react@18.2.0) + react-colorful: 5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-dom: 18.2.0(react@18.2.0) react-dropzone: 12.1.0(react@18.2.0) v8n: 1.5.1 zustand: 3.7.2(react@18.2.0) - dev: false - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: false + leven@3.1.0: {} - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} + levn@0.3.0: dependencies: prelude-ls: 1.1.2 type-check: 0.3.2 - /lie@3.3.0: - resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lie@3.3.0: dependencies: immediate: 3.0.6 - dev: false - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} - dev: false + lilconfig@2.0.6: {} - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + lines-and-columns@1.2.4: {} - /load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} + load-yaml-file@0.2.0: dependencies: graceful-fs: 4.2.10 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - dev: true - /loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + loader-runner@4.3.0: {} - /loader-utils@2.0.3: - resolution: {integrity: sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==} - engines: {node: '>=8.9.0'} + loader-utils@2.0.3: dependencies: big.js: 5.2.2 emojis-list: 3.0.0 json5: 2.2.3 - dev: false - /loader-utils@3.2.0: - resolution: {integrity: sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==} - engines: {node: '>= 12.13.0'} - dev: false + loader-utils@3.2.0: {} - /locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} + locate-path@3.0.0: dependencies: p-locate: 3.0.0 path-exists: 3.0.0 - dev: false - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + locate-path@6.0.0: dependencies: p-locate: 5.0.0 - /locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + locate-path@7.2.0: dependencies: p-locate: 6.0.0 - dev: true - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: false + lodash.camelcase@4.3.0: {} - /lodash.clamp@4.0.3: - resolution: {integrity: sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg==} - dev: false + lodash.clamp@4.0.3: {} - /lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} - dev: false + lodash.curry@4.1.1: {} - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false + lodash.debounce@4.0.8: {} - /lodash.flow@3.5.0: - resolution: {integrity: sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==} - dev: false + lodash.flow@3.5.0: {} - /lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} - dev: false + lodash.includes@4.3.0: {} - /lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} - dev: false + lodash.isboolean@3.0.3: {} - /lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} - dev: false + lodash.isinteger@4.0.4: {} - /lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} - dev: false + lodash.isnumber@3.0.3: {} - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false + lodash.isplainobject@4.0.6: {} - /lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} - dev: false + lodash.isstring@4.0.1: {} - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: false + lodash.memoize@4.1.2: {} - /lodash.omit@4.5.0: - resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} - dev: false + lodash.omit@4.5.0: {} - /lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - dev: false + lodash.once@4.1.1: {} - /lodash.pick@4.4.0: - resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} - dev: false + lodash.pick@4.4.0: {} - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: true + lodash.startcase@4.4.0: {} - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: false + lodash.uniq@4.5.0: {} - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: false + lodash@4.17.21: {} - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 - /loupe@3.1.1: - resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + loupe@3.1.1: dependencies: get-func-name: 2.0.2 - /lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lower-case@2.0.2: dependencies: tslib: 2.6.2 - dev: false - /lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} - engines: {node: '>=0.10.0'} - dev: false + lowercase-keys@1.0.1: {} - /lowercase-keys@2.0.0: - resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} - engines: {node: '>=8'} - dev: false + lowercase-keys@2.0.0: {} - /lru-cache@10.0.1: - resolution: {integrity: sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==} - engines: {node: 14 || >=16.14} - dev: true + lru-cache@10.0.1: {} - /lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} + lru-cache@4.1.5: dependencies: pseudomap: 1.0.2 yallist: 2.1.2 - dev: true - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 - dev: false - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - dev: true + lru-cache@7.18.3: {} - /maath@0.5.2(@types/three@0.149.0)(three@0.150.1): - resolution: {integrity: sha512-MFjfnXF5CzZaVnBuKc9y1FJh/BiPGqf19NH8Jm4o/jKTxuQ3RyPkcSIpuwdDhXrWROVKAxi3KjmHFUNMuIndbg==} - peerDependencies: - '@types/three': '>=0.144.0' - three: '>=0.144.0' + maath@0.5.2(@types/three@0.149.0)(three@0.150.1): dependencies: '@types/three': 0.149.0 three: 0.150.1 - dev: false - /magic-string@0.26.7: - resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} - engines: {node: '>=12'} + magic-string@0.26.7: dependencies: sourcemap-codec: 1.4.8 - dev: false - /magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.11: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - /make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + make-dir@3.1.0: dependencies: semver: 6.3.0 - dev: false - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true + map-obj@1.0.1: {} - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true + map-obj@4.3.0: {} - /markdown-escapes@1.0.4: - resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==} - dev: false + markdown-escapes@1.0.4: {} - /mdast-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} + mdast-squeeze-paragraphs@4.0.0: dependencies: unist-util-remove: 2.1.0 - dev: false - /mdast-util-definitions@4.0.0: - resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} + mdast-util-definitions@4.0.0: dependencies: unist-util-visit: 2.0.3 - dev: false - /mdast-util-to-hast@10.0.1: - resolution: {integrity: sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==} + mdast-util-to-hast@10.0.1: dependencies: '@types/mdast': 3.0.10 '@types/unist': 2.0.6 @@ -14254,35 +18313,20 @@ packages: unist-util-generated: 1.1.6 unist-util-position: 3.1.0 unist-util-visit: 2.0.3 - dev: false - /mdast-util-to-string@2.0.0: - resolution: {integrity: sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==} - dev: false + mdast-util-to-string@2.0.0: {} - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: false + mdn-data@2.0.14: {} - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - dev: false + mdurl@1.0.1: {} - /media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - dev: false + media-typer@0.3.0: {} - /memfs@3.4.8: - resolution: {integrity: sha512-E8QAFfd4csESWOqKIpN+khILPFSAZwPR9S+DO/5UtJNcuanF1jLZz0oWUAPF7xd2c1r6dGjGx+jH1st+MFWufA==} - engines: {node: '>= 4.0.0'} + memfs@3.4.8: dependencies: fs-monkey: 1.0.3 - dev: false - /meow@11.0.0: - resolution: {integrity: sha512-Cl0yeeIrko6d94KpUo1M+0X1sB14ikoaqlIGuTH1fW4I+E3+YljL54/hb/BWmVfrV9tTV9zU04+xjw08Fh2WkA==} - engines: {node: '>=14.16'} + meow@11.0.0: dependencies: '@types/minimist': 1.2.2 camelcase-keys: 8.0.2 @@ -14296,11 +18340,8 @@ packages: trim-newlines: 4.1.1 type-fest: 3.13.1 yargs-parser: 21.1.1 - dev: true - /meow@6.1.1: - resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} - engines: {node: '>=8'} + meow@6.1.1: dependencies: '@types/minimist': 1.2.2 camelcase-keys: 6.2.2 @@ -14313,514 +18354,286 @@ packages: trim-newlines: 3.0.1 type-fest: 0.13.1 yargs-parser: 18.1.3 - dev: true - /merge-descriptors@1.0.1: - resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} - dev: false + merge-descriptors@1.0.1: {} - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge-stream@2.0.0: {} - /merge-value@1.0.0: - resolution: {integrity: sha512-fJMmvat4NeKz63Uv9iHWcPDjCWcCkoiRoajRTEO8hlhUC6rwaHg0QCF9hBOTjZmm4JuglPckPSTtcuJL5kp0TQ==} - engines: {node: '>=0.10.0'} + merge-value@1.0.0: dependencies: get-value: 2.0.6 is-extendable: 1.0.1 mixin-deep: 1.3.2 set-value: 2.0.1 - dev: false - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + merge2@1.4.1: {} - /meshline@3.1.6(three@0.150.1): - resolution: {integrity: sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug==} - peerDependencies: - three: '>=0.137' + meshline@3.1.6(three@0.150.1): dependencies: three: 0.150.1 - dev: false - /methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - dev: false + methods@1.1.2: {} - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + micromatch@4.0.5: dependencies: braces: 3.0.2 picomatch: 2.3.1 - /mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} - dev: false + mime-db@1.33.0: {} - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + mime-db@1.52.0: {} - /mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + mime-types@2.1.18: dependencies: mime-db: 1.33.0 - dev: false - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 - /mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - dev: false + mime@1.6.0: {} - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + mimic-fn@2.1.0: {} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + mimic-fn@4.0.0: {} - /mimic-response@1.0.1: - resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} - engines: {node: '>=4'} - dev: false + mimic-response@1.0.1: {} - /mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - dev: false + mimic-response@3.1.0: {} - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true + min-indent@1.0.1: {} - /mini-css-extract-plugin@2.6.1(webpack@5.74.0): - resolution: {integrity: sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 + mini-css-extract-plugin@2.6.1(webpack@5.74.0): dependencies: schema-utils: 4.0.0 webpack: 5.74.0 - dev: false - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - dev: false + minimalistic-assert@1.0.1: {} - /minimatch@3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + minimatch@3.0.4: dependencies: brace-expansion: 1.1.11 - dev: false - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 - dev: false - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.3: dependencies: brace-expansion: 2.0.1 - dev: true - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} + minimist-options@4.1.0: dependencies: arrify: 1.0.1 is-plain-obj: 1.1.0 kind-of: 6.0.3 - dev: true - /minimist@1.2.6: - resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} - dev: false + minimist@1.2.6: {} - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: false + minimist@1.2.8: {} - /minipass@3.3.6: - resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} - engines: {node: '>=8'} + minipass@3.3.6: dependencies: yallist: 4.0.0 - dev: false - - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} - dev: false - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true + minipass@5.0.0: {} - /minizlib@2.1.2: - resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} - engines: {node: '>= 8'} + minipass@7.0.4: {} + + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - dev: false - /mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} - dev: true + mitt@3.0.1: {} - /mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} + mixin-deep@1.3.2: dependencies: for-in: 1.0.2 is-extendable: 1.0.1 - dev: false - /mixme@0.5.4: - resolution: {integrity: sha512-3KYa4m4Vlqx98GPdOHghxSdNtTvcP8E0kkaJ5Dlh+h2DRzF7zpuVVcA8B0QpKd11YJeP9QQ7ASkKzOeu195Wzw==} - engines: {node: '>= 8.0.0'} - dev: true + mixme@0.5.4: {} - /mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: false + mkdirp-classic@0.5.3: {} - /mkdirp@1.0.4: - resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} - engines: {node: '>=10'} - hasBin: true - dev: false + mkdirp@1.0.4: {} - /mmd-parser@1.0.4: - resolution: {integrity: sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg==} - dev: false + mmd-parser@1.0.4: {} - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} - engines: {node: '>=10'} - dev: false + mrmime@1.0.1: {} - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: false + ms@2.0.0: {} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + ms@2.1.2: {} - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - dev: false + ms@2.1.3: {} - /multicast-dns@7.2.5: - resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} - hasBin: true + multicast-dns@7.2.5: dependencies: dns-packet: 5.4.0 thunky: 1.1.0 - dev: false - /nanoid@3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nanoid@3.3.4: {} - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + nanoid@3.3.7: {} - /napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: false + napi-build-utils@1.0.2: {} - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - dev: false + negotiator@0.6.3: {} - /neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + neo-async@2.6.2: {} - /netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} - dev: true + netmask@2.0.2: {} - /no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.6.2 - dev: false - /node-abi@3.24.0: - resolution: {integrity: sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==} - engines: {node: '>=10'} + node-abi@3.24.0: dependencies: semver: 7.5.4 - dev: false - /node-addon-api@5.1.0: - resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} - dev: false + node-addon-api@5.1.0: {} - /node-emoji@1.11.0: - resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} + node-emoji@1.11.0: dependencies: lodash: 4.17.21 - dev: false - /node-fetch@2.6.7: - resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.6.7: dependencies: whatwg-url: 5.0.0 - dev: false - /node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - dev: false - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: false + node-forge@1.3.1: {} - /node-releases@2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} + node-releases@2.0.6: {} - /nopt@5.0.0: - resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} - engines: {node: '>=6'} - hasBin: true + nopt@5.0.0: dependencies: abbrev: 1.1.1 - dev: false - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 resolve: 1.22.1 semver: 5.7.1 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} + normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.11.0 semver: 7.5.4 validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@4.0.1: - resolution: {integrity: sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + normalize-package-data@4.0.1: dependencies: hosted-git-info: 5.2.1 is-core-module: 2.11.0 semver: 7.5.4 validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: false + normalize-path@3.0.0: {} - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: false + normalize-range@0.1.2: {} - /normalize-url@4.5.1: - resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} - engines: {node: '>=8'} - dev: false + normalize-url@4.5.1: {} - /normalize-url@6.1.0: - resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} - engines: {node: '>=10'} - dev: false + normalize-url@6.1.0: {} - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + npm-run-path@5.2.0: dependencies: path-key: 4.0.0 - /npmlog@5.0.1: - resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + npmlog@5.0.1: dependencies: are-we-there-yet: 2.0.0 console-control-strings: 1.1.0 gauge: 3.0.2 set-blocking: 2.0.0 - dev: false - /nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} - dev: false + nprogress@0.2.0: {} - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@2.1.1: dependencies: boolbase: 1.0.0 - dev: false - /nwsapi@2.2.10: - resolution: {integrity: sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==} - dev: true + nwsapi@2.2.10: {} - /nwsapi@2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} + nwsapi@2.2.2: {} - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + object-assign@4.1.1: {} - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: false + object-hash@3.0.0: {} - /object-inspect@1.12.2: - resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + object-inspect@1.12.2: {} - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + object-keys@1.1.1: {} - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} + object.assign@4.1.4: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 has-symbols: 1.0.3 object-keys: 1.1.1 - /obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} - dev: false + obuf@1.1.2: {} - /on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} + on-finished@2.4.1: dependencies: ee-first: 1.1.1 - dev: false - /on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} - dev: false + on-headers@1.0.2: {} - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + once@1.4.0: dependencies: wrappy: 1.0.2 - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 - /open-cli@7.2.0: - resolution: {integrity: sha512-1ANJc8oJ92FiaNZ0o2Hw4WBvDJoXs1P74aFMtpAvlbkIPV4uPcQvDz7V6kMOrsZkmB4tglrHVMlLQaafuUuxXg==} - engines: {node: '>=14.16'} - hasBin: true + open-cli@7.2.0: dependencies: file-type: 18.7.0 get-stdin: 9.0.0 meow: 11.0.0 open: 9.1.0 tempy: 3.1.0 - dev: true - /open@8.4.0: - resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} - engines: {node: '>=12'} + open@8.4.0: dependencies: define-lazy-prop: 2.0.0 is-docker: 2.2.1 is-wsl: 2.2.0 - dev: false - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} + open@9.1.0: dependencies: default-browser: 4.0.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 is-wsl: 2.2.0 - dev: true - /opener@1.5.2: - resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} - hasBin: true - dev: false + opener@1.5.2: {} - /opentype.js@1.3.4: - resolution: {integrity: sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw==} - engines: {node: '>= 8.0.0'} - hasBin: true + opentype.js@1.3.4: dependencies: string.prototype.codepointat: 0.2.1 tiny-inflate: 1.0.3 - dev: false - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} + optionator@0.8.3: dependencies: deep-is: 0.1.4 fast-levenshtein: 2.0.6 @@ -14829,99 +18642,58 @@ packages: type-check: 0.3.2 word-wrap: 1.2.3 - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true + os-tmpdir@1.0.2: {} - /outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - dev: true + outdent@0.5.0: {} - /p-cancelable@1.1.0: - resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} - engines: {node: '>=6'} - dev: false + p-cancelable@1.1.0: {} - /p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + p-filter@2.1.0: dependencies: p-map: 2.1.0 - dev: true - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@4.0.0: dependencies: yocto-queue: 1.0.0 - dev: true - /p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} + p-locate@3.0.0: dependencies: p-limit: 2.3.0 - dev: false - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + p-locate@5.0.0: dependencies: p-limit: 3.1.0 - /p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-locate@6.0.0: dependencies: p-limit: 4.0.0 - dev: true - /p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - dev: true + p-map@2.1.0: {} - /p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + p-map@4.0.0: dependencies: aggregate-error: 3.1.0 - dev: false - /p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 - dev: false - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + p-try@2.2.0: {} - /pac-proxy-agent@7.0.1: - resolution: {integrity: sha512-ASV8yU4LLKBAjqIPMbrgtaKIvxQri/yh2OpI+S6hVa9JRkUI3Y3NPFbfngDtY7oFtSMD3w31Xns89mDa3Feo5A==} - engines: {node: '>= 14'} + pac-proxy-agent@7.0.1: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.0 @@ -14933,46 +18705,32 @@ packages: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: true - /pac-resolver@7.0.0: - resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==} - engines: {node: '>= 14'} + pac-resolver@7.0.0: dependencies: degenerator: 5.0.1 ip: 1.1.8 netmask: 2.0.2 - dev: true - /package-json@6.5.0: - resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} - engines: {node: '>=8'} + package-json@6.5.0: dependencies: got: 9.6.0 registry-auth-token: 4.2.2 registry-url: 5.1.0 semver: 6.3.0 - dev: false - /pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - dev: false + pako@1.0.11: {} - /param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + param-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: false - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + parent-module@1.0.1: dependencies: callsites: 3.1.0 - /parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==} + parse-entities@2.0.0: dependencies: character-entities: 1.2.4 character-entities-legacy: 1.1.4 @@ -14980,902 +18738,488 @@ packages: is-alphanumerical: 1.0.4 is-decimal: 1.0.4 is-hexadecimal: 1.0.4 - dev: false - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + parse-json@5.2.0: dependencies: '@babel/code-frame': 7.22.5 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false + parse-numeric-range@1.3.0: {} - /parse5-htmlparser2-tree-adapter@7.0.0: - resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + parse5-htmlparser2-tree-adapter@7.0.0: dependencies: domhandler: 5.0.3 parse5: 7.1.1 - dev: false - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: false + parse5@6.0.1: {} - /parse5@7.1.1: - resolution: {integrity: sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==} + parse5@7.1.1: dependencies: entities: 4.4.0 - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.1.2: dependencies: entities: 4.4.0 - dev: true - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: false + parseurl@1.3.3: {} - /pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + pascal-case@3.1.2: dependencies: no-case: 3.0.4 tslib: 2.6.2 - dev: false - /path-case@3.0.4: - resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + path-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: false - /path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - dev: false + path-exists@3.0.0: {} - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + path-exists@4.0.0: {} - /path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true + path-exists@5.0.0: {} - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: false + path-is-absolute@1.0.1: {} - /path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - dev: false + path-is-inside@1.0.2: {} - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + path-key@3.1.1: {} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + path-key@4.0.0: {} - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-parse@1.0.7: {} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} + path-scurry@1.10.1: dependencies: lru-cache: 10.0.1 minipass: 7.0.4 - dev: true - /path-to-regexp@0.1.7: - resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} - dev: false + path-to-regexp@0.1.7: {} - /path-to-regexp@1.8.0: - resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} + path-to-regexp@1.8.0: dependencies: isarray: 0.0.1 - dev: false - /path-to-regexp@2.2.1: - resolution: {integrity: sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==} - dev: false + path-to-regexp@2.2.1: {} - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: false + path-to-regexp@6.2.1: {} - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-type@4.0.0: {} - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + pathe@1.1.2: {} - /pathval@2.0.0: - resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} - engines: {node: '>= 14.16'} + pathval@2.0.0: {} - /peek-readable@5.0.0: - resolution: {integrity: sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==} - engines: {node: '>=14.16'} - dev: true + peek-readable@5.0.0: {} - /pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + pend@1.2.0: {} - /perfect-freehand@1.2.0: - resolution: {integrity: sha512-h/0ikF1M3phW7CwpZ5MMvKnfpHficWoOEyr//KVNTxV4F6deRK1eYMtHyBKEAKFK0aXIEUK9oBvlF6PNXMDsAw==} - dev: false + perfect-freehand@1.2.0: {} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + picocolors@1.0.0: {} - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + picomatch@2.3.1: {} - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - dev: true + pify@4.0.1: {} - /pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 - /pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} + pkg-up@3.1.0: dependencies: find-up: 3.0.0 - dev: false - /postcss-calc@8.2.4(postcss@8.4.16): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 + postcss-calc@8.2.4(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 - dev: false - /postcss-calc@8.2.4(postcss@8.4.21): - resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} - peerDependencies: - postcss: ^8.2.2 + postcss-calc@8.2.4(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 - dev: false - /postcss-colormin@5.3.0(postcss@8.4.16): - resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-colormin@5.3.0(postcss@8.4.16): dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-colormin@5.3.0(postcss@8.4.21): - resolution: {integrity: sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-colormin@5.3.0(postcss@8.4.21): dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-convert-values@5.1.3(postcss@8.4.16): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-convert-values@5.1.3(postcss@8.4.16): dependencies: browserslist: 4.21.4 postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-convert-values@5.1.3(postcss@8.4.21): - resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-convert-values@5.1.3(postcss@8.4.21): dependencies: browserslist: 4.21.4 postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.16): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-comments@5.1.2(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - /postcss-discard-comments@5.1.2(postcss@8.4.21): - resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-comments@5.1.2(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-duplicates@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - /postcss-discard-duplicates@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-duplicates@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-empty@5.1.1(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - /postcss-discard-empty@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-empty@5.1.1(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss-discard-overridden@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-overridden@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - - /postcss-discard-overridden@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + + postcss-discard-overridden@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss-discard-unused@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-discard-unused@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.10 - dev: false - /postcss-loader@7.0.1(postcss@8.4.16)(webpack@5.74.0): - resolution: {integrity: sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==} - engines: {node: '>= 14.15.0'} - peerDependencies: - postcss: ^7.0.0 || ^8.0.1 - webpack: ^5.0.0 + postcss-loader@7.0.1(postcss@8.4.16)(webpack@5.74.0): dependencies: cosmiconfig: 7.0.1 klona: 2.0.5 postcss: 8.4.16 semver: 7.5.4 webpack: 5.74.0 - dev: false - /postcss-merge-idents@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-idents@5.1.1(postcss@8.4.21): dependencies: cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.16): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-longhand@5.1.7(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.16) - dev: false - /postcss-merge-longhand@5.1.7(postcss@8.4.21): - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-longhand@5.1.7(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.21) - dev: false - /postcss-merge-rules@5.1.3(postcss@8.4.16): - resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-rules@5.1.3(postcss@8.4.16): dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.16) postcss: 8.4.16 postcss-selector-parser: 6.0.10 - dev: false - /postcss-merge-rules@5.1.3(postcss@8.4.21): - resolution: {integrity: sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-merge-rules@5.1.3(postcss@8.4.21): dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-selector-parser: 6.0.10 - dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-font-values@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-font-values@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-font-values@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-gradients@5.1.1(postcss@8.4.16): dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.16) postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-gradients@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-gradients@5.1.1(postcss@8.4.21): dependencies: colord: 2.9.3 cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-params@5.1.4(postcss@8.4.16): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-params@5.1.4(postcss@8.4.16): dependencies: browserslist: 4.21.4 cssnano-utils: 3.1.0(postcss@8.4.16) postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-params@5.1.4(postcss@8.4.21): - resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-params@5.1.4(postcss@8.4.21): dependencies: browserslist: 4.21.4 cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.16): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-selectors@5.2.1(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-selector-parser: 6.0.10 - dev: false - /postcss-minify-selectors@5.2.1(postcss@8.4.21): - resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-minify-selectors@5.2.1(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.10 - dev: false - /postcss-modules-extract-imports@3.0.0(postcss@8.4.21): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-extract-imports@3.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss-modules-local-by-default@4.0.0(postcss@8.4.21): - resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-local-by-default@4.0.0(postcss@8.4.21): dependencies: icss-utils: 5.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 - dev: false - /postcss-modules-scope@3.0.0(postcss@8.4.21): - resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-scope@3.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.10 - dev: false - /postcss-modules-values@4.0.0(postcss@8.4.21): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 + postcss-modules-values@4.0.0(postcss@8.4.21): dependencies: icss-utils: 5.1.0(postcss@8.4.21) postcss: 8.4.21 - dev: false - /postcss-normalize-charset@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-charset@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 - dev: false - /postcss-normalize-charset@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-charset@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-display-values@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-display-values@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-display-values@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-positions@5.1.1(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-positions@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-positions@5.1.1(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-repeat-style@5.1.1(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-repeat-style@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-repeat-style@5.1.1(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-string@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-string@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-string@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-timing-functions@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-timing-functions@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-timing-functions@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-unicode@5.1.1(postcss@8.4.16): dependencies: browserslist: 4.21.4 postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-unicode@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-unicode@5.1.1(postcss@8.4.21): dependencies: browserslist: 4.21.4 postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-url@5.1.0(postcss@8.4.16): dependencies: normalize-url: 6.1.0 postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-url@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-url@5.1.0(postcss@8.4.21): dependencies: normalize-url: 6.1.0 postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-whitespace@5.1.1(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-normalize-whitespace@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-normalize-whitespace@5.1.1(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.16): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-ordered-values@5.1.3(postcss@8.4.16): dependencies: cssnano-utils: 3.1.0(postcss@8.4.16) postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-ordered-values@5.1.3(postcss@8.4.21): - resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-ordered-values@5.1.3(postcss@8.4.21): dependencies: cssnano-utils: 3.1.0(postcss@8.4.21) postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-idents@5.2.0(postcss@8.4.21): - resolution: {integrity: sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-idents@5.2.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-initial@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-initial@5.1.1(postcss@8.4.16): dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 postcss: 8.4.16 - dev: false - /postcss-reduce-initial@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-initial@5.1.1(postcss@8.4.21): dependencies: browserslist: 4.21.4 caniuse-api: 3.0.0 postcss: 8.4.21 - dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-transforms@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 - dev: false - /postcss-reduce-transforms@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-reduce-transforms@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - dev: false - /postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} + postcss-selector-parser@6.0.10: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: false - /postcss-sort-media-queries@4.3.0(postcss@8.4.21): - resolution: {integrity: sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.4.16 + postcss-sort-media-queries@4.3.0(postcss@8.4.21): dependencies: postcss: 8.4.21 sort-css-media-queries: 2.1.0 - dev: false - /postcss-svgo@5.1.0(postcss@8.4.16): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-svgo@5.1.0(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-value-parser: 4.2.0 svgo: 2.8.0 - dev: false - /postcss-svgo@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-svgo@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 svgo: 2.8.0 - dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-unique-selectors@5.1.1(postcss@8.4.16): dependencies: postcss: 8.4.16 postcss-selector-parser: 6.0.10 - dev: false - /postcss-unique-selectors@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-unique-selectors@5.1.1(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.10 - dev: false - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false + postcss-value-parser@4.2.0: {} - /postcss-zindex@5.1.0(postcss@8.4.21): - resolution: {integrity: sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + postcss-zindex@5.1.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - dev: false - /postcss@8.4.16: - resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.16: dependencies: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false - /postcss@8.4.20: - resolution: {integrity: sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.20: dependencies: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: false - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.21: dependencies: nanoid: 3.3.4 picocolors: 1.0.0 source-map-js: 1.0.2 - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} - engines: {node: ^10 || ^12 || >=14} + postcss@8.4.32: dependencies: nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 - /postprocessing@6.30.1(three@0.150.1): - resolution: {integrity: sha512-GkBrQtX6KjNz+Pz3+ABvP1aXKCCW7h/tuE37wlM90WZLbaGfJ7eSIBN2gPgKExuK584IPde0YOoNiuWMr7PNCQ==} - engines: {node: '>= 0.13.2'} - peerDependencies: - three: '>= 0.138.0 < 0.151.0' + postprocessing@6.30.1(three@0.150.1): dependencies: three: 0.150.1 - dev: false - /potpack@1.0.2: - resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} - dev: false + potpack@1.0.2: {} - /prebuild-install@7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} - engines: {node: '>=10'} - hasBin: true + prebuild-install@7.1.1: dependencies: detect-libc: 2.0.1 expand-template: 2.0.3 @@ -15889,110 +19233,64 @@ packages: simple-get: 4.0.1 tar-fs: 2.1.1 tunnel-agent: 0.6.0 - dev: false - /preferred-pm@3.0.3: - resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} - engines: {node: '>=10'} + preferred-pm@3.0.3: dependencies: find-up: 5.0.0 find-yarn-workspace-root2: 1.2.16 path-exists: 4.0.0 which-pm: 2.0.0 - dev: true - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} + prelude-ls@1.1.2: {} - /prepend-http@2.0.0: - resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} - engines: {node: '>=4'} - dev: false + prepend-http@2.0.0: {} - /prettier@2.7.1: - resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: true + prettier@2.7.1: {} - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} - engines: {node: '>=14'} - hasBin: true - dev: false + prettier@3.0.3: {} - /pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-error@4.0.0: dependencies: lodash: 4.17.21 renderkid: 3.0.0 - dev: false - /pretty-time@1.1.0: - resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==} - engines: {node: '>=4'} - dev: false + pretty-time@1.1.0: {} - /prism-react-renderer@1.3.5(react@18.2.0): - resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==} - peerDependencies: - react: '>=0.14.9' + prism-react-renderer@1.3.5(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false + prismjs@1.29.0: {} - /process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - dev: false + process-nextick-args@2.0.1: {} - /progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} + progress@2.0.3: {} - /promise@7.3.1: - resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + promise@7.3.1: dependencies: asap: 2.0.6 - dev: false - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + prompts@2.4.2: dependencies: kleur: 3.0.3 sisteransi: 1.0.5 - dev: false - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prop-types@15.8.1: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - /property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==} + property-information@5.6.0: dependencies: xtend: 4.0.2 - dev: false - /proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - dev: false - /proxy-agent@6.4.0: - resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} - engines: {node: '>= 14'} + proxy-agent@6.4.0: dependencies: agent-base: 7.1.0 debug: 4.3.5 @@ -16004,47 +19302,29 @@ packages: socks-proxy-agent: 8.0.2 transitivePeerDependencies: - supports-color - dev: true - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + proxy-from-env@1.1.0: {} - /pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - dev: true + pseudomap@1.0.2: {} - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + psl@1.9.0: {} - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.0: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - /punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} - dev: false + punycode@1.4.1: {} - /punycode@2.1.1: - resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} - engines: {node: '>=6'} + punycode@2.1.1: {} - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: true + punycode@2.3.1: {} - /pupa@2.1.1: - resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} - engines: {node: '>=8'} + pupa@2.1.1: dependencies: escape-goat: 2.1.1 - dev: false - /puppeteer-core@19.4.1: - resolution: {integrity: sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==} - engines: {node: '>=14.1.0'} + puppeteer-core@19.4.1: dependencies: cross-fetch: 3.1.5 debug: 4.3.4 @@ -16061,11 +19341,8 @@ packages: - encoding - supports-color - utf-8-validate - dev: false - /puppeteer-core@22.12.1: - resolution: {integrity: sha512-XmqeDPVdC5/3nGJys1jbgeoZ02wP0WV1GBlPtr/ULRbGXJFuqgXMcKQ3eeNtFpBzGRbpeoCGWHge1ZWKWl0Exw==} - engines: {node: '>=18'} + puppeteer-core@22.12.1: dependencies: '@puppeteer/browsers': 2.2.3 chromium-bidi: 0.5.24(devtools-protocol@0.0.1299070) @@ -16076,12 +19353,8 @@ packages: - bufferutil - supports-color - utf-8-validate - dev: true - /puppeteer@19.4.1: - resolution: {integrity: sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==} - engines: {node: '>=14.1.0'} - requiresBuild: true + puppeteer@19.4.1: dependencies: cosmiconfig: 8.0.0 https-proxy-agent: 5.0.1 @@ -16093,13 +19366,8 @@ packages: - encoding - supports-color - utf-8-validate - dev: false - /puppeteer@22.12.1(typescript@5.4.2): - resolution: {integrity: sha512-1GxY8dnEnHr1SLzdSDr0FCjM6JQfAh2E2I/EqzeF8a58DbGVk9oVjj4lFdqNoVbpgFSpAbz7VER9St7S1wDpNg==} - engines: {node: '>=18'} - hasBin: true - requiresBuild: true + puppeteer@22.12.1(typescript@5.4.2): dependencies: '@puppeteer/browsers': 2.2.3 cosmiconfig: 9.0.0(typescript@5.4.2) @@ -16110,117 +19378,67 @@ packages: - supports-color - typescript - utf-8-validate - dev: true - /pure-color@1.3.0: - resolution: {integrity: sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==} - dev: false + pure-color@1.3.0: {} - /qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} + qs@6.11.0: dependencies: side-channel: 1.0.4 - dev: false - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + querystringify@2.2.0: {} - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-microtask@1.2.3: {} - /queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - dev: true + queue-tick@1.0.1: {} - /queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} + queue@6.0.2: dependencies: inherits: 2.0.4 - dev: false - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true + quick-lru@4.0.1: {} - /quick-lru@6.1.2: - resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==} - engines: {node: '>=12'} - dev: true + quick-lru@6.1.2: {} - /randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - /range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} - dev: false + range-parser@1.2.0: {} - /range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - dev: false + range-parser@1.2.1: {} - /raw-body@2.5.1: - resolution: {integrity: sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==} - engines: {node: '>= 0.8'} + raw-body@2.5.1: dependencies: bytes: 3.1.2 http-errors: 2.0.0 iconv-lite: 0.4.24 unpipe: 1.0.0 - dev: false - /rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true + rc@1.2.8: dependencies: deep-extend: 0.6.0 ini: 1.3.8 minimist: 1.2.8 strip-json-comments: 2.0.1 - dev: false - /react-base16-styling@0.6.0: - resolution: {integrity: sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==} + react-base16-styling@0.6.0: dependencies: base16: 1.0.0 lodash.curry: 4.1.1 lodash.flow: 3.5.0 pure-color: 1.3.0 - dev: false - /react-colorful@5.6.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' + react-colorful@5.6.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /react-composer@5.0.3(react@18.2.0): - resolution: {integrity: sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA==} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-composer@5.0.3(react@18.2.0): dependencies: prop-types: 15.8.1 react: 18.2.0 - dev: false - /react-dev-utils@12.0.1(typescript@5.4.2)(webpack@5.74.0): - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true + react-dev-utils@12.0.1(typescript@5.4.2)(webpack@5.74.0): dependencies: '@babel/code-frame': 7.22.5 address: 1.2.1 @@ -16246,67 +19464,43 @@ packages: shell-quote: 1.7.4 strip-ansi: 6.0.1 text-table: 0.2.0 - typescript: 5.4.2 webpack: 5.74.0 + optionalDependencies: + typescript: 5.4.2 transitivePeerDependencies: - eslint - supports-color - vue-template-compiler - dev: false - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 + react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.23.0 - /react-dom@18.3.1(react@18.3.1): - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 - dev: false - /react-dropzone@12.1.0(react@18.2.0): - resolution: {integrity: sha512-iBYHA1rbopIvtzokEX4QubO6qk5IF/x3BtKGu74rF2JkQDXnwC4uO/lHKpaw4PJIV6iIAYOlwLv2FpiGyqHNog==} - engines: {node: '>= 10.13'} - peerDependencies: - react: '>= 16.8' + react-dropzone@12.1.0(react@18.2.0): dependencies: attr-accept: 2.2.2 file-selector: 0.5.0 prop-types: 15.8.1 react: 18.2.0 - dev: false - /react-error-boundary@3.1.4(react@18.2.0): - resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} - engines: {node: '>=10', npm: '>=6'} - peerDependencies: - react: '>=16.13.1' + react-error-boundary@3.1.4(react@18.2.0): dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 - dev: false - /react-error-overlay@6.0.11: - resolution: {integrity: sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==} - dev: false + react-error-overlay@6.0.11: {} - /react-fast-compare@3.2.0: - resolution: {integrity: sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==} + react-fast-compare@3.2.0: {} - /react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==} - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-helmet-async@1.3.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.19.4 invariant: 2.2.4 @@ -16316,25 +19510,13 @@ packages: react-fast-compare: 3.2.0 shallowequal: 1.1.0 - /react-hotkeys-hook@3.4.7(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+bbPmhPAl6ns9VkXkNNyxlmCAIyDAcWbB76O4I0ntr3uWCRuIQf/aRLartUahe9chVMPj+OEzzfk3CQSjclUEQ==} - peerDependencies: - react: '>=16.8.1' - react-dom: '>=16.8.1' + react-hotkeys-hook@3.4.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: hotkeys-js: 3.9.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /react-intl@6.2.1(react@18.2.0)(typescript@5.4.2): - resolution: {integrity: sha512-hYxcSamgoA3Mvc55nwhTF1v15T0NUSkaV/EScMNVZXg0kRyaMAoNHkCi9/9H+TnXWNiWrcWH9bjlMlJwrG2V7g==} - peerDependencies: - react: ^16.6.0 || 17 || 18 - typescript: ^4.7 - peerDependenciesMeta: - typescript: - optional: true + react-intl@6.2.1(react@18.2.0)(typescript@5.4.2): dependencies: '@formatjs/ecma402-abstract': 1.13.0 '@formatjs/icu-messageformat-parser': 2.1.10 @@ -16347,17 +19529,12 @@ packages: intl-messageformat: 10.2.1 react: 18.2.0 tslib: 2.4.0 + optionalDependencies: typescript: 5.4.2 - dev: false - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + react-is@16.13.1: {} - /react-json-view@1.21.3(@types/react@18.0.20)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==} - peerDependencies: - react: ^17.0.0 || ^16.3.0 || ^15.5.4 - react-dom: ^17.0.0 || ^16.3.0 || ^15.5.4 + react-json-view@1.21.3(@types/react@18.0.20)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: flux: 4.0.3(react@18.2.0) react: 18.2.0 @@ -16368,113 +19545,62 @@ packages: transitivePeerDependencies: - '@types/react' - encoding - dev: false - /react-lifecycles-compat@3.0.4: - resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - dev: false + react-lifecycles-compat@3.0.4: {} - /react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2)(webpack@5.74.0): - resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} - engines: {node: '>=10.13.0'} - peerDependencies: - react-loadable: '*' - webpack: '>=4.41.1 || 5.x' + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@5.5.2(react@18.2.0))(webpack@5.74.0): dependencies: '@babel/runtime': 7.19.4 - react-loadable: /@docusaurus/react-loadable@5.5.2(react@18.2.0) + react-loadable: '@docusaurus/react-loadable@5.5.2(react@18.2.0)' webpack: 5.74.0 - dev: false - /react-merge-refs@1.1.0: - resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==} - dev: false + react-merge-refs@1.1.0: {} - /react-reconciler@0.27.0(react@18.2.0): - resolution: {integrity: sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.0.0 + react-reconciler@0.27.0(react@18.2.0): dependencies: loose-envify: 1.4.0 react: 18.2.0 scheduler: 0.21.0 - dev: false - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - dev: false + react-refresh@0.14.0: {} - /react-remove-scroll-bar@2.3.4(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll-bar@2.3.4(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.0.20)(react@18.2.0) tslib: 2.6.2 - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /react-remove-scroll@2.5.4(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll@2.5.4(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 react-remove-scroll-bar: 2.3.4(@types/react@18.0.20)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.0.20)(react@18.2.0) tslib: 2.6.2 use-callback-ref: 1.3.0(@types/react@18.0.20)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.0.20)(react@18.2.0) - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /react-remove-scroll@2.5.5(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-remove-scroll@2.5.5(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 react-remove-scroll-bar: 2.3.4(@types/react@18.0.20)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.0.20)(react@18.2.0) tslib: 2.6.2 use-callback-ref: 1.3.0(@types/react@18.0.20)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.0.20)(react@18.2.0) - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /react-router-config@5.1.1(react-router@5.3.4)(react@18.2.0): - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15' - react-router: '>=5' + react-router-config@5.1.1(react-router@5.3.4(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 react-router: 5.3.4(react@18.2.0) - dev: false - /react-router-dom@5.3.4(react@18.2.0): - resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} - peerDependencies: - react: '>=15' + react-router-dom@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.19.4 history: 4.10.1 @@ -16484,12 +19610,8 @@ packages: react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.1 tiny-warning: 1.0.3 - dev: false - /react-router@5.3.4(react@18.2.0): - resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} - peerDependencies: - react: '>=15' + react-router@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.19.4 history: 4.10.1 @@ -16501,30 +19623,17 @@ packages: react-is: 16.13.1 tiny-invariant: 1.3.1 tiny-warning: 1.0.3 - dev: false - /react-style-singleton@2.2.1(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + react-style-singleton@2.2.1(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 tslib: 2.6.2 - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /react-textarea-autosize@8.3.4(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==} - engines: {node: '>=10'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-textarea-autosize@8.3.4(@types/react@18.0.20)(react@18.2.0): dependencies: '@babel/runtime': 7.19.4 react: 18.2.0 @@ -16532,82 +19641,55 @@ packages: use-latest: 1.2.1(@types/react@18.0.20)(react@18.2.0) transitivePeerDependencies: - '@types/react' - dev: false - /react-use-measure@2.1.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} - peerDependencies: - react: '>=16.13' - react-dom: '>=16.13' + react-use-measure@2.1.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: debounce: 1.2.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} + react@18.2.0: dependencies: loose-envify: 1.4.0 - /react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} + react@18.3.1: dependencies: loose-envify: 1.4.0 - dev: false - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 read-pkg: 5.2.0 type-fest: 0.8.1 - dev: true - /read-pkg-up@9.1.0: - resolution: {integrity: sha512-vaMRR1AC1nrd5CQM0PhlRsO5oc2AAigqr7cCrZ/MW/Rsaflz4RlgzkpL4qoU/z1F6wrbd85iFv1OQj/y5RdGvg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + read-pkg-up@9.1.0: dependencies: find-up: 6.3.0 read-pkg: 7.1.0 type-fest: 2.19.0 - dev: true - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + read-pkg@5.2.0: dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 2.5.0 parse-json: 5.2.0 type-fest: 0.6.0 - dev: true - /read-pkg@7.1.0: - resolution: {integrity: sha512-5iOehe+WF75IccPc30bWTbpdDQLOCc3Uu8bi3Dte3Eueij81yx1Mrufk8qBx/YAbR4uL1FdUr+7BKXDwEtisXg==} - engines: {node: '>=12.20'} + read-pkg@7.1.0: dependencies: '@types/normalize-package-data': 2.4.1 normalize-package-data: 3.0.3 parse-json: 5.2.0 type-fest: 2.19.0 - dev: true - /read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} + read-yaml-file@1.1.0: dependencies: graceful-fs: 4.2.10 js-yaml: 3.14.1 pify: 4.0.1 strip-bom: 3.0.0 - dev: true - /readable-stream@2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} + readable-stream@2.3.7: dependencies: core-util-is: 1.0.3 inherits: 2.0.4 @@ -16616,109 +19698,66 @@ packages: safe-buffer: 5.1.2 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: false - /readable-stream@3.6.0: - resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} - engines: {node: '>= 6'} + readable-stream@3.6.0: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 - /readable-web-to-node-stream@3.0.2: - resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} - engines: {node: '>=8'} + readable-web-to-node-stream@3.0.2: dependencies: readable-stream: 3.6.0 - dev: true - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + readdirp@3.6.0: dependencies: picomatch: 2.3.1 - dev: false - /reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - dev: false + reading-time@1.5.0: {} - /rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} + rechoir@0.6.2: dependencies: resolve: 1.22.1 - dev: false - /recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} + recursive-readdir@2.2.3: dependencies: minimatch: 3.1.2 - dev: false - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + redent@3.0.0: dependencies: indent-string: 4.0.0 strip-indent: 3.0.0 - dev: true - /redent@4.0.0: - resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} - engines: {node: '>=12'} + redent@4.0.0: dependencies: indent-string: 5.0.0 strip-indent: 4.0.0 - dev: true - /reduce-flatten@2.0.0: - resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} - engines: {node: '>=6'} - dev: false + reduce-flatten@2.0.0: {} - /regenerate-unicode-properties@10.1.0: - resolution: {integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==} - engines: {node: '>=4'} + regenerate-unicode-properties@10.1.0: dependencies: regenerate: 1.4.2 - dev: false - /regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: false + regenerate@1.4.2: {} - /regenerator-runtime@0.13.10: - resolution: {integrity: sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==} + regenerator-runtime@0.13.10: {} - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - dev: true + regenerator-runtime@0.14.0: {} - /regenerator-transform@0.15.0: - resolution: {integrity: sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==} + regenerator-transform@0.15.0: dependencies: '@babel/runtime': 7.19.4 - dev: false - /regexp-to-ast@0.5.0: - resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} - dev: false + regexp-to-ast@0.5.0: {} - /regexp.prototype.flags@1.4.3: - resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} - engines: {node: '>= 0.4'} + regexp.prototype.flags@1.4.3: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 functions-have-names: 1.2.3 - dev: true - /regexpu-core@5.2.1: - resolution: {integrity: sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==} - engines: {node: '>=4'} + regexpu-core@5.2.1: dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 10.1.0 @@ -16726,52 +19765,32 @@ packages: regjsparser: 0.9.1 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.0.0 - dev: false - /registry-auth-token@4.2.2: - resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} - engines: {node: '>=6.0.0'} + registry-auth-token@4.2.2: dependencies: rc: 1.2.8 - dev: false - /registry-url@5.1.0: - resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} - engines: {node: '>=8'} + registry-url@5.1.0: dependencies: rc: 1.2.8 - dev: false - /regjsgen@0.7.1: - resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} - dev: false + regjsgen@0.7.1: {} - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} - hasBin: true + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 - dev: false - /relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} - engines: {node: '>= 0.10'} - dev: false + relateurl@0.2.7: {} - /remark-emoji@2.2.0: - resolution: {integrity: sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==} + remark-emoji@2.2.0: dependencies: emoticon: 3.2.0 node-emoji: 1.11.0 unist-util-visit: 2.0.3 - dev: false - /remark-footnotes@2.0.0: - resolution: {integrity: sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==} - dev: false + remark-footnotes@2.0.0: {} - /remark-mdx@1.6.22: - resolution: {integrity: sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==} + remark-mdx@1.6.22: dependencies: '@babel/core': 7.12.9 '@babel/helper-plugin-utils': 7.10.4 @@ -16783,10 +19802,8 @@ packages: unified: 9.2.0 transitivePeerDependencies: - supports-color - dev: false - /remark-parse@8.0.3: - resolution: {integrity: sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==} + remark-parse@8.0.3: dependencies: ccount: 1.1.0 collapse-white-space: 1.0.6 @@ -16804,131 +19821,74 @@ packages: unist-util-remove-position: 2.0.1 vfile-location: 3.2.0 xtend: 4.0.2 - dev: false - /remark-squeeze-paragraphs@4.0.0: - resolution: {integrity: sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==} + remark-squeeze-paragraphs@4.0.0: dependencies: mdast-squeeze-paragraphs: 4.0.0 - dev: false - /renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} + renderkid@3.0.0: dependencies: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 lodash: 4.17.21 strip-ansi: 6.0.1 - dev: false - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: false + repeat-string@1.6.1: {} - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + require-directory@2.1.1: {} - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: false + require-from-string@2.0.2: {} - /require-like@0.1.2: - resolution: {integrity: sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==} - dev: false + require-like@0.1.2: {} - /require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: true + require-main-filename@2.0.0: {} - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + requires-port@1.0.0: {} - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolve-from@4.0.0: {} - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true + resolve-from@5.0.0: {} - /resolve-pathname@3.0.0: - resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} - dev: false + resolve-pathname@3.0.0: {} - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve-pkg-maps@1.0.0: {} - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true + resolve@1.22.1: dependencies: is-core-module: 2.11.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /responselike@1.0.2: - resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} + responselike@1.0.2: dependencies: lowercase-keys: 1.0.1 - dev: false - /retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} - dev: false + retry@0.13.1: {} - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + reusify@1.0.4: {} - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true + rimraf@3.0.2: dependencies: glob: 7.2.3 - dev: false - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true + rimraf@5.0.5: dependencies: glob: 10.3.10 - dev: true - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} - hasBin: true + rollup@2.79.1: optionalDependencies: fsevents: 2.3.3 - dev: false - /rollup@3.20.2: - resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true + rollup@3.20.2: optionalDependencies: fsevents: 2.3.3 - dev: true - /rollup@3.9.1: - resolution: {integrity: sha512-GswCYHXftN8ZKGVgQhTFUJB/NBXxrRGgO2NCy6E8s1rwEJ4Q9/VttNqcYfEvx4dTo4j58YqdC3OVztPzlKSX8w==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true + rollup@3.9.1: optionalDependencies: fsevents: 2.3.3 - dev: false - /rollup@4.9.1: - resolution: {integrity: sha512-pgPO9DWzLoW/vIhlSoDByCzcpX92bKEorbgXuZrqxByte3JFk2xSW2JEeAcyLc9Ru9pqcNNW+Ob7ntsk2oT/Xw==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true + rollup@4.9.1: optionalDependencies: '@rollup/rollup-android-arm-eabi': 4.9.1 '@rollup/rollup-android-arm64': 4.9.1 @@ -16945,202 +19905,125 @@ packages: '@rollup/rollup-win32-x64-msvc': 4.9.1 fsevents: 2.3.3 - /rrweb-cssom@0.6.0: - resolution: {integrity: sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==} - dev: true + rrweb-cssom@0.6.0: {} - /rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} - dev: true + rrweb-cssom@0.7.1: {} - /rtl-detect@1.0.4: - resolution: {integrity: sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==} - dev: false + rtl-detect@1.0.4: {} - /rtlcss@3.5.0: - resolution: {integrity: sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==} - hasBin: true + rtlcss@3.5.0: dependencies: find-up: 5.0.0 picocolors: 1.0.0 postcss: 8.4.21 strip-json-comments: 3.1.1 - dev: false - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} + run-applescript@5.0.0: dependencies: execa: 5.1.1 - dev: true - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - /rxjs@7.5.7: - resolution: {integrity: sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==} + rxjs@7.5.7: dependencies: tslib: 2.6.2 - dev: false - /safari-14-idb-fix@3.0.0: - resolution: {integrity: sha512-eBNFLob4PMq8JA1dGyFn6G97q3/WzNtFK4RnzT1fnLq+9RyrGknzYiM/9B12MnKAxuj1IXr7UKYtTNtjyKMBog==} - dev: false + safari-14-idb-fix@3.0.0: {} - /safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - dev: false + safe-buffer@5.1.2: {} - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-buffer@5.2.1: {} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.0: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.3 is-regex: 1.1.4 - dev: true - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + safer-buffer@2.1.2: {} - /sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} - dev: false + sax@1.2.4: {} - /saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 - /scheduler@0.21.0: - resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} + scheduler@0.21.0: dependencies: loose-envify: 1.4.0 - dev: false - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.0: dependencies: loose-envify: 1.4.0 - /scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 - dev: false - /schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} + schema-utils@2.7.0: dependencies: '@types/json-schema': 7.0.11 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - /schema-utils@2.7.1: - resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} - engines: {node: '>= 8.9.0'} + schema-utils@2.7.1: dependencies: '@types/json-schema': 7.0.11 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - dev: false - /schema-utils@3.1.1: - resolution: {integrity: sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==} - engines: {node: '>= 10.13.0'} + schema-utils@3.1.1: dependencies: '@types/json-schema': 7.0.11 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) - /schema-utils@4.0.0: - resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} - engines: {node: '>= 12.13.0'} + schema-utils@4.0.0: dependencies: '@types/json-schema': 7.0.11 ajv: 8.11.0 ajv-formats: 2.1.1(ajv@8.11.0) ajv-keywords: 5.1.0(ajv@8.11.0) - dev: false - /screen-space-reflections@2.5.0(postprocessing@6.30.1)(three@0.150.1): - resolution: {integrity: sha512-fWSDMhJS0xwD3LTxRRch7Lb9NzxsR66sCmtDmAA7i+OGnghUrBBsrha85ng7StnCBaLq/BKmZ97dLxWd1XgWdQ==} - peerDependencies: - postprocessing: '>=6.28.0' - three: '>=0.141.0' + screen-space-reflections@2.5.0(postprocessing@6.30.1(three@0.150.1))(three@0.150.1): dependencies: postprocessing: 6.30.1(three@0.150.1) three: 0.150.1 - dev: false - /section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 kind-of: 6.0.3 - dev: false - /select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} - dev: false + select-hose@2.0.0: {} - /selfsigned@2.1.1: - resolution: {integrity: sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==} - engines: {node: '>=10'} + selfsigned@2.1.1: dependencies: node-forge: 1.3.1 - dev: false - /semver-diff@3.1.1: - resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} - engines: {node: '>=8'} + semver-diff@3.1.1: dependencies: semver: 6.3.0 - dev: false - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} - hasBin: true + semver@5.7.1: {} - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: false + semver@6.3.0: {} - /semver@7.3.7: - resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} - engines: {node: '>=10'} - hasBin: true + semver@7.3.7: dependencies: lru-cache: 6.0.0 - dev: false - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true + semver@7.5.4: dependencies: lru-cache: 6.0.0 - /semver@7.6.0: - resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} - engines: {node: '>=10'} - hasBin: true + semver@7.6.0: dependencies: lru-cache: 6.0.0 - dev: true - /send@0.18.0: - resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} - engines: {node: '>= 0.8.0'} + send@0.18.0: dependencies: debug: 2.6.9 depd: 2.0.0 @@ -17157,23 +20040,18 @@ packages: statuses: 2.0.1 transitivePeerDependencies: - supports-color - dev: false - /sentence-case@3.0.4: - resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + sentence-case@3.0.4: dependencies: no-case: 3.0.4 tslib: 2.6.2 upper-case-first: 2.0.2 - dev: false - /serialize-javascript@6.0.0: - resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} + serialize-javascript@6.0.0: dependencies: randombytes: 2.1.0 - /serve-handler@6.1.3: - resolution: {integrity: sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==} + serve-handler@6.1.3: dependencies: bytes: 3.0.0 content-disposition: 0.5.2 @@ -17183,11 +20061,8 @@ packages: path-is-inside: 1.0.2 path-to-regexp: 2.2.1 range-parser: 1.2.0 - dev: false - /serve-index@1.9.1: - resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} - engines: {node: '>= 0.8.0'} + serve-index@1.9.1: dependencies: accepts: 1.3.8 batch: 0.6.1 @@ -17198,11 +20073,8 @@ packages: parseurl: 1.3.3 transitivePeerDependencies: - supports-color - dev: false - /serve-static@1.15.0: - resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} - engines: {node: '>= 0.8.0'} + serve-static@1.15.0: dependencies: encodeurl: 1.0.2 escape-html: 1.0.3 @@ -17210,149 +20082,90 @@ packages: send: 0.18.0 transitivePeerDependencies: - supports-color - dev: false - /set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-blocking@2.0.0: {} - /set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} + set-value@2.0.1: dependencies: extend-shallow: 2.0.1 is-extendable: 0.1.1 is-plain-object: 2.0.4 split-string: 3.1.0 - dev: false - /setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} - dev: false + setimmediate@1.0.5: {} - /setprototypeof@1.1.0: - resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} - dev: false + setprototypeof@1.1.0: {} - /setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - dev: false + setprototypeof@1.2.0: {} - /shallow-clone@3.0.1: - resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} - engines: {node: '>=8'} + shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 - /shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + shallowequal@1.1.0: {} - /shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + shebang-command@1.2.0: dependencies: shebang-regex: 1.0.0 - dev: true - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - /shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - dev: true + shebang-regex@1.0.0: {} - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + shebang-regex@3.0.0: {} - /shell-quote@1.7.4: - resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} - dev: false + shell-quote@1.7.4: {} - /shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true + shelljs@0.8.5: dependencies: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 - dev: false - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.4: dependencies: call-bind: 1.0.2 get-intrinsic: 1.1.3 object-inspect: 1.12.2 - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + siginfo@2.0.0: {} - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@3.0.7: {} - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + signal-exit@4.1.0: {} - /simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: false + simple-concat@1.0.1: {} - /simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + simple-get@4.0.1: dependencies: decompress-response: 6.0.0 once: 1.4.0 simple-concat: 1.0.1 - dev: false - /sirv@1.0.19: - resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} - engines: {node: '>= 10'} + sirv@1.0.19: dependencies: '@polka/url': 1.0.0-next.21 mrmime: 1.0.1 totalist: 1.1.0 - dev: false - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: false + sisteransi@1.0.5: {} - /sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==} - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true + sitemap@7.1.1: dependencies: '@types/node': 17.0.45 '@types/sax': 1.2.4 arg: 5.0.2 sax: 1.2.4 - dev: false - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + slash@3.0.0: {} - /slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} - engines: {node: '>=12'} - dev: false + slash@4.0.0: {} - /smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true + smart-buffer@4.2.0: {} - /smartwrap@2.0.2: - resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} - engines: {node: '>=6'} - hasBin: true + smartwrap@2.0.2: dependencies: array.prototype.flat: 1.3.0 breakword: 1.0.5 @@ -17360,110 +20173,70 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 15.4.1 - dev: true - /snake-case@3.0.4: - resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 tslib: 2.6.2 - dev: false - /sockjs@0.3.24: - resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + sockjs@0.3.24: dependencies: faye-websocket: 0.11.4 uuid: 8.3.2 websocket-driver: 0.7.4 - dev: false - /socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} - engines: {node: '>= 14'} + socks-proxy-agent@8.0.2: dependencies: agent-base: 7.1.0 debug: 4.3.5 socks: 2.7.1 transitivePeerDependencies: - supports-color - dev: true - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + socks@2.7.1: dependencies: ip: 2.0.0 smart-buffer: 4.2.0 - dev: true - /sort-css-media-queries@2.1.0: - resolution: {integrity: sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==} - engines: {node: '>= 6.3.0'} - dev: false + sort-css-media-queries@2.1.0: {} - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} + source-map-js@1.0.2: {} - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - /source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} - dev: false + source-map@0.5.7: {} - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - requiresBuild: true + source-map@0.6.1: {} - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: false + sourcemap-codec@1.4.8: {} - /space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} - dev: false + space-separated-tokens@1.1.5: {} - /spawn-command@0.0.2-1: - resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} - dev: false + spawn-command@0.0.2-1: {} - /spawndamnit@2.0.0: - resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} + spawndamnit@2.0.0: dependencies: cross-spawn: 5.1.0 signal-exit: 3.0.7 - dev: true - /spdx-correct@3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + spdx-correct@3.1.1: dependencies: spdx-expression-parse: 3.0.1 spdx-license-ids: 3.0.12 - dev: true - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true + spdx-exceptions@2.3.0: {} - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.3.0 spdx-license-ids: 3.0.12 - dev: true - /spdx-license-ids@3.0.12: - resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} - dev: true + spdx-license-ids@3.0.12: {} - /spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + spdy-transport@3.0.0: dependencies: debug: 4.3.5 detect-node: 2.1.0 @@ -17473,11 +20246,8 @@ packages: wbuf: 1.7.3 transitivePeerDependencies: - supports-color - dev: false - /spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} - engines: {node: '>=6.0.0'} + spdy@4.0.2: dependencies: debug: 4.3.5 handle-thing: 2.0.1 @@ -17486,276 +20256,166 @@ packages: spdy-transport: 3.0.0 transitivePeerDependencies: - supports-color - dev: false - /split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} + split-string@3.1.0: dependencies: extend-shallow: 3.0.2 - dev: false - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.0.3: {} - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: false + stable@0.1.8: {} - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackback@0.0.2: {} - /state-toggle@1.0.3: - resolution: {integrity: sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==} - dev: false + state-toggle@1.0.3: {} - /stats.js@0.17.0: - resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} - dev: false + stats.js@0.17.0: {} - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - dev: false + statuses@1.5.0: {} - /statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - dev: false + statuses@2.0.1: {} - /std-env@3.3.0: - resolution: {integrity: sha512-cNNS+VYsXIs5gI6gJipO4qZ8YYT274JHvNnQ1/R/x8Q8mdP0qj0zoMchRXmBNPqp/0eOEhX+3g7g6Fgb7meLIQ==} - dev: false + std-env@3.3.0: {} - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + std-env@3.7.0: {} - /stream-browserify@3.0.0: - resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + stream-browserify@3.0.0: dependencies: inherits: 2.0.4 readable-stream: 3.6.0 - dev: false - /stream-transform@2.1.3: - resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + stream-transform@2.1.3: dependencies: mixme: 0.5.4 - dev: true - /streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - dev: false + streamsearch@1.1.0: {} - /streamx@2.15.4: - resolution: {integrity: sha512-uSXKl88bibiUCQ1eMpItRljCzDENcDx18rsfDmV79r0e/ThfrAwxG4Y2FarQZ2G4/21xcOKmFFd1Hue+ZIDwHw==} + streamx@2.15.4: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - dev: true - /streamx@2.18.0: - resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} - requiresBuild: true + streamx@2.18.0: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 text-decoder: 1.1.0 optionalDependencies: bare-events: 2.4.2 - dev: true optional: true - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + string-width@5.1.2: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 strip-ansi: 7.0.1 - /string.prototype.codepointat@0.2.1: - resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} - dev: false + string.prototype.codepointat@0.2.1: {} - /string.prototype.trimend@1.0.5: - resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} + string.prototype.trimend@1.0.5: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.4 - dev: true - /string.prototype.trimstart@1.0.5: - resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} + string.prototype.trimstart@1.0.5: dependencies: call-bind: 1.0.2 define-properties: 1.1.4 es-abstract: 1.20.4 - dev: true - /string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 - dev: false - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 - /stringify-object@3.3.0: - resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} - engines: {node: '>=4'} + stringify-object@3.3.0: dependencies: get-own-enumerable-property-symbols: 3.0.2 is-obj: 1.0.1 is-regexp: 1.0.0 - dev: false - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} - engines: {node: '>=12'} + strip-ansi@7.0.1: dependencies: ansi-regex: 6.0.1 - /strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - dev: false + strip-bom-string@1.0.0: {} - /strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - dev: true + strip-bom@3.0.0: {} - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + strip-final-newline@2.0.0: {} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + strip-final-newline@3.0.0: {} - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} + strip-indent@4.0.0: dependencies: min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - dev: false + strip-json-comments@2.0.1: {} - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: false + strip-json-comments@3.1.1: {} - /strnum@1.0.5: - resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false + strnum@1.0.5: {} - /strtok3@7.0.0: - resolution: {integrity: sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==} - engines: {node: '>=14.16'} + strtok3@7.0.0: dependencies: '@tokenizer/token': 0.3.0 peek-readable: 5.0.0 - dev: true - /style-to-object@0.3.0: - resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==} + style-to-object@0.3.0: dependencies: inline-style-parser: 0.1.1 - dev: false - /stylehacks@5.1.1(postcss@8.4.16): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + stylehacks@5.1.1(postcss@8.4.16): dependencies: browserslist: 4.21.4 postcss: 8.4.16 postcss-selector-parser: 6.0.10 - dev: false - /stylehacks@5.1.1(postcss@8.4.21): - resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} - engines: {node: ^10 || ^12 || >=14.0} - peerDependencies: - postcss: ^8.2.15 + stylehacks@5.1.1(postcss@8.4.21): dependencies: browserslist: 4.21.4 postcss: 8.4.21 postcss-selector-parser: 6.0.10 - dev: false - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + supports-color@5.5.0: dependencies: has-flag: 3.0.0 - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 - /supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + supports-color@8.1.1: dependencies: has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + supports-preserve-symlinks-flag@1.0.0: {} - /suspend-react@0.0.8(react@18.2.0): - resolution: {integrity: sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg==} - peerDependencies: - react: '>=17.0' + suspend-react@0.0.8(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==} - dev: false + svg-parser@2.0.4: {} - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true + svgo@2.8.0: dependencies: '@trysound/sax': 0.2.0 commander: 7.2.0 @@ -17764,71 +20424,50 @@ packages: csso: 4.2.0 picocolors: 1.0.0 stable: 0.1.8 - dev: false - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + symbol-tree@3.2.4: {} - /table-layout@1.0.2: - resolution: {integrity: sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==} - engines: {node: '>=8.0.0'} + table-layout@1.0.2: dependencies: array-back: 4.0.2 deep-extend: 0.6.0 typical: 5.2.0 wordwrapjs: 4.0.1 - dev: false - /tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - dev: false + tapable@1.1.3: {} - /tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} + tapable@2.2.1: {} - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@2.1.1: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 pump: 3.0.0 tar-stream: 2.2.0 - dev: false - /tar-fs@3.0.5: - resolution: {integrity: sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==} + tar-fs@3.0.5: dependencies: pump: 3.0.0 tar-stream: 3.1.6 optionalDependencies: bare-fs: 2.3.1 bare-path: 2.1.3 - dev: true - /tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + tar-stream@2.2.0: dependencies: bl: 4.1.0 end-of-stream: 1.4.4 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.0 - dev: false - /tar-stream@3.1.6: - resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} + tar-stream@3.1.6: dependencies: b4a: 1.6.4 fast-fifo: 1.3.2 streamx: 2.15.4 - dev: true - /tar@6.2.0: - resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==} - engines: {node: '>=10'} + tar@6.2.0: dependencies: chownr: 2.0.0 fs-minipass: 2.1.0 @@ -17836,43 +20475,19 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 - dev: false - /temp-dir@3.0.0: - resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==} - engines: {node: '>=14.16'} - dev: true + temp-dir@3.0.0: {} - /tempy@3.1.0: - resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} - engines: {node: '>=14.16'} + tempy@3.1.0: dependencies: is-stream: 3.0.0 temp-dir: 3.0.0 type-fest: 2.19.0 unique-string: 3.0.0 - dev: true - /term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - dev: true + term-size@2.2.1: {} - /terser-webpack-plugin@5.3.6(webpack@5.74.0): - resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true + terser-webpack-plugin@5.3.6(webpack@5.74.0): dependencies: '@jridgewell/trace-mapping': 0.3.17 jest-worker: 27.5.1 @@ -17881,40 +20496,25 @@ packages: terser: 5.15.1 webpack: 5.74.0 - /terser@5.15.1: - resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==} - engines: {node: '>=10'} - hasBin: true + terser@5.15.1: dependencies: '@jridgewell/source-map': 0.3.2 acorn: 8.11.2 commander: 2.20.3 source-map-support: 0.5.21 - /text-decoder@1.1.0: - resolution: {integrity: sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw==} - requiresBuild: true + text-decoder@1.1.0: dependencies: b4a: 1.6.4 - dev: true optional: true - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: false + text-table@0.2.0: {} - /three-mesh-bvh@0.5.23(three@0.150.1): - resolution: {integrity: sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA==} - peerDependencies: - three: '>= 0.123.0' + three-mesh-bvh@0.5.23(three@0.150.1): dependencies: three: 0.150.1 - dev: false - /three-stdlib@2.21.8(three@0.150.1): - resolution: {integrity: sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA==} - peerDependencies: - three: '>=0.122.0' + three-stdlib@2.21.8(three@0.150.1): dependencies: '@babel/runtime': 7.19.4 '@types/offscreencanvas': 2019.7.0 @@ -17928,193 +20528,109 @@ packages: potpack: 1.0.2 three: 0.150.1 zstddec: 0.0.2 - dev: false - /three@0.150.1: - resolution: {integrity: sha512-5C1MqKUWaHYo13BX0Q64qcdwImgnnjSOFgBscOzAo8MYCzEtqfQqorEKMcajnA3FHy1yVlIe9AmaMQ0OQracNA==} - dev: false + three@0.150.1: {} - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + through@2.3.8: {} - /thunky@1.1.0: - resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} - dev: false + thunky@1.1.0: {} - /tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - dev: false + tiny-inflate@1.0.3: {} - /tiny-invariant@1.3.1: - resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} - dev: false + tiny-invariant@1.3.1: {} - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false + tiny-warning@1.0.3: {} - /tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinybench@2.9.0: {} - /tinypool@1.0.0: - resolution: {integrity: sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==} - engines: {node: ^18.0.0 || >=20.0.0} + tinyexec@0.3.1: {} - /tinyrainbow@1.2.0: - resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} - engines: {node: '>=14.0.0'} + tinypool@1.0.0: {} - /tinyspy@3.0.0: - resolution: {integrity: sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==} - engines: {node: '>=14.0.0'} + tinyrainbow@1.2.0: {} - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: true + tinyspy@3.0.0: {} - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + titleize@3.0.0: {} + + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - dev: true - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - dev: false + to-fast-properties@2.0.0: {} - /to-readable-stream@1.0.0: - resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} - engines: {node: '>=6'} - dev: false + to-readable-stream@1.0.0: {} - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - /toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - dev: false + toidentifier@1.0.1: {} - /token-types@5.0.1: - resolution: {integrity: sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==} - engines: {node: '>=14.16'} + token-types@5.0.1: dependencies: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 - dev: true - /totalist@1.1.0: - resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==} - engines: {node: '>=6'} - dev: false + totalist@1.1.0: {} - /tough-cookie@4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} - engines: {node: '>=6'} + tough-cookie@4.1.2: dependencies: psl: 1.9.0 punycode: 2.1.1 universalify: 0.2.0 url-parse: 1.5.10 - /tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} + tough-cookie@4.1.4: dependencies: psl: 1.9.0 punycode: 2.1.1 universalify: 0.2.0 url-parse: 1.5.10 - dev: true - /tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: false + tr46@0.0.3: {} - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} + tr46@3.0.0: dependencies: punycode: 2.1.1 - /tr46@5.0.0: - resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} - engines: {node: '>=18'} + tr46@5.0.0: dependencies: punycode: 2.3.1 - dev: true - /tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - dev: false + tree-kill@1.2.2: {} - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true + trim-newlines@3.0.1: {} - /trim-newlines@4.1.1: - resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} - engines: {node: '>=12'} - dev: true + trim-newlines@4.1.1: {} - /trim-trailing-lines@1.1.4: - resolution: {integrity: sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==} - dev: false + trim-trailing-lines@1.1.4: {} - /trim@0.0.1: - resolution: {integrity: sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==} - dev: false + trim@0.0.1: {} - /troika-three-text@0.47.1(three@0.150.1): - resolution: {integrity: sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA==} - peerDependencies: - three: '>=0.125.0' + troika-three-text@0.47.1(three@0.150.1): dependencies: bidi-js: 1.0.2 three: 0.150.1 troika-three-utils: 0.47.0(three@0.150.1) troika-worker-utils: 0.47.0 webgl-sdf-generator: 1.1.1 - dev: false - /troika-three-utils@0.47.0(three@0.150.1): - resolution: {integrity: sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w==} - peerDependencies: - three: '>=0.125.0' + troika-three-utils@0.47.0(three@0.150.1): dependencies: three: 0.150.1 - dev: false - /troika-worker-utils@0.47.0: - resolution: {integrity: sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA==} - dev: false + troika-worker-utils@0.47.0: {} - /trough@1.0.5: - resolution: {integrity: sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==} - dev: false + trough@1.0.5: {} - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: false + tslib@1.14.1: {} - /tslib@2.4.0: - resolution: {integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==} - dev: false + tslib@2.4.0: {} - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.6.2: {} - /tsx@3.12.1: - resolution: {integrity: sha512-Rcg1x+rNe7qwlP8j7kx4VjP/pJo/V57k+17hlrn6a7FuQLNwkaw5W4JF75tYornNVCxkXdSUnqlIT8JY/ttvIw==} - hasBin: true + tsx@3.12.1: dependencies: '@esbuild-kit/cjs-loader': 2.4.0 '@esbuild-kit/core-utils': 3.0.0 @@ -18122,31 +20638,21 @@ packages: optionalDependencies: fsevents: 2.3.3 - /tsx@4.16.2: - resolution: {integrity: sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==} - engines: {node: '>=18.0.0'} - hasBin: true + tsx@4.16.2: dependencies: esbuild: 0.21.5 get-tsconfig: 4.7.5 optionalDependencies: fsevents: 2.3.3 - dev: false - /tsx@4.6.2: - resolution: {integrity: sha512-QPpBdJo+ZDtqZgAnq86iY/PD2KYCUPSUGIunHdGwyII99GKH+f3z3FZ8XNFLSGQIA4I365ui8wnQpl8OKLqcsg==} - engines: {node: '>=18.0.0'} - hasBin: true + tsx@4.6.2: dependencies: esbuild: 0.18.20 get-tsconfig: 4.7.2 optionalDependencies: fsevents: 2.3.3 - /tty-table@4.1.6: - resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} - engines: {node: '>=8.0.0'} - hasBin: true + tty-table@4.1.6: dependencies: chalk: 4.1.2 csv: 5.5.3 @@ -18155,65 +20661,30 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 yargs: 17.6.0 - dev: true - /tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + tunnel-agent@0.6.0: dependencies: safe-buffer: 5.2.1 - dev: false - /turbo-darwin-64@2.0.11: - resolution: {integrity: sha512-YlHEEhcm+jI1BSZoLugGHUWDfRXaNaQIv7tGQBfadYjo9kixBnqoTOU6s1ubOrQMID+lizZZQs79GXwqM6vohg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true + turbo-darwin-64@2.0.11: optional: true - /turbo-darwin-arm64@2.0.11: - resolution: {integrity: sha512-K/YW+hWzRQ/wGmtffxllH4M1tgy8OlwgXODrIiAGzkSpZl9+pIsem/F86UULlhsIeavBYK/LS5+dzV3DPMjJ9w==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true + turbo-darwin-arm64@2.0.11: optional: true - /turbo-linux-64@2.0.11: - resolution: {integrity: sha512-mv8CwGP06UPweMh1Vlp6PI6OWnkuibxfIJ4Vlof7xqjohAaZU5FLqeOeHkjQflH/6YrCVuS9wrK0TFOu+meTtA==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true + turbo-linux-64@2.0.11: optional: true - /turbo-linux-arm64@2.0.11: - resolution: {integrity: sha512-wLE5tl4oriTmHbuayc0ki0csaCplmVLj+uCWtecM/mfBuZgNS9ICNM9c4sB+Cfl5tlBBFeepqRNgvRvn8WeVZg==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true + turbo-linux-arm64@2.0.11: optional: true - /turbo-windows-64@2.0.11: - resolution: {integrity: sha512-tja3zvVCSWu3HizOoeQv0qDJ+GeWGWRFOOM6a8i3BYnXLgGKAaDZFcjwzgC50tWiAw4aowIVR4OouwIyRhLBaQ==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + turbo-windows-64@2.0.11: optional: true - /turbo-windows-arm64@2.0.11: - resolution: {integrity: sha512-sYjXP6k94Bqh99R+y3M1Ks6LRIEZybMz+7enA8GKl6JJ2ZFaXxTnS6q+/2+ii1+rRwxohj5OBb4gxODcF8Jd4w==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true + turbo-windows-arm64@2.0.11: optional: true - /turbo@2.0.11: - resolution: {integrity: sha512-imDlFFAvitbCm1JtDFJ6eG882qwxHUmVT2noPb3p2jq5o5DuXOchMbkVS9kUeC3/4WpY5N0GBZ3RvqNyjHZw1Q==} - hasBin: true + turbo@2.0.11: optionalDependencies: turbo-darwin-64: 2.0.11 turbo-darwin-arm64: 2.0.11 @@ -18221,131 +20692,73 @@ packages: turbo-linux-arm64: 2.0.11 turbo-windows-64: 2.0.11 turbo-windows-arm64: 2.0.11 - dev: true - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} + type-check@0.3.2: dependencies: prelude-ls: 1.1.2 - /type-fest@0.13.1: - resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} - engines: {node: '>=10'} - dev: true + type-fest@0.13.1: {} - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: false + type-fest@0.20.2: {} - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true + type-fest@0.6.0: {} - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true + type-fest@0.8.1: {} - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true + type-fest@1.4.0: {} - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + type-fest@2.19.0: {} - /type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} - dev: true + type-fest@3.13.1: {} - /type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} + type-is@1.6.18: dependencies: media-typer: 0.3.0 mime-types: 2.1.35 - dev: false - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 - dev: false - /typescript@5.4.2: - resolution: {integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==} - engines: {node: '>=14.17'} - hasBin: true + typescript@5.4.2: {} - /typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - dev: false + typical@4.0.0: {} - /typical@5.2.0: - resolution: {integrity: sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==} - engines: {node: '>=8'} - dev: false + typical@5.2.0: {} - /ua-parser-js@0.7.32: - resolution: {integrity: sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==} - dev: false + ua-parser-js@0.7.32: {} - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.0.2: dependencies: call-bind: 1.0.2 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true - /unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + unbzip2-stream@1.4.3: dependencies: buffer: 5.7.1 through: 2.3.8 - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@5.26.5: {} - /unherit@1.1.3: - resolution: {integrity: sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==} + unherit@1.1.3: dependencies: inherits: 2.0.4 xtend: 4.0.2 - dev: false - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} - engines: {node: '>=4'} - dev: false + unicode-canonical-property-names-ecmascript@2.0.0: {} - /unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.0 unicode-property-aliases-ecmascript: 2.1.0 - dev: false - /unicode-match-property-value-ecmascript@2.0.0: - resolution: {integrity: sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==} - engines: {node: '>=4'} - dev: false + unicode-match-property-value-ecmascript@2.0.0: {} - /unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} - dev: false + unicode-property-aliases-ecmascript@2.1.0: {} - /unified@9.2.0: - resolution: {integrity: sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==} + unified@9.2.0: dependencies: '@types/unist': 2.0.6 bail: 1.0.5 @@ -18354,10 +20767,8 @@ packages: is-plain-obj: 2.1.0 trough: 1.0.5 vfile: 4.2.1 - dev: false - /unified@9.2.2: - resolution: {integrity: sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==} + unified@9.2.2: dependencies: '@types/unist': 2.0.6 bail: 1.0.5 @@ -18366,108 +20777,63 @@ packages: is-plain-obj: 2.1.0 trough: 1.0.5 vfile: 4.2.1 - dev: false - /unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 - dev: false - /unique-string@3.0.0: - resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} - engines: {node: '>=12'} + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 - dev: true - /unist-builder@2.0.3: - resolution: {integrity: sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==} - dev: false + unist-builder@2.0.3: {} - /unist-util-generated@1.1.6: - resolution: {integrity: sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==} - dev: false + unist-util-generated@1.1.6: {} - /unist-util-is@4.1.0: - resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} - dev: false + unist-util-is@4.1.0: {} - /unist-util-position@3.1.0: - resolution: {integrity: sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==} - dev: false + unist-util-position@3.1.0: {} - /unist-util-remove-position@2.0.1: - resolution: {integrity: sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==} + unist-util-remove-position@2.0.1: dependencies: unist-util-visit: 2.0.3 - dev: false - /unist-util-remove@2.1.0: - resolution: {integrity: sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==} + unist-util-remove@2.1.0: dependencies: unist-util-is: 4.1.0 - dev: false - /unist-util-stringify-position@2.0.3: - resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==} + unist-util-stringify-position@2.0.3: dependencies: '@types/unist': 2.0.6 - dev: false - /unist-util-visit-parents@3.1.1: - resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + unist-util-visit-parents@3.1.1: dependencies: '@types/unist': 2.0.6 unist-util-is: 4.1.0 - dev: false - /unist-util-visit@2.0.3: - resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + unist-util-visit@2.0.3: dependencies: '@types/unist': 2.0.6 unist-util-is: 4.1.0 unist-util-visit-parents: 3.1.1 - dev: false - /universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - dev: true + universalify@0.1.2: {} - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} + universalify@0.2.0: {} - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} - engines: {node: '>= 10.0.0'} - dev: false + universalify@2.0.0: {} - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: false + unpipe@1.0.0: {} - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - dev: true + untildify@4.0.0: {} - /update-browserslist-db@1.0.10(browserslist@4.21.4): - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + update-browserslist-db@1.0.10(browserslist@4.21.4): dependencies: browserslist: 4.21.4 escalade: 3.1.1 picocolors: 1.0.0 - /update-notifier@5.1.0: - resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} - engines: {node: '>=10'} + update-notifier@5.1.0: dependencies: boxen: 5.1.2 chalk: 4.1.2 @@ -18483,203 +20849,134 @@ packages: semver: 7.5.4 semver-diff: 3.1.1 xdg-basedir: 4.0.0 - dev: false - /upper-case-first@2.0.2: - resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + upper-case-first@2.0.2: dependencies: tslib: 2.6.2 - dev: false - /upper-case@2.0.2: - resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + upper-case@2.0.2: dependencies: tslib: 2.6.2 - dev: false - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + uri-js@4.4.1: dependencies: punycode: 2.1.1 - /url-loader@4.1.1(file-loader@6.2.0)(webpack@5.74.0): - resolution: {integrity: sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - file-loader: '*' - webpack: ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - file-loader: - optional: true + url-loader@4.1.1(file-loader@6.2.0(webpack@5.74.0))(webpack@5.74.0): dependencies: - file-loader: 6.2.0(webpack@5.74.0) loader-utils: 2.0.3 mime-types: 2.1.35 schema-utils: 3.1.1 webpack: 5.74.0 - dev: false + optionalDependencies: + file-loader: 6.2.0(webpack@5.74.0) - /url-parse-lax@3.0.0: - resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} - engines: {node: '>=4'} + url-parse-lax@3.0.0: dependencies: prepend-http: 2.0.0 - dev: false - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 - /urlpattern-polyfill@10.0.0: - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + urlpattern-polyfill@10.0.0: {} - /use-callback-ref@1.3.0(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-callback-ref@1.3.0(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 tslib: 2.6.2 - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /use-composed-ref@1.3.0(react@18.2.0): - resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-composed-ref@1.3.0(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-isomorphic-layout-effect@1.1.2(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /use-latest@1.2.1(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-latest@1.2.1(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 react: 18.2.0 use-isomorphic-layout-effect: 1.1.2(@types/react@18.0.20)(react@18.2.0) - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /use-sidecar@1.1.2(@types/react@18.0.20)(react@18.2.0): - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} - engines: {node: '>=10'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true + use-sidecar@1.1.2(@types/react@18.0.20)(react@18.2.0): dependencies: - '@types/react': 18.0.20 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 - dev: false + optionalDependencies: + '@types/react': 18.0.20 - /use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + use-sync-external-store@1.2.0(react@18.2.0): dependencies: react: 18.2.0 - dev: false - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + util-deprecate@1.0.2: {} - /utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} - dev: false + utila@0.4.0: {} - /utility-types@3.10.0: - resolution: {integrity: sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==} - engines: {node: '>= 4'} + utility-types@3.10.0: {} - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: false + utils-merge@1.0.1: {} - /uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} - hasBin: true - dev: false + uuid@8.3.2: {} - /v8n@1.5.1: - resolution: {integrity: sha512-LdabyT4OffkyXFCe9UT+uMkxNBs5rcTVuZClvxQr08D5TUgo1OFKkoT65qYRCsiKBl/usHjpXvP4hHMzzDRj3A==} - dev: false + v8n@1.5.1: {} - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.1.1 spdx-expression-parse: 3.0.1 - dev: true - /value-equal@1.0.1: - resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} - dev: false + value-equal@1.0.1: {} - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - dev: false + vary@1.1.2: {} - /vfile-location@3.2.0: - resolution: {integrity: sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==} - dev: false + vfile-location@3.2.0: {} - /vfile-message@2.0.4: - resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==} + vfile-message@2.0.4: dependencies: '@types/unist': 2.0.6 unist-util-stringify-position: 2.0.3 - dev: false - /vfile@4.2.1: - resolution: {integrity: sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==} + vfile@4.2.1: dependencies: '@types/unist': 2.0.6 is-buffer: 2.0.5 unist-util-stringify-position: 2.0.3 vfile-message: 2.0.4 - dev: false - /vite-node@2.0.5(@types/node@20.10.5): - resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + vite-node@2.0.5(@types/node@20.10.5)(terser@5.15.1): + dependencies: + cac: 6.7.14 + debug: 4.3.5 + pathe: 1.1.2 + tinyrainbow: 1.2.0 + vite: 5.0.10(@types/node@20.10.5)(terser@5.15.1) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite-node@2.0.5(@types/node@20.11.5)(terser@5.15.1): dependencies: cac: 6.7.14 debug: 4.3.5 pathe: 1.1.2 tinyrainbow: 1.2.0 - vite: 5.0.10(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.11.5)(terser@5.15.1) transitivePeerDependencies: - '@types/node' - less @@ -18690,16 +20987,12 @@ packages: - supports-color - terser - /vite-node@2.0.5(@types/node@20.11.5): - resolution: {integrity: sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + vite-node@2.1.3(@types/node@20.11.5)(terser@5.15.1): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.3.7 pathe: 1.1.2 - tinyrainbow: 1.2.0 - vite: 5.0.10(@types/node@20.11.5) + vite: 5.0.10(@types/node@20.11.5)(terser@5.15.1) transitivePeerDependencies: - '@types/node' - less @@ -18709,208 +21002,63 @@ packages: - sugarss - supports-color - terser - dev: true - /vite@3.2.4(@types/node@20.10.5): - resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@3.2.4(@types/node@20.11.5)(terser@5.15.1): dependencies: - '@types/node': 20.10.5 esbuild: 0.15.13 postcss: 8.4.21 resolve: 1.22.1 rollup: 2.79.1 optionalDependencies: + '@types/node': 20.11.5 fsevents: 2.3.3 - dev: false + terser: 5.15.1 - /vite@4.0.4(@types/node@20.10.5): - resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@4.0.4(@types/node@20.11.5)(terser@5.15.1): dependencies: - '@types/node': 20.10.5 esbuild: 0.16.13 postcss: 8.4.20 resolve: 1.22.1 rollup: 3.9.1 optionalDependencies: + '@types/node': 20.11.5 fsevents: 2.3.3 - dev: false + terser: 5.15.1 - /vite@4.2.1(@types/node@20.10.5): - resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@4.2.1(@types/node@20.11.5)(terser@5.15.1): dependencies: - '@types/node': 20.10.5 esbuild: 0.17.16 postcss: 8.4.21 resolve: 1.22.1 rollup: 3.20.2 optionalDependencies: + '@types/node': 20.11.5 fsevents: 2.3.3 - dev: true + terser: 5.15.1 - /vite@5.0.10(@types/node@20.10.5): - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@5.0.10(@types/node@20.10.5)(terser@5.15.1): dependencies: - '@types/node': 20.10.5 esbuild: 0.19.10 postcss: 8.4.32 rollup: 4.9.1 optionalDependencies: + '@types/node': 20.10.5 fsevents: 2.3.3 + terser: 5.15.1 - /vite@5.0.10(@types/node@20.11.5): - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true + vite@5.0.10(@types/node@20.11.5)(terser@5.15.1): dependencies: - '@types/node': 20.11.5 esbuild: 0.19.10 postcss: 8.4.32 rollup: 4.9.1 optionalDependencies: + '@types/node': 20.11.5 fsevents: 2.3.3 - dev: true + terser: 5.15.1 - /vitest@2.0.5(@types/node@20.10.5)(jsdom@20.0.0): - resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.5 - '@vitest/ui': 2.0.5 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + vitest@2.0.5(@types/node@20.10.5)(jsdom@20.0.0)(terser@5.15.1): dependencies: '@ampproject/remapping': 2.3.0 - '@types/node': 20.10.5 '@vitest/expect': 2.0.5 '@vitest/pretty-format': 2.0.5 '@vitest/runner': 2.0.5 @@ -18920,16 +21068,51 @@ packages: chai: 5.1.1 debug: 4.3.5 execa: 8.0.1 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.0.10(@types/node@20.10.5)(terser@5.15.1) + vite-node: 2.0.5(@types/node@20.10.5)(terser@5.15.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.10.5 jsdom: 20.0.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vitest@2.0.5(@types/node@20.10.5)(jsdom@24.1.0)(terser@5.15.1): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.0.5 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.5 + execa: 8.0.1 magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 tinybench: 2.9.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.0.10(@types/node@20.10.5) - vite-node: 2.0.5(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.10.5)(terser@5.15.1) + vite-node: 2.0.5(@types/node@20.10.5)(terser@5.15.1) why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.10.5 + jsdom: 24.1.0 transitivePeerDependencies: - less - lightningcss @@ -18939,33 +21122,42 @@ packages: - supports-color - terser - /vitest@2.0.5(@types/node@20.10.5)(jsdom@24.1.0): - resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.5 - '@vitest/ui': 2.0.5 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + vitest@2.0.5(@types/node@20.11.5)(jsdom@20.0.0)(terser@5.15.1): + dependencies: + '@ampproject/remapping': 2.3.0 + '@vitest/expect': 2.0.5 + '@vitest/pretty-format': 2.0.5 + '@vitest/runner': 2.0.5 + '@vitest/snapshot': 2.0.5 + '@vitest/spy': 2.0.5 + '@vitest/utils': 2.0.5 + chai: 5.1.1 + debug: 4.3.5 + execa: 8.0.1 + magic-string: 0.30.11 + pathe: 1.1.2 + std-env: 3.7.0 + tinybench: 2.9.0 + tinypool: 1.0.0 + tinyrainbow: 1.2.0 + vite: 5.0.10(@types/node@20.11.5)(terser@5.15.1) + vite-node: 2.0.5(@types/node@20.11.5)(terser@5.15.1) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.11.5 + jsdom: 20.0.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vitest@2.0.5(@types/node@20.11.5)(jsdom@24.1.0)(terser@5.15.1): dependencies: '@ampproject/remapping': 2.3.0 - '@types/node': 20.10.5 '@vitest/expect': 2.0.5 '@vitest/pretty-format': 2.0.5 '@vitest/runner': 2.0.5 @@ -18975,16 +21167,18 @@ packages: chai: 5.1.1 debug: 4.3.5 execa: 8.0.1 - jsdom: 24.1.0 magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 tinybench: 2.9.0 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.0.10(@types/node@20.10.5) - vite-node: 2.0.5(@types/node@20.10.5) + vite: 5.0.10(@types/node@20.11.5)(terser@5.15.1) + vite-node: 2.0.5(@types/node@20.11.5)(terser@5.15.1) why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.11.5 + jsdom: 24.1.0 transitivePeerDependencies: - less - lightningcss @@ -18993,86 +21187,54 @@ packages: - sugarss - supports-color - terser - dev: true - /vitest@2.0.5(@types/node@20.11.5): - resolution: {integrity: sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 2.0.5 - '@vitest/ui': 2.0.5 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true + vitest@2.1.3(@types/node@20.11.5)(jsdom@24.1.0)(terser@5.15.1): dependencies: - '@ampproject/remapping': 2.3.0 - '@types/node': 20.11.5 - '@vitest/expect': 2.0.5 - '@vitest/pretty-format': 2.0.5 - '@vitest/runner': 2.0.5 - '@vitest/snapshot': 2.0.5 - '@vitest/spy': 2.0.5 - '@vitest/utils': 2.0.5 + '@vitest/expect': 2.1.3 + '@vitest/mocker': 2.1.3(@vitest/spy@2.1.3)(vite@5.0.10(@types/node@20.11.5)(terser@5.15.1)) + '@vitest/pretty-format': 2.1.3 + '@vitest/runner': 2.1.3 + '@vitest/snapshot': 2.1.3 + '@vitest/spy': 2.1.3 + '@vitest/utils': 2.1.3 chai: 5.1.1 - debug: 4.3.5 - execa: 8.0.1 + debug: 4.3.7 magic-string: 0.30.11 pathe: 1.1.2 std-env: 3.7.0 tinybench: 2.9.0 + tinyexec: 0.3.1 tinypool: 1.0.0 tinyrainbow: 1.2.0 - vite: 5.0.10(@types/node@20.11.5) - vite-node: 2.0.5(@types/node@20.11.5) + vite: 5.0.10(@types/node@20.11.5)(terser@5.15.1) + vite-node: 2.1.3(@types/node@20.11.5)(terser@5.15.1) why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 20.11.5 + jsdom: 24.1.0 transitivePeerDependencies: - less - lightningcss + - msw - sass - stylus - sugarss - supports-color - terser - dev: true - /w3c-hr-time@1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - deprecated: Use your platform's native performance.now() and performance.timeOrigin. + w3c-hr-time@1.0.2: dependencies: browser-process-hrtime: 1.0.0 - /w3c-xmlserializer@3.0.0: - resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} - engines: {node: '>=12'} + w3c-xmlserializer@3.0.0: dependencies: xml-name-validator: 4.0.0 - /w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} + w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 - dev: true - /wait-on@6.0.1: - resolution: {integrity: sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==} - engines: {node: '>=10.0.0'} - hasBin: true + wait-on@6.0.1: dependencies: axios: 0.25.0 joi: 17.6.4 @@ -19081,56 +21243,33 @@ packages: rxjs: 7.5.7 transitivePeerDependencies: - debug - dev: false - /watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} - engines: {node: '>=10.13.0'} + watchpack@2.4.0: dependencies: glob-to-regexp: 0.4.1 graceful-fs: 4.2.10 - /wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + wbuf@1.7.3: dependencies: minimalistic-assert: 1.0.1 - dev: false - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - dev: true - /weak-event@2.0.5: - resolution: {integrity: sha512-EpmiDbg6NxSYgxd7UAZUUZaStlNpiAaCCsUqhXGdYQ6RyBtq9t5f0HOJmD9rn2mkDvfZOqlUtaJYoPYYtAIPLA==} - engines: {node: '>=14.6'} - dev: false + weak-event@2.0.5: {} - /web-namespaces@1.1.4: - resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} - dev: false + web-namespaces@1.1.4: {} - /webgl-constants@1.1.1: - resolution: {integrity: sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==} - dev: false + webgl-constants@1.1.1: {} - /webgl-sdf-generator@1.1.1: - resolution: {integrity: sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==} - dev: false + webgl-sdf-generator@1.1.1: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: false + webidl-conversions@3.0.1: {} - /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + webidl-conversions@7.0.0: {} - /webpack-bundle-analyzer@4.7.0: - resolution: {integrity: sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==} - engines: {node: '>= 10.13.0'} - hasBin: true + webpack-bundle-analyzer@4.7.0: dependencies: acorn: 8.8.0 acorn-walk: 8.2.0 @@ -19144,13 +21283,8 @@ packages: transitivePeerDependencies: - bufferutil - utf-8-validate - dev: false - /webpack-dev-middleware@5.3.3(webpack@5.74.0): - resolution: {integrity: sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==} - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 + webpack-dev-middleware@5.3.3(webpack@5.74.0): dependencies: colorette: 2.0.19 memfs: 3.4.8 @@ -19158,18 +21292,8 @@ packages: range-parser: 1.2.1 schema-utils: 4.0.0 webpack: 5.74.0 - dev: false - /webpack-dev-server@4.11.1(webpack@5.74.0): - resolution: {integrity: sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==} - engines: {node: '>= 12.13.0'} - hasBin: true - peerDependencies: - webpack: ^4.37.0 || ^5.0.0 - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true + webpack-dev-server@4.11.1(webpack@5.74.0): dependencies: '@types/bonjour': 3.5.10 '@types/connect-history-api-fallback': 1.3.5 @@ -19206,28 +21330,15 @@ packages: - debug - supports-color - utf-8-validate - dev: false - /webpack-merge@5.8.0: - resolution: {integrity: sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==} - engines: {node: '>=10.0.0'} + webpack-merge@5.8.0: dependencies: clone-deep: 4.0.1 wildcard: 2.0.0 - /webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + webpack-sources@3.2.3: {} - /webpack@5.74.0: - resolution: {integrity: sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==} - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true + webpack@5.74.0: dependencies: '@types/eslint-scope': 3.7.4 '@types/estree': 0.0.51 @@ -19258,324 +21369,169 @@ packages: - esbuild - uglify-js - /webpackbar@5.0.2(webpack@5.74.0): - resolution: {integrity: sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==} - engines: {node: '>=12'} - peerDependencies: - webpack: 3 || 4 || 5 + webpackbar@5.0.2(webpack@5.74.0): dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.3.0 webpack: 5.74.0 - dev: false - /websocket-driver@0.7.4: - resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} - engines: {node: '>=0.8.0'} + websocket-driver@0.7.4: dependencies: http-parser-js: 0.5.8 safe-buffer: 5.2.1 websocket-extensions: 0.1.4 - dev: false - /websocket-extensions@0.1.4: - resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} - engines: {node: '>=0.8.0'} - dev: false + websocket-extensions@0.1.4: {} - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} + whatwg-encoding@2.0.0: dependencies: iconv-lite: 0.6.3 - /whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} + whatwg-encoding@3.1.1: dependencies: iconv-lite: 0.6.3 - dev: true - /whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} + whatwg-mimetype@3.0.0: {} - /whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} - dev: true + whatwg-mimetype@4.0.0: {} - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} + whatwg-url@11.0.0: dependencies: tr46: 3.0.0 webidl-conversions: 7.0.0 - /whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} - engines: {node: '>=18'} + whatwg-url@14.0.0: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 - dev: true - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: false - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.0.2: dependencies: is-bigint: 1.0.4 is-boolean-object: 1.1.2 is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true - /which-module@2.0.0: - resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: true + which-module@2.0.0: {} - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + which-pm@2.0.0: dependencies: load-yaml-file: 0.2.0 path-exists: 4.0.0 - dev: true - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true + which@1.3.1: dependencies: isexe: 2.0.0 - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} - hasBin: true + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wide-align@1.1.5: dependencies: string-width: 4.2.3 - dev: false - /widest-line@3.1.0: - resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} - engines: {node: '>=8'} + widest-line@3.1.0: dependencies: string-width: 4.2.3 - dev: false - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@4.0.1: dependencies: string-width: 5.1.2 - dev: false - /wildcard@2.0.0: - resolution: {integrity: sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==} + wildcard@2.0.0: {} - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} - engines: {node: '>=0.10.0'} + word-wrap@1.2.3: {} - /wordwrapjs@4.0.1: - resolution: {integrity: sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==} - engines: {node: '>=8.0.0'} + wordwrapjs@4.0.1: dependencies: reduce-flatten: 2.0.0 typical: 5.2.0 - dev: false - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.0.1 - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + wrappy@1.0.2: {} - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} + write-file-atomic@3.0.3: dependencies: imurmurhash: 0.1.4 is-typedarray: 1.0.0 signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 - dev: false - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@7.5.9: {} - /ws@8.11.0: - resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true + ws@8.11.0: {} - /ws@8.14.2: - resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@8.14.2: {} - /ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: true + ws@8.18.0: {} - /ws@8.9.0: - resolution: {integrity: sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@8.9.0: {} - /xdg-basedir@4.0.0: - resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} - engines: {node: '>=8'} - dev: false + xdg-basedir@4.0.0: {} - /xml-js@1.6.11: - resolution: {integrity: sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==} - hasBin: true + xml-js@1.6.11: dependencies: sax: 1.2.4 - dev: false - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} + xml-name-validator@4.0.0: {} - /xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} - dev: true + xml-name-validator@5.0.0: {} - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xmlchars@2.2.0: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: false + xtend@4.0.2: {} - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: true + y18n@4.0.3: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + y18n@5.0.8: {} - /yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - dev: true + yallist@2.1.2: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - dev: false + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@4.0.0: {} - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: false + yaml@1.10.2: {} - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: true - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + yargs-parser@21.1.1: {} - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + yargs@15.4.1: dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -19588,11 +21544,8 @@ packages: which-module: 2.0.0 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: true - /yargs@17.6.0: - resolution: {integrity: sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==} - engines: {node: '>=12'} + yargs@17.6.0: dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -19602,9 +21555,7 @@ packages: y18n: 5.0.8 yargs-parser: 21.1.1 - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 escalade: 3.1.1 @@ -19613,63 +21564,31 @@ packages: string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true + yocto-queue@1.0.0: {} - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - dev: false + zod@3.22.4: {} - /zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - dev: true + zod@3.23.8: {} - /zstddec@0.0.2: - resolution: {integrity: sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA==} - dev: false + zstddec@0.0.2: {} - /zustand@3.7.2(react@18.2.0): - resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} - engines: {node: '>=12.7.0'} - peerDependencies: - react: '>=16.8' - peerDependenciesMeta: - react: - optional: true - dependencies: + zustand@3.7.2(react@18.2.0): + optionalDependencies: react: 18.2.0 - dev: false - /zustand@4.1.4(react@18.2.0): - resolution: {integrity: sha512-k2jVOlWo8p4R83mQ+/uyB8ILPO2PCJOf+QVjcL+1PbMCk1w5OoPYpAIxy9zd93FSfmJqoH6lGdwzzjwqJIRU5A==} - engines: {node: '>=12.7.0'} - peerDependencies: - immer: '>=9.0' - react: '>=16.8' - peerDependenciesMeta: - immer: - optional: true - react: - optional: true + zustand@4.1.4(immer@9.0.16)(react@18.2.0): dependencies: - react: 18.2.0 use-sync-external-store: 1.2.0(react@18.2.0) - dev: false + optionalDependencies: + immer: 9.0.16 + react: 18.2.0 - /zwitch@1.0.5: - resolution: {integrity: sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==} - dev: false + zwitch@1.0.5: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index d8737521..8a141d1d 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -5,3 +5,4 @@ packages: - 'examples/**' - 'scaleTest' - 'scratchpad' + - 'configs' diff --git a/test/client/client.d.ts b/test/client/client.d.ts index 10005dc2..d696b9db 100644 --- a/test/client/client.d.ts +++ b/test/client/client.d.ts @@ -64,10 +64,12 @@ export class Client { export interface ClientDescriptorOptions extends Omit< BaseClientDescriptorOptions, - "schema" | "migrations" + "schema" | "migrations" | "oldSchemas" > { /** WARNING: overriding the schema is dangerous and almost definitely not what you want. */ schema?: StorageSchema; + /** WARNING: overriding old schemas is dangerous and almost definitely not what you want. */ + oldSchemas?: StorageSchema[]; /** WARNING: overriding the migrations is dangerous and almost definitely not what you want. */ migrations?: Migration[]; } diff --git a/test/client/schemaVersions/index.d.ts b/test/client/schemaVersions/index.d.ts index f539a117..3251fd36 100644 --- a/test/client/schemaVersions/index.d.ts +++ b/test/client/schemaVersions/index.d.ts @@ -1,3 +1,5 @@ -import { StorageSchema } from '@verdant-web/common'; -declare const versions: StorageSchema[]; -export default versions; + + import { StorageSchema } from '@verdant-web/common'; + declare const versions: StorageSchema[]; + export default versions; + \ No newline at end of file diff --git a/test/lib/createTestContext.ts b/test/lib/createTestContext.ts index e0df5ac4..da9c2e66 100644 --- a/test/lib/createTestContext.ts +++ b/test/lib/createTestContext.ts @@ -23,7 +23,7 @@ export function createTestContext({ const context = { clients: [], log: (...args: any[]) => { - if (testLog) console.log('⭐⭐⭐', ...args); + if (testLog) console.log('🔺', ...args); }, filterLog: (prefix: string, ...matches: string[]) => diff --git a/test/lib/testClient.ts b/test/lib/testClient.ts index 8759c5f0..22d11f2f 100644 --- a/test/lib/testClient.ts +++ b/test/lib/testClient.ts @@ -45,7 +45,6 @@ export async function createTestClient({ migrations, namespace: `${library}_${user}`, indexedDb, - onOperation, sync: server ? { authEndpoint: `http://localhost:${server.port}/auth/${library}?user=${user}&type=${type}`, @@ -61,8 +60,12 @@ export async function createTestClient({ log: log || (logId - ? (...args: any[]) => { - console.log(`[${logId}]`, ...args); + ? (level, ...args: any[]) => { + console.log( + `[${logId}]`, + level === 'critical' ? '🔺🔺🔺 CRITICAL' : level, + ...args, + ); onLog?.(args.map((a) => JSON.stringify(a)).join('\n')); } : onLog @@ -71,11 +74,15 @@ export async function createTestClient({ : undefined), files, schema, - oldSchemas: oldSchemas ?? [schema], + rebaseTimeout: 0, EXPERIMENTAL_weakRefs: true, }); const client = await desc.open(); + if (onOperation) { + client.subscribe('operation', onOperation); + } client.subscribe('developerError', (err) => { + console.error(`Developer Error (client: ${library}_${user})`); console.error(err); console.error('>>> cause >>>', err.cause); expect(err).toBe(null); diff --git a/test/lib/testServer.ts b/test/lib/testServer.ts index 11db1cb9..e155323a 100644 --- a/test/lib/testServer.ts +++ b/test/lib/testServer.ts @@ -1,7 +1,6 @@ import { Server, TokenProvider, ReplicaType } from '@verdant-web/server'; import express from 'express'; import { createServer } from 'http'; -import * as fs from 'fs/promises'; import { LocalFileStorage } from '@verdant-web/server'; import { sqlShardStorage, sqlStorage } from '@verdant-web/server/storage'; import getPort from 'get-port'; diff --git a/test/lib/waits.ts b/test/lib/waits.ts index eea011fd..253f0665 100644 --- a/test/lib/waits.ts +++ b/test/lib/waits.ts @@ -3,13 +3,17 @@ import { AnyEntity, Client, Query } from '../client/index.js'; import { ClientWithCollections, EntityFile } from '@verdant-web/store'; import { stableStringify } from '@verdant-web/common'; -export async function waitForMockCall(mock: Mock, calls = 1) { - return waitForCondition(() => { - if (mock.mock.calls.length >= calls) { - return true; - } - return false; - }); +export async function waitForMockCall(mock: Mock, calls = 1, debug?: string) { + return waitForCondition( + () => { + if (mock.mock.calls.length >= calls) { + return true; + } + return false; + }, + 5000, + debug, + ); } export async function waitForOnline( @@ -76,8 +80,14 @@ export async function waitForQueryResult( const timeout = setTimeout(() => { if (debug) { - debugger; + // debugger; } + console.error( + 'Timed out query state', + query.status, + 'raw value', + query.__rawValue, + ); reject(new Error('Timed out waiting for query ' + (debug || query.key))); }, timeoutMs); @@ -102,14 +112,22 @@ export async function waitForEverythingToRebase(client: Client) { }); } -export async function waitForBaselineCount(client: Client, count = 1) { - await waitForCondition(async () => { - const stats = await client.stats(); - if (stats.meta.baselinesSize.count >= count) { - return true; - } - return false; - }); +export async function waitForBaselineCount( + client: Client, + count = 1, + debug?: string, +) { + await waitForCondition( + async () => { + const stats = await client.stats(); + if (stats.meta.baselinesSize.count >= count) { + return true; + } + return false; + }, + 5000, + debug, + ); } export async function waitForCondition( diff --git a/test/tests/authzMigration.test.ts b/test/tests/authzMigration.test.ts index d9de557c..4fb4c2ce 100644 --- a/test/tests/authzMigration.test.ts +++ b/test/tests/authzMigration.test.ts @@ -23,6 +23,7 @@ async function createTestClient({ logId, disableRebasing, indexedDb = new IDBFactory(), + oldSchemas, }: { schema: any; migrations: Migration[]; @@ -33,6 +34,7 @@ async function createTestClient({ logId?: string; disableRebasing?: boolean; indexedDb?: IDBFactory; + oldSchemas: any[]; }): Promise { const desc = new StorageDescriptor({ schema, @@ -51,6 +53,7 @@ async function createTestClient({ : undefined, indexedDb, disableRebasing, + oldSchemas, }); const client = await desc.open(); return client as ClientWithCollections; @@ -95,6 +98,7 @@ it('does not expose private documents when migrating', async () => { let client = await createTestClient({ schema: v1Schema, + oldSchemas: [v1Schema], ...clientInit, }); @@ -139,6 +143,7 @@ it('does not expose private documents when migrating', async () => { client = await createTestClient({ schema: v2Schema, + oldSchemas: [v1Schema, v2Schema], server, ...clientInit, }); @@ -158,6 +163,7 @@ it('does not expose private documents when migrating', async () => { const client2 = await createTestClient({ schema: v2Schema, + oldSchemas: [v1Schema, v2Schema], server, ...clientInit, user: 'B', diff --git a/test/tests/backup.test.ts b/test/tests/backup.test.ts index 29ecc90a..431e82f1 100644 --- a/test/tests/backup.test.ts +++ b/test/tests/backup.test.ts @@ -8,7 +8,9 @@ import { readBackupFile, } from '@verdant-web/store/backup'; -const ctx = createTestContext(); +const ctx = createTestContext({ + // testLog: true, +}); it('can backup to file', async () => { const clientA = await ctx.createTestClient({ @@ -18,10 +20,9 @@ it('can backup to file', async () => { const clientB = await ctx.createTestClient({ library: 'backup', user: 'B', - // logId: 'B', }); - ctx.log('Seeing data'); + ctx.log('Seeding data'); clientA.sync.start(); clientB.sync.start(); const a_apples = await clientA.items.put({ id: 'apples', content: 'Apples' }); @@ -82,13 +83,25 @@ it('can backup to file', async () => { }); await importClientBackup(clientC as any, backupFile); + ctx.log('backup imported'); // check the data - await waitForQueryResult(clientC.items.findAll(), (r) => r.length === 4); + await waitForQueryResult( + clientC.items.findAll(), + (r) => r.length === 4, + 1000, + 'backed up items', + ); + ctx.log('items synced'); const cOranges = clientC.items.get('oranges'); - await waitForQueryResult(cOranges); + await waitForQueryResult(cOranges, (r) => !!r, 1000, 'oranges'); await waitForEntityCondition(cOranges.current!, (o) => !!o?.get('purchased')); const cBananas = clientC.items.get('bananas'); - await waitForQueryResult(cBananas); - await waitForEntityCondition(cBananas.current!, (b) => !!b?.get('image')); + await waitForQueryResult(cBananas, (r) => !!r, 1000, 'bananas'); + await waitForEntityCondition( + cBananas.current!, + (b) => !!b?.get('image'), + 1000, + 'image', + ); }); diff --git a/test/tests/cloning.test.ts b/test/tests/cloning.test.ts index 525cf722..bb6e9789 100644 --- a/test/tests/cloning.test.ts +++ b/test/tests/cloning.test.ts @@ -2,7 +2,6 @@ import { it, expect } from 'vitest'; import { createTestContext } from '../lib/createTestContext.js'; import { createTestFile } from '../lib/createTestFile.js'; import { - waitForCondition, waitForFileLoaded, waitForFileUpload, waitForQueryResult, @@ -35,6 +34,7 @@ it('can clone entities with files, and the files survive deletion of the origina const clone = await clientA.items.clone(original); expect(clone.get('image')).not.toBeNull(); const cloneImage = clone.get('image')!; + await waitForFileLoaded(cloneImage); expect(cloneImage.url).not.toBeNull(); // at this point it's blob URLs, so they will be the same as the // file is the same @@ -42,7 +42,6 @@ it('can clone entities with files, and the files survive deletion of the origina clone.set('content', 'clone'); // there should be 2 files in the database now - // check that the original file is gone let stats = await clientA.stats(); expect(stats.files.size.count).toEqual(2); diff --git a/test/tests/export.test.ts b/test/tests/export.test.ts index 4f3da00f..1e8d3eb0 100644 --- a/test/tests/export.test.ts +++ b/test/tests/export.test.ts @@ -1,13 +1,12 @@ import { ReplicaType } from '@verdant-web/server'; import { - collection, createMigration, Migration, schema, StorageDescriptor, } from '@verdant-web/store'; import { expect, it, vitest } from 'vitest'; -import { waitForQueryResult } from '../lib/waits.js'; +import { waitForFileLoaded, waitForQueryResult } from '../lib/waits.js'; import { createTestFile } from '../lib/createTestFile.js'; async function createTestClient({ @@ -19,6 +18,7 @@ async function createTestClient({ type = ReplicaType.Realtime, logId, indexedDb = new IDBFactory(), + oldSchemas, }: { schema: any; migrations: Migration[]; @@ -28,6 +28,7 @@ async function createTestClient({ type?: ReplicaType; logId?: string; indexedDb?: IDBFactory; + oldSchemas: any[]; }): Promise { const desc = new StorageDescriptor({ schema, @@ -45,13 +46,13 @@ async function createTestClient({ ? (...args: any[]) => console.log(`[${logId}]`, ...args) : undefined, indexedDb, + oldSchemas, }); const client = await desc.open(); return client; } -// TODO: restore when this is supported again? -it.skip('can export data and import it even after a schema migration', async () => { +it('can export data and import it even after a schema migration', async () => { const v1Item = schema.collection({ name: 'item', primaryKey: 'id', @@ -77,14 +78,15 @@ it.skip('can export data and import it even after a schema migration', async () user: 'a', }; - // @ts-ignore let client = await createTestClient({ schema: v1Schema, + oldSchemas: [v1Schema], ...clientInit, // logId: 'client1', }); - const originalLocalReplicaInfo = await client.meta.localReplica.get(); + const originalLocalReplicaInfo = + await client.__persistence.meta.getLocalReplica(); // add test data await client.items.put({ @@ -104,7 +106,10 @@ it.skip('can export data and import it even after a schema migration', async () file: createTestFile('file 2 a different file'), }); + await client.entities.flushAllBatches(); + const exported = await client.export(); + expect(exported.files.length).toBe(2); await client.close(); @@ -116,6 +121,7 @@ it.skip('can export data and import it even after a schema migration', async () contents: schema.fields.string({ default: 'empty' }), tags: schema.fields.array({ items: schema.fields.string() }), listId: schema.fields.string({ nullable: true }), + file: schema.fields.file({ nullable: true }), }, indexes: { listId: { @@ -132,7 +138,7 @@ it.skip('can export data and import it even after a schema migration', async () }, }, }); - const v2List = collection({ + const v2List = schema.collection({ name: 'list', primaryKey: 'id', fields: { @@ -154,6 +160,7 @@ it.skip('can export data and import it even after a schema migration', async () client = await createTestClient({ schema: v2Schema, + oldSchemas: [v1Schema, v2Schema], ...clientInit, // logId: 'client2', }); @@ -171,7 +178,7 @@ it.skip('can export data and import it even after a schema migration', async () }); // it gets assigned a new replica ID - const newLocalReplicaInfo = await client.meta.localReplica.get(); + const newLocalReplicaInfo = await client.__persistence.meta.getLocalReplica(); expect(newLocalReplicaInfo.id).not.to.equal(originalLocalReplicaInfo.id); // make some queries to see how they fare @@ -194,35 +201,55 @@ it.skip('can export data and import it even after a schema migration', async () await client.lists.findAll().resolved; // it should have the same replica ID, not overwritten - const finalLocalReplicaInfo = await client.meta.localReplica.get(); + const finalLocalReplicaInfo = + await client.__persistence.meta.getLocalReplica(); expect(finalLocalReplicaInfo.id).not.to.equal(originalLocalReplicaInfo.id); // make sure the data is correct const items = await itemsQuery.resolved; + + // wait for all files to be loaded + for (const item of items) { + if (item.get('file')) { + await waitForFileLoaded(item.get('file')); + } + } + expect(items.map((item: any) => item.getSnapshot())).toEqual([ { contents: 'hello', file: null, id: '1', tags: [], + listId: null, }, { contents: 'world', file: { id: expect.any(String), url: 'blob:text/plain:6', + name: 'test.txt', + type: 'text/plain', + remote: false, + file: expect.any(Blob), }, id: '2', tags: ['a', 'b', 'c'], + listId: null, }, { contents: 'foo', file: { id: expect.any(String), url: 'blob:text/plain:23', + name: 'test.txt', + remote: false, + type: 'text/plain', + file: expect.any(Blob), }, id: '3', tags: ['a', 'b'], + listId: null, }, ]); }); diff --git a/test/tests/files.test.ts b/test/tests/files.test.ts index 181542ba..7e0d8df5 100644 --- a/test/tests/files.test.ts +++ b/test/tests/files.test.ts @@ -7,6 +7,7 @@ import { waitForEverythingToRebase } from '../lib/waits.js'; const context = createTestContext({ // serverLog: true, + // testLog: true, }); it('can store and cleanup local files', async () => { @@ -18,6 +19,7 @@ it('can store and cleanup local files', async () => { library: 'files-1', user: 'User A', indexedDb, + // logId: 'A', }); const a_item = await clientA.items.put({ @@ -83,6 +85,7 @@ it('can store and cleanup local files', async () => { // immediately delete files canCleanupDeletedFile: () => true, }, + // logId: 'A3', }); // wait for microtasks to run @@ -91,7 +94,7 @@ it('can store and cleanup local files', async () => { // file should be gone - check in indexeddb // NOTE: this is brittle, relies on implementation details const db = await new Promise((resolve, reject) => { - const request = indexedDb.open('files-1_User A_meta', 5); + const request = indexedDb.open('files-1_User A_meta'); request.onsuccess = () => resolve(request.result); request.onerror = () => reject(request.error); request.onupgradeneeded = (ev) => { diff --git a/test/tests/fuzz.test.ts b/test/tests/fuzz.test.ts index d43ade07..71e5f5d9 100644 --- a/test/tests/fuzz.test.ts +++ b/test/tests/fuzz.test.ts @@ -1,10 +1,8 @@ import { ReplicaType, Server } from '@verdant-web/server'; import { ClientWithCollections, - collection, createMigration, Entity, - migrate, schema, StorageDescriptor, } from '@verdant-web/store'; @@ -49,6 +47,7 @@ async function createTestClient({ const desc = new StorageDescriptor({ // disableRebasing: true, schema: fuzzSchema, + oldSchemas: [fuzzSchema], migrations: [ createMigration(fuzzSchema, async ({ mutations }) => { // create the default fuzz object @@ -222,7 +221,6 @@ async function waitForConsistency( const fuzz2 = await getFuzz(client2); const fuzz1Pending = fuzz1.metadata.pendingOperations; const fuzz2Pending = fuzz2.metadata.pendingOperations; - debugger; return `[${debugTag}] consistency (${attempts} attempts): ${snap1} diff --git a/test/tests/migration.test.ts b/test/tests/migration.test.ts index 112e08ca..399c18eb 100644 --- a/test/tests/migration.test.ts +++ b/test/tests/migration.test.ts @@ -1,4 +1,4 @@ -import { it, expect, describe } from 'vitest'; +import { it, expect } from 'vitest'; import { schema, StorageDescriptor, @@ -15,9 +15,11 @@ import { waitForOnline, waitForQueryResult, } from '../lib/waits.js'; +import { Operation } from '@verdant-web/common'; async function createTestClient({ schema, + oldSchemas, migrations, server, library, @@ -28,6 +30,7 @@ async function createTestClient({ indexedDb = new IDBFactory(), }: { schema: any; + oldSchemas: any[]; migrations: Migration[]; server?: { port: number }; library: string; @@ -39,6 +42,7 @@ async function createTestClient({ }): Promise { const desc = new StorageDescriptor({ schema, + oldSchemas, migrations, namespace: `${library}_${user}`, sync: server @@ -170,6 +174,7 @@ it( client = await createTestClient({ schema: v2Schema, + oldSchemas: [v1Schema, v2Schema], ...clientInit, }); @@ -318,6 +323,7 @@ it( client = await createTestClient({ schema: v3Schema, + oldSchemas: [v1Schema, v2Schema, v3Schema], ...clientInit, }); @@ -442,6 +448,7 @@ it( client = await createTestClient({ schema: v4Schema, + oldSchemas: [v1Schema, v2Schema, v3Schema, v4Schema], // disable rebasing so we get predictable metadata disableRebasing: true, ...clientInit, @@ -512,13 +519,12 @@ it( // breaking the surface API a bit, I also want to check to see // that we created delete operations for every existing item // when dropping the table. - const localItemDeletes: any[] = []; - await client.meta.operations.iterateOverAllLocalOperations((op) => { - if (op.oid.startsWith('items') && op.data.op === 'delete') { + const localItemDeletes: Operation[] = []; + await client.__persistence.meta.iterateAllOperations((op) => { + if (op.data.op === 'delete' && op.oid.startsWith('items')) { localItemDeletes.push(op); } - }, {}); - // 13 is the number of total nested objects in our 3 items + }); expect(localItemDeletes).toHaveLength(11); await client.close(); @@ -561,6 +567,7 @@ it( client = await createTestClient({ schema: v5Schema, + oldSchemas: [v1Schema, v2Schema, v3Schema, v4Schema, v5Schema], ...clientInit, }); @@ -688,6 +695,7 @@ it('migrates in an online world where old operations still come in', async () => let clientB = await createTestClient({ schema: v1Schema, + oldSchemas: [v1Schema], ...clientInit, indexedDb: indexedDBB, // logId: 'B', @@ -762,6 +770,7 @@ it('migrates in an online world where old operations still come in', async () => clientA = await createTestClient({ schema: v2Schema, + oldSchemas: [v1Schema, v2Schema], ...clientInit, indexedDb: indexedDbA, // logId: 'A2', @@ -1041,6 +1050,7 @@ it('supports skip migrations in real life', async () => { client = await createTestClient({ schema: v4Schema, + oldSchemas: [v1Schema, v2Schema, v3Schema, v4Schema], ...clientInit, }); diff --git a/test/tests/pruning.test.ts b/test/tests/pruning.test.ts index 228b5a6f..6795aa59 100644 --- a/test/tests/pruning.test.ts +++ b/test/tests/pruning.test.ts @@ -8,8 +8,6 @@ import { } from '@verdant-web/common'; import { ClientWithCollections } from '@verdant-web/store'; import { - waitForCondition, - waitForEntityCondition, waitForEntitySnapshot, waitForPeerCount, waitForQueryResult, @@ -17,6 +15,7 @@ import { const ctx = createTestContext({ // testLog: true, + // serverLog: true, }); it('prunes invalid data in entities with changes from outdated clients', async () => { @@ -57,6 +56,7 @@ it('prunes invalid data in entities with changes from outdated clients', async ( ...clientAInit, schema: v1Schema, oldSchemas: [v1Schema], + // logId: 'A1', })) as any as ClientWithCollections; clientA.sync.start(); @@ -70,6 +70,7 @@ it('prunes invalid data in entities with changes from outdated clients', async ( ...clientBInit, schema: v1Schema, oldSchemas: [v1Schema], + // logId: 'B1', })) as any as ClientWithCollections; const item1 = await clientA.items.put({ @@ -85,6 +86,7 @@ it('prunes invalid data in entities with changes from outdated clients', async ( // reset next sync... TODO: don't require this arbitrary thing. const item2B = await clientB.items.get('1').resolved; item2B.set('contents', 'world...'); + ctx.log('made change on B'); await clientB.close(); diff --git a/test/tests/rebasing.test.ts b/test/tests/rebasing.test.ts index 54417fc5..b71f68ae 100644 --- a/test/tests/rebasing.test.ts +++ b/test/tests/rebasing.test.ts @@ -1,11 +1,12 @@ import { ReplicaType } from '@verdant-web/server'; -import { expect, it } from 'vitest'; +import { expect, it, vi } from 'vitest'; import { ClientDescriptor } from '../client/index.js'; import { createTestContext } from '../lib/createTestContext.js'; import { waitForBaselineCount, waitForEntityCondition, waitForEverythingToRebase, + waitForMockCall, waitForOnline, waitForPeerCount, waitForQueryResult, @@ -15,7 +16,8 @@ import migrations from '../migrations/index.js'; import schema from '../schema.js'; const context = createTestContext({ - // serverLog: true, + serverLog: true, + testLog: true, }); it('an offline client rebases everything', async () => { @@ -60,22 +62,28 @@ it('an offline client rebases everything', async () => { }); it('passive clients do not interfere with rebasing when offline', async () => { + const onClientARebase = vi.fn(); const clientA = await context.createTestClient({ library: 'rebase-passive-1', user: 'User A', // logId: 'A', }); + clientA.subscribe('rebase', onClientARebase); + const onClientBRebase = vi.fn(); const clientB = await context.createTestClient({ library: 'rebase-passive-1', user: 'User B', // logId: 'B', }); + clientB.subscribe('rebase', onClientBRebase); + const onClientCRebase = vi.fn(); const clientC = await context.createTestClient({ library: 'rebase-passive-1', user: 'User C', type: ReplicaType.PassiveRealtime, // logId: 'C', }); + clientC.subscribe('rebase', onClientCRebase); clientA.sync.start(); clientB.sync.start(); @@ -93,12 +101,15 @@ it('passive clients do not interfere with rebasing when offline', async () => { content: 'Oranges', }); - // console.info('🔺 --- Waiting for all realtime changes to rebase ---'); - await waitForBaselineCount(clientA, 4); - await waitForBaselineCount(clientB, 4); - await waitForBaselineCount(clientC, 4); + context.log('🔺 --- Waiting for all realtime changes to rebase ---'); + await waitForMockCall(onClientARebase, 1, 'client a rebase'); + await waitForBaselineCount(clientA, 4, 'client a 4 baselines'); + await waitForMockCall(onClientBRebase, 1, 'client b rebase'); + await waitForBaselineCount(clientB, 4, 'client b 4 baselines'); + await waitForMockCall(onClientCRebase, 1, 'client c rebase'); + await waitForBaselineCount(clientC, 4, 'client c 4 baselines'); - // console.info('🔺 --- Disconnecting passive replica ---'); + context.log('🔺 --- Disconnecting passive replica ---'); clientC.sync.stop(); const oranges = await clientA.items.put({ @@ -109,7 +120,7 @@ it('passive clients do not interfere with rebasing when offline', async () => { content: 'Bananas', }); - // console.info('🔺 --- Waiting for all new changes to rebase ---'); + context.log('🔺 --- Waiting for all new changes to rebase ---'); await waitForBaselineCount(clientA, 10); await waitForBaselineCount(clientB, 10); @@ -124,7 +135,7 @@ it('passive clients do not interfere with rebasing when offline', async () => { ).toBeGreaterThanOrEqual(10); // can client C come back online and sync up to the latest state? - // console.info('🔺 --- Reconnecting passive replica ---'); + context.log('🔺 --- Reconnecting passive replica ---'); clientC.sync.start(); const queryCOranges = clientC.items.get(oranges.get('id')); await waitForQueryResult(queryCOranges); diff --git a/test/tests/reset.test.ts b/test/tests/reset.test.ts index d8ad97bc..a8f2d9d5 100644 --- a/test/tests/reset.test.ts +++ b/test/tests/reset.test.ts @@ -10,10 +10,10 @@ import { startTestServer } from '../lib/testServer.js'; import { createTestClient } from '../lib/testClient.js'; import schema from '../schema.js'; import migrations from '../migrations/index.js'; -import { createDefaultMigration, createMigration } from '@verdant-web/common'; +import { createMigration } from '@verdant-web/common'; const ctx = createTestContext({ - // testLog: true, + testLog: true, }); async function connectAndSeedData(library = 'reset-1') { @@ -290,6 +290,7 @@ it('can re-initialize a replica from data from an old schema', async () => { library, user: 'User A', server, + // logId: 'A', }); clientA.sync.start(); @@ -324,7 +325,6 @@ it('can re-initialize a replica from data from an old schema', async () => { ), ); - clientA.sync.stop(); await clientA.close(); // make a new version without categories. we'll also alter items @@ -363,7 +363,6 @@ it('can re-initialize a replica from data from an old schema', async () => { await waitForOnline(clientB); const b_applesQuery = clientB.items.get(a_apples.get('id')); - b_applesQuery.subscribe('change', () => console.log('b_apples changed')); await waitForQueryResult(b_applesQuery); // the new schema will not necessarily be applied immediately. diff --git a/test/tests/shardTransition.test.ts b/test/tests/shardTransition.test.ts index 9c7aa0de..9564d630 100644 --- a/test/tests/shardTransition.test.ts +++ b/test/tests/shardTransition.test.ts @@ -60,12 +60,44 @@ it('migrates data from unified to sharded databases on launch', async () => { importShardsFrom: unifiedServer.databaseLocation, }); - expect( - shardedServer.server.getLibraryInfo('sharding-a'), - ).toMatchInlineSnapshot(`Promise {}`); - expect( - shardedServer.server.getLibraryInfo('sharding-b'), - ).toMatchInlineSnapshot(`Promise {}`); + expect(await shardedServer.server.getLibraryInfo('sharding-a')).toEqual({ + baselinesCount: 0, + globalAck: expect.any(String), + id: 'sharding-a', + latestServerOrder: 6, + operationsCount: 6, + replicas: [ + { + ackedLogicalTime: expect.any(String), + ackedServerOrder: 0, + id: expect.any(String), + profile: { + id: 'A', + }, + truant: false, + type: 0, + }, + ], + }); + expect(await shardedServer.server.getLibraryInfo('sharding-b')).toEqual({ + baselinesCount: 0, + globalAck: expect.any(String), + id: 'sharding-b', + latestServerOrder: 6, + operationsCount: 6, + replicas: [ + { + ackedLogicalTime: expect.any(String), + ackedServerOrder: 0, + id: expect.any(String), + profile: { + id: 'B', + }, + truant: false, + type: 0, + }, + ], + }); const libAClient2 = await createTestClient({ library: 'sharding-a', diff --git a/test/tests/sync.test.ts b/test/tests/sync.test.ts index 92d1fba8..df1e1baf 100644 --- a/test/tests/sync.test.ts +++ b/test/tests/sync.test.ts @@ -10,6 +10,7 @@ import { const context = createTestContext({ // testLog: true, + // serverLog: true, }); it('can sync multiple clients even if they go offline', async () => { @@ -223,18 +224,25 @@ it('can sync multiple clients even if they go offline', async () => { const b_unknownItemQ = clientB.items.get(a_unknownItem.get('id')); const c_unknownItemQ = clientC.items.get(a_unknownItem.get('id')); await waitForQueryResult(a_unknownItemQ); + log('🔺--- 1 ---'); await waitForEntityCondition( a_unknownItemQ.current!, (item) => item?.get('comments').length === 2, + 3000, + 'a unknown item comment applied', ); + log('🔺--- 2 ---'); await waitForQueryResult(b_unknownItemQ); + log('🔺--- 3 ---'); await waitForEntityCondition( b_unknownItemQ.current!, (item) => item?.get('comments').length === 2, ); + log('🔺--- 4 ---'); await waitForQueryResult(c_unknownItemQ); + log('🔺--- 5 ---'); await waitForEntityCondition( c_unknownItemQ.current!, (item) => item?.get('comments').length === 2, ); -}, 30000); +}, 15000); diff --git a/test/tests/unapplied.test.ts b/test/tests/unapplied.test.ts index 3afd34f1..c0607f44 100644 --- a/test/tests/unapplied.test.ts +++ b/test/tests/unapplied.test.ts @@ -1,18 +1,9 @@ -import { it, expect, beforeAll, afterAll, vitest } from 'vitest'; +import { it, expect, vitest } from 'vitest'; import { createTestContext } from '../lib/createTestContext.js'; -import { - waitForCondition, - waitForMockCall, - waitForQueryResult, -} from '../lib/waits.js'; +import { waitForMockCall, waitForQueryResult } from '../lib/waits.js'; import defaultMigrations from '../migrations/index.js'; import defaultSchema from '../schema.js'; -import { - schema, - collection, - migrate, - createMigration, -} from '@verdant-web/store'; +import { schema, createMigration } from '@verdant-web/store'; const context = createTestContext(); @@ -26,12 +17,14 @@ it('updates docs with unapplied operations after upgrading versions', async () = library: 'unapplied-1', user: 'User A', indexedDb, + // logId: 'A', }); const clientB = await createTestClient({ server, library: 'unapplied-1', user: 'User B', indexedDb, + // logId: 'B', }); const bHasSeenFuture = vitest.fn(); @@ -45,7 +38,12 @@ it('updates docs with unapplied operations after upgrading versions', async () = }); // wait for B to sync - await waitForQueryResult(clientB.items.get(a_apples.get('id'))); + await waitForQueryResult( + clientB.items.get(a_apples.get('id')), + (item) => !!item, + 5000, + "B should see A's item", + ); clientB.items.put({ content: 'Oranges', }); @@ -83,7 +81,7 @@ it('updates docs with unapplied operations after upgrading versions', async () = migrations: [ ...defaultMigrations, // items should automigrate due to the field change - migrate(defaultSchema, v2Schema, async () => {}), + createMigration(defaultSchema, v2Schema), ], schema: v2Schema, indexedDb, diff --git a/test/tests/wip.test.ts b/test/tests/wip.test.ts index 8e451f99..1d24b506 100644 --- a/test/tests/wip.test.ts +++ b/test/tests/wip.test.ts @@ -1,15 +1,21 @@ import { Migration, ReplicaType, - createDefaultMigration, + StorageSchema, createMigration, - migrate, schema, } from '@verdant-web/common'; import { ClientWithCollections, StorageDescriptor } from '@verdant-web/store'; import { expect, it } from 'vitest'; import defaultSchema from '../schema.js'; +const testLog = false; +function log(...args: any[]) { + if (testLog) { + console.log('🔺', ...args); + } +} + async function createTestClient({ schema, migrations, @@ -19,6 +25,7 @@ async function createTestClient({ type = ReplicaType.Realtime, logId, indexedDb, + oldSchemas, }: { schema: any; migrations: Migration[]; @@ -28,6 +35,7 @@ async function createTestClient({ type?: ReplicaType; logId?: string; indexedDb: IDBFactory; + oldSchemas: StorageSchema[]; }): Promise { const desc = new StorageDescriptor({ schema, @@ -45,6 +53,7 @@ async function createTestClient({ ? (...args: any[]) => console.log(`[${logId}]`, ...args) : undefined, indexedDb, + oldSchemas, }); const client = await desc.open(); return client as ClientWithCollections; @@ -57,7 +66,9 @@ it('applies a WIP schema over an old schema and discards it once the new version library: 'wip-1', migrations: [createMigration(defaultSchema)], user: 'a', + // logId: 'A', indexedDb: new IDBFactory(), + oldSchemas: [defaultSchema], }; const client = await createTestClient(baseClientOptions); @@ -75,6 +86,7 @@ it('applies a WIP schema over an old schema and discards it once the new version }); await client.close(); + log('closed client'); // create a WIP schema with some proposed changes. // these changes are destructive. if not discarded correctly @@ -97,9 +109,11 @@ it('applies a WIP schema over an old schema and discards it once the new version wip: true, }); + log('opening wip client'); const wipClient = await createTestClient({ ...baseClientOptions, schema: wipSchema, + oldSchemas: [defaultSchema, wipSchema], migrations: [ createMigration(defaultSchema), createMigration(defaultSchema, wipSchema, async ({ migrate }) => { @@ -126,9 +140,11 @@ it('applies a WIP schema over an old schema and discards it once the new version }); await wipClient.close(); + log('closed wip client'); // what happens when we open v1 again? const client1Again = await createTestClient(baseClientOptions); + log('opened v1 client again'); const item1Again = await client1Again.items.get('1').resolved; expect(item1Again.getSnapshot()).toMatchInlineSnapshot(` @@ -152,6 +168,7 @@ it('applies a WIP schema over an old schema and discards it once the new version `); await client1Again.close(); + log('closed v1 client again'); // now go to a real v2 @@ -175,11 +192,13 @@ it('applies a WIP schema over an old schema and discards it once the new version const client2 = await createTestClient({ ...baseClientOptions, schema: v2Schema, + oldSchemas: [defaultSchema, v2Schema], migrations: [ ...baseClientOptions.migrations, createMigration(defaultSchema, v2Schema, async () => {}), ], }); + log('opened v2 client'); const item2 = await client2.items.get('1').resolved; expect(item2.getSnapshot()).toMatchInlineSnapshot(` @@ -231,6 +250,7 @@ it('can start a WIP schema from no pre-existing client', async () => { indexedDb: new IDBFactory(), schema: wipSchema, migrations: [createMigration(wipSchema)], + oldSchemas: [wipSchema], }); // make some changes @@ -248,6 +268,7 @@ it('can start a WIP schema from no pre-existing client', async () => { user: 'A', indexedDb: new IDBFactory(), schema: defaultSchema, + oldSchemas: [defaultSchema], migrations: [createMigration(defaultSchema)], }); diff --git a/verdant.code-workspace b/verdant.code-workspace index 17912af6..ab760cc2 100644 --- a/verdant.code-workspace +++ b/verdant.code-workspace @@ -43,10 +43,13 @@ { "name": "📝 Scratchpad", "path": "scratchpad" + }, + { + "name": "⚙️ Configs", + "path": "configs" } ], "settings": { - "vitest.rootConfig": "", - "vitest.workspaceConfig": "vitest.workspace.ts" + "vitest.workspaceConfig": "./configs/vitest.workspace.ts" } } diff --git a/vitest.workspace.ts b/vitest.workspace.ts deleted file mode 100644 index 55abc72a..00000000 --- a/vitest.workspace.ts +++ /dev/null @@ -1 +0,0 @@ -export default ['packages/*/vitest.config.ts', 'test'];