diff --git a/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts b/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts index aecf9007..03f10509 100644 --- a/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts +++ b/apps/web/app/api/openeditor/emoji-data/[locale]/[file]/route.ts @@ -1,4 +1,4 @@ -import { createOpenEditorEmojiDataResponse } from "@openeditor/emoji/data"; +import { createOpenEditorEmojiDataResponse } from "@openeditor/document/emoji"; export const dynamic = "force-static"; diff --git a/apps/web/app/api/pages/[pageId]/export/page-export.test.ts b/apps/web/app/api/pages/[pageId]/export/page-export.test.ts index 2adaa2fb..927ae1c9 100644 --- a/apps/web/app/api/pages/[pageId]/export/page-export.test.ts +++ b/apps/web/app/api/pages/[pageId]/export/page-export.test.ts @@ -2,7 +2,7 @@ import { describe, expect, test } from "bun:test"; import { createOpenEditorImageAssetResolver, exportOpenEditorDocument, -} from "@openeditor/exporters/export"; +} from "@openeditor/export/export"; import { projectBaseBlocksDocumentForPortableExport } from "@baseblocks/openeditor-contracts"; import { assertStoredChecksum, diff --git a/apps/web/app/api/pages/[pageId]/export/route.ts b/apps/web/app/api/pages/[pageId]/export/route.ts index 744cb141..f2026c65 100644 --- a/apps/web/app/api/pages/[pageId]/export/route.ts +++ b/apps/web/app/api/pages/[pageId]/export/route.ts @@ -14,13 +14,13 @@ import { import { api } from "@baseblocks/backend"; import { projectBaseBlocksDocumentForPortableExport } from "@baseblocks/openeditor-contracts"; import { baseBlocksBlockRegistry } from "@baseblocks/openeditor-contracts/block-registry"; -import { isOpenEditorDocument } from "@openeditor/core"; +import { isOpenEditorDocument } from "@openeditor/document"; import { createOpenEditorImageAssetResolver, exportOpenEditorDocument, openEditorExportFormats, -} from "@openeditor/exporters/export"; -import type { ProseMirrorNode } from "@openeditor/core"; +} from "@openeditor/export/export"; +import type { ProseMirrorNode } from "@openeditor/document"; import { type NextRequest, NextResponse } from "next/server"; export const runtime = "nodejs"; diff --git a/apps/web/features/marketing/openeditor-demo.tsx b/apps/web/features/marketing/openeditor-demo.tsx index 1532a4da..ae36f911 100644 --- a/apps/web/features/marketing/openeditor-demo.tsx +++ b/apps/web/features/marketing/openeditor-demo.tsx @@ -5,7 +5,7 @@ import { createDocument, textBlock, type OpenEditorBlock, -} from "@openeditor/core"; +} from "@openeditor/document"; import { OpenEditorContent, useOpenEditorController } from "@openeditor/react"; import { OpenEditorBlockMenu, diff --git a/apps/web/features/openeditor/attachment-runtime.ts b/apps/web/features/openeditor/attachment-runtime.ts index 8afca438..b5feb7b9 100644 --- a/apps/web/features/openeditor/attachment-runtime.ts +++ b/apps/web/features/openeditor/attachment-runtime.ts @@ -10,7 +10,7 @@ import type { OpenEditorAttachmentRuntime, OpenEditorAttachmentSnapshot, OpenEditorAttachmentUploadInput, -} from "@openeditor/core"; +} from "@openeditor/document"; import { useConvex, useMutation } from "convex/react"; const MAX_ATTACHMENT_SIZE = 50 * 1024 * 1024; diff --git a/apps/web/features/openeditor/custom-block-viewer.tsx b/apps/web/features/openeditor/custom-block-viewer.tsx index 24e7a866..36ce000f 100644 --- a/apps/web/features/openeditor/custom-block-viewer.tsx +++ b/apps/web/features/openeditor/custom-block-viewer.tsx @@ -6,7 +6,7 @@ import type { OpenEditorDocument, OpenEditorImageRuntime, OpenEditorPageRuntime, -} from "@openeditor/core"; +} from "@openeditor/document"; import { OpenEditorViewer } from "@openeditor/react/viewer"; import { libraryViewer } from "./extensions/library"; import { searchViewer } from "./extensions/search"; diff --git a/apps/web/features/openeditor/custom-blocks.test.ts b/apps/web/features/openeditor/custom-blocks.test.ts index c44e10c8..8f9dce09 100644 --- a/apps/web/features/openeditor/custom-blocks.test.ts +++ b/apps/web/features/openeditor/custom-blocks.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import { BaseBlocksCustomBlockAssetAuthorization, extractBaseBlocksCustomBlockAssetIds, diff --git a/apps/web/features/openeditor/custom-blocks.tsx b/apps/web/features/openeditor/custom-blocks.tsx index 7cd941a4..1c6a7cc6 100644 --- a/apps/web/features/openeditor/custom-blocks.tsx +++ b/apps/web/features/openeditor/custom-blocks.tsx @@ -9,13 +9,13 @@ import { } from "@hugeicons/core-free-icons"; import { OpenEditorContent, useOpenEditorController } from "@openeditor/react"; import { baseBlocksCustomBlockEditors } from "@baseblocks/custom-blocks/editor"; -import { extractOpenEditorCustomBlockAssetReferences } from "@openeditor/core"; +import { extractOpenEditorCustomBlockAssetReferences } from "@openeditor/document"; import type { OpenEditorAttachmentRuntime, OpenEditorDocument, OpenEditorImageRuntime, OpenEditorPageRuntime, -} from "@openeditor/core"; +} from "@openeditor/document"; import { useRef, type ComponentProps } from "react"; import { libraryEditor } from "./extensions/library"; import { searchEditor } from "./extensions/search"; diff --git a/apps/web/features/openeditor/image-runtime.ts b/apps/web/features/openeditor/image-runtime.ts index 0667ac01..a0134f7d 100644 --- a/apps/web/features/openeditor/image-runtime.ts +++ b/apps/web/features/openeditor/image-runtime.ts @@ -10,7 +10,7 @@ import type { OpenEditorImageRuntime, OpenEditorImageSnapshot, OpenEditorImageUploadInput, -} from "@openeditor/core"; +} from "@openeditor/document"; import { useConvex, useMutation } from "convex/react"; import { useMemo } from "react"; diff --git a/apps/web/features/openeditor/open-editor-document-sync.test.ts b/apps/web/features/openeditor/open-editor-document-sync.test.ts index 785d51d8..3a3c9ad4 100644 --- a/apps/web/features/openeditor/open-editor-document-sync.test.ts +++ b/apps/web/features/openeditor/open-editor-document-sync.test.ts @@ -3,7 +3,7 @@ import { createDocument, textBlock, type OpenEditorDocument, -} from "@openeditor/core"; +} from "@openeditor/document"; import { areOpenEditorDocumentsEqual, shouldSyncOpenEditorDocument, diff --git a/apps/web/features/openeditor/open-editor-document-sync.ts b/apps/web/features/openeditor/open-editor-document-sync.ts index ab6be342..802b4456 100644 --- a/apps/web/features/openeditor/open-editor-document-sync.ts +++ b/apps/web/features/openeditor/open-editor-document-sync.ts @@ -1,4 +1,4 @@ -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; function areOpenEditorValuesEqual(left: unknown, right: unknown): boolean { if (Object.is(left, right)) return true; diff --git a/apps/web/features/openeditor/openeditor-page-editor.tsx b/apps/web/features/openeditor/openeditor-page-editor.tsx index a94f17d8..5098d3a6 100644 --- a/apps/web/features/openeditor/openeditor-page-editor.tsx +++ b/apps/web/features/openeditor/openeditor-page-editor.tsx @@ -17,7 +17,7 @@ import type { OpenEditorDocument, OpenEditorImageRuntime, OpenEditorPageRuntime, -} from "@openeditor/core"; +} from "@openeditor/document"; import { OpenEditorContent, OpenEditorPageHeader, diff --git a/apps/web/features/openeditor/page-tabs-model.test.ts b/apps/web/features/openeditor/page-tabs-model.test.ts index ae6b4215..c31a0119 100644 --- a/apps/web/features/openeditor/page-tabs-model.test.ts +++ b/apps/web/features/openeditor/page-tabs-model.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import { createDocument, textBlock } from "@openeditor/core"; +import { createDocument, textBlock } from "@openeditor/document"; import { assertBaseBlocksDocument } from "@baseblocks/openeditor-contracts"; import { createOpenEditorPageTabs, diff --git a/apps/web/features/openeditor/page-tabs-model.ts b/apps/web/features/openeditor/page-tabs-model.ts index 69a1d234..dfbb8935 100644 --- a/apps/web/features/openeditor/page-tabs-model.ts +++ b/apps/web/features/openeditor/page-tabs-model.ts @@ -1,4 +1,4 @@ -import type { OpenEditorBlock, OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorBlock, OpenEditorDocument } from "@openeditor/document"; type OpenEditorTextRange = { from: number; diff --git a/apps/web/features/openeditor/page-tabs.tsx b/apps/web/features/openeditor/page-tabs.tsx index 41a27e90..16e4e3ab 100644 --- a/apps/web/features/openeditor/page-tabs.tsx +++ b/apps/web/features/openeditor/page-tabs.tsx @@ -17,7 +17,7 @@ import { type OpenEditorDocument, type OpenEditorImageRuntime, type OpenEditorPageRuntime, -} from "@openeditor/core"; +} from "@openeditor/document"; import { OpenEditorContent, OpenEditorViewer, diff --git a/apps/web/features/openeditor/use-open-editor-document-sync.ts b/apps/web/features/openeditor/use-open-editor-document-sync.ts index f73f0399..938b44b4 100644 --- a/apps/web/features/openeditor/use-open-editor-document-sync.ts +++ b/apps/web/features/openeditor/use-open-editor-document-sync.ts @@ -1,6 +1,6 @@ "use client"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import type { OpenEditorController } from "@openeditor/react"; import { useEffect, useRef } from "react"; import { diff --git a/apps/web/features/openeditor/use-versioned-page-document.test.tsx b/apps/web/features/openeditor/use-versioned-page-document.test.tsx index 730aa420..d18ec8d4 100644 --- a/apps/web/features/openeditor/use-versioned-page-document.test.tsx +++ b/apps/web/features/openeditor/use-versioned-page-document.test.tsx @@ -1,6 +1,6 @@ import { describe, expect, test } from "bun:test"; import type { Id } from "@baseblocks/backend"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import { renderToStaticMarkup } from "react-dom/server"; import { useVersionedPageDocument } from "./use-versioned-page-document"; diff --git a/apps/web/features/openeditor/use-versioned-page-document.ts b/apps/web/features/openeditor/use-versioned-page-document.ts index 49084b4c..cc189093 100644 --- a/apps/web/features/openeditor/use-versioned-page-document.ts +++ b/apps/web/features/openeditor/use-versioned-page-document.ts @@ -9,7 +9,7 @@ import { reconcileChildPageProjection, } from "@baseblocks/openeditor-contracts"; import type { SaveStatus } from "@baseblocks/domain"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import { useCallback, useEffect, useRef, useState } from "react"; import { areOpenEditorDocumentsEqual } from "./open-editor-document-sync"; import type { VersionedDocument } from "./versioned-document"; diff --git a/apps/web/features/openeditor/versioned-document.ts b/apps/web/features/openeditor/versioned-document.ts index 489694d0..802afdad 100644 --- a/apps/web/features/openeditor/versioned-document.ts +++ b/apps/web/features/openeditor/versioned-document.ts @@ -1,4 +1,4 @@ -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; export interface VersionedDocument { document: OpenEditorDocument; diff --git a/apps/web/features/published-sites/image-runtime.ts b/apps/web/features/published-sites/image-runtime.ts index fa0deb38..c3474a51 100644 --- a/apps/web/features/published-sites/image-runtime.ts +++ b/apps/web/features/published-sites/image-runtime.ts @@ -1,4 +1,4 @@ -import type { OpenEditorImageRuntime } from "@openeditor/core"; +import type { OpenEditorImageRuntime } from "@openeditor/document"; export function createPublishedImageRuntime( imageIds: readonly string[], diff --git a/apps/web/features/published-sites/page-content.tsx b/apps/web/features/published-sites/page-content.tsx index 0971c6fe..8918824d 100644 --- a/apps/web/features/published-sites/page-content.tsx +++ b/apps/web/features/published-sites/page-content.tsx @@ -13,7 +13,7 @@ import { Button } from "@baseblocks/ui/button"; import type { OpenEditorDocument, OpenEditorPageRuntime, -} from "@openeditor/core"; +} from "@openeditor/document"; import { OpenEditorViewer } from "@openeditor/react"; import { OpenEditorThemeProvider } from "@openeditor/ui"; import "@openeditor/ui/styles.css"; diff --git a/apps/web/features/published-sites/site-options-menu.tsx b/apps/web/features/published-sites/site-options-menu.tsx index 671c46bd..1aa92c29 100644 --- a/apps/web/features/published-sites/site-options-menu.tsx +++ b/apps/web/features/published-sites/site-options-menu.tsx @@ -21,7 +21,7 @@ import { DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@baseblocks/ui/dropdown-menu"; -import type { OpenEditorExportFormat } from "@openeditor/exporters/export"; +import type { OpenEditorExportFormat } from "@openeditor/export/export"; import { useLocale, useTranslations } from "next-intl"; import { useTheme } from "next-themes"; diff --git a/apps/web/package.json b/apps/web/package.json index ea70e3e0..79e97d6b 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -30,13 +30,12 @@ "@flags-sdk/vercel": "^1.4.6", "@hugeicons/core-free-icons": "^4.2.3", "@hugeicons/react": "^1.1.9", - "@openeditor/core": "0.0.52", - "@openeditor/custom-block": "0.0.52", - "@openeditor/emoji": "0.0.52", - "@openeditor/exporters": "0.0.52", - "@openeditor/react": "0.0.52", - "@openeditor/ui": "0.0.52", - "@openeditor/workspace": "0.0.52", + "@openeditor/custom-block": "0.0.53", + "@openeditor/document": "0.0.53", + "@openeditor/export": "0.0.53", + "@openeditor/mutations": "0.0.53", + "@openeditor/react": "0.0.53", + "@openeditor/ui": "0.0.53", "@vercel/analytics": "^2.0.1", "@vercel/sdk": "^1.28.8", "ai": "7.0.49", diff --git a/bun.lock b/bun.lock index e800e9d3..35f61416 100644 --- a/bun.lock +++ b/bun.lock @@ -34,13 +34,12 @@ "@flags-sdk/vercel": "^1.4.6", "@hugeicons/core-free-icons": "^4.2.3", "@hugeicons/react": "^1.1.9", - "@openeditor/core": "0.0.52", - "@openeditor/custom-block": "0.0.52", - "@openeditor/emoji": "0.0.52", - "@openeditor/exporters": "0.0.52", - "@openeditor/react": "0.0.52", - "@openeditor/ui": "0.0.52", - "@openeditor/workspace": "0.0.52", + "@openeditor/custom-block": "0.0.53", + "@openeditor/document": "0.0.53", + "@openeditor/export": "0.0.53", + "@openeditor/mutations": "0.0.53", + "@openeditor/react": "0.0.53", + "@openeditor/ui": "0.0.53", "@vercel/analytics": "^2.0.1", "@vercel/sdk": "^1.28.8", "ai": "7.0.49", @@ -92,9 +91,9 @@ "@convex-dev/workpool": "^0.4.9", "@firecrawl/anydoc": "0.1.9", "@noble/hashes": "2.0.1", - "@openeditor/core": "0.0.52", - "@openeditor/custom-block": "0.0.52", - "@openeditor/workspace": "0.0.52", + "@openeditor/custom-block": "0.0.53", + "@openeditor/document": "0.0.53", + "@openeditor/mutations": "0.0.53", "@polar-sh/sdk": "0.49.0", "ai": "7.0.49", "better-auth": "^1.6.23", @@ -122,8 +121,8 @@ "@dnd-kit/react": "^0.5.0", "@hugeicons/core-free-icons": "^4.2.3", "@hugeicons/react": "^1.1.9", - "@openeditor/core": "0.0.52", - "@openeditor/custom-block": "0.0.52", + "@openeditor/custom-block": "0.0.53", + "@openeditor/document": "0.0.53", "react": "19.2.7", }, "devDependencies": { @@ -155,11 +154,8 @@ "version": "0.0.0", "dependencies": { "@baseblocks/custom-blocks": "workspace:*", - "@baseblocks/domain": "workspace:*", - "@openeditor/core": "0.0.52", - "@openeditor/embedded-runtime": "0.0.52", - "@openeditor/extensions": "0.0.52", - "@openeditor/tiptap": "0.0.52", + "@openeditor/document": "0.0.53", + "@openeditor/engine": "0.0.53", }, "devDependencies": { "@baseblocks/tsconfig": "workspace:*", @@ -672,27 +668,21 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@openeditor/core": ["@openeditor/core@0.0.52", "", {}, "sha512-l/U2KpzwA+M252WvRs5+zq6LPz1JXAn8V/vk5mU2e39PZyn0xWztCni9Caeo59BBVZAxN1EAUtJeTNwOjKtYnA=="], - - "@openeditor/custom-block": ["@openeditor/custom-block@0.0.52", "", { "dependencies": { "@openeditor/core": "0.0.52" }, "peerDependencies": { "@tiptap/core": ">=3.29.2", "@tiptap/react": ">=3.29.2", "react": ">=19" }, "optionalPeers": ["@tiptap/core", "@tiptap/react"] }, "sha512-ku+EtP+vOnCoCKouoRx8pYejvyQb1YLOyj8JfTl31lg25oQ5oRRjlY8bfRrF6u73skp2ooQwGhdAwZDf6hAetA=="], - - "@openeditor/embedded-runtime": ["@openeditor/embedded-runtime@0.0.52", "", { "dependencies": { "@openeditor/core": "0.0.52", "@openeditor/extensions": "0.0.52", "@openeditor/tiptap": "0.0.52", "@tiptap/core": "3.29.2", "@tiptap/extension-image": "3.29.2", "@tiptap/extension-link": "3.29.2", "@tiptap/extension-table": "3.29.2", "@tiptap/extension-task-item": "3.29.2", "@tiptap/extension-task-list": "3.29.2", "@tiptap/extension-text-align": "3.29.2", "@tiptap/extension-underline": "3.29.2", "@tiptap/extension-unique-id": "3.29.2", "@tiptap/pm": "3.29.2", "@tiptap/starter-kit": "3.29.2" } }, "sha512-lYnEYZbsgfT4KbdwepCXOLEpbTkcL6g14O3WGH7ussc7BEx1lA0cRd44Rxx9yTlti6NN8lFEWL6RnYeW+cXmzA=="], - - "@openeditor/emoji": ["@openeditor/emoji@0.0.52", "", { "dependencies": { "@base-ui/react": "^1.6.0", "emojibase-data": "16.0.2", "frimousse": "0.3.0" }, "peerDependencies": { "react": ">=19" } }, "sha512-cwu75ct3syTJPoVruwlhm86BrM42ZDVVR2eMoDkgU6nfNaHaLqHuWJGWm4oTTtvAsGncUU6i6gMWxFB+mP2aIQ=="], + "@openeditor/custom-block": ["@openeditor/custom-block@0.0.53", "", { "dependencies": { "@openeditor/document": "0.0.53" }, "peerDependencies": { "@tiptap/core": ">=3.29.2", "@tiptap/react": ">=3.29.2", "react": ">=19" }, "optionalPeers": ["@tiptap/core", "@tiptap/react"] }, "sha512-ofs3bHKzhf5Kv1pIFDR4ehshADl7H6iHnzY/hpP+Duosbex0Fdq7h7w2sgFLBtgfXkZl8+dk8uRWfiyjjhjekw=="], - "@openeditor/exporters": ["@openeditor/exporters@0.0.52", "", { "dependencies": { "@openeditor/core": "0.0.52", "docx": "^9.7.1", "jszip": "^3.10.1", "parse5": "^7.3.0" } }, "sha512-yKqQSEWg5nPoLDtcv7Hz2/dzmooLquLzzNZ2KAEuInDaduuHjTQ+pE5bezEf9NNI0zaPJlyoqap/FltduWck/A=="], + "@openeditor/document": ["@openeditor/document@0.0.53", "", { "dependencies": { "emojibase-data": "16.0.2" } }, "sha512-NKzkmAY941o42gkXU8CeaNRMuvN/ADEXzmxLeMWi9cK5dtrm0LUrGrd0V97dGctiMaZrlKntJjrAifKzjmR/Fg=="], - "@openeditor/extensions": ["@openeditor/extensions@0.0.52", "", { "dependencies": { "@openeditor/core": "0.0.52" } }, "sha512-XSV4fZ6HdXnUUTXwr27TEZiEdOLE3blo7yQRffWcWs0RZYFPcWBI47zJvN6CVzB3xsAT+MujtLqPdI3kMx9tCw=="], + "@openeditor/engine": ["@openeditor/engine@0.0.53", "", { "dependencies": { "@openeditor/document": "0.0.53", "@tiptap/core": "3.29.2", "@tiptap/extension-blockquote": "3.29.2", "@tiptap/extension-bold": "3.29.2", "@tiptap/extension-bullet-list": "3.29.2", "@tiptap/extension-code": "3.29.2", "@tiptap/extension-code-block": "3.29.2", "@tiptap/extension-document": "3.29.2", "@tiptap/extension-dropcursor": "3.29.2", "@tiptap/extension-gapcursor": "3.29.2", "@tiptap/extension-hard-break": "3.29.2", "@tiptap/extension-heading": "3.29.2", "@tiptap/extension-horizontal-rule": "3.29.2", "@tiptap/extension-image": "3.29.2", "@tiptap/extension-italic": "3.29.2", "@tiptap/extension-link": "3.29.2", "@tiptap/extension-list": "3.29.2", "@tiptap/extension-list-item": "3.29.2", "@tiptap/extension-list-keymap": "3.29.2", "@tiptap/extension-ordered-list": "3.29.2", "@tiptap/extension-paragraph": "3.29.2", "@tiptap/extension-strike": "3.29.2", "@tiptap/extension-table": "3.29.2", "@tiptap/extension-task-item": "3.29.2", "@tiptap/extension-task-list": "3.29.2", "@tiptap/extension-text": "3.29.2", "@tiptap/extension-text-align": "3.29.2", "@tiptap/extension-underline": "3.29.2", "@tiptap/extension-unique-id": "3.29.2", "@tiptap/extensions": "3.29.2", "@tiptap/pm": "3.29.2", "@tiptap/starter-kit": "3.29.2" } }, "sha512-DT5Kc2sT8KXu5oBdAm18LbRYVb2Q1G0k+afjK+S6WrbV1L3cIpUCAwAmz8x7Tpkw40OmFIyxjv9iLZzRMHk0Dg=="], - "@openeditor/icons": ["@openeditor/icons@0.0.52", "", { "dependencies": { "@hugeicons/core-free-icons": "^4.2.3" } }, "sha512-DtY9x3wW7MGYEjEAGOQfgfxrB6FpeccXIX4tsSd7Uts+IG1DSFTX2uuzZXRg4krGkQgCRTNQIXPVAMS9S2V6Zg=="], + "@openeditor/export": ["@openeditor/export@0.0.53", "", { "dependencies": { "@openeditor/document": "0.0.53", "docx": "^9.7.1", "jszip": "^3.10.1", "parse5": "^7.3.0" } }, "sha512-BGbdX/SRNxZC/ADcBRNkiDIWCKs8d9M17Ib1JlQwJldq+Q/dT1FX7DFjB9fq5TzKwE67SQC4VePOSxt5WxT22g=="], - "@openeditor/react": ["@openeditor/react@0.0.52", "", { "dependencies": { "@floating-ui/dom": "^1.7.4", "@hugeicons/react": "^1.1.9", "@openeditor/core": "0.0.52", "@openeditor/custom-block": "0.0.52", "@openeditor/embedded-runtime": "0.0.52", "@openeditor/emoji": "0.0.52", "@openeditor/exporters": "0.0.52", "@openeditor/extensions": "0.0.52", "@openeditor/icons": "0.0.52", "@openeditor/tiptap": "0.0.52", "@tiptap/core": "3.29.2", "@tiptap/extension-link": "3.29.2", "@tiptap/extension-placeholder": "3.29.2", "@tiptap/extension-table": "3.29.2", "@tiptap/extension-task-item": "3.29.2", "@tiptap/extension-task-list": "3.29.2", "@tiptap/extension-underline": "3.29.2", "@tiptap/pm": "3.29.2", "@tiptap/react": "3.29.2", "@tiptap/starter-kit": "3.29.2", "@tiptap/suggestion": "3.29.2", "beautiful-mermaid": "1.1.3", "use-sync-external-store": "1.6.0" }, "peerDependencies": { "react": ">=19", "react-dom": ">=19" } }, "sha512-Kfj5o4M/BnawRDu2mbQPIgjdXSzDvxkKsdlBn/CQ1sPXyuK1Zghj6R4M7Yy1YHDf8PzknPAKmb4v2GjaHRNXbA=="], + "@openeditor/icons": ["@openeditor/icons@0.0.53", "", { "dependencies": { "@hugeicons/core-free-icons": "^4.2.3" } }, "sha512-beMpUIz/kkrx0prRY22rW7hyqDby4EXJ8ljcZcGy2vvIzKixVydSJI8yZf++hrL/zU9wOp/c6BLzjv3XgmwFHQ=="], - "@openeditor/tiptap": ["@openeditor/tiptap@0.0.52", "", { "dependencies": { "@openeditor/core": "0.0.52", "@tiptap/core": "3.29.2", "@tiptap/pm": "3.29.2" } }, "sha512-GnIhVXQUWm4lrqtGuTbKVK8mwHLWQ9aF6z9Dh7LN1asmB4xIwcxpFwE0Y6M1M73odAJOyg+9T/Ogzikkab1VBw=="], + "@openeditor/mutations": ["@openeditor/mutations@0.0.53", "", { "dependencies": { "@openeditor/document": "0.0.53" } }, "sha512-XRJjVJCAPCJc51FbclLo7CSnE5L8IaZpr6mI4ldo/WF/x72gvwBqRaJlRwMarLg92CJOFCB13bTsOZVNdI20lQ=="], - "@openeditor/ui": ["@openeditor/ui@0.0.52", "", { "dependencies": { "@base-ui/react": "^1.6.0", "@hugeicons/react": "^1.1.9", "@openeditor/emoji": "0.0.52", "@openeditor/icons": "0.0.52", "@openeditor/react": "0.0.52" }, "peerDependencies": { "react": ">=19", "react-dom": ">=19" } }, "sha512-5yquv3ixfMgz7DA1zoIYQOoCbAU9sDgoYK0JMqDUmX4r1kYgppNEGSvN8QX5IFMF5euTlhZqyEfip07ZZlzMYQ=="], + "@openeditor/react": ["@openeditor/react@0.0.53", "", { "dependencies": { "@floating-ui/dom": "^1.7.4", "@hugeicons/react": "^1.1.9", "@openeditor/custom-block": "0.0.53", "@openeditor/document": "0.0.53", "@openeditor/engine": "0.0.53", "@openeditor/export": "0.0.53", "@openeditor/icons": "0.0.53", "@tiptap/core": "3.29.2", "@tiptap/extension-link": "3.29.2", "@tiptap/extension-placeholder": "3.29.2", "@tiptap/extension-table": "3.29.2", "@tiptap/extension-task-item": "3.29.2", "@tiptap/extension-task-list": "3.29.2", "@tiptap/extension-underline": "3.29.2", "@tiptap/pm": "3.29.2", "@tiptap/react": "3.29.2", "@tiptap/suggestion": "3.29.2", "beautiful-mermaid": "1.1.3", "use-sync-external-store": "1.6.0" }, "peerDependencies": { "react": ">=19", "react-dom": ">=19" } }, "sha512-VrrQHAizwV6RFqRDfZzGoEjMRRbjOEdZgE93cjGW7RTZK1GDQeDEyAwzfe4oTnBCPdQZB6XRBddjgBAIRZqOow=="], - "@openeditor/workspace": ["@openeditor/workspace@0.0.52", "", { "dependencies": { "@openeditor/core": "0.0.52" } }, "sha512-8QaBhGQSLIe+ZkyYVCJEHtCvPrKXCqK2FAsNwO8LU7hMx6bKL5VFN4EWtq+FXPzHVzHZkPizBFYc0vwdI6DVRg=="], + "@openeditor/ui": ["@openeditor/ui@0.0.53", "", { "dependencies": { "@base-ui/react": "^1.6.0", "@hugeicons/react": "^1.1.9", "@openeditor/document": "0.0.53", "@openeditor/icons": "0.0.53", "@openeditor/react": "0.0.53", "frimousse": "0.3.0" }, "peerDependencies": { "react": ">=19", "react-dom": ">=19" } }, "sha512-430T5bpXcaPivih8viiDsiJjgJ5G+XuD12eU2+x0qfxQSAqL6NT+vSAitllCdSoqpV8a+dwG9BtTJ5dJ/l+M6Q=="], "@opentelemetry/api": ["@opentelemetry/api@1.9.1", "", {}, "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q=="], diff --git a/bunfig.toml b/bunfig.toml index 27582102..6da7343b 100644 --- a/bunfig.toml +++ b/bunfig.toml @@ -18,16 +18,13 @@ minimumReleaseAgeExcludes = [ "@firecrawl/anydoc-linux-x64-musl", "@firecrawl/anydoc-wasm", "@firecrawl/anydoc-win32-x64-msvc", - "@openeditor/core", "@openeditor/custom-block", - "@openeditor/workspace", - "@openeditor/embedded-runtime", - "@openeditor/emoji", - "@openeditor/exporters", - "@openeditor/extensions", + "@openeditor/document", + "@openeditor/engine", + "@openeditor/export", "@openeditor/icons", + "@openeditor/mutations", "@openeditor/react", - "@openeditor/tiptap", "@openeditor/ui", "@ai-sdk/*", "@ai-sdk/gateway", diff --git a/packages/backend/convex/aiWorkspaces.ts b/packages/backend/convex/aiWorkspaces.ts index b2efc88a..b5d6ff4f 100644 --- a/packages/backend/convex/aiWorkspaces.ts +++ b/packages/backend/convex/aiWorkspaces.ts @@ -1,6 +1,6 @@ import { v } from "convex/values"; -import { fingerprintSnapshotPage, type Snapshot } from "@openeditor/workspace"; -import type { JsonObject } from "@openeditor/core"; +import { fingerprintSnapshotPage, type Snapshot } from "@openeditor/mutations"; +import type { JsonObject } from "@openeditor/document"; import { query } from "./_generated/server"; import { MAX_AI_SITE_PAGES, diff --git a/packages/backend/convex/fileExtractionQueue.test.ts b/packages/backend/convex/fileExtractionQueue.test.ts index 72c20150..2cc92e46 100644 --- a/packages/backend/convex/fileExtractionQueue.test.ts +++ b/packages/backend/convex/fileExtractionQueue.test.ts @@ -50,8 +50,7 @@ describe("Convex ingestion failure codec", () => { expect(decodeConvexIngestionFailure("plain error text")).toBeUndefined(); expect(decodeConvexIngestionFailure(undefined)).toBeUndefined(); expect(decodeConvexIngestionFailure({ kind: "canceled" })).toBeUndefined(); - const forged = - "ANYDOC_FAILURE_V1:" + encodeURIComponent(JSON.stringify({ version: 9 })); + const forged = `ANYDOC_FAILURE_V1:${encodeURIComponent(JSON.stringify({ version: 9 }))}`; expect(decodeConvexIngestionFailure(forged)).toBeUndefined(); expect( decodeConvexIngestionFailure("ANYDOC_FAILURE_V1:%7Bnot-json"), diff --git a/packages/backend/convex/model/aiWorkspaceFingerprint.test.ts b/packages/backend/convex/model/aiWorkspaceFingerprint.test.ts index 0d4c3165..a2980eeb 100644 --- a/packages/backend/convex/model/aiWorkspaceFingerprint.test.ts +++ b/packages/backend/convex/model/aiWorkspaceFingerprint.test.ts @@ -4,7 +4,7 @@ import { fingerprintSnapshotManifest, fingerprintSnapshotPage, type Snapshot, -} from "@openeditor/workspace"; +} from "@openeditor/mutations"; import { assertAiWorkspaceFingerprints } from "./aiWorkspaceFingerprint"; const document = { type: "doc" as const, version: 1 as const, content: [] }; diff --git a/packages/backend/convex/model/aiWorkspaceFingerprint.ts b/packages/backend/convex/model/aiWorkspaceFingerprint.ts index 32788951..378a71a5 100644 --- a/packages/backend/convex/model/aiWorkspaceFingerprint.ts +++ b/packages/backend/convex/model/aiWorkspaceFingerprint.ts @@ -3,7 +3,7 @@ import { fingerprintSnapshotManifest, fingerprintSnapshotPage, type Snapshot, -} from "@openeditor/workspace"; +} from "@openeditor/mutations"; import { AiWorkspaceValidationError } from "./aiWorkspaceBounds"; export type AiPageFingerprintPrecondition = { diff --git a/packages/backend/convex/pageContentFormat.test.ts b/packages/backend/convex/pageContentFormat.test.ts index 5844b466..3750c7b6 100644 --- a/packages/backend/convex/pageContentFormat.test.ts +++ b/packages/backend/convex/pageContentFormat.test.ts @@ -10,7 +10,7 @@ import { synchronizeOpenEditorChildPages, } from "./pageContentFormat"; -import { fingerprintOpenEditorDocument } from "@openeditor/core"; +import { fingerprintOpenEditorDocument } from "@openeditor/document"; describe("hashOpenEditorContent", () => { test("writes a versioned SHA-256 digest", () => { diff --git a/packages/backend/convex/pageContentFormat.ts b/packages/backend/convex/pageContentFormat.ts index 30436472..015bae2f 100644 --- a/packages/backend/convex/pageContentFormat.ts +++ b/packages/backend/convex/pageContentFormat.ts @@ -2,7 +2,7 @@ import { parseOpenEditorDocument as parseOpenEditorDocumentStrict, type OpenEditorDocument, type ProseMirrorNode, -} from "@openeditor/core"; +} from "@openeditor/document"; import { assertBaseBlocksDocument, baseBlocksDocumentContract, @@ -14,7 +14,7 @@ import { baseBlocksBlockRegistry } from "@baseblocks/openeditor-contracts/block- import { sha256 } from "@noble/hashes/sha2.js"; import { bytesToHex, utf8ToBytes } from "@noble/hashes/utils.js"; -export type { OpenEditorDocument } from "@openeditor/core"; +export type { OpenEditorDocument } from "@openeditor/document"; export type OpenEditorNode = ProseMirrorNode; diff --git a/packages/backend/package.json b/packages/backend/package.json index fbc806a6..e8c0d482 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -43,9 +43,9 @@ "@convex-dev/workpool": "^0.4.9", "@firecrawl/anydoc": "0.1.9", "@noble/hashes": "2.0.1", - "@openeditor/core": "0.0.52", - "@openeditor/custom-block": "0.0.52", - "@openeditor/workspace": "0.0.52", + "@openeditor/custom-block": "0.0.53", + "@openeditor/document": "0.0.53", + "@openeditor/mutations": "0.0.53", "@polar-sh/sdk": "0.49.0", "ai": "7.0.49", "better-auth": "^1.6.23", diff --git a/packages/custom-blocks/package.json b/packages/custom-blocks/package.json index bbff2463..5b4fde75 100644 --- a/packages/custom-blocks/package.json +++ b/packages/custom-blocks/package.json @@ -23,8 +23,8 @@ "@dnd-kit/react": "^0.5.0", "@hugeicons/core-free-icons": "^4.2.3", "@hugeicons/react": "^1.1.9", - "@openeditor/custom-block": "0.0.52", - "@openeditor/core": "0.0.52", + "@openeditor/custom-block": "0.0.53", + "@openeditor/document": "0.0.53", "react": "19.2.7" }, "devDependencies": { diff --git a/packages/custom-blocks/src/decision-tree-editor.tsx b/packages/custom-blocks/src/decision-tree-editor.tsx index 8aa0544b..4dbab105 100644 --- a/packages/custom-blocks/src/decision-tree-editor.tsx +++ b/packages/custom-blocks/src/decision-tree-editor.tsx @@ -46,7 +46,7 @@ import { getDocumentText, textBlock, type OpenEditorDocument, -} from "@openeditor/core"; +} from "@openeditor/document"; import { Fragment, type RefObject, useMemo, useRef, useState } from "react"; import { addDecisionNode, diff --git a/packages/custom-blocks/src/decision-tree.test.ts b/packages/custom-blocks/src/decision-tree.test.ts index 1077e25e..85dd506c 100644 --- a/packages/custom-blocks/src/decision-tree.test.ts +++ b/packages/custom-blocks/src/decision-tree.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import { addDecisionNode, addDecisionTree, diff --git a/packages/custom-blocks/src/decision-tree.ts b/packages/custom-blocks/src/decision-tree.ts index e383ab3f..87709dfb 100644 --- a/packages/custom-blocks/src/decision-tree.ts +++ b/packages/custom-blocks/src/decision-tree.ts @@ -1,4 +1,7 @@ -import { validateDocument, type OpenEditorDocument } from "@openeditor/core"; +import { + validateDocument, + type OpenEditorDocument, +} from "@openeditor/document"; export type DecisionNode = { id: string; diff --git a/packages/custom-blocks/src/index.ts b/packages/custom-blocks/src/index.ts index f9ce1a67..4aefa628 100644 --- a/packages/custom-blocks/src/index.ts +++ b/packages/custom-blocks/src/index.ts @@ -1,7 +1,7 @@ import { defineOpenEditorCustomBlock, type OpenEditorCustomBlockSafeHtml, -} from "@openeditor/core"; +} from "@openeditor/document"; import { createDirectoryContent, directoryToText, diff --git a/packages/custom-blocks/src/viewer.tsx b/packages/custom-blocks/src/viewer.tsx index 240479e8..fc288be1 100644 --- a/packages/custom-blocks/src/viewer.tsx +++ b/packages/custom-blocks/src/viewer.tsx @@ -3,7 +3,7 @@ /* oxlint-disable react-doctor/nextjs-no-img-element -- Managed assets are host-resolved private or blob URLs. This framework-neutral package must not depend on the Next.js image pipeline. */ import { defineOpenEditorCustomBlockViewer } from "@openeditor/custom-block/viewer"; -import { getDocumentText } from "@openeditor/core"; +import { getDocumentText } from "@openeditor/document"; import { ArrowLeft01Icon, ArrowRight01Icon, diff --git a/packages/openeditor-contracts/package.json b/packages/openeditor-contracts/package.json index 167fe6b5..8b3a176c 100644 --- a/packages/openeditor-contracts/package.json +++ b/packages/openeditor-contracts/package.json @@ -17,11 +17,8 @@ }, "dependencies": { "@baseblocks/custom-blocks": "workspace:*", - "@baseblocks/domain": "workspace:*", - "@openeditor/core": "0.0.52", - "@openeditor/embedded-runtime": "0.0.52", - "@openeditor/extensions": "0.0.52", - "@openeditor/tiptap": "0.0.52" + "@openeditor/document": "0.0.53", + "@openeditor/engine": "0.0.53" }, "devDependencies": { "@baseblocks/tsconfig": "workspace:*", diff --git a/packages/openeditor-contracts/src/block-registry.ts b/packages/openeditor-contracts/src/block-registry.ts index eb5c2d13..c01abde0 100644 --- a/packages/openeditor-contracts/src/block-registry.ts +++ b/packages/openeditor-contracts/src/block-registry.ts @@ -1,5 +1,5 @@ import { baseBlocksCustomBlocks } from "@baseblocks/custom-blocks"; -import { createOpenEditorCustomBlockRegistry } from "@openeditor/core"; +import { createOpenEditorCustomBlockRegistry } from "@openeditor/document"; import { baseBlocksProductBlocks } from "./core-blocks"; /** The one authoritative block set for every BaseBlocks runtime. */ diff --git a/packages/openeditor-contracts/src/core-blocks.ts b/packages/openeditor-contracts/src/core-blocks.ts index 93da7493..022854e9 100644 --- a/packages/openeditor-contracts/src/core-blocks.ts +++ b/packages/openeditor-contracts/src/core-blocks.ts @@ -1,4 +1,4 @@ -import { defineOpenEditorCustomBlock } from "@openeditor/core"; +import { defineOpenEditorCustomBlock } from "@openeditor/document"; export type SearchBlockData = { placeholder: string; diff --git a/packages/openeditor-contracts/src/index.test.ts b/packages/openeditor-contracts/src/index.test.ts index 0a74a363..6fb55cca 100644 --- a/packages/openeditor-contracts/src/index.test.ts +++ b/packages/openeditor-contracts/src/index.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import { createOpenEditorCustomBlockNode } from "@openeditor/core"; +import { createOpenEditorCustomBlockNode } from "@openeditor/document"; import { baseBlocksBlockRegistry } from "./block-registry"; import { assertBaseBlocksDocument, diff --git a/packages/openeditor-contracts/src/index.ts b/packages/openeditor-contracts/src/index.ts index 4b88bb58..dde77300 100644 --- a/packages/openeditor-contracts/src/index.ts +++ b/packages/openeditor-contracts/src/index.ts @@ -5,14 +5,14 @@ import { type BlockSpec, type OpenEditorValueSchema, type ProseMirrorNode, -} from "@openeditor/core"; -import { validateOpenEditorEngineDocument } from "@openeditor/embedded-runtime"; +} from "@openeditor/document"; +import { validateOpenEditorEngineDocument } from "@openeditor/engine"; import { defaultBlockSpecs, defaultDocumentContract, defaultMarkContractSpecs, defaultNodeSpecs, -} from "@openeditor/extensions"; +} from "@openeditor/document"; export * from "./page-projection"; export * from "./portable-export"; diff --git a/packages/openeditor-contracts/src/page-projection.test.ts b/packages/openeditor-contracts/src/page-projection.test.ts index e64fd98d..d8ee2628 100644 --- a/packages/openeditor-contracts/src/page-projection.test.ts +++ b/packages/openeditor-contracts/src/page-projection.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import { hasSameChildPageProjection, hasSameNonPageContent, diff --git a/packages/openeditor-contracts/src/page-projection.ts b/packages/openeditor-contracts/src/page-projection.ts index 09682626..3ba9a2a1 100644 --- a/packages/openeditor-contracts/src/page-projection.ts +++ b/packages/openeditor-contracts/src/page-projection.ts @@ -1,4 +1,4 @@ -import type { OpenEditorDocument, ProseMirrorNode } from "@openeditor/core"; +import type { OpenEditorDocument, ProseMirrorNode } from "@openeditor/document"; export type ChildPageProjection = { pageId: string; diff --git a/packages/openeditor-contracts/src/portable-export.test.ts b/packages/openeditor-contracts/src/portable-export.test.ts index 7c30c156..eaf290b2 100644 --- a/packages/openeditor-contracts/src/portable-export.test.ts +++ b/packages/openeditor-contracts/src/portable-export.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import type { OpenEditorDocument } from "@openeditor/core"; +import type { OpenEditorDocument } from "@openeditor/document"; import { projectBaseBlocksDocumentForPortableExport } from "./portable-export"; describe("portable BaseBlocks export", () => { diff --git a/packages/openeditor-contracts/src/portable-export.ts b/packages/openeditor-contracts/src/portable-export.ts index c2aa32b2..980a4cf7 100644 --- a/packages/openeditor-contracts/src/portable-export.ts +++ b/packages/openeditor-contracts/src/portable-export.ts @@ -1,4 +1,4 @@ -import type { OpenEditorDocument, ProseMirrorNode } from "@openeditor/core"; +import type { OpenEditorDocument, ProseMirrorNode } from "@openeditor/document"; import { baseBlocksBlockRegistry } from "./block-registry"; type PageTab = {