chore: release y-provider package (#4642)

This commit is contained in:
Alex Yang
2023-10-16 19:47:05 -05:00
committed by GitHub
parent 77efcad89d
commit a0095496d7
20 changed files with 99 additions and 52 deletions

View File

@@ -3,14 +3,11 @@ import type {
LocalIndexedDBBackgroundProvider, LocalIndexedDBBackgroundProvider,
SQLiteProvider, SQLiteProvider,
} from '@affine/env/workspace'; } from '@affine/env/workspace';
import {
syncDataSourceFromDoc,
syncDocFromDataSource,
} from '@affine/y-provider';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import { Button } from '@toeverything/components/button'; import { Button } from '@toeverything/components/button';
import { forceUpgradePages } from '@toeverything/infra/blocksuite'; import { forceUpgradePages } from '@toeverything/infra/blocksuite';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { syncDataSourceFromDoc, syncDocFromDataSource } from 'y-provider';
import { useCurrentWorkspace } from '../hooks/current/use-current-workspace'; import { useCurrentWorkspace } from '../hooks/current/use-current-workspace';

View File

@@ -4,11 +4,11 @@ import type {
LocalIndexedDBBackgroundProvider, LocalIndexedDBBackgroundProvider,
SQLiteProvider, SQLiteProvider,
} from '@affine/env/workspace'; } from '@affine/env/workspace';
import { type Status, syncDataSource } from '@affine/y-provider';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import type { Workspace } from '@blocksuite/store'; import type { Workspace } from '@blocksuite/store';
import { useSetAtom } from 'jotai'; import { useSetAtom } from 'jotai';
import { startTransition, useCallback, useMemo, useState } from 'react'; import { startTransition, useCallback, useMemo, useState } from 'react';
import { type Status, syncDataSource } from 'y-provider';
export function useDatasourceSync(workspace: Workspace) { export function useDatasourceSync(workspace: Workspace) {
const [status, setStatus] = useState<Status>({ const [status, setStatus] = useState<Status>({

View File

@@ -1,4 +1,3 @@
import type { DataSourceAdapter } from '@affine/y-provider';
import type { EditorContainer } from '@blocksuite/editor'; import type { EditorContainer } from '@blocksuite/editor';
import type { Page } from '@blocksuite/store'; import type { Page } from '@blocksuite/store';
import type { import type {
@@ -7,6 +6,7 @@ import type {
Workspace as BlockSuiteWorkspace, Workspace as BlockSuiteWorkspace,
} from '@blocksuite/store'; } from '@blocksuite/store';
import type { PropsWithChildren, ReactNode } from 'react'; import type { PropsWithChildren, ReactNode } from 'react';
import type { DataSourceAdapter } from 'y-provider';
import type { Collection } from './filter.js'; import type { Collection } from './filter.js';

View File

@@ -14,7 +14,6 @@
}, },
"devDependencies": { "devDependencies": {
"@affine/env": "workspace:*", "@affine/env": "workspace:*",
"@affine/y-provider": "workspace:*",
"@blocksuite/block-std": "0.0.0-20230926212737-6d4b1569-nightly", "@blocksuite/block-std": "0.0.0-20230926212737-6d4b1569-nightly",
"@blocksuite/blocks": "0.0.0-20230926212737-6d4b1569-nightly", "@blocksuite/blocks": "0.0.0-20230926212737-6d4b1569-nightly",
"@blocksuite/editor": "0.0.0-20230926212737-6d4b1569-nightly", "@blocksuite/editor": "0.0.0-20230926212737-6d4b1569-nightly",
@@ -24,24 +23,22 @@
"@testing-library/react": "^14.0.0", "@testing-library/react": "^14.0.0",
"@types/lodash.debounce": "^4.0.7", "@types/lodash.debounce": "^4.0.7",
"fake-indexeddb": "^5.0.0", "fake-indexeddb": "^5.0.0",
"vitest": "0.34.6" "vitest": "0.34.6",
"y-provider": "workspace:*"
}, },
"peerDependencies": { "peerDependencies": {
"@affine/y-provider": "workspace:*",
"@blocksuite/block-std": "*", "@blocksuite/block-std": "*",
"@blocksuite/blocks": "*", "@blocksuite/blocks": "*",
"@blocksuite/editor": "*", "@blocksuite/editor": "*",
"@blocksuite/global": "*", "@blocksuite/global": "*",
"@blocksuite/lit": "*", "@blocksuite/lit": "*",
"@blocksuite/store": "*" "@blocksuite/store": "*",
"y-provider": "workspace:*"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"@affine/env": { "@affine/env": {
"optional": true "optional": true
}, },
"@affine/y-provider": {
"optional": true
},
"@blocksuite/block-std": { "@blocksuite/block-std": {
"optional": true "optional": true
}, },
@@ -59,6 +56,9 @@
}, },
"@blocksuite/store": { "@blocksuite/store": {
"optional": true "optional": true
},
"y-provider": {
"optional": true
} }
}, },
"version": "0.10.0-canary.1" "version": "0.10.0-canary.1"

View File

@@ -1,5 +1,5 @@
import type { DataSourceAdapter, Status } from '@affine/y-provider';
import { useCallback, useSyncExternalStore } from 'react'; import { useCallback, useSyncExternalStore } from 'react';
import type { DataSourceAdapter, Status } from 'y-provider';
type UIStatus = type UIStatus =
| Status | Status

View File

@@ -20,7 +20,6 @@
"@affine/debug": "workspace:*", "@affine/debug": "workspace:*",
"@affine/env": "workspace:*", "@affine/env": "workspace:*",
"@affine/graphql": "workspace:*", "@affine/graphql": "workspace:*",
"@affine/y-provider": "workspace:*",
"@toeverything/hooks": "workspace:*", "@toeverything/hooks": "workspace:*",
"@toeverything/y-indexeddb": "workspace:*", "@toeverything/y-indexeddb": "workspace:*",
"async-call-rpc": "^6.3.1", "async-call-rpc": "^6.3.1",
@@ -36,6 +35,7 @@
"swr": "2.2.0", "swr": "2.2.0",
"valtio": "^1.11.2", "valtio": "^1.11.2",
"y-protocols": "^1.0.6", "y-protocols": "^1.0.6",
"y-provider": "workspace:*",
"yjs": "^13.6.8", "yjs": "^13.6.8",
"zod": "^3.22.4" "zod": "^3.22.4"
}, },

View File

@@ -10,7 +10,6 @@ import {
getWorkspacesQuery, getWorkspacesQuery,
} from '@affine/graphql'; } from '@affine/graphql';
import { createAffineDataSource } from '@affine/workspace/affine/index'; import { createAffineDataSource } from '@affine/workspace/affine/index';
import { syncDataSourceFromDoc } from '@affine/y-provider';
import { createIndexeddbStorage, Workspace } from '@blocksuite/store'; import { createIndexeddbStorage, Workspace } from '@blocksuite/store';
import { migrateLocalBlobStorage } from '@toeverything/infra/blocksuite'; import { migrateLocalBlobStorage } from '@toeverything/infra/blocksuite';
import { import {
@@ -19,6 +18,7 @@ import {
} from '@toeverything/y-indexeddb'; } from '@toeverything/y-indexeddb';
import { getSession } from 'next-auth/react'; import { getSession } from 'next-auth/react';
import { proxy } from 'valtio/vanilla'; import { proxy } from 'valtio/vanilla';
import { syncDataSourceFromDoc } from 'y-provider';
import { getOrCreateWorkspace } from '../manager'; import { getOrCreateWorkspace } from '../manager';
import { fetcher } from './gql'; import { fetcher } from './gql';

View File

@@ -1,5 +1,4 @@
import { DebugLogger } from '@affine/debug'; import { DebugLogger } from '@affine/debug';
import type { DocDataSource } from '@affine/y-provider';
import type { Socket } from 'socket.io-client'; import type { Socket } from 'socket.io-client';
import { Manager } from 'socket.io-client'; import { Manager } from 'socket.io-client';
import { import {
@@ -7,6 +6,7 @@ import {
type Awareness, type Awareness,
encodeAwarenessUpdate, encodeAwarenessUpdate,
} from 'y-protocols/awareness'; } from 'y-protocols/awareness';
import type { DocDataSource } from 'y-provider';
import type { Doc } from 'yjs'; import type { Doc } from 'yjs';
import { import {

View File

@@ -1,10 +1,10 @@
import { syncDataSource } from '@affine/y-provider';
import { createIndexeddbStorage } from '@blocksuite/store'; import { createIndexeddbStorage } from '@blocksuite/store';
import { import {
createIndexedDBDatasource, createIndexedDBDatasource,
DEFAULT_DB_NAME, DEFAULT_DB_NAME,
downloadBinary, downloadBinary,
} from '@toeverything/y-indexeddb'; } from '@toeverything/y-indexeddb';
import { syncDataSource } from 'y-provider';
import type { Doc } from 'yjs'; import type { Doc } from 'yjs';
import { applyUpdate } from 'yjs'; import { applyUpdate } from 'yjs';

View File

@@ -2,7 +2,6 @@ import type {
SQLiteDBDownloadProvider, SQLiteDBDownloadProvider,
SQLiteProvider, SQLiteProvider,
} from '@affine/env/workspace'; } from '@affine/env/workspace';
import { getDoc } from '@affine/y-provider';
import { __unstableSchemas, AffineSchemas } from '@blocksuite/blocks/models'; import { __unstableSchemas, AffineSchemas } from '@blocksuite/blocks/models';
import type { Y as YType } from '@blocksuite/store'; import type { Y as YType } from '@blocksuite/store';
import { Schema, Workspace } from '@blocksuite/store'; import { Schema, Workspace } from '@blocksuite/store';
@@ -14,6 +13,7 @@ import type {
import { nanoid } from 'nanoid'; import { nanoid } from 'nanoid';
import { setTimeout } from 'timers/promises'; import { setTimeout } from 'timers/promises';
import { beforeEach, describe, expect, test, vi } from 'vitest'; import { beforeEach, describe, expect, test, vi } from 'vitest';
import { getDoc } from 'y-provider';
import { import {
createSQLiteDBDownloadProvider, createSQLiteDBDownloadProvider,

View File

@@ -4,7 +4,6 @@ import type {
LocalIndexedDBBackgroundProvider, LocalIndexedDBBackgroundProvider,
LocalIndexedDBDownloadProvider, LocalIndexedDBDownloadProvider,
} from '@affine/env/workspace'; } from '@affine/env/workspace';
import { createLazyProvider } from '@affine/y-provider';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import type { DocProviderCreator } from '@blocksuite/store'; import type { DocProviderCreator } from '@blocksuite/store';
import { Workspace } from '@blocksuite/store'; import { Workspace } from '@blocksuite/store';
@@ -13,6 +12,7 @@ import {
createIndexedDBDatasource, createIndexedDBDatasource,
createIndexedDBProvider as create, createIndexedDBProvider as create,
} from '@toeverything/y-indexeddb'; } from '@toeverything/y-indexeddb';
import { createLazyProvider } from 'y-provider';
import { encodeStateVector } from 'yjs'; import { encodeStateVector } from 'yjs';
import { createAffineDataSource } from '../affine'; import { createAffineDataSource } from '../affine';

View File

@@ -2,10 +2,10 @@ import type {
SQLiteDBDownloadProvider, SQLiteDBDownloadProvider,
SQLiteProvider, SQLiteProvider,
} from '@affine/env/workspace'; } from '@affine/env/workspace';
import { createLazyProvider, type DocDataSource } from '@affine/y-provider';
import { assertExists } from '@blocksuite/global/utils'; import { assertExists } from '@blocksuite/global/utils';
import type { DocProviderCreator } from '@blocksuite/store'; import type { DocProviderCreator } from '@blocksuite/store';
import { Workspace as BlockSuiteWorkspace } from '@blocksuite/store'; import { Workspace as BlockSuiteWorkspace } from '@blocksuite/store';
import { createLazyProvider, type DocDataSource } from 'y-provider';
import type { Doc } from 'yjs'; import type { Doc } from 'yjs';
import { localProviderLogger as logger } from './logger'; import { localProviderLogger as logger } from './logger';

View File

@@ -33,10 +33,10 @@
}, },
"dependencies": { "dependencies": {
"idb": "^7.1.1", "idb": "^7.1.1",
"nanoid": "^5.0.1" "nanoid": "^5.0.1",
"y-provider": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@affine/y-provider": "workspace:*",
"@blocksuite/blocks": "0.0.0-20230926212737-6d4b1569-nightly", "@blocksuite/blocks": "0.0.0-20230926212737-6d4b1569-nightly",
"@blocksuite/store": "0.0.0-20230926212737-6d4b1569-nightly", "@blocksuite/store": "0.0.0-20230926212737-6d4b1569-nightly",
"fake-indexeddb": "^5.0.0", "fake-indexeddb": "^5.0.0",

View File

@@ -1,11 +1,11 @@
import { assertExists } from '@blocksuite/global/utils';
import type { IDBPDatabase } from 'idb';
import { openDB } from 'idb';
import { import {
createLazyProvider, createLazyProvider,
type DocDataSource, type DocDataSource,
writeOperation, writeOperation,
} from '@affine/y-provider'; } from 'y-provider';
import { assertExists } from '@blocksuite/global/utils';
import type { IDBPDatabase } from 'idb';
import { openDB } from 'idb';
import type { Doc } from 'yjs'; import type { Doc } from 'yjs';
import { diffUpdate, encodeStateVectorFromUpdate } from 'yjs'; import { diffUpdate, encodeStateVectorFromUpdate } from 'yjs';

View File

@@ -1,5 +1,5 @@
import type { DataSourceAdapter } from '@affine/y-provider';
import type { DBSchema, IDBPDatabase } from 'idb'; import type { DBSchema, IDBPDatabase } from 'idb';
import type { DataSourceAdapter } from 'y-provider';
export const dbVersion = 1; export const dbVersion = 1;
export const DEFAULT_DB_NAME = 'affine-local'; export const DEFAULT_DB_NAME = 'affine-local';

View File

@@ -21,9 +21,10 @@ export default defineConfig({
globals: { globals: {
idb: 'idb', idb: 'idb',
yjs: 'yjs', yjs: 'yjs',
'y-provider': 'yProvider',
}, },
}, },
external: ['idb', 'yjs'], external: ['idb', 'yjs', 'y-provider'],
}, },
}, },
plugins: [ plugins: [

View File

@@ -1,17 +1,35 @@
{ {
"name": "@affine/y-provider", "name": "y-provider",
"type": "module", "type": "module",
"version": "0.10.0-canary.1", "version": "0.10.0-canary.0",
"description": "Yjs provider utilities for AFFiNE", "description": "Yjs provider protocol for multi document support",
"main": "./src/index.ts",
"module": "./src/index.ts",
"exports": { "exports": {
".": "./src/index.ts" ".": "./src/index.ts"
}, },
"files": [
"dist"
],
"publishConfig": {
"access": "public",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"require": "./dist/index.cjs",
"default": "./dist/index.umd.cjs"
}
}
},
"scripts": {
"build": "vite build"
},
"devDependencies": { "devDependencies": {
"@blocksuite/store": "0.0.0-20230926212737-6d4b1569-nightly" "@blocksuite/store": "0.0.0-20230926212737-6d4b1569-nightly",
"vite": "^4.4.11",
"vite-plugin-dts": "3.6.0",
"vitest": "0.34.6"
}, },
"peerDependencies": { "peerDependencies": {
"yjs": "^13.5.51" "yjs": "^13"
} }
} }

