diff --git a/.gitignore b/.gitignore index d1c30c9..3d3a61a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ .env !.env.* +dist/ diff --git a/Dockerfile b/Dockerfile index aa656f5..69b0941 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22.18 +FROM node:24.12 WORKDIR /app COPY package*.json ./ RUN npm install --omit=dev diff --git a/op-blocknote-extensions-0.0.20.tgz b/op-blocknote-extensions-0.0.20.tgz new file mode 100644 index 0000000..094cc21 Binary files /dev/null and b/op-blocknote-extensions-0.0.20.tgz differ diff --git a/package-lock.json b/package-lock.json index 6aad971..5ee4ff5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,7 @@ "dependencies": { "@blocknote/server-util": "^0.44.2", "@hocuspocus/server": "^3.4.0", - "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.18/op-blocknote-extensions-0.0.18.tgz", - "tsx": "^4.21.0" + "op-blocknote-extensions": "file:op-blocknote-extensions-0.0.19.tgz" }, "devDependencies": { "@blocknote/core": "^0.44.2", @@ -22,6 +21,7 @@ "@types/node": "^24.4.0", "eslint": "^9.35.0", "globals": "^16.4.0", + "tsx": "^4.21.0", "typescript-eslint": "^8.48.1", "vitest": "^4.0.15" }, @@ -3177,6 +3177,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -3246,6 +3247,7 @@ "version": "4.13.0", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", + "dev": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -4934,9 +4936,9 @@ "license": "MIT" }, "node_modules/op-blocknote-extensions": { - "version": "0.0.18", - "resolved": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.18/op-blocknote-extensions-0.0.18.tgz", - "integrity": "sha512-nldZKa3zX7jJ06TDN7zfO9bw16sTWzI3Wmtqj2CnimtaVD9/aXYQQZip2yn6njyCvaa5a2mHg9/qiP6zMpJXlw==", + "version": "0.0.19", + "resolved": "file:op-blocknote-extensions-0.0.19.tgz", + "integrity": "sha512-WeMvLiV9TPa93Ad8YLoQWsPAzSzi5iKeLP1ylUYi2wjRDJ62x7xt6dpGRNXpuU8veMHEPC1hvaqWH7lxZ6CfbQ==", "dependencies": { "@blocknote/core": "^0.44.2", "@blocknote/mantine": "^0.44.2", @@ -5707,6 +5709,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" @@ -6109,6 +6112,7 @@ "version": "4.21.0", "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, "license": "MIT", "dependencies": { "esbuild": "~0.27.0", @@ -6131,6 +6135,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6147,6 +6152,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6163,6 +6169,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6179,6 +6186,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6195,6 +6203,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6211,6 +6220,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6227,6 +6237,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6243,6 +6254,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6259,6 +6271,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6275,6 +6288,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6291,6 +6305,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6307,6 +6322,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6323,6 +6339,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6339,6 +6356,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6355,6 +6373,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6371,6 +6390,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6387,6 +6407,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6403,6 +6424,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6419,6 +6441,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6435,6 +6458,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6451,6 +6475,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6467,6 +6492,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6483,6 +6509,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6499,6 +6526,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6515,6 +6543,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6531,6 +6560,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -6544,6 +6574,7 @@ "version": "0.27.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.1.tgz", "integrity": "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { diff --git a/package.json b/package.json index 3771daf..52bdbf9 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,10 @@ "name": "op-blocknote-hocuspocus", "version": "0.0.1", "main": "src/index.ts", + "type": "module", "scripts": { - "start": "tsx src/index.ts", + "build": "tsc", + "start": "node dist/index.js", "dev": "tsx watch src/index.ts", "debug": "tsx --inspect src/index.ts", "lint": "eslint . --ext .ts", @@ -24,8 +26,7 @@ "dependencies": { "@blocknote/server-util": "^0.44.2", "@hocuspocus/server": "^3.4.0", - "op-blocknote-extensions": "https://github.com/opf/op-blocknote-extensions/releases/download/v0.0.18/op-blocknote-extensions-0.0.18.tgz", - "tsx": "^4.21.0" + "op-blocknote-extensions": "file:op-blocknote-extensions-0.0.19.tgz" }, "devDependencies": { "@blocknote/core": "^0.44.2", @@ -35,6 +36,7 @@ "@types/node": "^24.4.0", "eslint": "^9.35.0", "globals": "^16.4.0", + "tsx": "^4.21.0", "typescript-eslint": "^8.48.1", "vitest": "^4.0.15" } diff --git a/src/extensions/openProjectApi.ts b/src/extensions/openProjectApi.ts index 45569b4..5ac2760 100644 --- a/src/extensions/openProjectApi.ts +++ b/src/extensions/openProjectApi.ts @@ -1,11 +1,11 @@ import type { onAuthenticatePayload, onLoadDocumentPayload, onStoreDocumentPayload } from "@hocuspocus/server"; import { Extension } from "@hocuspocus/server"; import * as Y from "yjs"; -import type { ApiResponseDocument } from "../types"; +import type { ApiResponseDocument } from "../types.js"; import { ServerBlockNoteEditor } from "@blocknote/server-util"; import { BlockNoteSchema } from "@blocknote/core"; import { openProjectWorkPackageStaticBlockSpec } from "op-blocknote-extensions"; -import { decryptToken } from "../services/decryptTokenService"; +import { decryptToken } from "../services/decryptTokenService.js"; export const editorSchema = BlockNoteSchema.create().extend({ blockSpecs: { @@ -111,7 +111,6 @@ export class OpenProjectApi implements Extension { Y.applyUpdate(tempYdoc, Y.encodeStateAsUpdate(data.document)); const tempFragment = tempYdoc.getXmlFragment("document-store"); const editorData = editor.yXmlFragmentToBlocks(tempFragment); - // @ts-expect-error BlockNote types are complicated const markdownData = await editor.blocksToMarkdownLossy(editorData); const response = await fetch(resourceUrl, { diff --git a/src/index.ts b/src/index.ts index 10f2af8..735d000 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,5 @@ import { Server } from "@hocuspocus/server"; -import { OpenProjectApi } from "./extensions/openProjectApi"; +import { OpenProjectApi } from "./extensions/openProjectApi.js"; const server = new Server({ diff --git a/tsconfig.json b/tsconfig.json index a31e007..ee81432 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,13 +4,17 @@ "es2024", "ESNext.Array", "ESNext.Collection", - "ESNext.Iterator" + "ESNext.Iterator", + "ESNext.Promise" ], "module": "nodenext", - "target": "es2022", + "target": "es2024", "strict": true, "esModuleInterop": true, "skipLibCheck": true, - "moduleResolution": "bundler" - } + "moduleResolution": "node16", + + "outDir": "./dist" + }, + "include": ["src/**/*" ] }