@kedataindo/docflow-core 0.0.96 → 0.0.98
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/index.d.cts +1 -1
- package/dist/ai/index.d.ts +1 -1
- package/dist/{index-C6kKgZd_.d.cts → index-Br6IhSDL.d.cts} +22 -2
- package/dist/{index-C6kKgZd_.d.ts → index-Br6IhSDL.d.ts} +22 -2
- package/dist/index.cjs +41 -28
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +37 -24
- package/package.json +17 -17
package/dist/ai/index.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, a as AIDraftFn, h as AIProvider, A as AIStreamFn, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, H as HttpKeyStorageUrls, K as KeyStorage, L as LOCAL_STORAGE_KEY, O as OpenAICompatibleConfig, S as SESSION_STORAGE_KEY,
|
|
1
|
+
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, a as AIDraftFn, h as AIProvider, A as AIStreamFn, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, H as HttpKeyStorageUrls, K as KeyStorage, L as LOCAL_STORAGE_KEY, O as OpenAICompatibleConfig, S as SESSION_STORAGE_KEY, r as StreamEvent, s as buildAIPrompt, t as claudeProvider, u as httpKeyStorage, v as localStorageKeyStorage, w as memoryKeyStorage, x as openaiCompatibleProvider, y as sessionStorageKeyStorage, z as toAIStreamFn, D as trimContextAfter, E as trimContextBefore } from '../index-Br6IhSDL.cjs';
|
package/dist/ai/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, a as AIDraftFn, h as AIProvider, A as AIStreamFn, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, H as HttpKeyStorageUrls, K as KeyStorage, L as LOCAL_STORAGE_KEY, O as OpenAICompatibleConfig, S as SESSION_STORAGE_KEY,
|
|
1
|
+
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, a as AIDraftFn, h as AIProvider, A as AIStreamFn, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, H as HttpKeyStorageUrls, K as KeyStorage, L as LOCAL_STORAGE_KEY, O as OpenAICompatibleConfig, S as SESSION_STORAGE_KEY, r as StreamEvent, s as buildAIPrompt, t as claudeProvider, u as httpKeyStorage, v as localStorageKeyStorage, w as memoryKeyStorage, x as openaiCompatibleProvider, y as sessionStorageKeyStorage, z as toAIStreamFn, D as trimContextAfter, E as trimContextBefore } from '../index-Br6IhSDL.js';
|
|
@@ -156,6 +156,19 @@ interface CslItemData {
|
|
|
156
156
|
abstract?: string;
|
|
157
157
|
[k: string]: unknown;
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* A CSL style the citation engine can render with (issue #180). The library
|
|
161
|
+
* bundles four; a host may inject more (an institutional or Harvard/IEEE style)
|
|
162
|
+
* through `CitationPort.styles` — without modifying the library.
|
|
163
|
+
*/
|
|
164
|
+
interface CslStyleInfo {
|
|
165
|
+
id: string;
|
|
166
|
+
name: string;
|
|
167
|
+
/** 'note' styles render citations as footnotes; 'in-text' render inline. */
|
|
168
|
+
category: 'note' | 'in-text';
|
|
169
|
+
/** The CSL XML itself (the `<style>` document, as a string). */
|
|
170
|
+
xml: string;
|
|
171
|
+
}
|
|
159
172
|
/**
|
|
160
173
|
* Host-supplied citation port. The library never fetches sources itself — the
|
|
161
174
|
* host owns the reference library and injects CSL-JSON through this port,
|
|
@@ -166,6 +179,13 @@ interface CitationPort {
|
|
|
166
179
|
sources: CslItemData[] | (() => CslItemData[]);
|
|
167
180
|
/** Active CSL style id (e.g. 'chicago-notes-bibliography'). */
|
|
168
181
|
style?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Extra CSL styles for this document's engine (issue #180). A style whose
|
|
184
|
+
* `id` matches a bundled one overrides it; every other id is added alongside
|
|
185
|
+
* the four defaults. Omit it and the engine behaves exactly as before — the
|
|
186
|
+
* bundled styles keep the editor offline-capable.
|
|
187
|
+
*/
|
|
188
|
+
styles?: CslStyleInfo[];
|
|
169
189
|
/**
|
|
170
190
|
* Called when the user inserts a citation: the host opens its source
|
|
171
191
|
* picker and resolves with the chosen source id (null = cancelled).
|
|
@@ -383,5 +403,5 @@ interface ClaudeConfig {
|
|
|
383
403
|
}
|
|
384
404
|
declare function claudeProvider(config: ClaudeConfig): AIProvider;
|
|
385
405
|
|
|
386
|
-
export {
|
|
387
|
-
export type { AIStreamFn as A, BrowserKeyStorageOptions as B, CitationPort as C, HttpKeyStorageUrls as H, ImageUploadHandler as I, KeyStorage as K, OpenAICompatibleConfig as O, AIDraftFn as a, AIAction as b, AIActionRequest as c, AICompleteRequest as d, AIConfig as e, AIDraftCitation as f, AIDraftEvent as g, AIProvider as h, AIProviderFactory as i, Auth as j, ClaudeConfig as l, CslDate as m, CslItemData as n, CslName as o,
|
|
406
|
+
export { trimContextAfter as D, trimContextBefore as E, LOCAL_STORAGE_KEY as L, SESSION_STORAGE_KEY as S, CONTEXT_CHAR_CAP as k, buildAIPrompt as s, claudeProvider as t, httpKeyStorage as u, localStorageKeyStorage as v, memoryKeyStorage as w, openaiCompatibleProvider as x, sessionStorageKeyStorage as y, toAIStreamFn as z };
|
|
407
|
+
export type { AIStreamFn as A, BrowserKeyStorageOptions as B, CitationPort as C, HttpKeyStorageUrls as H, ImageUploadHandler as I, KeyStorage as K, OpenAICompatibleConfig as O, AIDraftFn as a, AIAction as b, AIActionRequest as c, AICompleteRequest as d, AIConfig as e, AIDraftCitation as f, AIDraftEvent as g, AIProvider as h, AIProviderFactory as i, Auth as j, ClaudeConfig as l, CslDate as m, CslItemData as n, CslName as o, CslStyleInfo as p, ImageUploadResult as q, StreamEvent as r };
|
|
@@ -156,6 +156,19 @@ interface CslItemData {
|
|
|
156
156
|
abstract?: string;
|
|
157
157
|
[k: string]: unknown;
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* A CSL style the citation engine can render with (issue #180). The library
|
|
161
|
+
* bundles four; a host may inject more (an institutional or Harvard/IEEE style)
|
|
162
|
+
* through `CitationPort.styles` — without modifying the library.
|
|
163
|
+
*/
|
|
164
|
+
interface CslStyleInfo {
|
|
165
|
+
id: string;
|
|
166
|
+
name: string;
|
|
167
|
+
/** 'note' styles render citations as footnotes; 'in-text' render inline. */
|
|
168
|
+
category: 'note' | 'in-text';
|
|
169
|
+
/** The CSL XML itself (the `<style>` document, as a string). */
|
|
170
|
+
xml: string;
|
|
171
|
+
}
|
|
159
172
|
/**
|
|
160
173
|
* Host-supplied citation port. The library never fetches sources itself — the
|
|
161
174
|
* host owns the reference library and injects CSL-JSON through this port,
|
|
@@ -166,6 +179,13 @@ interface CitationPort {
|
|
|
166
179
|
sources: CslItemData[] | (() => CslItemData[]);
|
|
167
180
|
/** Active CSL style id (e.g. 'chicago-notes-bibliography'). */
|
|
168
181
|
style?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Extra CSL styles for this document's engine (issue #180). A style whose
|
|
184
|
+
* `id` matches a bundled one overrides it; every other id is added alongside
|
|
185
|
+
* the four defaults. Omit it and the engine behaves exactly as before — the
|
|
186
|
+
* bundled styles keep the editor offline-capable.
|
|
187
|
+
*/
|
|
188
|
+
styles?: CslStyleInfo[];
|
|
169
189
|
/**
|
|
170
190
|
* Called when the user inserts a citation: the host opens its source
|
|
171
191
|
* picker and resolves with the chosen source id (null = cancelled).
|
|
@@ -383,5 +403,5 @@ interface ClaudeConfig {
|
|
|
383
403
|
}
|
|
384
404
|
declare function claudeProvider(config: ClaudeConfig): AIProvider;
|
|
385
405
|
|
|
386
|
-
export {
|
|
387
|
-
export type { AIStreamFn as A, BrowserKeyStorageOptions as B, CitationPort as C, HttpKeyStorageUrls as H, ImageUploadHandler as I, KeyStorage as K, OpenAICompatibleConfig as O, AIDraftFn as a, AIAction as b, AIActionRequest as c, AICompleteRequest as d, AIConfig as e, AIDraftCitation as f, AIDraftEvent as g, AIProvider as h, AIProviderFactory as i, Auth as j, ClaudeConfig as l, CslDate as m, CslItemData as n, CslName as o,
|
|
406
|
+
export { trimContextAfter as D, trimContextBefore as E, LOCAL_STORAGE_KEY as L, SESSION_STORAGE_KEY as S, CONTEXT_CHAR_CAP as k, buildAIPrompt as s, claudeProvider as t, httpKeyStorage as u, localStorageKeyStorage as v, memoryKeyStorage as w, openaiCompatibleProvider as x, sessionStorageKeyStorage as y, toAIStreamFn as z };
|
|
407
|
+
export type { AIStreamFn as A, BrowserKeyStorageOptions as B, CitationPort as C, HttpKeyStorageUrls as H, ImageUploadHandler as I, KeyStorage as K, OpenAICompatibleConfig as O, AIDraftFn as a, AIAction as b, AIActionRequest as c, AICompleteRequest as d, AIConfig as e, AIDraftCitation as f, AIDraftEvent as g, AIProvider as h, AIProviderFactory as i, Auth as j, ClaudeConfig as l, CslDate as m, CslItemData as n, CslName as o, CslStyleInfo as p, ImageUploadResult as q, StreamEvent as r };
|
package/dist/index.cjs
CHANGED
|
@@ -85,9 +85,9 @@ __export(index_exports, {
|
|
|
85
85
|
module.exports = __toCommonJS(index_exports);
|
|
86
86
|
|
|
87
87
|
// src/Editor.ts
|
|
88
|
-
var
|
|
89
|
-
var import_starter_kit =
|
|
90
|
-
var import_extension_text_style =
|
|
88
|
+
var import_core8 = require("@tiptap/core");
|
|
89
|
+
var import_starter_kit = require("@tiptap/starter-kit");
|
|
90
|
+
var import_extension_text_style = require("@tiptap/extension-text-style");
|
|
91
91
|
|
|
92
92
|
// src/PluginSystem.ts
|
|
93
93
|
function definePlugin(plugin) {
|
|
@@ -137,8 +137,9 @@ function createActionMap(editor, plugins) {
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
// src/Collaboration.ts
|
|
140
|
+
var import_core = require("@tiptap/core");
|
|
140
141
|
var import_extension_collaboration = require("@tiptap/extension-collaboration");
|
|
141
|
-
var
|
|
142
|
+
var import_y_tiptap = require("@tiptap/y-tiptap");
|
|
142
143
|
var import_awareness = require("y-protocols/awareness");
|
|
143
144
|
var import_y_indexeddb = require("y-indexeddb");
|
|
144
145
|
var import_y_webrtc = require("y-webrtc");
|
|
@@ -257,6 +258,17 @@ function createCollaboration(options) {
|
|
|
257
258
|
};
|
|
258
259
|
return { ydoc, provider, awareness, persistence, whenReady, destroy, setLocalCursorEnabled };
|
|
259
260
|
}
|
|
261
|
+
var CollaborationCursor = import_core.Extension.create({
|
|
262
|
+
name: "collaborationCursor",
|
|
263
|
+
addOptions() {
|
|
264
|
+
return { provider: null, user: { name: "", color: "" } };
|
|
265
|
+
},
|
|
266
|
+
addProseMirrorPlugins() {
|
|
267
|
+
const awareness = this.options.provider?.awareness;
|
|
268
|
+
if (!awareness) return [];
|
|
269
|
+
return [(0, import_y_tiptap.yCursorPlugin)(awareness)];
|
|
270
|
+
}
|
|
271
|
+
});
|
|
260
272
|
function collaborationExtensions(options) {
|
|
261
273
|
const setup = "ydoc" in options ? options : createCollaboration(options);
|
|
262
274
|
const extensions = [
|
|
@@ -264,7 +276,7 @@ function collaborationExtensions(options) {
|
|
|
264
276
|
];
|
|
265
277
|
if (setup.provider) {
|
|
266
278
|
extensions.push(
|
|
267
|
-
|
|
279
|
+
CollaborationCursor.configure({
|
|
268
280
|
provider: setup.provider,
|
|
269
281
|
user: setup.awareness.getLocalState()?.user ?? { name: "", color: "" }
|
|
270
282
|
})
|
|
@@ -274,10 +286,10 @@ function collaborationExtensions(options) {
|
|
|
274
286
|
}
|
|
275
287
|
|
|
276
288
|
// src/BlockAttributes.ts
|
|
277
|
-
var
|
|
289
|
+
var import_core2 = require("@tiptap/core");
|
|
278
290
|
var import_state = require("@tiptap/pm/state");
|
|
279
291
|
var import_view = require("@tiptap/pm/view");
|
|
280
|
-
var BlockAttributesExtension =
|
|
292
|
+
var BlockAttributesExtension = import_core2.Extension.create({
|
|
281
293
|
name: "blockAttributes",
|
|
282
294
|
addOptions() {
|
|
283
295
|
return {
|
|
@@ -335,8 +347,8 @@ var BlockAttributesExtension = import_core.Extension.create({
|
|
|
335
347
|
});
|
|
336
348
|
|
|
337
349
|
// src/EditorContext.ts
|
|
338
|
-
var
|
|
339
|
-
var EditorContextExtension =
|
|
350
|
+
var import_core3 = require("@tiptap/core");
|
|
351
|
+
var EditorContextExtension = import_core3.Extension.create({
|
|
340
352
|
name: "editorContext",
|
|
341
353
|
addOptions() {
|
|
342
354
|
return {
|
|
@@ -357,7 +369,7 @@ var EditorContextExtension = import_core2.Extension.create({
|
|
|
357
369
|
});
|
|
358
370
|
|
|
359
371
|
// src/Indent.ts
|
|
360
|
-
var
|
|
372
|
+
var import_core4 = require("@tiptap/core");
|
|
361
373
|
var INDENT_STEP_PX = 48;
|
|
362
374
|
var INDENT_MAX_LEVEL = 8;
|
|
363
375
|
var INDENT_ATTR = "indent";
|
|
@@ -471,7 +483,7 @@ function runIndent(props, delta) {
|
|
|
471
483
|
}
|
|
472
484
|
return shiftBlockIndent(props, delta);
|
|
473
485
|
}
|
|
474
|
-
var IndentExtension =
|
|
486
|
+
var IndentExtension = import_core4.Extension.create({
|
|
475
487
|
name: "indent",
|
|
476
488
|
priority: 50,
|
|
477
489
|
addGlobalAttributes() {
|
|
@@ -520,9 +532,9 @@ var IndentExtension = import_core3.Extension.create({
|
|
|
520
532
|
});
|
|
521
533
|
|
|
522
534
|
// src/ManualColumnResize.ts
|
|
523
|
-
var
|
|
535
|
+
var import_core5 = require("@tiptap/core");
|
|
524
536
|
var import_state2 = require("@tiptap/pm/state");
|
|
525
|
-
var ManualColumnResize =
|
|
537
|
+
var ManualColumnResize = import_core5.Extension.create({
|
|
526
538
|
name: "manualColumnResize",
|
|
527
539
|
addProseMirrorPlugins() {
|
|
528
540
|
const key2 = new import_state2.PluginKey("manualColumnResize");
|
|
@@ -845,7 +857,7 @@ var ManualColumnResize = import_core4.Extension.create({
|
|
|
845
857
|
});
|
|
846
858
|
|
|
847
859
|
// src/SearchAndReplace.ts
|
|
848
|
-
var
|
|
860
|
+
var import_core6 = require("@tiptap/core");
|
|
849
861
|
var import_state3 = require("@tiptap/pm/state");
|
|
850
862
|
var import_view2 = require("@tiptap/pm/view");
|
|
851
863
|
var searchAndReplaceKey = new import_state3.PluginKey("searchAndReplace");
|
|
@@ -905,7 +917,7 @@ var searchPlugin = new import_state3.Plugin({
|
|
|
905
917
|
}
|
|
906
918
|
}
|
|
907
919
|
});
|
|
908
|
-
var SearchAndReplaceExtension =
|
|
920
|
+
var SearchAndReplaceExtension = import_core6.Extension.create({
|
|
909
921
|
name: "searchAndReplace",
|
|
910
922
|
addProseMirrorPlugins() {
|
|
911
923
|
return [searchPlugin];
|
|
@@ -962,13 +974,13 @@ function replaceAll(editor, replacement) {
|
|
|
962
974
|
return s.matches.length;
|
|
963
975
|
}
|
|
964
976
|
|
|
965
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
966
|
-
var
|
|
977
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/PaginationPlus.js
|
|
978
|
+
var import_core7 = require("@tiptap/core");
|
|
967
979
|
var import_state4 = require("@tiptap/pm/state");
|
|
968
980
|
var import_transform = require("@tiptap/pm/transform");
|
|
969
981
|
var import_view3 = require("@tiptap/pm/view");
|
|
970
982
|
|
|
971
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
983
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/utils.js
|
|
972
984
|
var updateCssVariables = (targetNode, config) => {
|
|
973
985
|
const cssVariables = {
|
|
974
986
|
"rm-page-height": `${config.pageHeight}px`,
|
|
@@ -1142,7 +1154,7 @@ var footerClickEvent = (pageNumber, onFooterClick) => {
|
|
|
1142
1154
|
};
|
|
1143
1155
|
};
|
|
1144
1156
|
|
|
1145
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
1157
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/PaginationPlus.js
|
|
1146
1158
|
var page_count_meta_key = "PAGE_COUNT_META_KEY";
|
|
1147
1159
|
var key = new import_state4.PluginKey("brDecoration");
|
|
1148
1160
|
function buildDecorations(doc) {
|
|
@@ -1246,7 +1258,7 @@ var getPageConfigFromOptions = (_currentOptions) => {
|
|
|
1246
1258
|
};
|
|
1247
1259
|
};
|
|
1248
1260
|
var paginationKey = new import_state4.PluginKey("pagination");
|
|
1249
|
-
var PaginationPlus =
|
|
1261
|
+
var PaginationPlus = import_core7.Extension.create({
|
|
1250
1262
|
name: "PaginationPlus",
|
|
1251
1263
|
addOptions() {
|
|
1252
1264
|
return defaultOptions;
|
|
@@ -1799,7 +1811,7 @@ function createDecoration(pageOptions, headerHeightMap, footerHeightMap) {
|
|
|
1799
1811
|
return [pageWidget, firstHeaderWidget];
|
|
1800
1812
|
}
|
|
1801
1813
|
|
|
1802
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
1814
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/constants.js
|
|
1803
1815
|
var A4_PAGE_SIZE = getPageSize(1123, 794, 95, 95, 76, 76);
|
|
1804
1816
|
var A3_PAGE_SIZE = getPageSize(1591, 1123, 95, 95, 76, 76);
|
|
1805
1817
|
var A5_PAGE_SIZE = getPageSize(794, 419, 76, 76, 57, 57);
|
|
@@ -2242,14 +2254,15 @@ function createEditor(options = {}) {
|
|
|
2242
2254
|
return editor;
|
|
2243
2255
|
}
|
|
2244
2256
|
function createTiptapEditor(options, plugins, collaborationSetup) {
|
|
2245
|
-
const
|
|
2257
|
+
const starterKitOptions = { link: false, underline: false, trailingNode: false };
|
|
2258
|
+
const baseStarterKit = options.collaboration ? import_starter_kit.StarterKit.configure({ ...starterKitOptions, undoRedo: false }) : import_starter_kit.StarterKit.configure(starterKitOptions);
|
|
2246
2259
|
const pluginExtensions = collectExtensions(plugins);
|
|
2247
2260
|
const blockAttrs = options.getPageMap ? BlockAttributesExtension.configure({ pageMap: options.getPageMap }) : BlockAttributesExtension;
|
|
2248
2261
|
const paginationExt = options.paginationOptions ? PaginationPlus.configure(options.paginationOptions) : PaginationPlus;
|
|
2249
2262
|
let extensions = [
|
|
2250
2263
|
ManualColumnResize,
|
|
2251
2264
|
baseStarterKit,
|
|
2252
|
-
import_extension_text_style.
|
|
2265
|
+
import_extension_text_style.TextStyle,
|
|
2253
2266
|
blockAttrs,
|
|
2254
2267
|
paginationExt,
|
|
2255
2268
|
// Always present — carries host-injected ports (onImageUpload, citation, …)
|
|
@@ -2272,7 +2285,7 @@ function createTiptapEditor(options, plugins, collaborationSetup) {
|
|
|
2272
2285
|
if (options.collaboration && collaborationSetup) {
|
|
2273
2286
|
extensions = [...extensions, ...collaborationExtensions(collaborationSetup)];
|
|
2274
2287
|
}
|
|
2275
|
-
return new
|
|
2288
|
+
return new import_core8.Editor({
|
|
2276
2289
|
element: options.target,
|
|
2277
2290
|
content,
|
|
2278
2291
|
extensions,
|
|
@@ -2370,7 +2383,7 @@ function sanitizeInlineHTML(html) {
|
|
|
2370
2383
|
}
|
|
2371
2384
|
|
|
2372
2385
|
// src/FontSize.ts
|
|
2373
|
-
var
|
|
2386
|
+
var import_core9 = require("@tiptap/core");
|
|
2374
2387
|
function mergeFontSize(textStyleType, existing, fontSize) {
|
|
2375
2388
|
if (fontSize === null) {
|
|
2376
2389
|
const { fontSize: _removed, ...rest } = existing?.attrs ?? {};
|
|
@@ -2381,7 +2394,7 @@ function mergeFontSize(textStyleType, existing, fontSize) {
|
|
|
2381
2394
|
function hasAttrs(mark) {
|
|
2382
2395
|
return Object.values(mark.attrs).some((v) => v != null);
|
|
2383
2396
|
}
|
|
2384
|
-
var FontSizeExtension =
|
|
2397
|
+
var FontSizeExtension = import_core9.Extension.create({
|
|
2385
2398
|
name: "fontSize",
|
|
2386
2399
|
addGlobalAttributes() {
|
|
2387
2400
|
return [
|
|
@@ -2479,7 +2492,7 @@ var FontSizeExtension = import_core8.Extension.create({
|
|
|
2479
2492
|
});
|
|
2480
2493
|
|
|
2481
2494
|
// src/FontFamily.ts
|
|
2482
|
-
var
|
|
2495
|
+
var import_core10 = require("@tiptap/core");
|
|
2483
2496
|
function mergeFontFamily(textStyleType, existing, fontFamily) {
|
|
2484
2497
|
if (fontFamily === null) {
|
|
2485
2498
|
const { fontFamily: _removed, ...rest } = existing?.attrs ?? {};
|
|
@@ -2490,7 +2503,7 @@ function mergeFontFamily(textStyleType, existing, fontFamily) {
|
|
|
2490
2503
|
function hasAttrs2(mark) {
|
|
2491
2504
|
return Object.values(mark.attrs).some((v) => v != null);
|
|
2492
2505
|
}
|
|
2493
|
-
var FontFamilyExtension =
|
|
2506
|
+
var FontFamilyExtension = import_core10.Extension.create({
|
|
2494
2507
|
name: "fontFamily",
|
|
2495
2508
|
addGlobalAttributes() {
|
|
2496
2509
|
return [
|
package/dist/index.d.cts
CHANGED
|
@@ -4,8 +4,8 @@ import { IndexeddbPersistence } from 'y-indexeddb';
|
|
|
4
4
|
import { WebrtcProvider } from 'y-webrtc';
|
|
5
5
|
import { WebsocketProvider } from 'y-websocket';
|
|
6
6
|
import * as Y from 'yjs';
|
|
7
|
-
import { I as ImageUploadHandler, C as CitationPort, A as AIStreamFn, a as AIDraftFn } from './index-
|
|
8
|
-
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, h as AIProvider, i as AIProviderFactory, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, H as HttpKeyStorageUrls,
|
|
7
|
+
import { I as ImageUploadHandler, C as CitationPort, A as AIStreamFn, a as AIDraftFn } from './index-Br6IhSDL.cjs';
|
|
8
|
+
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, h as AIProvider, i as AIProviderFactory, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, p as CslStyleInfo, H as HttpKeyStorageUrls, q as ImageUploadResult, K as KeyStorage, L as LOCAL_STORAGE_KEY, O as OpenAICompatibleConfig, S as SESSION_STORAGE_KEY, r as StreamEvent, s as buildAIPrompt, t as claudeProvider, u as httpKeyStorage, v as localStorageKeyStorage, w as memoryKeyStorage, x as openaiCompatibleProvider, y as sessionStorageKeyStorage, z as toAIStreamFn, D as trimContextAfter, E as trimContextBefore } from './index-Br6IhSDL.cjs';
|
|
9
9
|
import { PaginationPlusOptions } from 'tiptap-pagination-plus';
|
|
10
10
|
export { PAGE_SIZES, PageSize, PaginationPlus, PaginationPlusOptions } from 'tiptap-pagination-plus';
|
|
11
11
|
import { Node } from '@tiptap/pm/model';
|
package/dist/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { IndexeddbPersistence } from 'y-indexeddb';
|
|
|
4
4
|
import { WebrtcProvider } from 'y-webrtc';
|
|
5
5
|
import { WebsocketProvider } from 'y-websocket';
|
|
6
6
|
import * as Y from 'yjs';
|
|
7
|
-
import { I as ImageUploadHandler, C as CitationPort, A as AIStreamFn, a as AIDraftFn } from './index-
|
|
8
|
-
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, h as AIProvider, i as AIProviderFactory, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, H as HttpKeyStorageUrls,
|
|
7
|
+
import { I as ImageUploadHandler, C as CitationPort, A as AIStreamFn, a as AIDraftFn } from './index-Br6IhSDL.js';
|
|
8
|
+
export { b as AIAction, c as AIActionRequest, d as AICompleteRequest, e as AIConfig, f as AIDraftCitation, g as AIDraftEvent, h as AIProvider, i as AIProviderFactory, j as Auth, B as BrowserKeyStorageOptions, k as CONTEXT_CHAR_CAP, l as ClaudeConfig, m as CslDate, n as CslItemData, o as CslName, p as CslStyleInfo, H as HttpKeyStorageUrls, q as ImageUploadResult, K as KeyStorage, L as LOCAL_STORAGE_KEY, O as OpenAICompatibleConfig, S as SESSION_STORAGE_KEY, r as StreamEvent, s as buildAIPrompt, t as claudeProvider, u as httpKeyStorage, v as localStorageKeyStorage, w as memoryKeyStorage, x as openaiCompatibleProvider, y as sessionStorageKeyStorage, z as toAIStreamFn, D as trimContextAfter, E as trimContextBefore } from './index-Br6IhSDL.js';
|
|
9
9
|
import { PaginationPlusOptions } from 'tiptap-pagination-plus';
|
|
10
10
|
export { PAGE_SIZES, PageSize, PaginationPlus, PaginationPlusOptions } from 'tiptap-pagination-plus';
|
|
11
11
|
import { Node } from '@tiptap/pm/model';
|
package/dist/index.js
CHANGED
|
@@ -16,8 +16,8 @@ import {
|
|
|
16
16
|
|
|
17
17
|
// src/Editor.ts
|
|
18
18
|
import { Editor as TiptapEditor } from "@tiptap/core";
|
|
19
|
-
import StarterKit from "@tiptap/starter-kit";
|
|
20
|
-
import TextStyle from "@tiptap/extension-text-style";
|
|
19
|
+
import { StarterKit } from "@tiptap/starter-kit";
|
|
20
|
+
import { TextStyle } from "@tiptap/extension-text-style";
|
|
21
21
|
|
|
22
22
|
// src/PluginSystem.ts
|
|
23
23
|
function definePlugin(plugin) {
|
|
@@ -67,8 +67,9 @@ function createActionMap(editor, plugins) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
// src/Collaboration.ts
|
|
70
|
+
import { Extension } from "@tiptap/core";
|
|
70
71
|
import { Collaboration } from "@tiptap/extension-collaboration";
|
|
71
|
-
import {
|
|
72
|
+
import { yCursorPlugin } from "@tiptap/y-tiptap";
|
|
72
73
|
import { Awareness } from "y-protocols/awareness";
|
|
73
74
|
import { IndexeddbPersistence } from "y-indexeddb";
|
|
74
75
|
import { WebrtcProvider } from "y-webrtc";
|
|
@@ -187,6 +188,17 @@ function createCollaboration(options) {
|
|
|
187
188
|
};
|
|
188
189
|
return { ydoc, provider, awareness, persistence, whenReady, destroy, setLocalCursorEnabled };
|
|
189
190
|
}
|
|
191
|
+
var CollaborationCursor = Extension.create({
|
|
192
|
+
name: "collaborationCursor",
|
|
193
|
+
addOptions() {
|
|
194
|
+
return { provider: null, user: { name: "", color: "" } };
|
|
195
|
+
},
|
|
196
|
+
addProseMirrorPlugins() {
|
|
197
|
+
const awareness = this.options.provider?.awareness;
|
|
198
|
+
if (!awareness) return [];
|
|
199
|
+
return [yCursorPlugin(awareness)];
|
|
200
|
+
}
|
|
201
|
+
});
|
|
190
202
|
function collaborationExtensions(options) {
|
|
191
203
|
const setup = "ydoc" in options ? options : createCollaboration(options);
|
|
192
204
|
const extensions = [
|
|
@@ -204,10 +216,10 @@ function collaborationExtensions(options) {
|
|
|
204
216
|
}
|
|
205
217
|
|
|
206
218
|
// src/BlockAttributes.ts
|
|
207
|
-
import { Extension } from "@tiptap/core";
|
|
219
|
+
import { Extension as Extension2 } from "@tiptap/core";
|
|
208
220
|
import { Plugin, PluginKey } from "@tiptap/pm/state";
|
|
209
221
|
import { Decoration, DecorationSet } from "@tiptap/pm/view";
|
|
210
|
-
var BlockAttributesExtension =
|
|
222
|
+
var BlockAttributesExtension = Extension2.create({
|
|
211
223
|
name: "blockAttributes",
|
|
212
224
|
addOptions() {
|
|
213
225
|
return {
|
|
@@ -265,8 +277,8 @@ var BlockAttributesExtension = Extension.create({
|
|
|
265
277
|
});
|
|
266
278
|
|
|
267
279
|
// src/EditorContext.ts
|
|
268
|
-
import { Extension as
|
|
269
|
-
var EditorContextExtension =
|
|
280
|
+
import { Extension as Extension3 } from "@tiptap/core";
|
|
281
|
+
var EditorContextExtension = Extension3.create({
|
|
270
282
|
name: "editorContext",
|
|
271
283
|
addOptions() {
|
|
272
284
|
return {
|
|
@@ -287,7 +299,7 @@ var EditorContextExtension = Extension2.create({
|
|
|
287
299
|
});
|
|
288
300
|
|
|
289
301
|
// src/Indent.ts
|
|
290
|
-
import { Extension as
|
|
302
|
+
import { Extension as Extension4 } from "@tiptap/core";
|
|
291
303
|
var INDENT_STEP_PX = 48;
|
|
292
304
|
var INDENT_MAX_LEVEL = 8;
|
|
293
305
|
var INDENT_ATTR = "indent";
|
|
@@ -401,7 +413,7 @@ function runIndent(props, delta) {
|
|
|
401
413
|
}
|
|
402
414
|
return shiftBlockIndent(props, delta);
|
|
403
415
|
}
|
|
404
|
-
var IndentExtension =
|
|
416
|
+
var IndentExtension = Extension4.create({
|
|
405
417
|
name: "indent",
|
|
406
418
|
priority: 50,
|
|
407
419
|
addGlobalAttributes() {
|
|
@@ -450,9 +462,9 @@ var IndentExtension = Extension3.create({
|
|
|
450
462
|
});
|
|
451
463
|
|
|
452
464
|
// src/ManualColumnResize.ts
|
|
453
|
-
import { Extension as
|
|
465
|
+
import { Extension as Extension5 } from "@tiptap/core";
|
|
454
466
|
import { Plugin as Plugin2, PluginKey as PluginKey2 } from "@tiptap/pm/state";
|
|
455
|
-
var ManualColumnResize =
|
|
467
|
+
var ManualColumnResize = Extension5.create({
|
|
456
468
|
name: "manualColumnResize",
|
|
457
469
|
addProseMirrorPlugins() {
|
|
458
470
|
const key2 = new PluginKey2("manualColumnResize");
|
|
@@ -775,7 +787,7 @@ var ManualColumnResize = Extension4.create({
|
|
|
775
787
|
});
|
|
776
788
|
|
|
777
789
|
// src/SearchAndReplace.ts
|
|
778
|
-
import { Extension as
|
|
790
|
+
import { Extension as Extension6 } from "@tiptap/core";
|
|
779
791
|
import { Plugin as Plugin3, PluginKey as PluginKey3, TextSelection } from "@tiptap/pm/state";
|
|
780
792
|
import { Decoration as Decoration2, DecorationSet as DecorationSet2 } from "@tiptap/pm/view";
|
|
781
793
|
var searchAndReplaceKey = new PluginKey3("searchAndReplace");
|
|
@@ -835,7 +847,7 @@ var searchPlugin = new Plugin3({
|
|
|
835
847
|
}
|
|
836
848
|
}
|
|
837
849
|
});
|
|
838
|
-
var SearchAndReplaceExtension =
|
|
850
|
+
var SearchAndReplaceExtension = Extension6.create({
|
|
839
851
|
name: "searchAndReplace",
|
|
840
852
|
addProseMirrorPlugins() {
|
|
841
853
|
return [searchPlugin];
|
|
@@ -892,13 +904,13 @@ function replaceAll(editor, replacement) {
|
|
|
892
904
|
return s.matches.length;
|
|
893
905
|
}
|
|
894
906
|
|
|
895
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
896
|
-
import { Extension as
|
|
907
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/PaginationPlus.js
|
|
908
|
+
import { Extension as Extension7 } from "@tiptap/core";
|
|
897
909
|
import { Plugin as Plugin4, PluginKey as PluginKey4 } from "@tiptap/pm/state";
|
|
898
910
|
import { ReplaceStep, ReplaceAroundStep, AddMarkStep, RemoveMarkStep, RemoveNodeMarkStep, AttrStep } from "@tiptap/pm/transform";
|
|
899
911
|
import { Decoration as Decoration3, DecorationSet as DecorationSet3 } from "@tiptap/pm/view";
|
|
900
912
|
|
|
901
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
913
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/utils.js
|
|
902
914
|
var updateCssVariables = (targetNode, config) => {
|
|
903
915
|
const cssVariables = {
|
|
904
916
|
"rm-page-height": `${config.pageHeight}px`,
|
|
@@ -1072,7 +1084,7 @@ var footerClickEvent = (pageNumber, onFooterClick) => {
|
|
|
1072
1084
|
};
|
|
1073
1085
|
};
|
|
1074
1086
|
|
|
1075
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
1087
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/PaginationPlus.js
|
|
1076
1088
|
var page_count_meta_key = "PAGE_COUNT_META_KEY";
|
|
1077
1089
|
var key = new PluginKey4("brDecoration");
|
|
1078
1090
|
function buildDecorations(doc) {
|
|
@@ -1176,7 +1188,7 @@ var getPageConfigFromOptions = (_currentOptions) => {
|
|
|
1176
1188
|
};
|
|
1177
1189
|
};
|
|
1178
1190
|
var paginationKey = new PluginKey4("pagination");
|
|
1179
|
-
var PaginationPlus =
|
|
1191
|
+
var PaginationPlus = Extension7.create({
|
|
1180
1192
|
name: "PaginationPlus",
|
|
1181
1193
|
addOptions() {
|
|
1182
1194
|
return defaultOptions;
|
|
@@ -1729,7 +1741,7 @@ function createDecoration(pageOptions, headerHeightMap, footerHeightMap) {
|
|
|
1729
1741
|
return [pageWidget, firstHeaderWidget];
|
|
1730
1742
|
}
|
|
1731
1743
|
|
|
1732
|
-
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=
|
|
1744
|
+
// ../../node_modules/.pnpm/tiptap-pagination-plus@3.1.0_patch_hash=00858351959cd6e40e43520c066de1f40e312b64dcfd6be_0ce38b1f0401e16a43bcf4adee19b362/node_modules/tiptap-pagination-plus/dist/constants.js
|
|
1733
1745
|
var A4_PAGE_SIZE = getPageSize(1123, 794, 95, 95, 76, 76);
|
|
1734
1746
|
var A3_PAGE_SIZE = getPageSize(1591, 1123, 95, 95, 76, 76);
|
|
1735
1747
|
var A5_PAGE_SIZE = getPageSize(794, 419, 76, 76, 57, 57);
|
|
@@ -2172,7 +2184,8 @@ function createEditor(options = {}) {
|
|
|
2172
2184
|
return editor;
|
|
2173
2185
|
}
|
|
2174
2186
|
function createTiptapEditor(options, plugins, collaborationSetup) {
|
|
2175
|
-
const
|
|
2187
|
+
const starterKitOptions = { link: false, underline: false, trailingNode: false };
|
|
2188
|
+
const baseStarterKit = options.collaboration ? StarterKit.configure({ ...starterKitOptions, undoRedo: false }) : StarterKit.configure(starterKitOptions);
|
|
2176
2189
|
const pluginExtensions = collectExtensions(plugins);
|
|
2177
2190
|
const blockAttrs = options.getPageMap ? BlockAttributesExtension.configure({ pageMap: options.getPageMap }) : BlockAttributesExtension;
|
|
2178
2191
|
const paginationExt = options.paginationOptions ? PaginationPlus.configure(options.paginationOptions) : PaginationPlus;
|
|
@@ -2300,7 +2313,7 @@ function sanitizeInlineHTML(html) {
|
|
|
2300
2313
|
}
|
|
2301
2314
|
|
|
2302
2315
|
// src/FontSize.ts
|
|
2303
|
-
import { Extension as
|
|
2316
|
+
import { Extension as Extension8 } from "@tiptap/core";
|
|
2304
2317
|
function mergeFontSize(textStyleType, existing, fontSize) {
|
|
2305
2318
|
if (fontSize === null) {
|
|
2306
2319
|
const { fontSize: _removed, ...rest } = existing?.attrs ?? {};
|
|
@@ -2311,7 +2324,7 @@ function mergeFontSize(textStyleType, existing, fontSize) {
|
|
|
2311
2324
|
function hasAttrs(mark) {
|
|
2312
2325
|
return Object.values(mark.attrs).some((v) => v != null);
|
|
2313
2326
|
}
|
|
2314
|
-
var FontSizeExtension =
|
|
2327
|
+
var FontSizeExtension = Extension8.create({
|
|
2315
2328
|
name: "fontSize",
|
|
2316
2329
|
addGlobalAttributes() {
|
|
2317
2330
|
return [
|
|
@@ -2409,7 +2422,7 @@ var FontSizeExtension = Extension7.create({
|
|
|
2409
2422
|
});
|
|
2410
2423
|
|
|
2411
2424
|
// src/FontFamily.ts
|
|
2412
|
-
import { Extension as
|
|
2425
|
+
import { Extension as Extension9 } from "@tiptap/core";
|
|
2413
2426
|
function mergeFontFamily(textStyleType, existing, fontFamily) {
|
|
2414
2427
|
if (fontFamily === null) {
|
|
2415
2428
|
const { fontFamily: _removed, ...rest } = existing?.attrs ?? {};
|
|
@@ -2420,7 +2433,7 @@ function mergeFontFamily(textStyleType, existing, fontFamily) {
|
|
|
2420
2433
|
function hasAttrs2(mark) {
|
|
2421
2434
|
return Object.values(mark.attrs).some((v) => v != null);
|
|
2422
2435
|
}
|
|
2423
|
-
var FontFamilyExtension =
|
|
2436
|
+
var FontFamilyExtension = Extension9.create({
|
|
2424
2437
|
name: "fontFamily",
|
|
2425
2438
|
addGlobalAttributes() {
|
|
2426
2439
|
return [
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kedataindo/docflow-core",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.98",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"module": "./dist/index.js",
|
|
@@ -27,40 +27,40 @@
|
|
|
27
27
|
],
|
|
28
28
|
"sideEffects": false,
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tiptap/core": "^
|
|
31
|
-
"@tiptap/extension-collaboration": "^
|
|
32
|
-
"@tiptap/extension-
|
|
33
|
-
"@tiptap/
|
|
34
|
-
"@tiptap/
|
|
35
|
-
"@tiptap/starter-kit": "^2.27.3",
|
|
30
|
+
"@tiptap/core": "^3.32.0",
|
|
31
|
+
"@tiptap/extension-collaboration": "^3.32.0",
|
|
32
|
+
"@tiptap/extension-text-style": "^3.32.0",
|
|
33
|
+
"@tiptap/pm": "^3.32.0",
|
|
34
|
+
"@tiptap/starter-kit": "^3.32.0",
|
|
36
35
|
"tiptap-pagination-plus": "3.1.0",
|
|
37
36
|
"y-indexeddb": "^9.0.12",
|
|
38
37
|
"y-protocols": "^1.0.7",
|
|
39
|
-
"yjs": "^13.6.33"
|
|
38
|
+
"yjs": "^13.6.33",
|
|
39
|
+
"@tiptap/y-tiptap": "^3.0.10"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@tiptap/core": "^
|
|
43
|
-
"@tiptap/extension-collaboration": "^
|
|
44
|
-
"@tiptap/extension-
|
|
45
|
-
"@tiptap/
|
|
46
|
-
"@tiptap/starter-kit": "^2.27.3",
|
|
42
|
+
"@tiptap/core": "^3.32.0",
|
|
43
|
+
"@tiptap/extension-collaboration": "^3.32.0",
|
|
44
|
+
"@tiptap/extension-text-style": "^3.32.0",
|
|
45
|
+
"@tiptap/starter-kit": "^3.32.0",
|
|
47
46
|
"tiptap-pagination-plus": "3.1.0",
|
|
48
47
|
"y-webrtc": "^10.3.0",
|
|
49
48
|
"y-websocket": "^2.0.4",
|
|
50
|
-
"yjs": "^13.6.33"
|
|
49
|
+
"yjs": "^13.6.33",
|
|
50
|
+
"@tiptap/y-tiptap": "^3.0.10"
|
|
51
51
|
},
|
|
52
52
|
"peerDependenciesMeta": {
|
|
53
53
|
"@tiptap/extension-collaboration": {
|
|
54
54
|
"optional": true
|
|
55
55
|
},
|
|
56
|
-
"@tiptap/extension-collaboration-cursor": {
|
|
57
|
-
"optional": true
|
|
58
|
-
},
|
|
59
56
|
"y-webrtc": {
|
|
60
57
|
"optional": true
|
|
61
58
|
},
|
|
62
59
|
"y-websocket": {
|
|
63
60
|
"optional": true
|
|
61
|
+
},
|
|
62
|
+
"@tiptap/y-tiptap": {
|
|
63
|
+
"optional": true
|
|
64
64
|
}
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|