feat: bump blocksuite (#5953)

This commit is contained in:
regischen
2024-02-29 14:33:50 +08:00
committed by GitHub
parent fa534869e1
commit d1e6b23e1a
121 changed files with 665 additions and 674 deletions

View File

@@ -17,9 +17,9 @@
"@affine/debug": "workspace:*",
"@affine/env": "workspace:*",
"@affine/templates": "workspace:*",
"@blocksuite/blocks": "0.12.0-canary-202402220729-0868ac6",
"@blocksuite/global": "0.12.0-canary-202402220729-0868ac6",
"@blocksuite/store": "0.12.0-canary-202402220729-0868ac6",
"@blocksuite/blocks": "0.12.0-canary-202402271448-6d3a709",
"@blocksuite/global": "0.12.0-canary-202402271448-6d3a709",
"@blocksuite/store": "0.12.0-canary-202402271448-6d3a709",
"foxact": "^0.2.31",
"jotai": "^2.6.5",
"jotai-effect": "^0.5.0",
@@ -33,8 +33,8 @@
"devDependencies": {
"@affine-test/fixtures": "workspace:*",
"@affine/templates": "workspace:*",
"@blocksuite/lit": "0.12.0-canary-202402220729-0868ac6",
"@blocksuite/presets": "0.12.0-canary-202402220729-0868ac6",
"@blocksuite/lit": "0.12.0-canary-202402271448-6d3a709",
"@blocksuite/presets": "0.12.0-canary-202402271448-6d3a709",
"@testing-library/react": "^14.2.1",
"async-call-rpc": "^6.4.0",
"react": "^18.2.0",

View File

@@ -30,7 +30,7 @@ export async function migratePages(
spaces.forEach((space: YDoc) => {
try {
// Catch page upgrade error to avoid blocking the whole workspace migration.
schema.upgradePage(0, oldVersions, space);
schema.upgradeDoc(0, oldVersions, space);
} catch (e) {
console.error(e);
}

View File

@@ -28,7 +28,7 @@ export function checkWorkspaceCompatibility(
}
// exit if no pages
if (!workspace.meta.pages?.length) {
if (!workspace.meta.docs?.length) {
return null;
}
@@ -55,7 +55,7 @@ export function checkWorkspaceCompatibility(
// TODO: Catch compatibility error from blocksuite to show upgrade page.
// Temporarily follow the check logic of blocksuite.
if ((workspace.meta.pages?.length ?? 0) <= 1) {
if ((workspace.meta.docs?.length ?? 0) <= 1) {
try {
workspace.meta.validateVersion(workspace);
} catch (e) {

View File

@@ -1,8 +1,8 @@
import type { WorkspaceFlavour } from '@affine/env/workspace';
import type {
Doc,
DocSnapshot,
JobMiddleware,
Page,
PageSnapshot,
WorkspaceInfoSnapshot,
} from '@blocksuite/store';
import { Job } from '@blocksuite/store';
@@ -13,7 +13,7 @@ import { PageRecordList } from '../page';
import type { WorkspaceManager } from '../workspace';
import { replaceIdMiddleware } from './middleware';
export function initEmptyPage(page: Page, title?: string) {
export function initEmptyPage(page: Doc, title?: string) {
page.load(() => {
const pageBlockId = page.addBlock('affine:page', {
title: new page.Text(title ?? ''),
@@ -44,7 +44,7 @@ export async function buildShowcaseWorkspace(
const migrationMiddleware: JobMiddleware = ({ slots, workspace }) => {
slots.afterImport.on(payload => {
if (payload.type === 'page') {
workspace.schema.upgradePage(
workspace.schema.upgradeDoc(
info?.pageVersion ?? 0,
{},
payload.page.spaceDoc
@@ -65,15 +65,15 @@ export async function buildShowcaseWorkspace(
// @ts-expect-error - rethinking API
job._assetsManager.writeToBlob = async () => {};
const pageSnapshots: PageSnapshot[] = Object.entries(onboarding)
const docSnapshots: DocSnapshot[] = Object.entries(onboarding)
.filter(([key]) => {
return key.endsWith('snapshot.json');
})
.map(([_, value]) => value as unknown as PageSnapshot);
.map(([_, value]) => value as unknown as DocSnapshot);
await Promise.all(
pageSnapshots.map(snapshot => {
return job.snapshotToPage(snapshot);
docSnapshots.map(snapshot => {
return job.snapshotToDoc(snapshot);
})
);

View File

@@ -1,10 +1,10 @@
import type { Page as BlockSuitePage } from '@blocksuite/store';
import type { Doc as BlockSuiteDoc } from '@blocksuite/store';
import { createIdentifier, type ServiceCollection } from '../di';
import type { PageRecord } from './record';
import { PageScope } from './service-scope';
export const BlockSuitePageContext = createIdentifier<BlockSuitePage>(
export const BlockSuitePageContext = createIdentifier<BlockSuiteDoc>(
'BlockSuitePageContext'
);
@@ -13,7 +13,7 @@ export const PageRecordContext =
export function configurePageContext(
services: ServiceCollection,
blockSuitePage: BlockSuitePage,
blockSuitePage: BlockSuiteDoc,
pageRecord: PageRecord
) {
services

View File

@@ -9,7 +9,7 @@ import { CleanupService } from '../lifecycle';
import { Workspace, WorkspaceLocalState, WorkspaceScope } from '../workspace';
import { BlockSuitePageContext, PageRecordContext } from './context';
import { PageManager } from './manager';
import { Page } from './page';
import { Doc } from './page';
import { PageRecordList } from './record-list';
import { PageScope } from './service-scope';
@@ -22,5 +22,5 @@ export function configurePageServices(services: ServiceCollection) {
services
.scope(PageScope)
.add(CleanupService)
.add(Page, [PageRecordContext, BlockSuitePageContext, ServiceProvider]);
.add(Doc, [PageRecordContext, BlockSuitePageContext, ServiceProvider]);
}

View File

@@ -3,11 +3,11 @@ import { ObjectPool } from '../utils/object-pool';
import type { Workspace } from '../workspace';
import type { PageRecordList } from '.';
import { configurePageContext } from './context';
import { Page } from './page';
import { Doc } from './page';
import { PageScope } from './service-scope';
export class PageManager {
pool = new ObjectPool<string, Page>({});
pool = new ObjectPool<string, Doc>({});
constructor(
private readonly workspace: Workspace,
@@ -20,7 +20,7 @@ export class PageManager {
if (!pageRecord) {
throw new Error('Page record not found');
}
const blockSuitePage = this.workspace.blockSuiteWorkspace.getPage(pageId);
const blockSuitePage = this.workspace.blockSuiteWorkspace.getDoc(pageId);
if (!blockSuitePage) {
throw new Error('Page not found');
}
@@ -41,7 +41,7 @@ export class PageManager {
this.serviceProvider
);
const page = provider.get(Page);
const page = provider.get(Doc);
const { obj, release } = this.pool.put(pageId, page);

View File

@@ -1,12 +1,12 @@
import type { Page as BlockSuitePage } from '@blocksuite/store';
import type { Doc as BlockSuiteDoc } from '@blocksuite/store';
import type { ServiceProvider } from '@toeverything/infra/di';
import type { PageMode, PageRecord } from './record';
export class Page {
export class Doc {
constructor(
public readonly record: PageRecord,
public readonly blockSuitePage: BlockSuitePage,
public readonly blockSuiteDoc: BlockSuiteDoc,
public readonly services: ServiceProvider
) {}

View File

@@ -18,7 +18,7 @@ export class PageRecordList {
new Observable(subscriber => {
const emit = () => {
subscriber.next(
this.workspace.blockSuiteWorkspace.meta.pageMetas.map(
this.workspace.blockSuiteWorkspace.meta.docMetas.map(
v => new PageRecord(v.id, this.workspace, this.localState)
)
);
@@ -27,9 +27,7 @@ export class PageRecordList {
emit();
const dispose =
this.workspace.blockSuiteWorkspace.meta.pageMetasUpdated.on(
emit
).dispose;
this.workspace.blockSuiteWorkspace.meta.docMetaUpdated.on(emit).dispose;
return () => {
dispose();
};

View File

@@ -1,4 +1,4 @@
import type { PageMeta } from '@blocksuite/store';
import type { DocMeta } from '@blocksuite/store';
import { Observable } from 'rxjs';
import { LiveData } from '../livedata';
@@ -13,10 +13,10 @@ export class PageRecord {
private readonly localState: WorkspaceLocalState
) {}
meta = LiveData.from<PageMeta>(
meta = LiveData.from<DocMeta>(
new Observable(subscriber => {
const emit = () => {
const meta = this.workspace.blockSuiteWorkspace.meta.pageMetas.find(
const meta = this.workspace.blockSuiteWorkspace.meta.docMetas.find(
page => page.id === this.id
);
if (meta === undefined) {
@@ -28,9 +28,7 @@ export class PageRecord {
emit();
const dispose =
this.workspace.blockSuiteWorkspace.meta.pageMetasUpdated.on(
emit
).dispose;
this.workspace.blockSuiteWorkspace.meta.docMetaUpdated.on(emit).dispose;
return () => {
dispose();
};
@@ -43,8 +41,8 @@ export class PageRecord {
}
);
setMeta(meta: Partial<PageMeta>): void {
this.workspace.blockSuiteWorkspace.setPageMeta(this.id, meta);
setMeta(meta: Partial<DocMeta>): void {
this.workspace.blockSuiteWorkspace.setDocMeta(this.id, meta);
}
mode: LiveData<PageMode> = LiveData.from(

View File

@@ -22,7 +22,7 @@ describe('Workspace System', () => {
expect(workspaceListService.workspaceList.value.length).toBe(1);
const page = workspace.blockSuiteWorkspace.createPage({
const page = workspace.blockSuiteWorkspace.createDoc({
id: 'page0',
});
page.load();
@@ -30,7 +30,7 @@ describe('Workspace System', () => {
title: new page.Text('test-page'),
});
expect(workspace.blockSuiteWorkspace.pages.size).toBe(1);
expect(workspace.blockSuiteWorkspace.docs.size).toBe(1);
expect(
(page!.getBlockByFlavour('affine:page')[0] as any).title.toString()
).toBe('test-page');

View File

@@ -42,7 +42,7 @@ describe('SyncEngine', () => {
);
syncEngine.start();
const page = workspace.createPage({
const page = workspace.createDoc({
id: 'page0',
});
page.load();

View File

@@ -35,7 +35,7 @@ describe('SyncPeer', () => {
);
await syncPeer.waitForLoaded();
const page = workspace.createPage({
const page = workspace.createDoc({
id: 'page0',
});
page.load();
@@ -85,7 +85,7 @@ describe('SyncPeer', () => {
await syncPeer.waitForSynced();
expect(syncPeer.status.step).toBe(SyncPeerStep.Synced);
const page = workspace.createPage({
const page = workspace.createDoc({
id: 'page0',
});
expect(syncPeer.status.step).toBe(SyncPeerStep.LoadingSubDoc);