View File

@@ -0,0 +1,27 @@
import { resolve } from 'node:path';
import { fileURLToPath } from 'url';
import { defineConfig } from 'vite';
import dts from 'vite-plugin-dts';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
export default defineConfig({
build: {
minify: 'esbuild',
sourcemap: true,
lib: {
entry: resolve(__dirname, 'src/index.ts'),
fileName: 'index',
name: 'ToEverythingIndexedDBProvider',
},
rollupOptions: {
external: ['idb', 'yjs'],
},
},
plugins: [
dts({
entryRoot: resolve(__dirname, 'src'),
}),
],
});

View File

@@ -2,6 +2,7 @@
packages=( packages=(
"y-indexeddb" "y-indexeddb"
"y-provider"
"infra" "infra"
"sdk" "sdk"
) )

View File

@@ -839,7 +839,6 @@ __metadata:
"@affine/debug": "workspace:*" "@affine/debug": "workspace:*"
"@affine/env": "workspace:*" "@affine/env": "workspace:*"
"@affine/graphql": "workspace:*" "@affine/graphql": "workspace:*"
"@affine/y-provider": "workspace:*"
"@testing-library/react": ^14.0.0 "@testing-library/react": ^14.0.0
"@toeverything/hooks": "workspace:*" "@toeverything/hooks": "workspace:*"
"@toeverything/y-indexeddb": "workspace:*" "@toeverything/y-indexeddb": "workspace:*"
@@ -860,6 +859,7 @@ __metadata:
vitest: 0.34.6 vitest: 0.34.6
ws: ^8.14.2 ws: ^8.14.2
y-protocols: ^1.0.6 y-protocols: ^1.0.6
y-provider: "workspace:*"
yjs: ^13.6.8 yjs: ^13.6.8
zod: ^3.22.4 zod: ^3.22.4
peerDependencies: peerDependencies:
@@ -868,16 +868,6 @@ __metadata:
languageName: unknown languageName: unknown
linkType: soft linkType: soft
"@affine/y-provider@workspace:*, @affine/y-provider@workspace:packages/y-provider":
version: 0.0.0-use.local
resolution: "@affine/y-provider@workspace:packages/y-provider"
dependencies:
"@blocksuite/store": 0.0.0-20230926212737-6d4b1569-nightly
peerDependencies:
yjs: ^13.5.51
languageName: unknown
linkType: soft
"@agoric/babel-generator@npm:^7.17.6": "@agoric/babel-generator@npm:^7.17.6":
version: 7.17.6 version: 7.17.6
resolution: "@agoric/babel-generator@npm:7.17.6" resolution: "@agoric/babel-generator@npm:7.17.6"
@@ -12370,7 +12360,6 @@ __metadata:
resolution: "@toeverything/hooks@workspace:packages/hooks" resolution: "@toeverything/hooks@workspace:packages/hooks"
dependencies: dependencies:
"@affine/env": "workspace:*" "@affine/env": "workspace:*"
"@affine/y-provider": "workspace:*"
"@blocksuite/block-std": 0.0.0-20230926212737-6d4b1569-nightly "@blocksuite/block-std": 0.0.0-20230926212737-6d4b1569-nightly
"@blocksuite/blocks": 0.0.0-20230926212737-6d4b1569-nightly "@blocksuite/blocks": 0.0.0-20230926212737-6d4b1569-nightly
"@blocksuite/editor": 0.0.0-20230926212737-6d4b1569-nightly "@blocksuite/editor": 0.0.0-20230926212737-6d4b1569-nightly
@@ -12386,19 +12375,18 @@ __metadata:
react: 18.2.0 react: 18.2.0
swr: 2.2.0 swr: 2.2.0
vitest: 0.34.6 vitest: 0.34.6
y-provider: "workspace:*"
peerDependencies: peerDependencies:
"@affine/y-provider": "workspace:*"
"@blocksuite/block-std": "*" "@blocksuite/block-std": "*"
"@blocksuite/blocks": "*" "@blocksuite/blocks": "*"
"@blocksuite/editor": "*" "@blocksuite/editor": "*"
"@blocksuite/global": "*" "@blocksuite/global": "*"
"@blocksuite/lit": "*" "@blocksuite/lit": "*"
"@blocksuite/store": "*" "@blocksuite/store": "*"
y-provider: "workspace:*"
peerDependenciesMeta: peerDependenciesMeta:
"@affine/env": "@affine/env":
optional: true optional: true
"@affine/y-provider":
optional: true
"@blocksuite/block-std": "@blocksuite/block-std":
optional: true optional: true
"@blocksuite/blocks": "@blocksuite/blocks":
@@ -12411,6 +12399,8 @@ __metadata:
optional: true optional: true
"@blocksuite/store": "@blocksuite/store":
optional: true optional: true
y-provider:
optional: true
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -12475,7 +12465,6 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@toeverything/y-indexeddb@workspace:packages/y-indexeddb" resolution: "@toeverything/y-indexeddb@workspace:packages/y-indexeddb"
dependencies: dependencies:
"@affine/y-provider": "workspace:*"
"@blocksuite/blocks": 0.0.0-20230926212737-6d4b1569-nightly "@blocksuite/blocks": 0.0.0-20230926212737-6d4b1569-nightly
"@blocksuite/store": 0.0.0-20230926212737-6d4b1569-nightly "@blocksuite/store": 0.0.0-20230926212737-6d4b1569-nightly
fake-indexeddb: ^5.0.0 fake-indexeddb: ^5.0.0
@@ -12485,6 +12474,7 @@ __metadata:
vite-plugin-dts: 3.6.0 vite-plugin-dts: 3.6.0
vitest: 0.34.6 vitest: 0.34.6
y-indexeddb: ^9.0.11 y-indexeddb: ^9.0.11
y-provider: "workspace:*"
peerDependencies: peerDependencies:
yjs: ^13 yjs: ^13
languageName: unknown languageName: unknown
@@ -34487,6 +34477,19 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"y-provider@workspace:*, y-provider@workspace:packages/y-provider":
version: 0.0.0-use.local
resolution: "y-provider@workspace:packages/y-provider"
dependencies:
"@blocksuite/store": 0.0.0-20230926212737-6d4b1569-nightly
vite: ^4.4.11
vite-plugin-dts: 3.6.0
vitest: 0.34.6
peerDependencies:
yjs: ^13
languageName: unknown
linkType: soft
"y18n@npm:^4.0.0": "y18n@npm:^4.0.0":
version: 4.0.3 version: 4.0.3
resolution: "y18n@npm:4.0.3" resolution: "y18n@npm:4.0.3"