From ed8f07f1027ef4b557f59fc823aa67877b8e17ba Mon Sep 17 00:00:00 2001 From: Himself65 Date: Sun, 2 Apr 2023 02:57:50 -0500 Subject: [PATCH] refactor: remove `y-indexeddb` (#1771) --- .../y-indexeddb-npm-9.0.9-6bd9b26461.patch | 13 - package.json | 5 +- packages/workspace/package.json | 1 + packages/workspace/src/local/crud.ts | 7 +- packages/y-indexeddb/package.json | 36 ++ .../y-indexeddb/src/__tests__/index.spec.ts | 148 ++++++ packages/y-indexeddb/src/index.ts | 249 ++++++++++ packages/y-indexeddb/tsconfig.json | 9 + packages/y-indexeddb/tsconfig.node.json | 9 + packages/y-indexeddb/vite.config.ts | 25 + tsconfig.json | 3 +- yarn.lock | 448 +++++++++++++++++- 12 files changed, 918 insertions(+), 35 deletions(-) delete mode 100644 .yarn/patches/y-indexeddb-npm-9.0.9-6bd9b26461.patch create mode 100644 packages/y-indexeddb/package.json create mode 100644 packages/y-indexeddb/src/__tests__/index.spec.ts create mode 100644 packages/y-indexeddb/src/index.ts create mode 100644 packages/y-indexeddb/tsconfig.json create mode 100644 packages/y-indexeddb/tsconfig.node.json create mode 100644 packages/y-indexeddb/vite.config.ts diff --git a/.yarn/patches/y-indexeddb-npm-9.0.9-6bd9b26461.patch b/.yarn/patches/y-indexeddb-npm-9.0.9-6bd9b26461.patch deleted file mode 100644 index 84e10048df..0000000000 --- a/.yarn/patches/y-indexeddb-npm-9.0.9-6bd9b26461.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/y-indexeddb.js b/src/y-indexeddb.js -index 68b7b1b2f71239fbd0c89e50a94931965661d651..186b35323e256808b2535c02d9a4830794a1649d 100644 ---- a/src/y-indexeddb.js -+++ b/src/y-indexeddb.js -@@ -95,7 +95,7 @@ export class IndexeddbPersistence extends Observable { - * @param {any} origin - */ - this._storeUpdate = (update, origin) => { -- if (this.db && origin !== this) { -+ if (this.db && !(origin instanceof IndexeddbPersistence)) { - const [updatesStore] = idb.transact(/** @type {IDBDatabase} */ (this.db), [updatesStoreName]) - idb.addAutoKey(updatesStore, update) - if (++this._dbsize >= PREFERRED_TRIM_SIZE) { diff --git a/package.json b/package.json index 57d5669f0f..e6aa628c92 100644 --- a/package.json +++ b/package.json @@ -75,8 +75,5 @@ "vitest": "^0.29.8", "vitest-fetch-mock": "^0.2.2" }, - "packageManager": "yarn@3.5.0", - "resolutions": { - "y-indexeddb@^9.0.9": "patch:y-indexeddb@npm%3A9.0.9#./.yarn/patches/y-indexeddb-npm-9.0.9-6bd9b26461.patch" - } + "packageManager": "yarn@3.5.0" } diff --git a/packages/workspace/package.json b/packages/workspace/package.json index 30f65ceebb..2d4526ae4a 100644 --- a/packages/workspace/package.json +++ b/packages/workspace/package.json @@ -19,6 +19,7 @@ "@affine/env": "workspace:*", "@blocksuite/blocks": "0.5.0-20230326033652-70ca43c", "@blocksuite/store": "0.5.0-20230326033652-70ca43c", + "@toeverything/y-indexeddb": "workspace:*", "firebase": "^9.19.1", "jotai": "^2.0.3", "js-base64": "^3.7.5", diff --git a/packages/workspace/src/local/crud.ts b/packages/workspace/src/local/crud.ts index eeab0597fb..e07e5c1bb5 100644 --- a/packages/workspace/src/local/crud.ts +++ b/packages/workspace/src/local/crud.ts @@ -1,6 +1,6 @@ import { nanoid, Workspace as BlockSuiteWorkspace } from '@blocksuite/store'; +import { createIndexedDBProvider } from '@toeverything/y-indexeddb'; import { createJSONStorage } from 'jotai/utils'; -import { IndexeddbPersistence } from 'y-indexeddb'; import { z } from 'zod'; import { createLocalProviders } from '../providers'; @@ -47,9 +47,10 @@ export const CRUD: WorkspaceCRUD = { (_: string) => undefined ); BlockSuiteWorkspace.Y.applyUpdateV2(blockSuiteWorkspace.doc, binary); - const persistence = new IndexeddbPersistence(id, blockSuiteWorkspace.doc); + const persistence = createIndexedDBProvider(id, blockSuiteWorkspace.doc); + persistence.connect(); await persistence.whenSynced.then(() => { - persistence.destroy(); + persistence.disconnect(); }); storage.setItem(kStoreKey, [...data, id]); console.log('create', id, storage.getItem(kStoreKey)); diff --git a/packages/y-indexeddb/package.json b/packages/y-indexeddb/package.json new file mode 100644 index 0000000000..556505ab02 --- /dev/null +++ b/packages/y-indexeddb/package.json @@ -0,0 +1,36 @@ +{ + "name": "@toeverything/y-indexeddb", + "type": "module", + "scripts": { + "build": "vite build" + }, + "files": [ + "dist" + ], + "exports": { + ".": "./src/index.ts" + }, + "publishConfig": { + "main": "dist/index.umd.cjs", + "module": "dist/index.js", + "exports": { + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js", + "require": "./dist/index.umd.cjs" + } + } + }, + "dependencies": { + "idb": "^7.1.1" + }, + "devDependencies": { + "@blocksuite/blocks": "0.5.0-20230324040005-14417c2", + "@blocksuite/store": "0.5.0-20230324040005-14417c2", + "vite": "^4.2.1", + "vite-plugin-dts": "^2.1.0" + }, + "peerDependencies": { + "yjs": "^13.5.51" + } +} diff --git a/packages/y-indexeddb/src/__tests__/index.spec.ts b/packages/y-indexeddb/src/__tests__/index.spec.ts new file mode 100644 index 0000000000..91c6f94628 --- /dev/null +++ b/packages/y-indexeddb/src/__tests__/index.spec.ts @@ -0,0 +1,148 @@ +/** + * @vitest-environment happy-dom + */ +import 'fake-indexeddb/auto'; + +import { __unstableSchemas, AffineSchemas } from '@blocksuite/blocks/models'; +import { assertExists, uuidv4, Workspace } from '@blocksuite/store'; +import { openDB } from 'idb'; +import { beforeEach, describe, expect, test, vi } from 'vitest'; + +import type { WorkspacePersist } from '../index'; +import { createIndexedDBProvider, dbVersion, setMergeCount } from '../index'; + +async function getUpdates(id: string): Promise { + const db = await openDB('affine-local', dbVersion); + const store = await db + .transaction('workspace', 'readonly') + .objectStore('workspace'); + const data = (await store.get(id)) as WorkspacePersist | undefined; + assertExists(data, 'data should not be undefined'); + expect(data.id).toBe(id); + return data.updates.map(({ update }) => update); +} + +let id: string; +let workspace: Workspace; + +beforeEach(() => { + id = uuidv4(); + workspace = new Workspace({ + id, + isSSR: true, + }); + workspace.register(AffineSchemas).register(__unstableSchemas); +}); + +describe('indexeddb provider', () => { + test('connect', async () => { + const provider = createIndexedDBProvider(workspace.id, workspace.doc); + provider.connect(); + await provider.whenSynced; + const db = await openDB('affine-local', dbVersion); + { + const store = await db + .transaction('workspace', 'readonly') + .objectStore('workspace'); + const data = await store.get(id); + expect(data).toEqual({ + id, + updates: [], + }); + const page = workspace.createPage('page0'); + const pageBlockId = page.addBlock('affine:page', { title: '' }); + const frameId = page.addBlock('affine:frame', {}, pageBlockId); + page.addBlock('affine:paragraph', {}, frameId); + } + await new Promise(resolve => setTimeout(resolve, 1000)); + { + const store = await db + .transaction('workspace', 'readonly') + .objectStore('workspace'); + const data = (await store.get(id)) as WorkspacePersist | undefined; + assertExists(data); + expect(data.id).toBe(id); + const testWorkspace = new Workspace({ + id: 'test', + }) + .register(AffineSchemas) + .register(__unstableSchemas); + data.updates.forEach(({ update }) => { + Workspace.Y.applyUpdate(testWorkspace.doc, update); + }); + const binary = Workspace.Y.encodeStateAsUpdate(testWorkspace.doc); + expect(binary).toEqual(Workspace.Y.encodeStateAsUpdate(workspace.doc)); + } + + const secondWorkspace = new Workspace({ + id, + }) + .register(AffineSchemas) + .register(__unstableSchemas); + const provider2 = createIndexedDBProvider( + secondWorkspace.id, + secondWorkspace.doc + ); + provider2.connect(); + await provider2.whenSynced; + expect(Workspace.Y.encodeStateAsUpdate(secondWorkspace.doc)).toEqual( + Workspace.Y.encodeStateAsUpdate(workspace.doc) + ); + }); + + test('disconnect suddenly', async () => { + const provider = createIndexedDBProvider(workspace.id, workspace.doc); + const fn = vi.fn(); + provider.connect(); + provider.disconnect(); + expect(fn).toBeCalledTimes(0); + await provider.whenSynced.catch(fn); + expect(fn).toBeCalledTimes(1); + }); + + test('connect and disconnect', async () => { + const provider = createIndexedDBProvider(workspace.id, workspace.doc); + provider.connect(); + const p1 = provider.whenSynced; + await provider.whenSynced; + provider.disconnect(); + { + const page = workspace.createPage('page0'); + const pageBlockId = page.addBlock('affine:page', { title: '' }); + const frameId = page.addBlock('affine:frame', {}, pageBlockId); + page.addBlock('affine:paragraph', {}, frameId); + } + { + const updates = await getUpdates(workspace.id); + expect(updates).toEqual([]); + } + provider.connect(); + const p2 = provider.whenSynced; + await provider.whenSynced; + { + const updates = await getUpdates(workspace.id); + expect(updates).not.toEqual([]); + } + provider.disconnect(); + expect(p1).not.toBe(p2); + }); + + test('merge', async () => { + setMergeCount(5); + const provider = createIndexedDBProvider(workspace.id, workspace.doc); + provider.connect(); + { + const page = workspace.createPage('page0'); + const pageBlockId = page.addBlock('affine:page', { title: '' }); + const frameId = page.addBlock('affine:frame', {}, pageBlockId); + for (let i = 0; i < 100; i++) { + page.addBlock('affine:paragraph', {}, frameId); + } + } + await provider.whenSynced; + { + const updates = await getUpdates(id); + expect(updates.length).lessThanOrEqual(5); + } + }); +}); diff --git a/packages/y-indexeddb/src/index.ts b/packages/y-indexeddb/src/index.ts new file mode 100644 index 0000000000..57bd5fa69d --- /dev/null +++ b/packages/y-indexeddb/src/index.ts @@ -0,0 +1,249 @@ +import { openDB } from 'idb'; +import type { DBSchema, IDBPDatabase } from 'idb/build/entry'; +import { + applyUpdate, + diffUpdate, + Doc, + encodeStateAsUpdate, + mergeUpdates, +} from 'yjs'; + +const indexeddbOrigin = Symbol('indexeddb-provider-origin'); + +let mergeCount = 500; + +export class EarlyDisconnectError extends Error { + constructor() { + super('Early disconnect'); + } +} + +export function setMergeCount(count: number) { + mergeCount = count; +} + +export const dbVersion = 1; + +export function upgradeDB(db: IDBPDatabase) { + db.createObjectStore('workspace', { keyPath: 'id' }); + db.createObjectStore('milestone', { keyPath: 'id' }); +} + +export interface IndexedDBProvider { + connect: () => void; + disconnect: () => void; + cleanup: () => void; + whenSynced: Promise; +} + +export type UpdateMessage = { + timestamp: number; + update: Uint8Array; +}; + +export type WorkspacePersist = { + id: string; + updates: UpdateMessage[]; +}; + +export type WorkspaceMilestone = { + id: string; + milestone: Record; +}; + +export interface BlockSuiteBinaryDB extends DBSchema { + workspace: { + key: string; + value: WorkspacePersist; + }; + milestone: { + key: string; + value: WorkspaceMilestone; + }; +} + +export interface OldYjsDB extends DBSchema { + updates: { + key: number; + value: Uint8Array; + }; +} + +export const createIndexedDBProvider = ( + id: string, + doc: Doc, + dbName = 'affine-local' +): IndexedDBProvider => { + let allDb: IDBDatabaseInfo[]; + let resolve: () => void; + let reject: (reason?: unknown) => void; + let early = true; + let connect = false; + let destroy = false; + + async function handleUpdate(update: Uint8Array, origin: unknown) { + const db = await dbPromise; + if (!connect) { + return; + } + if (origin === indexeddbOrigin) { + return; + } + const store = db + .transaction('workspace', 'readwrite') + .objectStore('workspace'); + let data = await store.get(id); + if (!data) { + data = { + id, + updates: [], + }; + } + data.updates.push({ + timestamp: Date.now(), + update, + }); + if (data.updates.length > mergeCount) { + const updates = data.updates.map(({ update }) => update); + const doc = new Doc(); + doc.transact(() => { + updates.forEach(update => { + applyUpdate(doc, update, indexeddbOrigin); + }); + }, indexeddbOrigin); + + const update = encodeStateAsUpdate(doc); + data = { + id, + updates: [ + { + timestamp: Date.now(), + update, + }, + ], + }; + await store.put(data); + } else { + await store.put(data); + } + } + + const dbPromise = openDB(dbName, dbVersion, { + upgrade: upgradeDB, + }); + const handleDestroy = async () => { + connect = true; + destroy = true; + const db = await dbPromise; + db.close(); + }; + const apis = { + connect: async () => { + apis.whenSynced = new Promise((_resolve, _reject) => { + early = true; + resolve = _resolve; + reject = _reject; + }); + connect = true; + doc.on('update', handleUpdate); + doc.on('destroy', handleDestroy); + // only run promise below, otherwise the logic is incorrect + const db = await dbPromise; + if (!allDb) { + allDb = await indexedDB.databases(); + // run the migration + await Promise.all( + allDb.map(meta => { + if (meta.name && meta.version === 1) { + const name = meta.name; + const version = meta.version; + return openDB>(name, version).then( + async oldDB => { + if (!oldDB.objectStoreNames.contains('updates')) { + return; + } + const t = oldDB + .transaction('updates', 'readonly') + .objectStore('updates'); + const updates = await t.getAll(); + if ( + !Array.isArray(updates) || + !updates.every(update => update instanceof Uint8Array) + ) { + return; + } + const update = mergeUpdates(updates); + const workspaceTransaction = db + .transaction('workspace', 'readwrite') + .objectStore('workspace'); + const data = await workspaceTransaction.get(name); + if (!data) { + console.log('upgrading the database'); + await workspaceTransaction.put({ + id: name, + updates: [ + { + timestamp: Date.now(), + update, + }, + ], + }); + } + } + ); + } + }) + ); + } + const store = db + .transaction('workspace', 'readwrite') + .objectStore('workspace'); + const data = await store.get(id); + if (!connect) { + return; + } + if (!data) { + await db.put('workspace', { + id, + updates: [], + }); + } else { + const updates = data.updates.map(({ update }) => update); + const update = mergeUpdates(updates); + const newUpdate = diffUpdate(encodeStateAsUpdate(doc), update); + await store.put({ + ...data, + updates: [ + ...data.updates, + { + timestamp: Date.now(), + update: newUpdate, + }, + ], + }); + doc.transact(() => { + updates.forEach(update => { + applyUpdate(doc, update); + }); + }, indexeddbOrigin); + } + early = false; + resolve(); + }, + disconnect() { + connect = false; + if (early) { + reject(new EarlyDisconnectError()); + } + doc.off('update', handleUpdate); + doc.off('destroy', handleDestroy); + }, + cleanup() { + destroy = true; + // todo + }, + whenSynced: Promise.resolve(), + }; + + return apis; +}; diff --git a/packages/y-indexeddb/tsconfig.json b/packages/y-indexeddb/tsconfig.json new file mode 100644 index 0000000000..49909da109 --- /dev/null +++ b/packages/y-indexeddb/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src"], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/packages/y-indexeddb/tsconfig.node.json b/packages/y-indexeddb/tsconfig.node.json new file mode 100644 index 0000000000..9d31e2aed9 --- /dev/null +++ b/packages/y-indexeddb/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/y-indexeddb/vite.config.ts b/packages/y-indexeddb/vite.config.ts new file mode 100644 index 0000000000..4e7a869636 --- /dev/null +++ b/packages/y-indexeddb/vite.config.ts @@ -0,0 +1,25 @@ +import { resolve } from 'node:path'; + +import { fileURLToPath } from 'url'; +import { defineConfig } from 'vite'; +import dts from 'vite-plugin-dts'; + +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +export default defineConfig({ + build: { + terserOptions: { + ecma: 2020, + }, + sourcemap: true, + lib: { + entry: resolve(__dirname, 'src/index.ts'), + fileName: 'index', + name: 'BlockSuiteIndexedDBProvider', + }, + rollupOptions: { + external: ['idb', '@blocksuite/store'], + }, + }, + plugins: [dts()], +}); diff --git a/tsconfig.json b/tsconfig.json index de7be6d136..5db15a0343 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -27,7 +27,8 @@ "@affine/env/*": ["./packages/env/src/*"], "@affine/utils": ["./packages/utils"], "@affine/workspace/*": ["./packages/workspace/src/*"], - "@affine-test/fixtures/*": ["./tests/fixtures/*"] + "@affine-test/fixtures/*": ["./tests/fixtures/*"], + "@toeverything/y-indexeddb": ["./packages/y-indexeddb/src"] } }, "references": [ diff --git a/yarn.lock b/yarn.lock index bd51230c57..67cbfbf213 100644 --- a/yarn.lock +++ b/yarn.lock @@ -245,6 +245,7 @@ __metadata: "@affine/env": "workspace:*" "@blocksuite/blocks": 0.5.0-20230326033652-70ca43c "@blocksuite/store": 0.5.0-20230326033652-70ca43c + "@toeverything/y-indexeddb": "workspace:*" "@types/ws": ^8.5.4 firebase: ^9.19.1 jotai: ^2.0.3 @@ -608,7 +609,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:~7.21.2": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4, @babel/parser@npm:~7.21.2": version: 7.21.4 resolution: "@babel/parser@npm:7.21.4" bin: @@ -1852,6 +1853,26 @@ __metadata: languageName: node linkType: hard +"@blocksuite/blocks@npm:0.5.0-20230324040005-14417c2": + version: 0.5.0-20230324040005-14417c2 + resolution: "@blocksuite/blocks@npm:0.5.0-20230324040005-14417c2" + dependencies: + "@blocksuite/global": 0.5.0-20230324040005-14417c2 + "@blocksuite/phasor": 0.5.0-20230324040005-14417c2 + "@blocksuite/virgo": 0.5.0-20230324040005-14417c2 + "@popperjs/core": ^2.11.6 + hotkeys-js: ^3.10.1 + lit: ^2.6.1 + marked: ^4.2.12 + shiki: ^0.14.1 + turndown: ^7.1.1 + zod: ^3.21.4 + peerDependencies: + "@blocksuite/store": 0.5.0-20230324040005-14417c2 + checksum: f339b15fd060f9756420c5a47390b746610503486aedd62d6850d4626e6757b9a4e34e07a6f7738e96beb0381d086cf12f434b4aca44f89b02aa24db5e220bcc + languageName: node + linkType: hard + "@blocksuite/blocks@npm:0.5.0-20230326033652-70ca43c": version: 0.5.0-20230326033652-70ca43c resolution: "@blocksuite/blocks@npm:0.5.0-20230326033652-70ca43c" @@ -1887,6 +1908,21 @@ __metadata: languageName: node linkType: hard +"@blocksuite/global@npm:0.5.0-20230324040005-14417c2": + version: 0.5.0-20230324040005-14417c2 + resolution: "@blocksuite/global@npm:0.5.0-20230324040005-14417c2" + dependencies: + ansi-colors: ^4.1.3 + zod: ^3.21.4 + peerDependencies: + lit: ^2.6 + peerDependenciesMeta: + lit: + optional: true + checksum: 9fab3db0843d5040739a0dade33beccb272e51202801619ea6e218c87d983163652cf1233dad57de88f57d41919ddb363922ac9cf15bb14a625227e3f886122b + languageName: node + linkType: hard + "@blocksuite/global@npm:0.5.0-20230326033652-70ca43c": version: 0.5.0-20230326033652-70ca43c resolution: "@blocksuite/global@npm:0.5.0-20230326033652-70ca43c" @@ -1912,6 +1948,20 @@ __metadata: languageName: node linkType: hard +"@blocksuite/phasor@npm:0.5.0-20230324040005-14417c2": + version: 0.5.0-20230324040005-14417c2 + resolution: "@blocksuite/phasor@npm:0.5.0-20230324040005-14417c2" + dependencies: + "@blocksuite/global": 0.5.0-20230324040005-14417c2 + fractional-indexing: ^3.2.0 + perfect-freehand: ^1.2.0 + peerDependencies: + nanoid: ^4 + yjs: ^13 + checksum: 464e62c9da3f63f22a4d426964c1a522f46c8b4f3fe552256c6a0a06517e0bf8a34c14548e54f94fc5f72b40d9d47ae0ba1cbeeacc24d924cdad5be15caec711 + languageName: node + linkType: hard + "@blocksuite/phasor@npm:0.5.0-20230326033652-70ca43c": version: 0.5.0-20230326033652-70ca43c resolution: "@blocksuite/phasor@npm:0.5.0-20230326033652-70ca43c" @@ -1926,6 +1976,29 @@ __metadata: languageName: node linkType: hard +"@blocksuite/store@npm:0.5.0-20230324040005-14417c2": + version: 0.5.0-20230324040005-14417c2 + resolution: "@blocksuite/store@npm:0.5.0-20230324040005-14417c2" + dependencies: + "@blocksuite/global": 0.5.0-20230324040005-14417c2 + "@blocksuite/virgo": 0.5.0-20230324040005-14417c2 + "@types/flexsearch": ^0.7.3 + buffer: ^6.0.3 + flexsearch: 0.7.21 + idb-keyval: ^6.2.0 + ky: ^0.33.3 + lib0: ^0.2.68 + merge: ^2.1.1 + nanoid: ^4.0.1 + y-protocols: ^1.0.5 + y-webrtc: ^10.2.5 + zod: ^3.21.4 + peerDependencies: + yjs: ^13 + checksum: 8c483db2df8b5a3528c538191d3ba26793bc85c529d9911a29f29748af29a93d7c6cd6494e9a23869bbb4414b6f3dd041abcc0c5298a46da103c3e46b8419bfa + languageName: node + linkType: hard + "@blocksuite/store@npm:0.5.0-20230326033652-70ca43c": version: 0.5.0-20230326033652-70ca43c resolution: "@blocksuite/store@npm:0.5.0-20230326033652-70ca43c" @@ -1949,6 +2022,19 @@ __metadata: languageName: node linkType: hard +"@blocksuite/virgo@npm:0.5.0-20230324040005-14417c2": + version: 0.5.0-20230324040005-14417c2 + resolution: "@blocksuite/virgo@npm:0.5.0-20230324040005-14417c2" + dependencies: + "@blocksuite/global": 0.5.0-20230324040005-14417c2 + zod: ^3.21.4 + peerDependencies: + lit: ^2 + yjs: ^13 + checksum: 318abaa9c44feeb0d9be98317ccf7aac3c5d884d31325799d23aae072b11b0e4dfbd51b0a52056f6c0b87f5bc822eaabdb38c3936b3597040f3a9de9c36a76c7 + languageName: node + linkType: hard + "@blocksuite/virgo@npm:0.5.0-20230326033652-70ca43c": version: 0.5.0-20230326033652-70ca43c resolution: "@blocksuite/virgo@npm:0.5.0-20230326033652-70ca43c" @@ -3475,6 +3561,58 @@ __metadata: languageName: node linkType: hard +"@microsoft/api-extractor-model@npm:7.26.4": + version: 7.26.4 + resolution: "@microsoft/api-extractor-model@npm:7.26.4" + dependencies: + "@microsoft/tsdoc": 0.14.2 + "@microsoft/tsdoc-config": ~0.16.1 + "@rushstack/node-core-library": 3.55.2 + checksum: 0b27f9b248396422f3044f2472d86c111a6a4d34b4fd2c67d9995e96e5b144ec41ac35dbf2a005f144766814b824518bc42b424d93e3075d3dc1b17c2f8791d6 + languageName: node + linkType: hard + +"@microsoft/api-extractor@npm:^7.33.5": + version: 7.34.4 + resolution: "@microsoft/api-extractor@npm:7.34.4" + dependencies: + "@microsoft/api-extractor-model": 7.26.4 + "@microsoft/tsdoc": 0.14.2 + "@microsoft/tsdoc-config": ~0.16.1 + "@rushstack/node-core-library": 3.55.2 + "@rushstack/rig-package": 0.3.18 + "@rushstack/ts-command-line": 4.13.2 + colors: ~1.2.1 + lodash: ~4.17.15 + resolve: ~1.22.1 + semver: ~7.3.0 + source-map: ~0.6.1 + typescript: ~4.8.4 + bin: + api-extractor: bin/api-extractor + checksum: 855a04237e30f425553aab661b77bc0cbeb493510d769691d713e5bfdf02439fa7bc2076750271d154237f8c9d4451b209f30724c9ee2a2c4ea307c5db093d42 + languageName: node + linkType: hard + +"@microsoft/tsdoc-config@npm:~0.16.1": + version: 0.16.2 + resolution: "@microsoft/tsdoc-config@npm:0.16.2" + dependencies: + "@microsoft/tsdoc": 0.14.2 + ajv: ~6.12.6 + jju: ~1.4.0 + resolve: ~1.19.0 + checksum: 12b0d703154076bcaac75ca42e804e4fc292672396441e54346d7eadd0d6b57f90980eda2b1bab89b224af86da34a2389f9054002e282011e795ca5919a4386f + languageName: node + linkType: hard + +"@microsoft/tsdoc@npm:0.14.2": + version: 0.14.2 + resolution: "@microsoft/tsdoc@npm:0.14.2" + checksum: b167c89e916ba73ee20b9c9d5dba6aa3a0de25ed3d50050e8a344dca7cd43cb2e1059bd515c820369b6e708901dd3fda476a42bc643ca74a35671ce77f724a3a + languageName: node + linkType: hard + "@mswjs/cookies@npm:^0.2.2": version: 0.2.2 resolution: "@mswjs/cookies@npm:0.2.2" @@ -4337,7 +4475,7 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.0.1": +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2": version: 5.0.2 resolution: "@rollup/pluginutils@npm:5.0.2" dependencies: @@ -4360,6 +4498,48 @@ __metadata: languageName: node linkType: hard +"@rushstack/node-core-library@npm:3.55.2, @rushstack/node-core-library@npm:^3.53.2": + version: 3.55.2 + resolution: "@rushstack/node-core-library@npm:3.55.2" + dependencies: + colors: ~1.2.1 + fs-extra: ~7.0.1 + import-lazy: ~4.0.0 + jju: ~1.4.0 + resolve: ~1.22.1 + semver: ~7.3.0 + z-schema: ~5.0.2 + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: b6b289315cd6a3544471f534405479b7c80f3906b7506590d5eb83a605a0a5b65861bf678f3e6c2277c8db116b8e05f8e7b6864fdc75e0f1514c9ff224b83fe6 + languageName: node + linkType: hard + +"@rushstack/rig-package@npm:0.3.18": + version: 0.3.18 + resolution: "@rushstack/rig-package@npm:0.3.18" + dependencies: + resolve: ~1.22.1 + strip-json-comments: ~3.1.1 + checksum: 41e719fb14d99e0f79093523fede051dba2be5f53d63d5ae45c2ea1b8448e298e0303d8453be3f9ac5e8bb99e3dcf3ddbe4cc59d9be5eddb914286acbdd0a2f3 + languageName: node + linkType: hard + +"@rushstack/ts-command-line@npm:4.13.2": + version: 4.13.2 + resolution: "@rushstack/ts-command-line@npm:4.13.2" + dependencies: + "@types/argparse": 1.0.38 + argparse: ~1.0.9 + colors: ~1.2.1 + string-argv: ~0.3.1 + checksum: 3938e533e08d5cf4007a651d1aab658a7a60d6136a56414e2370b64434657a5d5a9eff442da4ddc260d5e6dc90f82428de64dbcfa1285e9ae176629f7fcd821d + languageName: node + linkType: hard + "@sentry-internal/tracing@npm:7.46.0": version: 7.46.0 resolution: "@sentry-internal/tracing@npm:7.46.0" @@ -5968,6 +6148,20 @@ __metadata: languageName: node linkType: hard +"@toeverything/y-indexeddb@workspace:*, @toeverything/y-indexeddb@workspace:packages/y-indexeddb": + version: 0.0.0-use.local + resolution: "@toeverything/y-indexeddb@workspace:packages/y-indexeddb" + dependencies: + "@blocksuite/blocks": 0.5.0-20230324040005-14417c2 + "@blocksuite/store": 0.5.0-20230324040005-14417c2 + idb: ^7.1.1 + vite: ^4.2.1 + vite-plugin-dts: ^2.1.0 + peerDependencies: + yjs: ^13.5.51 + languageName: unknown + linkType: soft + "@tootallnate/once@npm:2": version: 2.0.0 resolution: "@tootallnate/once@npm:2.0.0" @@ -5975,6 +6169,18 @@ __metadata: languageName: node linkType: hard +"@ts-morph/common@npm:~0.18.0": + version: 0.18.1 + resolution: "@ts-morph/common@npm:0.18.1" + dependencies: + fast-glob: ^3.2.12 + minimatch: ^5.1.0 + mkdirp: ^1.0.4 + path-browserify: ^1.0.1 + checksum: 848fff5f7a6428d7c2f055de20cf8df864a967aac0cc03adc558d853442085a8fd9dec70429da24d67d263794b315edb0791c46d23ad9ae513251a7702df8031 + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -6003,6 +6209,13 @@ __metadata: languageName: node linkType: hard +"@types/argparse@npm:1.0.38": + version: 1.0.38 + resolution: "@types/argparse@npm:1.0.38" + checksum: 26ed7e3f1e3595efdb883a852f5205f971b798e4c28b7e30a32c5298eee596e8b45834ce831f014d250b9730819ab05acff5b31229666d3af4ba465b4697d0eb + languageName: node + linkType: hard + "@types/aria-query@npm:^5.0.1": version: 5.0.1 resolution: "@types/aria-query@npm:5.0.1" @@ -7210,7 +7423,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:~6.12.6": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -7409,7 +7622,7 @@ __metadata: languageName: node linkType: hard -"argparse@npm:^1.0.7": +"argparse@npm:^1.0.7, argparse@npm:~1.0.9": version: 1.0.10 resolution: "argparse@npm:1.0.10" dependencies: @@ -8546,6 +8759,13 @@ __metadata: languageName: node linkType: hard +"code-block-writer@npm:^11.0.3": + version: 11.0.3 + resolution: "code-block-writer@npm:11.0.3" + checksum: f0a2605f19963d7087267c9b0fd0b05a6638a50e7b29b70f97aa01a514f59475b0626f8aa092188df853ee6d96745426dfa132d6a677795df462c6ce32c21639 + languageName: node + linkType: hard + "collect-v8-coverage@npm:^1.0.0": version: 1.0.1 resolution: "collect-v8-coverage@npm:1.0.1" @@ -8601,6 +8821,13 @@ __metadata: languageName: node linkType: hard +"colors@npm:~1.2.1": + version: 1.2.5 + resolution: "colors@npm:1.2.5" + checksum: b6e23de735f68b72d5cdf6fd854ca43d1b66d82dcf54bda0b788083b910164a040f2c4edf23c670d36a7a2d8f1b7d6e62e3292703e4642691e6ccaa1c62d8f74 + languageName: node + linkType: hard + "combined-stream@npm:^1.0.8": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" @@ -8652,7 +8879,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^9.0.0": +"commander@npm:^9.0.0, commander@npm:^9.4.1": version: 9.5.0 resolution: "commander@npm:9.5.0" checksum: c7a3e27aa59e913b54a1bafd366b88650bc41d6651f0cbe258d4ff09d43d6a7394232a4dadd0bf518b3e696fdf595db1028a0d82c785b88bd61f8a440cecfade @@ -10919,6 +11146,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:^10.1.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + languageName: node + linkType: hard + "fs-extra@npm:^11.1.0": version: 11.1.1 resolution: "fs-extra@npm:11.1.1" @@ -10930,6 +11168,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:~7.0.1": + version: 7.0.1 + resolution: "fs-extra@npm:7.0.1" + dependencies: + graceful-fs: ^4.1.2 + jsonfile: ^4.0.0 + universalify: ^0.1.0 + checksum: 141b9dccb23b66a66cefdd81f4cda959ff89282b1d721b98cea19ba08db3dcbe6f862f28841f3cf24bb299e0b7e6c42303908f65093cb7e201708e86ea5a8dcf + languageName: node + linkType: hard + "fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" @@ -11776,6 +12025,13 @@ __metadata: languageName: node linkType: hard +"idb@npm:^7.1.1": + version: 7.1.1 + resolution: "idb@npm:7.1.1" + checksum: 1973c28d53c784b177bdef9f527ec89ec239ec7cf5fcbd987dae75a16c03f5b7dfcc8c6d3285716fd0309dd57739805390bd9f98ce23b1b7d8849a3b52de8d56 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -11814,6 +12070,13 @@ __metadata: languageName: node linkType: hard +"import-lazy@npm:~4.0.0": + version: 4.0.0 + resolution: "import-lazy@npm:4.0.0" + checksum: 22f5e51702134aef78890156738454f620e5fe7044b204ebc057c614888a1dd6fdf2ede0fdcca44d5c173fd64f65c985f19a51775b06967ef58cc3d26898df07 + languageName: node + linkType: hard + "import-local@npm:^3.0.2": version: 3.1.0 resolution: "import-local@npm:3.1.0" @@ -12005,7 +12268,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.1.0, is-core-module@npm:^2.11.0, is-core-module@npm:^2.9.0": version: 2.11.0 resolution: "is-core-module@npm:2.11.0" dependencies: @@ -13187,6 +13450,13 @@ __metadata: languageName: node linkType: hard +"jju@npm:~1.4.0": + version: 1.4.0 + resolution: "jju@npm:1.4.0" + checksum: 3790481bd2b7827dd6336e6e3dc2dcc6d425679ba7ebde7b679f61dceb4457ea0cda330972494de608571f4973c6dfb5f70fab6f3c5037dbab19ac449a60424f + languageName: node + linkType: hard + "joi@npm:^17.3.0": version: 17.9.1 resolution: "joi@npm:17.9.1" @@ -13398,6 +13668,18 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^4.0.0": + version: 4.0.0 + resolution: "jsonfile@npm:4.0.0" + dependencies: + graceful-fs: ^4.1.6 + dependenciesMeta: + graceful-fs: + optional: true + checksum: 6447d6224f0d31623eef9b51185af03ac328a7553efcee30fa423d98a9e276ca08db87d71e17f2310b0263fd3ffa6c2a90a6308367f661dc21580f9469897c9e + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -13444,6 +13726,13 @@ __metadata: languageName: node linkType: hard +"kolorist@npm:^1.6.0": + version: 1.7.0 + resolution: "kolorist@npm:1.7.0" + checksum: 0eb64d22a204be11ddd7d2017525bf2603de38b15c571f79d6f0c5f1c869b8adfd40c3aa71c12e0cfe5496c25b2bbe891267cbc11f5b3fbc858d74ae79bac293 + languageName: node + linkType: hard + "ky@npm:^0.33.3": version: 0.33.3 resolution: "ky@npm:0.33.3" @@ -13698,6 +13987,20 @@ __metadata: languageName: node linkType: hard +"lodash.get@npm:^4.4.2": + version: 4.4.2 + resolution: "lodash.get@npm:4.4.2" + checksum: e403047ddb03181c9d0e92df9556570e2b67e0f0a930fcbbbd779370972368f5568e914f913e93f3b08f6d492abc71e14d4e9b7a18916c31fa04bd2306efe545 + languageName: node + linkType: hard + +"lodash.isequal@npm:^4.5.0": + version: 4.5.0 + resolution: "lodash.isequal@npm:4.5.0" + checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644 + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -13712,7 +14015,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0": +"lodash@npm:^4.17.15, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.7.0, lodash@npm:~4.17.15": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -13857,6 +14160,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.29.0": + version: 0.29.0 + resolution: "magic-string@npm:0.29.0" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.13 + checksum: 19e5398fcfc44804917127c72ad622c68a19a0a10cbdb8d4f9f9417584a087fe9e117140bfb2463d86743cf1ed9cf4182ae0b0ad1a7536f7fdda257ee4449ffb + languageName: node + linkType: hard + "make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -14144,7 +14456,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.0.1": +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": version: 5.1.6 resolution: "minimatch@npm:5.1.6" dependencies: @@ -15145,6 +15457,13 @@ __metadata: languageName: node linkType: hard +"path-browserify@npm:^1.0.1": + version: 1.0.1 + resolution: "path-browserify@npm:1.0.1" + checksum: c6d7fa376423fe35b95b2d67990060c3ee304fc815ff0a2dc1c6c3cfaff2bd0d572ee67e18f19d0ea3bbe32e8add2a05021132ac40509416459fffee35200699 + languageName: node + linkType: hard + "path-exists@npm:^3.0.0": version: 3.0.0 resolution: "path-exists@npm:3.0.0" @@ -15187,7 +15506,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -16353,7 +16672,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1": +"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:~1.22.1": version: 1.22.1 resolution: "resolve@npm:1.22.1" dependencies: @@ -16379,7 +16698,17 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": +"resolve@npm:~1.19.0": + version: 1.19.0 + resolution: "resolve@npm:1.19.0" + dependencies: + is-core-module: ^2.1.0 + path-parse: ^1.0.6 + checksum: a05b356e47b85ad3613d9e2a39a824f3c27f4fcad9c9ff6c7cc71a2e314c5904a90ab37481ad0069d03cab9eaaac6eb68aca1bc3355fdb05f1045cd50e2aacea + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@~1.22.1#~builtin": version: 1.22.1 resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=c3c19d" dependencies: @@ -16405,6 +16734,16 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@~1.19.0#~builtin": + version: 1.19.0 + resolution: "resolve@patch:resolve@npm%3A1.19.0#~builtin::version=1.19.0&hash=c3c19d" + dependencies: + is-core-module: ^2.1.0 + path-parse: ^1.0.6 + checksum: 2443b94d347e6946c87c85faf13071f605e609e0b54784829b0ed2b917d050bfc1cbaf4ecc6453f224cfa7d0c5dcd97cbb273454cd210bee68e4af15c1a5abc9 + languageName: node + linkType: hard + "responselike@npm:^3.0.0": version: 3.0.0 resolution: "responselike@npm:3.0.0" @@ -16635,7 +16974,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8": +"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8, semver@npm:~7.3.0": version: 7.3.8 resolution: "semver@npm:7.3.8" dependencies: @@ -17247,7 +17586,7 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:^0.3.1": +"string-argv@npm:^0.3.1, string-argv@npm:~0.3.1": version: 0.3.1 resolution: "string-argv@npm:0.3.1" checksum: efbd0289b599bee808ce80820dfe49c9635610715429c6b7cc50750f0437e3c2f697c81e5c390208c13b5d5d12d904a1546172a88579f6ee5cbaaaa4dc9ec5cf @@ -17425,7 +17764,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1, strip-json-comments@npm:~3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -17898,6 +18237,16 @@ __metadata: languageName: node linkType: hard +"ts-morph@npm:17.0.1": + version: 17.0.1 + resolution: "ts-morph@npm:17.0.1" + dependencies: + "@ts-morph/common": ~0.18.0 + code-block-writer: ^11.0.3 + checksum: 4748ab45d0fb0be235f69399ea217cf1c5984ad2ef3ff9eba5a417571f73098c6f1f765fc011eaadc48179471b977f1e44f72eb993932e5c74c5031ab6c60f3a + languageName: node + linkType: hard + "ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" @@ -18131,6 +18480,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:~4.8.4": + version: 4.8.4 + resolution: "typescript@npm:4.8.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 3e4f061658e0c8f36c820802fa809e0fd812b85687a9a2f5430bc3d0368e37d1c9605c3ce9b39df9a05af2ece67b1d844f9f6ea8ff42819f13bcb80f85629af0 + languageName: node + linkType: hard + "typescript@patch:typescript@^5.0.3#~builtin": version: 5.0.3 resolution: "typescript@patch:typescript@npm%3A5.0.3#~builtin::version=5.0.3&hash=85af82" @@ -18141,6 +18500,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@~4.8.4#~builtin": + version: 4.8.4 + resolution: "typescript@patch:typescript@npm%3A4.8.4#~builtin::version=4.8.4&hash=1a91c8" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: c981e82b77a5acdcc4e69af9c56cdecf5b934a87a08e7b52120596701e389a878b8e3f860e73ffb287bf649cc47a8c741262ce058148f71de4cdd88bb9c75153 + languageName: node + linkType: hard + "typeson-registry@npm:^1.0.0-alpha.20": version: 1.0.0-alpha.39 resolution: "typeson-registry@npm:1.0.0-alpha.39" @@ -18298,6 +18667,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^0.1.0": + version: 0.1.2 + resolution: "universalify@npm:0.1.2" + checksum: 40cdc60f6e61070fe658ca36016a8f4ec216b29bf04a55dce14e3710cc84c7448538ef4dad3728d0bfe29975ccd7bfb5f414c45e7b78883567fb31b246f02dff + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" @@ -18496,6 +18872,13 @@ __metadata: languageName: node linkType: hard +"validator@npm:^13.7.0": + version: 13.9.0 + resolution: "validator@npm:13.9.0" + checksum: e2c936f041f61faa42bafd17c6faddf939498666cd82e88d733621c286893730b008959f4cb12ab3e236148a4f3805c30b85e3dcf5e0efd8b0cbcd36c02bfc0c + languageName: node + linkType: hard + "vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" @@ -18519,6 +18902,26 @@ __metadata: languageName: node linkType: hard +"vite-plugin-dts@npm:^2.1.0": + version: 2.1.0 + resolution: "vite-plugin-dts@npm:2.1.0" + dependencies: + "@babel/parser": ^7.20.15 + "@microsoft/api-extractor": ^7.33.5 + "@rollup/pluginutils": ^5.0.2 + "@rushstack/node-core-library": ^3.53.2 + debug: ^4.3.4 + fast-glob: ^3.2.12 + fs-extra: ^10.1.0 + kolorist: ^1.6.0 + magic-string: ^0.29.0 + ts-morph: 17.0.1 + peerDependencies: + vite: ">=2.9.0" + checksum: 6c51b6de986e622a8ec271b68dcbfac55ab0ba65ca3b74e19e3088ff931913e5bb5c6d15e77525ca0bc11a6c87497f4529132cd0ad6c5970e8794f809cfa9cb8 + languageName: node + linkType: hard + "vite-plugin-istanbul@npm:^4.0.1": version: 4.0.1 resolution: "vite-plugin-istanbul@npm:4.0.1" @@ -19341,6 +19744,23 @@ __metadata: languageName: node linkType: hard +"z-schema@npm:~5.0.2": + version: 5.0.5 + resolution: "z-schema@npm:5.0.5" + dependencies: + commander: ^9.4.1 + lodash.get: ^4.4.2 + lodash.isequal: ^4.5.0 + validator: ^13.7.0 + dependenciesMeta: + commander: + optional: true + bin: + z-schema: bin/z-schema + checksum: 8a1d66817ae4384dc3f63311f0cccaadd95cc9640eaade5fd3fbf91aa80d6bb82fb95d9b9171fa82ac371a0155b32b7f5f77bbe84dabaca611b66f74c628f0b8 + languageName: node + linkType: hard + "zod@npm:^3.21.4": version: 3.21.4 resolution: "zod@npm:3.21.4"