From 47160ef2c9ea4d362e58f217b56155c8873aec2c Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:34:16 -0600 Subject: [PATCH 1/9] refactor: add package `y-idb` --- package.json | 6 + packages/core/package.json | 2 +- packages/core/src/store/index.ts | 2 +- packages/y-idb/package.json | 41 ++ packages/y-idb/src/browser.ts | 111 +++ packages/y-idb/src/shared/lazy-provider.ts | 329 +++++++++ packages/y-idb/src/shared/type.ts | 56 ++ packages/y-idb/src/shared/utils.ts | 6 + packages/y-idb/tsconfig.json | 11 + pnpm-lock.yaml | 743 +++++++++++++++++++-- tsconfig.json | 2 + 11 files changed, 1233 insertions(+), 76 deletions(-) create mode 100644 packages/y-idb/package.json create mode 100644 packages/y-idb/src/browser.ts create mode 100644 packages/y-idb/src/shared/lazy-provider.ts create mode 100644 packages/y-idb/src/shared/type.ts create mode 100644 packages/y-idb/src/shared/utils.ts create mode 100644 packages/y-idb/tsconfig.json diff --git a/package.json b/package.json index 81ad544..fde5582 100644 --- a/package.json +++ b/package.json @@ -20,5 +20,11 @@ "eslint-plugin-react-refresh": "^0.4.4", "nyc": "^15.1.0", "typescript": "^5.3.2" + }, + "overrides": { + "react-refresh": "~0.14.0" + }, + "resolutions": { + "react-refresh": "~0.14.0" } } diff --git a/packages/core/package.json b/packages/core/package.json index 01cf53f..42e434f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -39,7 +39,6 @@ "@blocksuite/lit": "0.0.0-20231101080734-aa27dc89-nightly", "@blocksuite/store": "0.0.0-20231101080734-aa27dc89-nightly", "@toeverything/theme": "0.7.24", - "@toeverything/y-indexeddb": "0.10.0-canary.9", "foxact": "^0.2.26", "idb": "^7.1.1", "jotai": "^2.5.1", @@ -49,6 +48,7 @@ "react": "18.3.0-canary-8039e6d0b-20231026", "react-dom": "18.3.0-canary-8039e6d0b-20231026", "uuid": "^9.0.1", + "y-idb": "workspace:*", "y-utility": "^0.1.3", "y-utils": "workspace:*", "yjs": "^13.6.10" diff --git a/packages/core/src/store/index.ts b/packages/core/src/store/index.ts index e7678c2..a199d8e 100644 --- a/packages/core/src/store/index.ts +++ b/packages/core/src/store/index.ts @@ -215,7 +215,7 @@ export class WorkspaceManager { const { createIndexedDBProvider, downloadBinary - } = await import('@toeverything/y-indexeddb') + } = await import('y-idb/browser') this.#preloads.push(async (workspace) => { const binary = await downloadBinary(workspace.doc.guid, 'refine-indexeddb') diff --git a/packages/y-idb/package.json b/packages/y-idb/package.json new file mode 100644 index 0000000..5c20106 --- /dev/null +++ b/packages/y-idb/package.json @@ -0,0 +1,41 @@ +{ + "name": "y-idb", + "description": "yjs persistence", + "version": "0.0.1", + "type": "module", + "author": "himself65 ", + "files": [ + "dist" + ], + "keywords": [ + "yjs", + "provider", + "database", + "persistence" + ], + "exports": { + "./browser": { + "types": "./dist/browser.d.ts", + "import": "./dist/browser.js", + "require": "./dist/browser.cjs", + "default": "./dist/browser.js" + } + }, + "scripts": { + "build": "bunchee", + "dev": "bunchee --watch" + }, + "publishConfig": { + "access": "public" + }, + "devDependencies": { + "bunchee": "^3.9.3", + "yjs": "^13.6.10" + }, + "dependencies": { + "idb": "^8.0.0" + }, + "peerDependencies": { + "yjs": "^13" + } +} diff --git a/packages/y-idb/src/browser.ts b/packages/y-idb/src/browser.ts new file mode 100644 index 0000000..ba87d08 --- /dev/null +++ b/packages/y-idb/src/browser.ts @@ -0,0 +1,111 @@ +import { + openDB, + DBSchema, + IDBPDatabase +} from 'idb' +import { Workspace, ProviderAdapter, StatusAdapter } from './shared/type.js' +import { createLazyProvider } from './shared/lazy-provider.js' +import { + applyUpdate, + diffUpdate, + Doc, + encodeStateAsUpdate, + encodeStateVectorFromUpdate +} from 'yjs' + +const mergeCount = 200 + +function mergeUpdates (updates: Uint8Array[]): Uint8Array { + const doc = new Doc() + for (const update of updates) { + applyUpdate(doc, update) + } + return encodeStateAsUpdate(doc) +} + +interface YDB extends DBSchema { + workspace: { + key: string + value: Workspace, + indexes: { + guid: string + } + } +} + +export function createIndexedDBProvider ( + name: string, rootDoc: Doc): ProviderAdapter & StatusAdapter { + let lazyDBPromise: Promise> | null = null + const getDB = async (name: string): Promise> => { + if (lazyDBPromise !== null) { + return lazyDBPromise + } + lazyDBPromise = openDB(name, 1, { + upgrade (db) { + { + db.createObjectStore('workspace', { + keyPath: 'guid' + }) + } + } + }) + return lazyDBPromise + } + return createLazyProvider(rootDoc, { + queryDocState: async (guid, query) => { + const db = await getDB(name) + const tx = db.transaction('workspace', 'readonly') + const os = tx.objectStore('workspace') + const workspace = await os.get(guid) + if (workspace === undefined || workspace.updates.length === 0) { + return { + missingUpdate: new Uint8Array() + } + } + + const { updates } = workspace + + const update = mergeUpdates(updates.map(({ update }) => update)) + + const missingUpdate = query?.stateVector + ? diffUpdate(update, query?.stateVector) + : update + + return { missingUpdate, stateVector: encodeStateVectorFromUpdate(update) } + }, + sendDocUpdate: async (guid, update) => { + const db = await getDB(name) + const tx = db.transaction('workspace', 'readwrite') + const os = tx.objectStore('workspace') + const data = await os.get(guid) + if (data === undefined) { + await os.add({ + guid, + updates: [], + author: name + }) + } else { + if (data.updates.length > mergeCount) { + data.updates = [ + { + update: mergeUpdates(data.updates.map(({ update }) => update)), + date: Date.now() + } + ] + } + await os.put({ + guid, + updates: [ + ...data.updates, { + date: Date.now(), + update + } + ], + author: name + }) + } + } + }, { + author: 'ydb' + }) +} diff --git a/packages/y-idb/src/shared/lazy-provider.ts b/packages/y-idb/src/shared/lazy-provider.ts new file mode 100644 index 0000000..b8e532c --- /dev/null +++ b/packages/y-idb/src/shared/lazy-provider.ts @@ -0,0 +1,329 @@ +/// Credit: https://github.com/toeverything/AFFiNE/tree/559ec3956f643d00d47fead8728e9b587f68b625/packages/common/y-provider +import { + applyUpdate, + type Doc, + encodeStateAsUpdate, + encodeStateVector +} from 'yjs' +import { + DataSourceAdapter, + ProviderAdapter, + Status, + StatusAdapter +} from './type.js' +import { assertExists } from './utils.js' + +// perf: need memorization here +function queryDoc (doc: Doc, guid: string): Doc | undefined { + if (doc.guid === guid) { + return doc + } + for (const subdoc of doc.subdocs) { + const found = queryDoc(subdoc, guid) + if (found) { + return found + } + } + return undefined +} + +interface LazyProviderOptions { + author?: string; +} + +/** + * Creates a lazy provider that connects to a datasource and synchronizes a root document. + */ +export const createLazyProvider = ( + rootDoc: Doc, + datasource: DataSourceAdapter, + options: LazyProviderOptions = {} +): ProviderAdapter & StatusAdapter => { + let connected = false + const pendingMap = new Map() // guid -> pending-updates + const disposableMap = new Map void>>() + const connectedDocs = new Set() + let abortController: AbortController | null = null + + const { author = 'unknown-provider' } = options + + let currentStatus: Status = { + type: 'idle' + } + let syncingStack = 0 + const callbackSet = new Set<() => void>() + const changeStatus = (newStatus: Status) => { + // simulate a stack, each syncing and synced should be paired + if (newStatus.type === 'syncing') { + syncingStack++ + } else if (newStatus.type === 'synced' || newStatus.type === 'error') { + syncingStack-- + } + + if (syncingStack < 0) { + console.error( + 'syncingStatus < 0, this should not happen', + author + ) + } + + if (syncingStack === 0) { + currentStatus = newStatus + } + if (newStatus.type !== 'synced') { + currentStatus = newStatus + } + if (syncingStack === 0) { + if (!connected) { + currentStatus = { + type: 'idle' + } + } else { + currentStatus = { + type: 'synced' + } + } + } + callbackSet.forEach(cb => cb()) + } + + async function syncDoc (doc: Doc) { + const guid = doc.guid + if (!connected) { + return + } + + changeStatus({ + type: 'syncing' + }) + const remoteUpdate = await datasource.queryDocState(guid, { + stateVector: encodeStateVector(doc), + author + }).then(remoteUpdate => { + changeStatus({ + type: 'synced' + }) + return remoteUpdate + }).catch(error => { + changeStatus({ + type: 'error', + error + }) + throw error + }) + + pendingMap.set(guid, []) + + if (remoteUpdate.missingUpdate.length > 0) { + applyUpdate(doc, remoteUpdate.missingUpdate, author) + } + + if (!connected) { + return + } + + // perf: optimize me + // it is possible the doc is only in memory but not yet in the datasource + // we need to send the whole update to the datasource + await datasource.sendDocUpdate( + guid, + encodeStateAsUpdate(doc, + remoteUpdate ? remoteUpdate.stateVector : undefined), + author + ) + + doc.emit('sync', []) + } + + function setupDocListener (rootDoc: Doc) { + const disposables = new Set<() => void>() + disposableMap.set(rootDoc.guid, disposables) + const updateHandler = async (update: Uint8Array, updateOrigin: unknown) => { + if (author === updateOrigin) { + return + } + changeStatus({ + type: 'syncing' + }) + datasource.sendDocUpdate(rootDoc.guid, update, + typeof updateOrigin === 'string' ? updateOrigin : 'unknown-origin'). + then(() => { + changeStatus({ + type: 'synced' + }) + }). + catch(error => { + changeStatus({ + type: 'error', + error + }) + console.error(error) + }) + } + + const subdocsHandler = (event: { + loaded: Set; + removed: Set; + added: Set; + }) => { + event.loaded.forEach(subdoc => { + connectDoc(subdoc).catch(console.error) + }) + event.removed.forEach(subdoc => { + disposeDoc(subdoc) + }) + } + + const destroyHandler = () => { + disposeDoc(rootDoc) + } + + rootDoc.on('update', updateHandler) + rootDoc.on('subdocs', subdocsHandler) + rootDoc.once('destroy', destroyHandler) + disposables.add(() => { + rootDoc.off('update', updateHandler) + rootDoc.off('subdocs', subdocsHandler) + rootDoc.off('destroy', destroyHandler) + }) + } + + function setupDatasourceListeners () { + assertExists(abortController, 'abortController should be defined') + const unsubscribe = datasource.onDocUpdate?.((guid, update) => { + changeStatus({ + type: 'syncing' + }) + const doc = queryDoc(rootDoc, guid) + if (doc) { + applyUpdate(doc, update, author) + if (pendingMap.has(guid)) { + pendingMap.get(guid)?. + forEach(update => applyUpdate(doc, update, author)) + pendingMap.delete(guid) + } + } else { + // This case happens when the father doc is not yet updated, + // so that the child doc is not yet created. + // We need to put it into cache so that it can be applied later. + console.warn('doc not found', guid) + pendingMap.set(guid, (pendingMap.get(guid) ?? []).concat(update)) + } + changeStatus({ + type: 'synced' + }) + }) + abortController.signal.addEventListener('abort', () => { + unsubscribe?.() + }) + } + + // when a subdoc is loaded, we need to sync it with the datasource and setup listeners + async function connectDoc (doc: Doc) { + // skip if already connected + if (connectedDocs.has(doc.guid)) { + return + } + connectedDocs.add(doc.guid) + setupDocListener(doc) + await syncDoc(doc) + + await Promise.all( + [...doc.subdocs].filter(subdoc => subdoc.shouldLoad). + map(subdoc => connectDoc(subdoc)) + ) + } + + function disposeDoc (doc: Doc) { + connectedDocs.delete(doc.guid) + const disposables = disposableMap.get(doc.guid) + if (disposables) { + disposables.forEach(dispose => dispose()) + disposableMap.delete(doc.guid) + } + // also dispose all subdocs + doc.subdocs.forEach(disposeDoc) + } + + function disposeAll () { + disposableMap.forEach(disposables => { + disposables.forEach(dispose => dispose()) + }) + disposableMap.clear() + connectedDocs.clear() + } + + /** + * Connects to the datasource and sets up event listeners for document updates. + */ + function connect () { + connected = true + abortController = new AbortController() + + changeStatus({ + type: 'syncing' + }) + // root doc should be already loaded, + // but we want to populate the cache for later update events + connectDoc(rootDoc).then(() => { + changeStatus({ + type: 'synced' + }) + }).catch(error => { + changeStatus({ + type: 'error', + error + }) + console.error(error) + }) + setupDatasourceListeners() + } + + async function disconnect () { + connected = false + disposeAll() + assertExists(abortController, 'abortController should be defined') + abortController.abort() + abortController = null + } + + const syncDocRecursive = async (doc: Doc) => { + await syncDoc(doc) + await Promise.all( + [...doc.subdocs.values()].map(subdoc => syncDocRecursive(subdoc)) + ) + } + + return { + //#region status adapter + getStatus () { + return currentStatus + }, + onStatusChange (cb: () => void) { + callbackSet.add(cb) + return () => { + callbackSet.delete(cb) + } + }, + //#endregion + //#region provider adapter + sync: async onlyRootDoc => { + connected = true + try { + if (onlyRootDoc) { + await syncDoc(rootDoc) + } else { + await syncDocRecursive(rootDoc) + } + } finally { + connected = false + } + }, + getConnected (): boolean { + return connected + }, + connect, + disconnect + //#endregion + } +} diff --git a/packages/y-idb/src/shared/type.ts b/packages/y-idb/src/shared/type.ts new file mode 100644 index 0000000..8e715b5 --- /dev/null +++ b/packages/y-idb/src/shared/type.ts @@ -0,0 +1,56 @@ +type Chunk = { + update: Uint8Array + date: number +} + +export type Workspace = { + guid: string + updates: Chunk[] + author: string +} + +export type QueryOptions = { + stateVector: Uint8Array + author: string +} + +export interface DocStateResponse { + missingUpdate: Uint8Array; + stateVector?: Uint8Array; +} + +export type Dispose = () => void + +export type Status = { + type: 'idle' +} | { + type: 'syncing' +} | { + type: 'error' + error: unknown +} | { + type: 'synced' +} + +export type DataSourceAdapter = { + queryDocState: ( + guid: string, + query?: Partial + ) => Promise + sendDocUpdate: ( + guid: string, update: Uint8Array, origin: string) => Promise + onDocUpdate?: (callback: ( + guid: string, update: Uint8Array) => void) => Dispose +} + +export type ProviderAdapter = { + sync (onlyRootDoc?: boolean): Promise; + getConnected (): boolean; + connect (): void; + disconnect (): void; +}; + +export type StatusAdapter = { + getStatus (): Status + onStatusChange (callback: () => void): Dispose +} diff --git a/packages/y-idb/src/shared/utils.ts b/packages/y-idb/src/shared/utils.ts new file mode 100644 index 0000000..0ceba88 --- /dev/null +++ b/packages/y-idb/src/shared/utils.ts @@ -0,0 +1,6 @@ +export function assertExists (value: T | null | undefined, message?: string): T { + if (value === null || value === undefined) { + throw new Error(message || 'value is null or undefined') + } + return value +} diff --git a/packages/y-idb/tsconfig.json b/packages/y-idb/tsconfig.json new file mode 100644 index 0000000..090f332 --- /dev/null +++ b/packages/y-idb/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ES2020", + "moduleResolution": "bundler", + "outDir": "./dist" + }, + "include": [ + "./src" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1536d27..1d131d6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,6 +4,9 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + react-refresh: ~0.14.0 + importers: .: @@ -122,7 +125,7 @@ importers: version: link:../../packages/jotai-inject next: specifier: 14.0.2 - version: 14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + version: 14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) next-themes: specifier: ^0.2.1 version: 0.2.1(next@14.0.2)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) @@ -235,7 +238,7 @@ importers: version: 0.0.35 next: specifier: 14.0.3 - version: 14.0.3(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + version: 14.0.3(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) next-themes: specifier: ^0.2.1 version: 0.2.1(next@14.0.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) @@ -291,9 +294,6 @@ importers: '@toeverything/theme': specifier: 0.7.24 version: 0.7.24 - '@toeverything/y-indexeddb': - specifier: 0.10.0-canary.9 - version: 0.10.0-canary.9(yjs@13.6.10) foxact: specifier: ^0.2.26 version: 0.2.26(react@18.3.0-canary-8039e6d0b-20231026) @@ -321,6 +321,9 @@ importers: uuid: specifier: ^9.0.1 version: 9.0.1 + y-idb: + specifier: workspace:* + version: link:../y-idb y-utility: specifier: ^0.1.3 version: 0.1.3(yjs@13.6.10) @@ -408,6 +411,19 @@ importers: specifier: ^0.34.6 version: 0.34.6(@vitest/ui@0.34.6)(happy-dom@12.10.3) + packages/y-idb: + dependencies: + idb: + specifier: ^8.0.0 + version: 8.0.0 + devDependencies: + bunchee: + specifier: ^3.9.3 + version: 3.9.3(typescript@5.3.2) + yjs: + specifier: ^13.6.10 + version: 13.6.10 + packages/y-io: dependencies: y-utils: @@ -509,23 +525,23 @@ packages: - encoding dev: false - /@babel/code-frame@7.22.13: - resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.22.20 + '@babel/highlight': 7.23.4 chalk: 2.4.2 dev: true - /@babel/code-frame@7.23.4: - resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + /@babel/code-frame@7.23.5: + resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.23.4 chalk: 2.4.2 - /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + /@babel/compat-data@7.23.5: + resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} /@babel/core@7.23.3: @@ -549,6 +565,29 @@ packages: semver: 6.3.1 transitivePeerDependencies: - supports-color + dev: true + + /@babel/core@7.23.5: + resolution: {integrity: sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5) + '@babel/helpers': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color /@babel/generator@7.23.4: resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} @@ -558,13 +597,23 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 + dev: true + + /@babel/generator@7.23.5: + resolution: {integrity: sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 /@babel/helper-compilation-targets@7.22.15: resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 + '@babel/compat-data': 7.23.5 + '@babel/helper-validator-option': 7.23.5 browserslist: 4.22.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -604,6 +653,20 @@ packages: '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + dev: true + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.5): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 /@babel/helper-plugin-utils@7.22.5: resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} @@ -630,8 +693,8 @@ packages: resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + /@babel/helper-validator-option@7.23.5: + resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} /@babel/helpers@7.23.4: @@ -643,15 +706,17 @@ packages: '@babel/types': 7.23.4 transitivePeerDependencies: - supports-color + dev: true - /@babel/highlight@7.22.20: - resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + /@babel/helpers@7.23.5: + resolution: {integrity: sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.5 + '@babel/types': 7.23.5 + transitivePeerDependencies: + - supports-color /@babel/highlight@7.23.4: resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} @@ -675,6 +740,14 @@ packages: hasBin: true dependencies: '@babel/types': 7.23.4 + dev: true + + /@babel/parser@7.23.5: + resolution: {integrity: sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.5 /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} @@ -706,9 +779,9 @@ packages: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 + '@babel/code-frame': 7.23.5 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 /@babel/traverse@7.23.4: resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} @@ -726,6 +799,24 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/traverse@7.23.5: + resolution: {integrity: sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.5 + '@babel/generator': 7.23.5 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.5 + '@babel/types': 7.23.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color /@babel/types@7.23.4: resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} @@ -735,6 +826,14 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@babel/types@7.23.5: + resolution: {integrity: sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -1189,6 +1288,10 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@fastify/deepmerge@1.3.0: + resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} + dev: true + /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -1355,7 +1458,7 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.9 - '@types/react': 18.2.38 + '@types/react': 18.2.41 react: 18.3.0-canary-8039e6d0b-20231026 dev: false @@ -1408,6 +1511,142 @@ packages: sparse-bitfield: 3.0.3 dev: false + /@napi-rs/magic-string-android-arm-eabi@0.3.4: + resolution: {integrity: sha512-sszAYxqtzzJ4FDerDNHcqL9NhqPhj8W4DNiOanXYy50mA5oojlRtaAFPiB5ZMrWDBM32v5Q30LrmxQ4eTtu2Dg==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-android-arm64@0.3.4: + resolution: {integrity: sha512-jdQ6HuO0X5rkX4MauTcWR4HWdgjakTOmmzqXg8L26+jOHVVG1LZE+Su5qvV4bP8vMb2h+vPE+JsnwqSmWymu3Q==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-darwin-arm64@0.3.4: + resolution: {integrity: sha512-6NmMtvURce9/oq09XBZmuIeI6lPLGtEJ2ZPO/QzL3nLZa6wygiCnO/sFACKYNg5/73ET5HMMTeuogE1JI+r2Lw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-darwin-x64@0.3.4: + resolution: {integrity: sha512-f9LmfMiUAKDOtl0meOuLYeVb6OERrgGzrTg1Tn3R3fTAShM2kxRbfAuPE9ljuXxIFzOv/uqRNLSl/LqCJwpREA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-freebsd-x64@0.3.4: + resolution: {integrity: sha512-rqduQ4odiDK4QdM45xHWRTU4wtFIfpp8g8QGpz+3qqg7ivldDqbbNOrBaf6Oeu77uuEvWggnkyuChotfKgJdJQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-linux-arm-gnueabihf@0.3.4: + resolution: {integrity: sha512-pVaJEdEpiPqIfq3M4+yMAATS7Z9muDcWYn8H7GFH1ygh8GwgLgKfy/n/lG2M6zp18Mwd0x7E2E/qg9GgCyUzoQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-linux-arm64-gnu@0.3.4: + resolution: {integrity: sha512-9FwoAih/0tzEZx0BjYYIxWkSRMjonIn91RFM3q3MBs/evmThXUYXUqLNa1PPIkK1JoksswtDi48qWWLt8nGflQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-linux-arm64-musl@0.3.4: + resolution: {integrity: sha512-wCR7R+WPOcAKmVQc1s6h6HwfwW1vL9pM8BjUY9Ljkdb8wt1LmZEmV2Sgfc1SfbRQzbyl+pKeufP6adRRQVzYDA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-linux-x64-gnu@0.3.4: + resolution: {integrity: sha512-sbxFDpYnt5WFbxQ1xozwOvh5A7IftqSI0WnE9O7KsQIOi0ej2dvFbfOW4tmFkvH/YP8KJELo5AhP2+kEq1DpYA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-linux-x64-musl@0.3.4: + resolution: {integrity: sha512-jN4h/7e2Ul8v3UK5IZu38NXLMdzVWhY4uEDlnwuUAhwRh26wBQ1/pLD97Uy/Z3dFNBQPcsv60XS9fOM1YDNT6w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-win32-arm64-msvc@0.3.4: + resolution: {integrity: sha512-gMUyTRHLWpzX2ntJFCbW2Gnla9Y/WUmbkZuW5SBAo/Jo8QojHn76Y4PNgnoXdzcsV9b/45RBxurYKAfFg9WTyg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-win32-ia32-msvc@0.3.4: + resolution: {integrity: sha512-QIMauMOvEHgL00K9np/c9CT/CRtLOz3mRTQqcZ9XGzSoAMrpxH71KSpDJrKl7h7Ro6TZ+hJ0C3T+JVuTCZNv4A==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string-win32-x64-msvc@0.3.4: + resolution: {integrity: sha512-V8FMSf828MzOI3P6/765MR7zHU6CUZqiyPhmAnwYoKFNxfv7oCviN/G6NcENeCdcYOvNgh5fYzaNLB96ndId5A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@napi-rs/magic-string@0.3.4: + resolution: {integrity: sha512-DEWl/B99RQsyMT3F9bvrXuhL01/eIQp/dtNSE3G1jQ4mTGRcP4iHWxoPZ577WrbjUinrNgvRA5+08g8fkPgimQ==} + engines: {node: '>= 10'} + optionalDependencies: + '@napi-rs/magic-string-android-arm-eabi': 0.3.4 + '@napi-rs/magic-string-android-arm64': 0.3.4 + '@napi-rs/magic-string-darwin-arm64': 0.3.4 + '@napi-rs/magic-string-darwin-x64': 0.3.4 + '@napi-rs/magic-string-freebsd-x64': 0.3.4 + '@napi-rs/magic-string-linux-arm-gnueabihf': 0.3.4 + '@napi-rs/magic-string-linux-arm64-gnu': 0.3.4 + '@napi-rs/magic-string-linux-arm64-musl': 0.3.4 + '@napi-rs/magic-string-linux-x64-gnu': 0.3.4 + '@napi-rs/magic-string-linux-x64-musl': 0.3.4 + '@napi-rs/magic-string-win32-arm64-msvc': 0.3.4 + '@napi-rs/magic-string-win32-ia32-msvc': 0.3.4 + '@napi-rs/magic-string-win32-x64-msvc': 0.3.4 + dev: true + /@napi-rs/simple-git-android-arm-eabi@0.1.9: resolution: {integrity: sha512-9D4JnfePMpgL4pg9aMUX7/TIWEUQ+Tgx8n3Pf8TNCMGjUbImJyYsDSLJzbcv9wH7srgn4GRjSizXFJHAPjzEug==} engines: {node: '>= 10'} @@ -2101,6 +2340,82 @@ packages: react: 18.3.0-canary-8039e6d0b-20231026 dev: false + /@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): + resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + commondir: 1.0.1 + estree-walker: 2.0.2 + glob: 8.1.0 + is-reference: 1.2.1 + magic-string: 0.30.5 + rollup: 3.29.4 + dev: true + + /@rollup/plugin-json@6.0.1(rollup@3.29.4): + resolution: {integrity: sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + rollup: 3.29.4 + dev: true + + /@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): + resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-builtin-module: 3.2.1 + is-module: 1.0.0 + resolve: 1.22.8 + rollup: 3.29.4 + dev: true + + /@rollup/plugin-replace@5.0.5(rollup@3.29.4): + resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + magic-string: 0.30.5 + rollup: 3.29.4 + dev: true + + /@rollup/plugin-wasm@6.2.2(rollup@3.29.4): + resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + rollup: 3.29.4 + dev: true + /@rollup/pluginutils@5.0.5: resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} @@ -2115,6 +2430,21 @@ packages: picomatch: 2.3.1 dev: true + /@rollup/pluginutils@5.0.5(rollup@3.29.4): + resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.29.4 + dev: true + /@rushstack/eslint-patch@1.5.1: resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true @@ -2165,11 +2495,124 @@ packages: /@socket.io/component-emitter@3.1.0: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} + /@swc/core-darwin-arm64@1.3.100: + resolution: {integrity: sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.100: + resolution: {integrity: sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.100: + resolution: {integrity: sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.100: + resolution: {integrity: sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.100: + resolution: {integrity: sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.100: + resolution: {integrity: sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.100: + resolution: {integrity: sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.100: + resolution: {integrity: sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.100: + resolution: {integrity: sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.100(@swc/helpers@0.5.2): + resolution: {integrity: sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + dependencies: + '@swc/counter': 0.1.2 + '@swc/helpers': 0.5.2 + '@swc/types': 0.1.5 + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.100 + '@swc/core-darwin-x64': 1.3.100 + '@swc/core-linux-arm64-gnu': 1.3.100 + '@swc/core-linux-arm64-musl': 1.3.100 + '@swc/core-linux-x64-gnu': 1.3.100 + '@swc/core-linux-x64-musl': 1.3.100 + '@swc/core-win32-arm64-msvc': 1.3.100 + '@swc/core-win32-ia32-msvc': 1.3.100 + '@swc/core-win32-x64-msvc': 1.3.100 + dev: true + + /@swc/counter@0.1.2: + resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} + dev: true + /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 - dev: false + + /@swc/types@0.1.5: + resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} + dev: true /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -2182,7 +2625,7 @@ packages: resolution: {integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==} engines: {node: '>=14'} dependencies: - '@babel/code-frame': 7.22.13 + '@babel/code-frame': 7.23.4 '@babel/runtime': 7.23.2 '@types/aria-query': 5.0.3 aria-query: 5.1.3 @@ -2252,17 +2695,6 @@ packages: resolution: {integrity: sha512-DbQv2/I5MvdES0EaATmP1aU5llX8PfEJEamzKN3Ahiu2FoYOXiE99xkfKPD0c7x/XTiLYQsIv1EsOqwzXR6gPA==} dev: false - /@toeverything/y-indexeddb@0.10.0-canary.9(yjs@13.6.10): - resolution: {integrity: sha512-3hzktNuOaXut/RgRjKNeqQura1zeYF+tSLSlWDc0rDBOrEpwD/1EOpKVCbgtl8ke7f4oinLfgBNk4HcwqaQUYQ==} - peerDependencies: - yjs: ^13 - dependencies: - idb: 7.1.1 - nanoid: 5.0.1 - y-provider: 0.10.0-canary.9(yjs@13.6.10) - yjs: 13.6.10 - dev: false - /@tokenizer/token@0.3.0: resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: false @@ -2393,7 +2825,6 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: false /@types/flexsearch@0.7.4: resolution: {integrity: sha512-R5ZZmhxOBquntySny8dWYLDGdPJlX9K6p6vcj1w5NWGQ33X4V8MEtdQXK5KFFR1j6o0RhbPMdLSVg5XULVn3oA==} @@ -2518,6 +2949,18 @@ packages: '@types/scheduler': 0.16.5 csstype: 3.1.2 + /@types/react@18.2.41: + resolution: {integrity: sha512-CwOGr/PiLiNBxEBqpJ7fO3kocP/2SSuC9fpH5K7tusrg4xPSRT/193rzolYwQnTN02We/ATXKnb6GqA5w4fRxw==} + dependencies: + '@types/prop-types': 15.7.9 + '@types/scheduler': 0.16.5 + csstype: 3.1.2 + dev: false + + /@types/resolve@1.20.2: + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + dev: true + /@types/responselike@1.0.2: resolution: {integrity: sha512-/4YQT5Kp6HxUDb4yhRkm0bJ7TbjvTddqX7PZ5hz6qV3pxSo72f/6YPRo+Mu2DU307tm9IioO69l7uAwn5XNcFA==} dependencies: @@ -2828,7 +3271,7 @@ packages: /@vue/compiler-core@3.3.8: resolution: {integrity: sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==} dependencies: - '@babel/parser': 7.23.4 + '@babel/parser': 7.23.5 '@vue/shared': 3.3.8 estree-walker: 2.0.2 source-map-js: 1.0.2 @@ -2851,7 +3294,7 @@ packages: /@vue/compiler-sfc@3.3.8: resolution: {integrity: sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==} dependencies: - '@babel/parser': 7.23.4 + '@babel/parser': 7.23.5 '@vue/compiler-core': 3.3.8 '@vue/compiler-dom': 3.3.8 '@vue/compiler-ssr': 3.3.8 @@ -2892,7 +3335,7 @@ packages: /@vue/reactivity-transform@3.3.8: resolution: {integrity: sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==} dependencies: - '@babel/parser': 7.23.4 + '@babel/parser': 7.23.5 '@vue/compiler-core': 3.3.8 '@vue/shared': 3.3.8 estree-walker: 2.0.2 @@ -3641,6 +4084,42 @@ packages: - supports-color dev: true + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: true + + /bunchee@3.9.3(typescript@5.3.2): + resolution: {integrity: sha512-Uiey+ilOU9QI9fuimN09XbF0BH3DwPWIb+E1Dy6Zil3KCbSdN5d634ZHuFhRtI/VYAdbkcSwCkwqmCZ09oiRAw==} + engines: {node: '>= 16'} + hasBin: true + peerDependencies: + typescript: ^4.1 || ^5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + typescript: + optional: true + dependencies: + '@rollup/plugin-commonjs': 25.0.7(rollup@3.29.4) + '@rollup/plugin-json': 6.0.1(rollup@3.29.4) + '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) + '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) + '@rollup/plugin-wasm': 6.2.2(rollup@3.29.4) + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + '@swc/core': 1.3.100(@swc/helpers@0.5.2) + '@swc/helpers': 0.5.2 + arg: 5.0.2 + pretty-bytes: 5.6.0 + publint: 0.2.6 + rollup: 3.29.4 + rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.3.2) + rollup-plugin-swc3: 0.10.4(@swc/core@1.3.100)(rollup@3.29.4) + rollup-swc-preserve-directives: 0.5.0(@swc/core@1.3.100)(rollup@3.29.4) + tslib: 2.6.2 + typescript: 5.3.2 + dev: true + /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -4560,6 +5039,11 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true + /deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + dev: true + /default-require-extensions@3.0.1: resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} engines: {node: '>=8'} @@ -5938,6 +6422,17 @@ packages: path-is-absolute: 1.0.1 dev: true + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + dev: true + /global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -6345,6 +6840,10 @@ packages: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} dev: false + /idb@8.0.0: + resolution: {integrity: sha512-l//qvlAKGmQO31Qn7xdzagVPPaHTxXx199MhrAFuVBTPqydcPYBWjkrbv4Y0ktB+GmWOiwHl237UUOrLmQxLvw==} + dev: false + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} requiresBuild: true @@ -6354,6 +6853,13 @@ packages: engines: {node: '>=10 <11 || >=12 <13 || >=14'} dev: true + /ignore-walk@5.0.1: + resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + minimatch: 5.1.6 + dev: true + /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -6500,6 +7006,13 @@ packages: engines: {node: '>=4'} dev: false + /is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: true + /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -6581,6 +7094,10 @@ packages: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true + /is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + dev: true + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -6626,6 +7143,12 @@ packages: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} dev: true + /is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + dependencies: + '@types/estree': 1.0.5 + dev: true + /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: @@ -6757,7 +7280,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 semver: 6.3.1 @@ -6769,7 +7292,7 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 '@babel/parser': 7.23.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.0 @@ -8406,7 +8929,6 @@ packages: /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} - dev: false /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} @@ -8440,12 +8962,6 @@ packages: engines: {node: ^14 || ^16 || >=18} hasBin: true - /nanoid@5.0.1: - resolution: {integrity: sha512-vWeVtV5Cw68aML/QaZvqN/3QQXc6fBfIieAlu05m7FZW2Dgb+3f0xc0TTxuJW+7u30t7iSDTV/j3kVI0oJqIfQ==} - engines: {node: ^18 || >=20} - hasBin: true - dev: false - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -8478,7 +8994,7 @@ packages: react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - next: 14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + next: 14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) react: 18.3.0-canary-8039e6d0b-20231026 react-dom: 18.3.0-canary-8039e6d0b-20231026(react@18.3.0-canary-8039e6d0b-20231026) dev: false @@ -8490,7 +9006,7 @@ packages: react: '*' react-dom: '*' dependencies: - next: 14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + next: 14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) react: 18.3.0-canary-8039e6d0b-20231026 react-dom: 18.3.0-canary-8039e6d0b-20231026(react@18.3.0-canary-8039e6d0b-20231026) dev: false @@ -8502,12 +9018,12 @@ packages: react: '*' react-dom: '*' dependencies: - next: 14.0.3(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + next: 14.0.3(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) react: 18.3.0-canary-8039e6d0b-20231026 react-dom: 18.3.0-canary-8039e6d0b-20231026(react@18.3.0-canary-8039e6d0b-20231026) dev: false - /next@14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026): + /next@14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026): resolution: {integrity: sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg==} engines: {node: '>=18.17.0'} hasBin: true @@ -8529,7 +9045,7 @@ packages: postcss: 8.4.31 react: 18.3.0-canary-8039e6d0b-20231026 react-dom: 18.3.0-canary-8039e6d0b-20231026(react@18.3.0-canary-8039e6d0b-20231026) - styled-jsx: 5.1.1(@babel/core@7.23.3)(react@18.3.0-canary-8039e6d0b-20231026) + styled-jsx: 5.1.1(@babel/core@7.23.5)(react@18.3.0-canary-8039e6d0b-20231026) watchpack: 2.4.0 optionalDependencies: '@next/swc-darwin-arm64': 14.0.2 @@ -8546,7 +9062,7 @@ packages: - babel-plugin-macros dev: false - /next@14.0.3(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026): + /next@14.0.3(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026): resolution: {integrity: sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw==} engines: {node: '>=18.17.0'} hasBin: true @@ -8568,7 +9084,7 @@ packages: postcss: 8.4.31 react: 18.3.0-canary-8039e6d0b-20231026 react-dom: 18.3.0-canary-8039e6d0b-20231026(react@18.3.0-canary-8039e6d0b-20231026) - styled-jsx: 5.1.1(@babel/core@7.23.3)(react@18.3.0-canary-8039e6d0b-20231026) + styled-jsx: 5.1.1(@babel/core@7.23.5)(react@18.3.0-canary-8039e6d0b-20231026) watchpack: 2.4.0 optionalDependencies: '@next/swc-darwin-arm64': 14.0.3 @@ -8597,7 +9113,7 @@ packages: react-cusdis: optional: true dependencies: - next: 14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + next: 14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) next-themes: 0.2.1(next@14.0.2)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) nextra: 2.13.2(next@14.0.2)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) react: 18.3.0-canary-8039e6d0b-20231026 @@ -8621,7 +9137,7 @@ packages: git-url-parse: 13.1.1 intersection-observer: 0.12.2 match-sorter: 6.3.1 - next: 14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + next: 14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) next-seo: 6.4.0(next@14.0.2)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) next-themes: 0.2.1(next@14.0.2)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) nextra: 2.13.2(next@14.0.2)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) @@ -8651,7 +9167,7 @@ packages: gray-matter: 4.0.3 katex: 0.16.9 lodash.get: 4.4.2 - next: 14.0.2(@babel/core@7.23.3)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) + next: 14.0.2(@babel/core@7.23.5)(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) next-mdx-remote: 4.4.1(react-dom@18.3.0-canary-8039e6d0b-20231026)(react@18.3.0-canary-8039e6d0b-20231026) p-limit: 3.1.0 react: 18.3.0-canary-8039e6d0b-20231026 @@ -8742,6 +9258,29 @@ packages: - encoding dev: false + /npm-bundled@2.0.1: + resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + npm-normalize-package-bin: 2.0.0 + dev: true + + /npm-normalize-package-bin@2.0.0: + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dev: true + + /npm-packlist@5.1.3: + resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + dependencies: + glob: 8.1.0 + ignore-walk: 5.0.1 + npm-bundled: 2.0.1 + npm-normalize-package-bin: 2.0.0 + dev: true + /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -9294,6 +9833,11 @@ packages: engines: {node: '>= 0.8.0'} dev: true + /pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + dev: true + /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9371,6 +9915,16 @@ packages: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: false + /publint@0.2.6: + resolution: {integrity: sha512-zMwDVwrlLnCsviDXlczhuc5nIljsjZUgbLeKNyMYqbIJLRhcW81xrKsHlEu21YUaIxpa8T66tdIqP0mZm9ym3A==} + engines: {node: '>=16'} + hasBin: true + dependencies: + npm-packlist: 5.1.3 + picocolors: 1.0.0 + sade: 1.8.1 + dev: true + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -9789,6 +10343,57 @@ packages: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} dev: false + /rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.3.2): + resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} + engines: {node: '>=16'} + peerDependencies: + rollup: ^3.29.4 || ^4 + typescript: ^4.5 || ^5.0 + dependencies: + magic-string: 0.30.5 + rollup: 3.29.4 + typescript: 5.3.2 + optionalDependencies: + '@babel/code-frame': 7.23.5 + dev: true + + /rollup-plugin-swc3@0.10.4(@swc/core@1.3.100)(rollup@3.29.4): + resolution: {integrity: sha512-ggLdYqAe3fZmhuyavDnuixMcNyK1/7CIlmJatW2UcKveN1GpQeFlaRjtXnK6/UCIt71SVr3Qy6p2iCLIkXq3iQ==} + engines: {node: '>=12'} + peerDependencies: + '@swc/core': '>=1.2.165' + rollup: ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@fastify/deepmerge': 1.3.0 + '@rollup/pluginutils': 5.0.5(rollup@3.29.4) + '@swc/core': 1.3.100(@swc/helpers@0.5.2) + get-tsconfig: 4.7.2 + rollup: 3.29.4 + rollup-swc-preserve-directives: 0.6.0(@swc/core@1.3.100)(rollup@3.29.4) + dev: true + + /rollup-swc-preserve-directives@0.5.0(@swc/core@1.3.100)(rollup@3.29.4): + resolution: {integrity: sha512-6lnPZn2laSsdYcdCSE28z4Dwg2mCN5loF+/wBjybh25GJmONjHTf3orWa5j1zjEWY3RcGRjJ8K/52ePqtfy6dw==} + peerDependencies: + '@swc/core': '>=1.3.79' + rollup: ^2.0.0 || ^3.0.0 + dependencies: + '@napi-rs/magic-string': 0.3.4 + '@swc/core': 1.3.100(@swc/helpers@0.5.2) + rollup: 3.29.4 + dev: true + + /rollup-swc-preserve-directives@0.6.0(@swc/core@1.3.100)(rollup@3.29.4): + resolution: {integrity: sha512-MkKETpYF2ml5p15IxqbvLdFxWV6b99ALT6qL/okXYhaaiK8Mqu95nyk90+m58Ye+jMOpnhQsdK3JGMIPUV7i5g==} + peerDependencies: + '@swc/core': '>=1.3.79' + rollup: ^2.0.0 || ^3.0.0 || ^4.0.0 + dependencies: + '@napi-rs/magic-string': 0.3.4 + '@swc/core': 1.3.100(@swc/helpers@0.5.2) + rollup: 3.29.4 + dev: true + /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -9812,7 +10417,6 @@ packages: engines: {node: '>=6'} dependencies: mri: 1.2.0 - dev: false /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} @@ -10380,7 +10984,7 @@ packages: inline-style-parser: 0.1.1 dev: false - /styled-jsx@5.1.1(@babel/core@7.23.3)(react@18.3.0-canary-8039e6d0b-20231026): + /styled-jsx@5.1.1(@babel/core@7.23.5)(react@18.3.0-canary-8039e6d0b-20231026): resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} peerDependencies: @@ -10393,7 +10997,7 @@ packages: babel-plugin-macros: optional: true dependencies: - '@babel/core': 7.23.3 + '@babel/core': 7.23.5 client-only: 0.0.1 react: 18.3.0-canary-8039e6d0b-20231026 dev: false @@ -10760,7 +11364,6 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - dev: false /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -11619,14 +12222,6 @@ packages: lib0: 0.2.87 yjs: 13.6.10 - /y-provider@0.10.0-canary.9(yjs@13.6.10): - resolution: {integrity: sha512-ImkLqCpxHK0lkxD12s7BE4p14NiAnQQSJGN5GONl4W4CyLBx6+tRop3yg66abg64N3JYX9EwXxnIVDziq6b8Dw==} - peerDependencies: - yjs: ^13 - dependencies: - yjs: 13.6.10 - dev: false - /y-utility@0.1.3(yjs@13.6.10): resolution: {integrity: sha512-o9aXG5ZG4c/QgiK1Bt9UDXGVCNwn0dLti/rZSPTsjtuvwH6sshslU2SfoW65pfZqjLJYEHclM/JtUPPjv05lLw==} engines: {node: '>=16'} diff --git a/tsconfig.json b/tsconfig.json index e99b88c..062bf13 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -56,6 +56,8 @@ "paths": { "@refine/core/*": ["./packages/core/src/*"], "@refine/server/*": ["./apps/server/src/*"], + "y-idb": ["./packages/y-idb/src/index"], + "y-idb/*": ["./packages/y-idb/src/*"], "jotai-inject": ["./packages/jotai-inject/src/index"], "jotai-inject/*": ["./packages/jotai-inject/src/*"], } From 13ca7bcb6c6a97ed40d44bd96255189c15ba55ec Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:35:58 -0600 Subject: [PATCH 2/9] fix: lock --- package.json | 6 ------ pnpm-lock.yaml | 3 --- 2 files changed, 9 deletions(-) diff --git a/package.json b/package.json index fde5582..81ad544 100644 --- a/package.json +++ b/package.json @@ -20,11 +20,5 @@ "eslint-plugin-react-refresh": "^0.4.4", "nyc": "^15.1.0", "typescript": "^5.3.2" - }, - "overrides": { - "react-refresh": "~0.14.0" - }, - "resolutions": { - "react-refresh": "~0.14.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d131d6..a518c19 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -4,9 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - react-refresh: ~0.14.0 - importers: .: From 9cf168d4e0ad56fb17953b88f4fa14461eefb02b Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:44:01 -0600 Subject: [PATCH 3/9] fix: code --- packages/core/src/store/index.ts | 3 +-- packages/core/tsconfig.src.json | 3 +++ packages/y-idb/src/browser.ts | 29 ++++++++++++++++++++++++----- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/packages/core/src/store/index.ts b/packages/core/src/store/index.ts index a199d8e..7da81de 100644 --- a/packages/core/src/store/index.ts +++ b/packages/core/src/store/index.ts @@ -225,8 +225,7 @@ export class WorkspaceManager { } }) this.#providers.push((workspace) => { - const provider = createIndexedDBProvider(workspace.doc, - 'refine-indexeddb') + const provider = createIndexedDBProvider('refine-indexeddb', workspace.doc) return { connect: () => { provider.connect() diff --git a/packages/core/tsconfig.src.json b/packages/core/tsconfig.src.json index 43e3d91..33b038e 100644 --- a/packages/core/tsconfig.src.json +++ b/packages/core/tsconfig.src.json @@ -19,6 +19,9 @@ "references": [ { "path": "../jotai-inject" + }, + { + "path": "../y-idb" } ] } diff --git a/packages/y-idb/src/browser.ts b/packages/y-idb/src/browser.ts index ba87d08..5ea30ae 100644 --- a/packages/y-idb/src/browser.ts +++ b/packages/y-idb/src/browser.ts @@ -33,10 +33,9 @@ interface YDB extends DBSchema { } } -export function createIndexedDBProvider ( - name: string, rootDoc: Doc): ProviderAdapter & StatusAdapter { +function createLazyDB (name: string): () => Promise> { let lazyDBPromise: Promise> | null = null - const getDB = async (name: string): Promise> => { + return async () => { if (lazyDBPromise !== null) { return lazyDBPromise } @@ -51,9 +50,14 @@ export function createIndexedDBProvider ( }) return lazyDBPromise } +} + +export function createIndexedDBProvider ( + name: string, rootDoc: Doc): ProviderAdapter & StatusAdapter { + const getDB = createLazyDB(name) return createLazyProvider(rootDoc, { queryDocState: async (guid, query) => { - const db = await getDB(name) + const db = await getDB() const tx = db.transaction('workspace', 'readonly') const os = tx.objectStore('workspace') const workspace = await os.get(guid) @@ -74,7 +78,7 @@ export function createIndexedDBProvider ( return { missingUpdate, stateVector: encodeStateVectorFromUpdate(update) } }, sendDocUpdate: async (guid, update) => { - const db = await getDB(name) + const db = await getDB() const tx = db.transaction('workspace', 'readwrite') const os = tx.objectStore('workspace') const data = await os.get(guid) @@ -109,3 +113,18 @@ export function createIndexedDBProvider ( author: 'ydb' }) } + +export async function downloadBinary( + guid: string, + name: string +): Promise { + const getDB = createLazyDB(name) + const db = await getDB() + const tx = db.transaction('workspace', 'readonly') + const os = tx.objectStore('workspace') + if (await os.getKey(guid) === undefined) { + return false; + } + const workspace = await os.get(guid) + return workspace.updates.map(({ update }) => update).reduce((a, b) => mergeUpdates([a, b])) +} From b1c8bded3e586632b845da23c9f634db6d585068 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:46:00 -0600 Subject: [PATCH 4/9] fix: config --- packages/y-idb/tsconfig.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/y-idb/tsconfig.json b/packages/y-idb/tsconfig.json index 090f332..153f55e 100644 --- a/packages/y-idb/tsconfig.json +++ b/packages/y-idb/tsconfig.json @@ -1,4 +1,5 @@ { + "extends": "../../tsconfig.json", "compilerOptions": { "module": "ESNext", "target": "ES2020", From 118896b2d775dd4ae53caccbe284ef88a6ab5ab4 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:46:23 -0600 Subject: [PATCH 5/9] fix: code --- packages/y-idb/src/browser.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/y-idb/src/browser.ts b/packages/y-idb/src/browser.ts index 5ea30ae..ca78aaf 100644 --- a/packages/y-idb/src/browser.ts +++ b/packages/y-idb/src/browser.ts @@ -1,9 +1,13 @@ import { openDB, - DBSchema, - IDBPDatabase + type DBSchema, + type IDBPDatabase } from 'idb' -import { Workspace, ProviderAdapter, StatusAdapter } from './shared/type.js' +import type { + Workspace, + ProviderAdapter, + StatusAdapter +} from './shared/type.js' import { createLazyProvider } from './shared/lazy-provider.js' import { applyUpdate, @@ -122,9 +126,9 @@ export async function downloadBinary( const db = await getDB() const tx = db.transaction('workspace', 'readonly') const os = tx.objectStore('workspace') - if (await os.getKey(guid) === undefined) { + const workspace = await os.get(guid) + if (!workspace) { return false; } - const workspace = await os.get(guid) return workspace.updates.map(({ update }) => update).reduce((a, b) => mergeUpdates([a, b])) } From 9af69574de3da33bbf4bd0b1194b818c00df52eb Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:52:19 -0600 Subject: [PATCH 6/9] fix: code --- packages/y-idb/src/shared/lazy-provider.ts | 2 +- packages/y-idb/src/shared/utils.ts | 3 +-- packages/y-idb/tsconfig.json | 3 ++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/y-idb/src/shared/lazy-provider.ts b/packages/y-idb/src/shared/lazy-provider.ts index b8e532c..20d4b8f 100644 --- a/packages/y-idb/src/shared/lazy-provider.ts +++ b/packages/y-idb/src/shared/lazy-provider.ts @@ -5,7 +5,7 @@ import { encodeStateAsUpdate, encodeStateVector } from 'yjs' -import { +import type { DataSourceAdapter, ProviderAdapter, Status, diff --git a/packages/y-idb/src/shared/utils.ts b/packages/y-idb/src/shared/utils.ts index 0ceba88..8f5f111 100644 --- a/packages/y-idb/src/shared/utils.ts +++ b/packages/y-idb/src/shared/utils.ts @@ -1,6 +1,5 @@ -export function assertExists (value: T | null | undefined, message?: string): T { +export function assertExists (value: T | null | undefined, message?: string): asserts value is T { if (value === null || value === undefined) { throw new Error(message || 'value is null or undefined') } - return value } diff --git a/packages/y-idb/tsconfig.json b/packages/y-idb/tsconfig.json index 153f55e..ad6678b 100644 --- a/packages/y-idb/tsconfig.json +++ b/packages/y-idb/tsconfig.json @@ -4,7 +4,8 @@ "module": "ESNext", "target": "ES2020", "moduleResolution": "bundler", - "outDir": "./dist" + "outDir": "./dist", + "lib": ["ESNext", "DOM"] }, "include": [ "./src" From 4ec8975644fb9e44918f577a11438675366e67ef Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 19:54:20 -0600 Subject: [PATCH 7/9] fix: code --- tsconfig.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tsconfig.json b/tsconfig.json index 062bf13..f7ca5e5 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -86,6 +86,9 @@ }, { "path": "./packages/y-utils/tsconfig.json" + }, + { + "path": "./packages/y-idb/tsconfig.json" } ], "include": [], From 3d4b3aea845f2e9e8009acf4468a63a2ed81b0f9 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 20:02:34 -0600 Subject: [PATCH 8/9] fix: packages --- packages/core/vite.config.ts | 3 +- packages/y-idb/package.json | 17 +- packages/y-idb/vite.config.ts | 30 ++ pnpm-lock.yaml | 604 +++++----------------------------- 4 files changed, 127 insertions(+), 527 deletions(-) create mode 100644 packages/y-idb/vite.config.ts diff --git a/packages/core/vite.config.ts b/packages/core/vite.config.ts index 817f5d7..952cb2a 100644 --- a/packages/core/vite.config.ts +++ b/packages/core/vite.config.ts @@ -28,7 +28,8 @@ export default defineConfig({ /^y-utility/, 'uuid', /^foxact/, - 'idb' + 'idb', + 'y-idb/browser' ] } }, diff --git a/packages/y-idb/package.json b/packages/y-idb/package.json index 5c20106..da1d8bd 100644 --- a/packages/y-idb/package.json +++ b/packages/y-idb/package.json @@ -15,22 +15,25 @@ ], "exports": { "./browser": { - "types": "./dist/browser.d.ts", - "import": "./dist/browser.js", - "require": "./dist/browser.cjs", - "default": "./dist/browser.js" + "types": "./dist/src/sync-provider/index.d.ts", + "import": "./dist/sync-provider.js", + "require": "./dist/sync-provider.cjs" } }, "scripts": { - "build": "bunchee", - "dev": "bunchee --watch" + "build": "vite build", + "dev": "vite build --watch" }, "publishConfig": { "access": "public" }, "devDependencies": { - "bunchee": "^3.9.3", + "vite": "^4.5.0", + "vite-plugin-dts": "^3.6.3", + "vite-plugin-istanbul": "^5.0.0", + "vitest": "^0.34.6", "yjs": "^13.6.10" + }, "dependencies": { "idb": "^8.0.0" diff --git a/packages/y-idb/vite.config.ts b/packages/y-idb/vite.config.ts new file mode 100644 index 0000000..e4f0ee6 --- /dev/null +++ b/packages/y-idb/vite.config.ts @@ -0,0 +1,30 @@ +import { defineConfig } from 'vite' +import dts from 'vite-plugin-dts' +import istanbul from 'vite-plugin-istanbul'; + +export default defineConfig({ + build: { + sourcemap: true, + lib: { + entry: { + 'browser': './src/browser.ts', + }, + formats: ['es', 'cjs'] + }, + outDir: './dist', + rollupOptions: { + external: [ + /^idb/, + /^yjs/ + ] + } + }, + plugins: [ + istanbul({ + forceBuildInstrument: process.env.COVERAGE === 'true' + }), + dts({ + include: ["src"], + }) + ] +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a518c19..0ebc2f3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -414,9 +414,18 @@ importers: specifier: ^8.0.0 version: 8.0.0 devDependencies: - bunchee: - specifier: ^3.9.3 - version: 3.9.3(typescript@5.3.2) + vite: + specifier: ^4.5.0 + version: 4.5.0(@types/node@20.9.5) + vite-plugin-dts: + specifier: ^3.6.3 + version: 3.6.3(@types/node@20.9.5)(typescript@5.3.2)(vite@4.5.0) + vite-plugin-istanbul: + specifier: ^5.0.0 + version: 5.0.0(vite@4.5.0) + vitest: + specifier: ^0.34.6 + version: 0.34.6(@vitest/ui@0.34.6) yjs: specifier: ^13.6.10 version: 13.6.10 @@ -450,7 +459,7 @@ importers: version: 5.0.0(vite@4.5.0) vitest: specifier: ^0.34.6 - version: 0.34.6(@vitest/ui@0.34.6)(happy-dom@12.10.3) + version: 0.34.6(@vitest/ui@0.34.6) yjs: specifier: ^13.6.10 version: 13.6.10 @@ -474,7 +483,7 @@ importers: version: 5.0.0(vite@4.5.0) vitest: specifier: ^0.34.6 - version: 0.34.6(@vitest/ui@0.34.6)(happy-dom@12.10.3) + version: 0.34.6(@vitest/ui@0.34.6) yjs: specifier: ^13.6.10 version: 13.6.10 @@ -1285,10 +1294,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@fastify/deepmerge@1.3.0: - resolution: {integrity: sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==} - dev: true - /@floating-ui/core@1.5.0: resolution: {integrity: sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==} dependencies: @@ -1508,142 +1513,6 @@ packages: sparse-bitfield: 3.0.3 dev: false - /@napi-rs/magic-string-android-arm-eabi@0.3.4: - resolution: {integrity: sha512-sszAYxqtzzJ4FDerDNHcqL9NhqPhj8W4DNiOanXYy50mA5oojlRtaAFPiB5ZMrWDBM32v5Q30LrmxQ4eTtu2Dg==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-android-arm64@0.3.4: - resolution: {integrity: sha512-jdQ6HuO0X5rkX4MauTcWR4HWdgjakTOmmzqXg8L26+jOHVVG1LZE+Su5qvV4bP8vMb2h+vPE+JsnwqSmWymu3Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-darwin-arm64@0.3.4: - resolution: {integrity: sha512-6NmMtvURce9/oq09XBZmuIeI6lPLGtEJ2ZPO/QzL3nLZa6wygiCnO/sFACKYNg5/73ET5HMMTeuogE1JI+r2Lw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-darwin-x64@0.3.4: - resolution: {integrity: sha512-f9LmfMiUAKDOtl0meOuLYeVb6OERrgGzrTg1Tn3R3fTAShM2kxRbfAuPE9ljuXxIFzOv/uqRNLSl/LqCJwpREA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-freebsd-x64@0.3.4: - resolution: {integrity: sha512-rqduQ4odiDK4QdM45xHWRTU4wtFIfpp8g8QGpz+3qqg7ivldDqbbNOrBaf6Oeu77uuEvWggnkyuChotfKgJdJQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-linux-arm-gnueabihf@0.3.4: - resolution: {integrity: sha512-pVaJEdEpiPqIfq3M4+yMAATS7Z9muDcWYn8H7GFH1ygh8GwgLgKfy/n/lG2M6zp18Mwd0x7E2E/qg9GgCyUzoQ==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-linux-arm64-gnu@0.3.4: - resolution: {integrity: sha512-9FwoAih/0tzEZx0BjYYIxWkSRMjonIn91RFM3q3MBs/evmThXUYXUqLNa1PPIkK1JoksswtDi48qWWLt8nGflQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-linux-arm64-musl@0.3.4: - resolution: {integrity: sha512-wCR7R+WPOcAKmVQc1s6h6HwfwW1vL9pM8BjUY9Ljkdb8wt1LmZEmV2Sgfc1SfbRQzbyl+pKeufP6adRRQVzYDA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-linux-x64-gnu@0.3.4: - resolution: {integrity: sha512-sbxFDpYnt5WFbxQ1xozwOvh5A7IftqSI0WnE9O7KsQIOi0ej2dvFbfOW4tmFkvH/YP8KJELo5AhP2+kEq1DpYA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-linux-x64-musl@0.3.4: - resolution: {integrity: sha512-jN4h/7e2Ul8v3UK5IZu38NXLMdzVWhY4uEDlnwuUAhwRh26wBQ1/pLD97Uy/Z3dFNBQPcsv60XS9fOM1YDNT6w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-win32-arm64-msvc@0.3.4: - resolution: {integrity: sha512-gMUyTRHLWpzX2ntJFCbW2Gnla9Y/WUmbkZuW5SBAo/Jo8QojHn76Y4PNgnoXdzcsV9b/45RBxurYKAfFg9WTyg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-win32-ia32-msvc@0.3.4: - resolution: {integrity: sha512-QIMauMOvEHgL00K9np/c9CT/CRtLOz3mRTQqcZ9XGzSoAMrpxH71KSpDJrKl7h7Ro6TZ+hJ0C3T+JVuTCZNv4A==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string-win32-x64-msvc@0.3.4: - resolution: {integrity: sha512-V8FMSf828MzOI3P6/765MR7zHU6CUZqiyPhmAnwYoKFNxfv7oCviN/G6NcENeCdcYOvNgh5fYzaNLB96ndId5A==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@napi-rs/magic-string@0.3.4: - resolution: {integrity: sha512-DEWl/B99RQsyMT3F9bvrXuhL01/eIQp/dtNSE3G1jQ4mTGRcP4iHWxoPZ577WrbjUinrNgvRA5+08g8fkPgimQ==} - engines: {node: '>= 10'} - optionalDependencies: - '@napi-rs/magic-string-android-arm-eabi': 0.3.4 - '@napi-rs/magic-string-android-arm64': 0.3.4 - '@napi-rs/magic-string-darwin-arm64': 0.3.4 - '@napi-rs/magic-string-darwin-x64': 0.3.4 - '@napi-rs/magic-string-freebsd-x64': 0.3.4 - '@napi-rs/magic-string-linux-arm-gnueabihf': 0.3.4 - '@napi-rs/magic-string-linux-arm64-gnu': 0.3.4 - '@napi-rs/magic-string-linux-arm64-musl': 0.3.4 - '@napi-rs/magic-string-linux-x64-gnu': 0.3.4 - '@napi-rs/magic-string-linux-x64-musl': 0.3.4 - '@napi-rs/magic-string-win32-arm64-msvc': 0.3.4 - '@napi-rs/magic-string-win32-ia32-msvc': 0.3.4 - '@napi-rs/magic-string-win32-x64-msvc': 0.3.4 - dev: true - /@napi-rs/simple-git-android-arm-eabi@0.1.9: resolution: {integrity: sha512-9D4JnfePMpgL4pg9aMUX7/TIWEUQ+Tgx8n3Pf8TNCMGjUbImJyYsDSLJzbcv9wH7srgn4GRjSizXFJHAPjzEug==} engines: {node: '>= 10'} @@ -2337,82 +2206,6 @@ packages: react: 18.3.0-canary-8039e6d0b-20231026 dev: false - /@rollup/plugin-commonjs@25.0.7(rollup@3.29.4): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.5 - rollup: 3.29.4 - dev: true - - /@rollup/plugin-json@6.0.1(rollup@3.29.4): - resolution: {integrity: sha512-RgVfl5hWMkxN1h/uZj8FVESvPuBJ/uf6ly6GTj0GONnkfoBN5KC0MSz+PN2OLDgYXMhtG0mWpTrkiOjoxAIevw==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - rollup: 3.29.4 - dev: true - - /@rollup/plugin-node-resolve@15.2.3(rollup@3.29.4): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 3.29.4 - dev: true - - /@rollup/plugin-replace@5.0.5(rollup@3.29.4): - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - magic-string: 0.30.5 - rollup: 3.29.4 - dev: true - - /@rollup/plugin-wasm@6.2.2(rollup@3.29.4): - resolution: {integrity: sha512-gpC4R1G9Ni92ZIRTexqbhX7U+9estZrbhP+9SRb0DW9xpB9g7j34r+J2hqrcW/lRI7dJaU84MxZM0Rt82tqYPQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - rollup: 3.29.4 - dev: true - /@rollup/pluginutils@5.0.5: resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} engines: {node: '>=14.0.0'} @@ -2427,21 +2220,6 @@ packages: picomatch: 2.3.1 dev: true - /@rollup/pluginutils@5.0.5(rollup@3.29.4): - resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 3.29.4 - dev: true - /@rushstack/eslint-patch@1.5.1: resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} dev: true @@ -2492,124 +2270,11 @@ packages: /@socket.io/component-emitter@3.1.0: resolution: {integrity: sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==} - /@swc/core-darwin-arm64@1.3.100: - resolution: {integrity: sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-darwin-x64@1.3.100: - resolution: {integrity: sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.3.100: - resolution: {integrity: sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.3.100: - resolution: {integrity: sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.3.100: - resolution: {integrity: sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.3.100: - resolution: {integrity: sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.3.100: - resolution: {integrity: sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.3.100: - resolution: {integrity: sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.3.100: - resolution: {integrity: sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core@1.3.100(@swc/helpers@0.5.2): - resolution: {integrity: sha512-7dKgTyxJjlrMwFZYb1auj3Xq0D8ZBe+5oeIgfMlRU05doXZypYJe0LAk0yjj3WdbwYzpF+T1PLxwTWizI0pckw==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true - dependencies: - '@swc/counter': 0.1.2 - '@swc/helpers': 0.5.2 - '@swc/types': 0.1.5 - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.100 - '@swc/core-darwin-x64': 1.3.100 - '@swc/core-linux-arm64-gnu': 1.3.100 - '@swc/core-linux-arm64-musl': 1.3.100 - '@swc/core-linux-x64-gnu': 1.3.100 - '@swc/core-linux-x64-musl': 1.3.100 - '@swc/core-win32-arm64-msvc': 1.3.100 - '@swc/core-win32-ia32-msvc': 1.3.100 - '@swc/core-win32-x64-msvc': 1.3.100 - dev: true - - /@swc/counter@0.1.2: - resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} - dev: true - /@swc/helpers@0.5.2: resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} dependencies: tslib: 2.6.2 - - /@swc/types@0.1.5: - resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} - dev: true + dev: false /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} @@ -2822,6 +2487,7 @@ packages: /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: false /@types/flexsearch@0.7.4: resolution: {integrity: sha512-R5ZZmhxOBquntySny8dWYLDGdPJlX9K6p6vcj1w5NWGQ33X4V8MEtdQXK5KFFR1j6o0RhbPMdLSVg5XULVn3oA==} @@ -2954,10 +2620,6 @@ packages: csstype: 3.1.2 dev: false - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - dev: true - /@types/responselike@1.0.2: resolution: {integrity: sha512-/4YQT5Kp6HxUDb4yhRkm0bJ7TbjvTddqX7PZ5hz6qV3pxSo72f/6YPRo+Mu2DU307tm9IioO69l7uAwn5XNcFA==} dependencies: @@ -4081,42 +3743,6 @@ packages: - supports-color dev: true - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - - /bunchee@3.9.3(typescript@5.3.2): - resolution: {integrity: sha512-Uiey+ilOU9QI9fuimN09XbF0BH3DwPWIb+E1Dy6Zil3KCbSdN5d634ZHuFhRtI/VYAdbkcSwCkwqmCZ09oiRAw==} - engines: {node: '>= 16'} - hasBin: true - peerDependencies: - typescript: ^4.1 || ^5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true - typescript: - optional: true - dependencies: - '@rollup/plugin-commonjs': 25.0.7(rollup@3.29.4) - '@rollup/plugin-json': 6.0.1(rollup@3.29.4) - '@rollup/plugin-node-resolve': 15.2.3(rollup@3.29.4) - '@rollup/plugin-replace': 5.0.5(rollup@3.29.4) - '@rollup/plugin-wasm': 6.2.2(rollup@3.29.4) - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - '@swc/core': 1.3.100(@swc/helpers@0.5.2) - '@swc/helpers': 0.5.2 - arg: 5.0.2 - pretty-bytes: 5.6.0 - publint: 0.2.6 - rollup: 3.29.4 - rollup-plugin-dts: 6.1.0(rollup@3.29.4)(typescript@5.3.2) - rollup-plugin-swc3: 0.10.4(@swc/core@1.3.100)(rollup@3.29.4) - rollup-swc-preserve-directives: 0.5.0(@swc/core@1.3.100)(rollup@3.29.4) - tslib: 2.6.2 - typescript: 5.3.2 - dev: true - /busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} @@ -5036,11 +4662,6 @@ packages: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: true - /default-require-extensions@3.0.1: resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==} engines: {node: '>=8'} @@ -6419,17 +6040,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - /global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} @@ -6850,13 +6460,6 @@ packages: engines: {node: '>=10 <11 || >=12 <13 || >=14'} dev: true - /ignore-walk@5.0.1: - resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - minimatch: 5.1.6 - dev: true - /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -7003,13 +6606,6 @@ packages: engines: {node: '>=4'} dev: false - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 - dev: true - /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -7091,10 +6687,6 @@ packages: resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} dev: true - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: true - /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -7140,12 +6732,6 @@ packages: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} dev: true - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.5 - dev: true - /is-reference@3.0.2: resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: @@ -8926,6 +8512,7 @@ packages: /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + dev: false /mrmime@1.0.1: resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} @@ -9255,29 +8842,6 @@ packages: - encoding dev: false - /npm-bundled@2.0.1: - resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - npm-normalize-package-bin: 2.0.0 - dev: true - - /npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dev: true - - /npm-packlist@5.1.3: - resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - dependencies: - glob: 8.1.0 - ignore-walk: 5.0.1 - npm-bundled: 2.0.1 - npm-normalize-package-bin: 2.0.0 - dev: true - /npm-run-path@2.0.2: resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} engines: {node: '>=4'} @@ -9830,11 +9394,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /pretty-bytes@5.6.0: - resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} - engines: {node: '>=6'} - dev: true - /pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -9912,16 +9471,6 @@ packages: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} dev: false - /publint@0.2.6: - resolution: {integrity: sha512-zMwDVwrlLnCsviDXlczhuc5nIljsjZUgbLeKNyMYqbIJLRhcW81xrKsHlEu21YUaIxpa8T66tdIqP0mZm9ym3A==} - engines: {node: '>=16'} - hasBin: true - dependencies: - npm-packlist: 5.1.3 - picocolors: 1.0.0 - sade: 1.8.1 - dev: true - /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -10340,57 +9889,6 @@ packages: resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} dev: false - /rollup-plugin-dts@6.1.0(rollup@3.29.4)(typescript@5.3.2): - resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} - engines: {node: '>=16'} - peerDependencies: - rollup: ^3.29.4 || ^4 - typescript: ^4.5 || ^5.0 - dependencies: - magic-string: 0.30.5 - rollup: 3.29.4 - typescript: 5.3.2 - optionalDependencies: - '@babel/code-frame': 7.23.5 - dev: true - - /rollup-plugin-swc3@0.10.4(@swc/core@1.3.100)(rollup@3.29.4): - resolution: {integrity: sha512-ggLdYqAe3fZmhuyavDnuixMcNyK1/7CIlmJatW2UcKveN1GpQeFlaRjtXnK6/UCIt71SVr3Qy6p2iCLIkXq3iQ==} - engines: {node: '>=12'} - peerDependencies: - '@swc/core': '>=1.2.165' - rollup: ^2.0.0 || ^3.0.0 || ^4.0.0 - dependencies: - '@fastify/deepmerge': 1.3.0 - '@rollup/pluginutils': 5.0.5(rollup@3.29.4) - '@swc/core': 1.3.100(@swc/helpers@0.5.2) - get-tsconfig: 4.7.2 - rollup: 3.29.4 - rollup-swc-preserve-directives: 0.6.0(@swc/core@1.3.100)(rollup@3.29.4) - dev: true - - /rollup-swc-preserve-directives@0.5.0(@swc/core@1.3.100)(rollup@3.29.4): - resolution: {integrity: sha512-6lnPZn2laSsdYcdCSE28z4Dwg2mCN5loF+/wBjybh25GJmONjHTf3orWa5j1zjEWY3RcGRjJ8K/52ePqtfy6dw==} - peerDependencies: - '@swc/core': '>=1.3.79' - rollup: ^2.0.0 || ^3.0.0 - dependencies: - '@napi-rs/magic-string': 0.3.4 - '@swc/core': 1.3.100(@swc/helpers@0.5.2) - rollup: 3.29.4 - dev: true - - /rollup-swc-preserve-directives@0.6.0(@swc/core@1.3.100)(rollup@3.29.4): - resolution: {integrity: sha512-MkKETpYF2ml5p15IxqbvLdFxWV6b99ALT6qL/okXYhaaiK8Mqu95nyk90+m58Ye+jMOpnhQsdK3JGMIPUV7i5g==} - peerDependencies: - '@swc/core': '>=1.3.79' - rollup: ^2.0.0 || ^3.0.0 || ^4.0.0 - dependencies: - '@napi-rs/magic-string': 0.3.4 - '@swc/core': 1.3.100(@swc/helpers@0.5.2) - rollup: 3.29.4 - dev: true - /rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} @@ -10414,6 +9912,7 @@ packages: engines: {node: '>=6'} dependencies: mri: 1.2.0 + dev: false /safe-array-concat@1.0.1: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} @@ -11361,6 +10860,7 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + dev: false /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} @@ -11880,6 +11380,72 @@ packages: fsevents: 2.3.3 dev: true + /vitest@0.34.6(@vitest/ui@0.34.6): + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + dependencies: + '@types/chai': 4.3.9 + '@types/chai-subset': 1.3.4 + '@types/node': 20.9.5 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/ui': 0.34.6(vitest@0.34.6) + '@vitest/utils': 0.34.6 + acorn: 8.11.2 + acorn-walk: 8.3.0 + cac: 6.7.14 + chai: 4.3.10 + debug: 4.3.4 + local-pkg: 0.4.3 + magic-string: 0.30.5 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.4.3 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 4.5.0(@types/node@20.9.5) + vite-node: 0.34.6(@types/node@20.9.5) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vitest@0.34.6(@vitest/ui@0.34.6)(happy-dom@12.10.3): resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} From 35530171a1a252884b41d62d9eec04b4edca1602 Mon Sep 17 00:00:00 2001 From: Alex Yang Date: Sat, 9 Dec 2023 20:06:48 -0600 Subject: [PATCH 9/9] fix: packages --- packages/y-idb/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/y-idb/package.json b/packages/y-idb/package.json index da1d8bd..7f7b3e1 100644 --- a/packages/y-idb/package.json +++ b/packages/y-idb/package.json @@ -15,9 +15,9 @@ ], "exports": { "./browser": { - "types": "./dist/src/sync-provider/index.d.ts", - "import": "./dist/sync-provider.js", - "require": "./dist/sync-provider.cjs" + "types": "./dist/src/browser.d.ts", + "import": "./dist/browser.js", + "require": "./dist/browser.cjs" } }, "scripts": {