@verdant-web/tiptap 1.0.1 → 2.0.0
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/esm/__browserTests__/react.test.js +89 -12
- package/dist/esm/__browserTests__/react.test.js.map +1 -1
- package/dist/esm/fields.d.ts +44 -10
- package/dist/esm/fields.js +13 -1
- package/dist/esm/fields.js.map +1 -1
- package/dist/esm/plugins.js +22 -6
- package/dist/esm/plugins.js.map +1 -1
- package/package.json +7 -7
- package/src/__browserTests__/react.test.tsx +124 -12
- package/src/fields.ts +55 -10
- package/src/plugins.ts +21 -5
|
@@ -30,6 +30,15 @@ const testSchema = schema({
|
|
|
30
30
|
},
|
|
31
31
|
});
|
|
32
32
|
const hooks = createHooks(testSchema);
|
|
33
|
+
function safeLogger(level, ...args) {
|
|
34
|
+
try {
|
|
35
|
+
if (args.some((arg) => typeof arg === 'string' && arg.includes('Redo')))
|
|
36
|
+
console.debug(...args.map((arg) => typeof arg === 'object' ? JSON.stringify(arg, undefined, ' ') : arg));
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
console.debug(...args);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
33
42
|
let clientDesc;
|
|
34
43
|
let client;
|
|
35
44
|
beforeAll(async () => {
|
|
@@ -38,6 +47,7 @@ beforeAll(async () => {
|
|
|
38
47
|
oldSchemas: [testSchema],
|
|
39
48
|
migrations: [createMigration(testSchema)],
|
|
40
49
|
namespace: 'tiptatp-test',
|
|
50
|
+
// log: safeLogger,
|
|
41
51
|
});
|
|
42
52
|
client = await clientDesc.open();
|
|
43
53
|
});
|
|
@@ -78,20 +88,20 @@ it('should support non-nullable tiptap schema fields', async () => {
|
|
|
78
88
|
{
|
|
79
89
|
type: 'text',
|
|
80
90
|
attrs: {},
|
|
81
|
-
content:
|
|
82
|
-
marks:
|
|
91
|
+
content: null,
|
|
92
|
+
marks: null,
|
|
83
93
|
from: null,
|
|
84
94
|
to: null,
|
|
85
95
|
text: 'Hello, world!',
|
|
86
96
|
},
|
|
87
97
|
],
|
|
88
|
-
marks:
|
|
98
|
+
marks: null,
|
|
89
99
|
from: null,
|
|
90
100
|
to: null,
|
|
91
101
|
text: null,
|
|
92
102
|
},
|
|
93
103
|
],
|
|
94
|
-
marks:
|
|
104
|
+
marks: null,
|
|
95
105
|
text: null,
|
|
96
106
|
});
|
|
97
107
|
});
|
|
@@ -130,20 +140,20 @@ it('should support nullable tiptap schema fields with a specified default doc',
|
|
|
130
140
|
{
|
|
131
141
|
type: 'text',
|
|
132
142
|
attrs: {},
|
|
133
|
-
content:
|
|
134
|
-
marks:
|
|
143
|
+
content: null,
|
|
144
|
+
marks: null,
|
|
135
145
|
from: null,
|
|
136
146
|
to: null,
|
|
137
147
|
text: 'Hello, world!',
|
|
138
148
|
},
|
|
139
149
|
],
|
|
140
|
-
marks:
|
|
150
|
+
marks: null,
|
|
141
151
|
from: null,
|
|
142
152
|
to: null,
|
|
143
153
|
text: null,
|
|
144
154
|
},
|
|
145
155
|
],
|
|
146
|
-
marks:
|
|
156
|
+
marks: null,
|
|
147
157
|
text: null,
|
|
148
158
|
});
|
|
149
159
|
});
|
|
@@ -196,7 +206,7 @@ it('should support Verdant undo and redo', async () => {
|
|
|
196
206
|
from: null,
|
|
197
207
|
to: null,
|
|
198
208
|
content: [],
|
|
199
|
-
marks:
|
|
209
|
+
marks: null,
|
|
200
210
|
text: null,
|
|
201
211
|
});
|
|
202
212
|
});
|
|
@@ -243,15 +253,15 @@ it('should support TipTap undo and redo', async () => {
|
|
|
243
253
|
content: [
|
|
244
254
|
{
|
|
245
255
|
attrs: {},
|
|
246
|
-
content:
|
|
256
|
+
content: null,
|
|
247
257
|
from: null,
|
|
248
|
-
marks:
|
|
258
|
+
marks: null,
|
|
249
259
|
text: null,
|
|
250
260
|
to: null,
|
|
251
261
|
type: 'paragraph',
|
|
252
262
|
},
|
|
253
263
|
],
|
|
254
|
-
marks:
|
|
264
|
+
marks: null,
|
|
255
265
|
text: null,
|
|
256
266
|
});
|
|
257
267
|
});
|
|
@@ -292,4 +302,71 @@ it('should initialize from an existing document', async () => {
|
|
|
292
302
|
await expect.element(editor).toHaveTextContent('');
|
|
293
303
|
await expect.element(editor).toHaveTextContent('Hello, world!');
|
|
294
304
|
});
|
|
305
|
+
function testLog(...args) {
|
|
306
|
+
console.debug('[TEST]', ...args);
|
|
307
|
+
}
|
|
308
|
+
it('should withstand multiple edits, undo, and redo consistently', async () => {
|
|
309
|
+
const testPost = await client.posts.put({
|
|
310
|
+
requiredBody: {
|
|
311
|
+
type: 'doc',
|
|
312
|
+
content: [
|
|
313
|
+
{
|
|
314
|
+
type: 'paragraph',
|
|
315
|
+
content: [
|
|
316
|
+
{
|
|
317
|
+
type: 'text',
|
|
318
|
+
text: 'Hello, world!',
|
|
319
|
+
},
|
|
320
|
+
],
|
|
321
|
+
},
|
|
322
|
+
],
|
|
323
|
+
},
|
|
324
|
+
});
|
|
325
|
+
// reset history
|
|
326
|
+
await client.entities.flushAllBatches();
|
|
327
|
+
client.undoHistory.clear();
|
|
328
|
+
const TipTapTest = () => {
|
|
329
|
+
const editor = useSyncedEditor(testPost, 'requiredBody', {
|
|
330
|
+
editorOptions: {
|
|
331
|
+
extensions: [StarterKit.configure({ history: false })],
|
|
332
|
+
},
|
|
333
|
+
});
|
|
334
|
+
return (_jsxs("div", { children: [_jsx("div", { children: "Text editor:" }), _jsx(EditorContent, { style: {
|
|
335
|
+
width: 500,
|
|
336
|
+
height: 300,
|
|
337
|
+
}, editor: editor, id: "#editor", "data-testid": "editor" })] }));
|
|
338
|
+
};
|
|
339
|
+
const screen = await renderWithProvider(_jsx(TipTapTest, {}));
|
|
340
|
+
await expect.element(screen.getByTestId('editor')).toBeVisible();
|
|
341
|
+
const editor = screen.getByTestId('editor').getByRole('textbox');
|
|
342
|
+
await expect.element(editor).toHaveTextContent('');
|
|
343
|
+
await expect.element(editor).toHaveTextContent('Hello, world!');
|
|
344
|
+
await userEvent.type(editor, '[pageDown]');
|
|
345
|
+
await userEvent.type(editor, '\nLine 2!');
|
|
346
|
+
await client.entities.flushAllBatches();
|
|
347
|
+
await userEvent.type(editor, '\nLine 3!');
|
|
348
|
+
await client.entities.flushAllBatches();
|
|
349
|
+
expect(client.undoHistory.canUndo).toBe(true);
|
|
350
|
+
await client.undoHistory.undo();
|
|
351
|
+
await client.entities.flushAllBatches();
|
|
352
|
+
await expect.element(editor).toHaveTextContent(/^Hello, world!Line 2!$/);
|
|
353
|
+
await client.undoHistory.redo();
|
|
354
|
+
await client.entities.flushAllBatches();
|
|
355
|
+
await expect
|
|
356
|
+
.element(editor)
|
|
357
|
+
.toHaveTextContent(/^Hello, world!Line 2!Line 3!$/);
|
|
358
|
+
await client.undoHistory.undo();
|
|
359
|
+
await client.entities.flushAllBatches();
|
|
360
|
+
await expect.element(editor).toHaveTextContent(/^Hello, world!Line 2!$/);
|
|
361
|
+
// I've noticed some strangeness when restoring a deleted block
|
|
362
|
+
// when the editor is not on the same line as the deletion,
|
|
363
|
+
// not sure if this is actually related to cursor position but
|
|
364
|
+
// testing anyway.
|
|
365
|
+
await userEvent.type(editor, '[arrowUp]');
|
|
366
|
+
await client.undoHistory.redo();
|
|
367
|
+
await client.entities.flushAllBatches();
|
|
368
|
+
await expect
|
|
369
|
+
.element(editor)
|
|
370
|
+
.toHaveTextContent(/^Hello, world!Line 2!Line 3!$/);
|
|
371
|
+
});
|
|
295
372
|
//# sourceMappingURL=react.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react.test.js","sourceRoot":"","sources":["../../../src/__browserTests__/react.test.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react.test.js","sourceRoot":"","sources":["../../../src/__browserTests__/react.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/fields.d.ts
CHANGED
|
@@ -1,16 +1,49 @@
|
|
|
1
|
-
import { ShapeFromProperty, StorageAnyFieldSchema, StorageArrayFieldSchema, StorageNumberFieldSchema, StorageObjectFieldSchema, StorageStringFieldSchema } from '@verdant-web/common';
|
|
1
|
+
import { ShapeFromProperty, StorageAnyFieldSchema, StorageArrayFieldSchema, StorageMapFieldSchema, StorageNumberFieldSchema, StorageObjectFieldSchema, StorageStringFieldSchema } from '@verdant-web/common';
|
|
2
|
+
import { ListEntity, ObjectEntity } from '@verdant-web/store';
|
|
2
3
|
export type TiptapFieldSchema = StorageObjectFieldSchema<{
|
|
3
4
|
type: StorageStringFieldSchema;
|
|
4
|
-
from: StorageNumberFieldSchema
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
from: StorageNumberFieldSchema & {
|
|
6
|
+
nullable: true;
|
|
7
|
+
};
|
|
8
|
+
to: StorageNumberFieldSchema & {
|
|
9
|
+
nullable: true;
|
|
10
|
+
};
|
|
11
|
+
attrs: StorageMapFieldSchema<StorageAnyFieldSchema>;
|
|
12
|
+
content: StorageArrayFieldSchema<TiptapFieldSchema> & {
|
|
13
|
+
nullable: true;
|
|
14
|
+
};
|
|
15
|
+
text: StorageStringFieldSchema & {
|
|
16
|
+
nullable: true;
|
|
17
|
+
};
|
|
18
|
+
marks: StorageArrayFieldSchema<TiptapFieldSchema> & {
|
|
19
|
+
nullable: true;
|
|
20
|
+
};
|
|
12
21
|
}>;
|
|
13
|
-
|
|
22
|
+
type PartialNull<T> = {
|
|
23
|
+
[K in keyof T]?: T[K] | null;
|
|
24
|
+
};
|
|
25
|
+
export type TipTapFieldInitializer = Pick<ShapeFromProperty<TiptapFieldSchema>, 'type'> & PartialNull<ShapeFromProperty<TiptapFieldSchema>>;
|
|
26
|
+
export type TipTapAttrsEntity = ObjectEntity<{
|
|
27
|
+
[key: string]: any;
|
|
28
|
+
}, {
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}, {
|
|
31
|
+
[key: string]: any;
|
|
32
|
+
}>;
|
|
33
|
+
export type TipTapContentEntity = ListEntity<TipTapFieldInitializer[], TipTapDocumentEntity[], ShapeFromProperty<TiptapFieldSchema>[]>;
|
|
34
|
+
/**
|
|
35
|
+
* NOTE: it's not recommended to use this type directly. Instead rely on the generated
|
|
36
|
+
* types from the Verdant CLI.
|
|
37
|
+
*/
|
|
38
|
+
export type TipTapDocumentEntity = ObjectEntity<TipTapFieldInitializer, {
|
|
39
|
+
type: string;
|
|
40
|
+
from: number | null;
|
|
41
|
+
to: number | null;
|
|
42
|
+
attrs: TipTapAttrsEntity;
|
|
43
|
+
content: TipTapContentEntity;
|
|
44
|
+
text: string | null;
|
|
45
|
+
marks: TipTapContentEntity;
|
|
46
|
+
}, ShapeFromProperty<TiptapFieldSchema>>;
|
|
14
47
|
/**
|
|
15
48
|
* Creates a generic TipTap schema field. You must invoke this and assign it
|
|
16
49
|
* individually to every TipTap document field in your schema, DO NOT reuse
|
|
@@ -19,3 +52,4 @@ export type TipTapFieldInitializer = Pick<ShapeFromProperty<TiptapFieldSchema>,
|
|
|
19
52
|
export declare function createTipTapFieldSchema(options: {
|
|
20
53
|
default: TipTapFieldInitializer | null;
|
|
21
54
|
}): TiptapFieldSchema;
|
|
55
|
+
export {};
|
package/dist/esm/fields.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import { schema, } from '@verdant-web/common';
|
|
2
|
+
const otherDefaults = {
|
|
3
|
+
content: [],
|
|
4
|
+
marks: null,
|
|
5
|
+
attrs: {},
|
|
6
|
+
from: null,
|
|
7
|
+
to: null,
|
|
8
|
+
text: null,
|
|
9
|
+
};
|
|
2
10
|
/**
|
|
3
11
|
* Creates a generic TipTap schema field. You must invoke this and assign it
|
|
4
12
|
* individually to every TipTap document field in your schema, DO NOT reuse
|
|
@@ -20,10 +28,12 @@ export function createTipTapFieldSchema(options) {
|
|
|
20
28
|
}),
|
|
21
29
|
content: schema.fields.array({
|
|
22
30
|
items: baseField,
|
|
31
|
+
nullable: true,
|
|
23
32
|
}),
|
|
24
33
|
text: schema.fields.string({ nullable: true }),
|
|
25
34
|
marks: schema.fields.array({
|
|
26
35
|
items: baseField,
|
|
36
|
+
nullable: true,
|
|
27
37
|
}),
|
|
28
38
|
});
|
|
29
39
|
const rootField = schema.fields.object({
|
|
@@ -36,17 +46,19 @@ export function createTipTapFieldSchema(options) {
|
|
|
36
46
|
}),
|
|
37
47
|
content: schema.fields.array({
|
|
38
48
|
items: nestedContent,
|
|
49
|
+
nullable: true,
|
|
39
50
|
}),
|
|
40
51
|
text: schema.fields.string({ nullable: true }),
|
|
41
52
|
marks: schema.fields.array({
|
|
42
53
|
items: nestedContent,
|
|
54
|
+
nullable: true,
|
|
43
55
|
}),
|
|
44
56
|
},
|
|
45
57
|
default: () => {
|
|
46
58
|
if (options.default === null) {
|
|
47
59
|
return null;
|
|
48
60
|
}
|
|
49
|
-
return structuredClone(options.default);
|
|
61
|
+
return Object.assign(Object.assign({}, otherDefaults), structuredClone(options.default));
|
|
50
62
|
},
|
|
51
63
|
nullable: options.default === null,
|
|
52
64
|
});
|
package/dist/esm/fields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../src/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,MAAM,GAQN,MAAM,qBAAqB,CAAC;AAmD7B,MAAM,aAAa,GAAG;IACrB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,IAAI;IACV,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;CACV,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAEvC;IACA,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACd,8FAA8F,CAC9F,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,EAAE;KACV,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE;QAClE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9C,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;SAC3B,CAAC;QACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;SACd,CAAC;QACF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAC1B,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE,IAAI;SACd,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE;YACP,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;YAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9C,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;gBACxB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;aAC3B,CAAC;YACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC5B,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,IAAI;aACd,CAAC;YACF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC1B,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,IAAI;aACd,CAAC;SACF;QACD,OAAO,EAAE,GAAG,EAAE;YACb,IAAI,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACb,CAAC;YACD,uCAAY,aAAa,GAAK,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAG;QAClE,CAAC;QACD,QAAQ,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI;KAClC,CAAC,CAAC;IAEH,OAAO,SAAgB,CAAC;AACzB,CAAC"}
|
package/dist/esm/plugins.js
CHANGED
|
@@ -149,7 +149,7 @@ export const VerdantExtension = Extension.create({
|
|
|
149
149
|
const field = parent.get(fieldName);
|
|
150
150
|
if (field) {
|
|
151
151
|
unsubscribe = field.subscribe('changeDeep', (target, info) => {
|
|
152
|
-
if (!info.isLocal || target === field) {
|
|
152
|
+
if (!field.deleted && (!info.isLocal || target === field)) {
|
|
153
153
|
updateFromField(field);
|
|
154
154
|
}
|
|
155
155
|
});
|
|
@@ -177,7 +177,7 @@ export const VerdantExtension = Extension.create({
|
|
|
177
177
|
else {
|
|
178
178
|
// re-assign oids to data objects so they can be diffed more effectively
|
|
179
179
|
// against existing data
|
|
180
|
-
|
|
180
|
+
formatSnapshotForVerdantAndAssignOids(newData);
|
|
181
181
|
// printAllOids(newData);
|
|
182
182
|
const client = getEntityClient(value);
|
|
183
183
|
client.batch(this.options.batchConfig).run(() => {
|
|
@@ -197,23 +197,39 @@ export const VerdantExtension = Extension.create({
|
|
|
197
197
|
export function createVerdantExtension(parent, fieldName, options) {
|
|
198
198
|
return VerdantExtension.configure(Object.assign({ parent, fieldName: fieldName }, options));
|
|
199
199
|
}
|
|
200
|
-
function
|
|
200
|
+
function formatSnapshotForVerdantAndAssignOids(doc) {
|
|
201
201
|
var _a;
|
|
202
202
|
if (((_a = doc.attrs) === null || _a === void 0 ? void 0 : _a[verdantIdAttribute]) !== undefined) {
|
|
203
203
|
assignOid(doc, doc.attrs[verdantIdAttribute]);
|
|
204
204
|
delete doc.attrs[verdantIdAttribute];
|
|
205
205
|
}
|
|
206
|
+
// make sure all fields are present, even if null.
|
|
207
|
+
if (doc.from === undefined) {
|
|
208
|
+
doc.from = null;
|
|
209
|
+
}
|
|
210
|
+
if (doc.to === undefined) {
|
|
211
|
+
doc.to = null;
|
|
212
|
+
}
|
|
213
|
+
if (doc.text === undefined) {
|
|
214
|
+
doc.text = null;
|
|
215
|
+
}
|
|
216
|
+
if (doc.attrs === undefined) {
|
|
217
|
+
doc.attrs = {};
|
|
218
|
+
}
|
|
219
|
+
if (doc.marks === undefined) {
|
|
220
|
+
doc.marks = null;
|
|
221
|
+
}
|
|
206
222
|
if (doc.content) {
|
|
207
|
-
doc.content.forEach(
|
|
223
|
+
doc.content.forEach(formatSnapshotForVerdantAndAssignOids);
|
|
208
224
|
}
|
|
209
225
|
}
|
|
210
226
|
// since the schema doesn't enforce this shape but it's
|
|
211
227
|
// needed for the editor to work, we'll ensure it here
|
|
212
228
|
function ensureDocShape(json) {
|
|
213
|
-
var _a;
|
|
229
|
+
var _a, _b;
|
|
214
230
|
for (const node of (_a = json.content) !== null && _a !== void 0 ? _a : []) {
|
|
215
231
|
// remove undefined nodes
|
|
216
|
-
node.content = node.content.filter((n) => !!n).map(ensureDocShape);
|
|
232
|
+
node.content = (_b = node.content) === null || _b === void 0 ? void 0 : _b.filter((n) => !!n).map(ensureDocShape);
|
|
217
233
|
}
|
|
218
234
|
return json;
|
|
219
235
|
}
|
package/dist/esm/plugins.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAe,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAEN,eAAe,EACf,EAAE,GAEF,MAAM,oBAAoB,CAAC;AAE5B,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC;IAC/B,GAAG,EAAE,IAAI,SAAS,CAAC,UAAU,CAAC;IAC9B,iBAAiB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QAC5C,aAAa;QACb,IAAI,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;YAAE,OAAO;QAC1C,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;QACvB,2CAA2C;QAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;;YACtC,IACC,CAAC,IAAI,CAAC,MAAM;gBACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9C,IAAI,KAAK,QAAQ,CAAC,GAAG,EACpB,CAAC;gBACF,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACJ,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,kCACtB,IAAI,CAAC,KAAK,KACb,EAAE,EAAE,MAAM,IACT,CAAC;oBACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACrB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACd,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC;iBAAM,IAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,EAAE,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5B,CAAC;QACF,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACX,CAAC;CACD,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/C,IAAI,EAAE,QAAQ;IACd,qBAAqB;QACpB,OAAO,CAAC,YAAY,CAAC,CAAC;IACvB,CAAC;IACD,UAAU;QACT,OAAO;YACN,KAAK,EAAE,EAAE;SACT,CAAC;IACH,CAAC;IACD,mBAAmB;QAClB,OAAO;YACN;gBACC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;gBACzB,UAAU,EAAE;oBACX,EAAE,EAAE;wBACH,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,KAAK;wBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;wBACvD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;4BAC1B,IAAI,CAAC,UAAU,CAAC,EAAE;gCAAE,OAAO,EAAE,CAAC;4BAC9B,OAAO;gCACN,SAAS,EAAE,UAAU,CAAC,EAAE;6BACxB,CAAC;wBACH,CAAC;qBACD;iBACD;aACD;SACD,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAYrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAG9C;IACD,IAAI,EAAE,SAAS;IACf,UAAU;QACT,OAAO;YACN,MAAM,EAAE,IAAW;YACnB,SAAS,EAAE,EAAE;YACb,mBAAmB,EAAE,IAAI;YACzB,WAAW,EAAE;gBACZ,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,QAAQ;gBACnB,GAAG,EAAE,IAAI;gBACT,OAAO,EAAE,GAAG;aACZ;SACD,CAAC;IACH,CAAC;IACD,UAAU;QACT,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,IAAI;SACjB,CAAC;IACH,CAAC;IACD,mBAAmB;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU;aAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;aACpC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC;aAC9C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC5B,OAAO;YACN;gBACC,KAAK,EAAE,SAAS;gBAChB,UAAU,EAAE;oBACX,CAAC,kBAAkB,CAAC,EAAE;wBACrB,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,KAAK;wBAClB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC;wBAChE,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE;4BAC1B,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;gCAAE,OAAO,EAAE,CAAC;4BAC/C,OAAO;gCACN,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC;6BACpD,CAAC;wBACH,CAAC;qBACD;iBACD;aACD;SACD,CAAC;IACH,CAAC;IACD,cAAc;QACb,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChE,mBAAmB;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACd,8BAA8B,SAAS,4CAA4C,CACnF,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACd,kEAAkE,SAAS,SAAS,WAAW,CAAC,IAAI,EAAE,CACtG,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACd,kFAAkF,CAClF,CAAC;QACH,CAAC;IACF,CAAC;IACD,QAAQ;QACP,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAChE,6BAA6B;QAC7B,IAAI,WAAW,GAAwB,IAAI,CAAC;QAC5C,MAAM,eAAe,GAAG,CAAC,KAAoC,EAAE,EAAE;YAChE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAC7B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAC9B,cAAc,CACb,gBAAgB,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,CACvD,EACD,KAAK,CACL,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC/B,CAAC;QACF,CAAC,CAAC;QACF,MAAM,0BAA0B,GAAG,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAkC,CAAC;YACrE,IAAI,KAAK,EAAE,CAAC;gBACX,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;oBAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;wBAC3D,eAAe,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;gBACF,CAAC,CAAC,CAAC;gBACH,eAAe,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;QACF,CAAC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9D,WAAW,aAAX,WAAW,uBAAX,WAAW,EAAI,CAAC;YAChB,0BAA0B,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,0BAA0B,EAAE,CAAC;IAC9B,CAAC;IACD,QAAQ;QACP,wEAAwE;QACxE,8EAA8E;QAC9E,sDAAsD;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAO;QACR,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CACpC,IAAI,CAAC,OAAO,CAAC,SAAS,CACW,CAAC;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAgB,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACP,wEAAwE;YACxE,wBAAwB;YACxB,qCAAqC,CAAC,OAAO,CAAC,CAAC;YAC/C,yBAAyB;YACzB,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC/C,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;oBACrB,KAAK,EAAE,KAAK;oBACZ,uBAAuB,EAAE,IAAI;oBAC7B,iBAAiB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IACD,SAAS;;QACR,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,WAAW,kDAAI,CAAC;IAC9B,CAAC;CACD,CAAC,CAAC;AAmBH,MAAM,UAAU,sBAAsB,CAIrC,MAAY,EACZ,SAAc,EACd,OAKC;IAED,OAAO,gBAAgB,CAAC,SAAS,iBAChC,MAAM,EACN,SAAS,EAAE,SAA4B,IACpC,OAAO,EACT,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAAC,GAAgB;;IAC9D,IAAI,CAAA,MAAA,GAAG,CAAC,KAAK,0CAAG,kBAAkB,CAAC,MAAK,SAAS,EAAE,CAAC;QACnD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC9C,OAAO,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IACD,kDAAkD;IAClD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QAC1B,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,GAAG,CAAC,IAAI,GAAG,IAAW,CAAC;IACxB,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;IAChB,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,KAAK,GAAG,IAAW,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IAC5D,CAAC;AACF,CAAC;AAED,uDAAuD;AACvD,sDAAsD;AACtD,SAAS,cAAc,CAAC,IAAS;;IAChC,KAAK,MAAM,IAAI,IAAI,MAAA,IAAI,CAAC,OAAO,mCAAI,EAAE,EAAE,CAAC;QACvC,yBAAyB;QACzB,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CACxB,KAAgD,EAChD,mBAAwB,EACxB,SAAmC;IAEnC,MAAM,OAAO,GAAG,KAAK;QACpB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,IAAI,CAAC,CAAC;IACjC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,SAAS,CAAC;;8DAEI,CAAC,CAAC;IAC/D,CAAC;IACD,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,GAAgB;;IACpC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,KAAK,GAAG,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,CAAC;QAC5B,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACjB,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,GAAQ;IAC7B,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACvB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@verdant-web/tiptap",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"access": "public",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@tiptap/pm": "^2.11.5",
|
|
27
27
|
"@tiptap/react": "^2.11.5",
|
|
28
28
|
"react": "^19.0.0",
|
|
29
|
-
"@verdant-web/react": "
|
|
30
|
-
"@verdant-web/store": "4.
|
|
29
|
+
"@verdant-web/react": "42.0.0",
|
|
30
|
+
"@verdant-web/store": "4.3.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependenciesMeta": {
|
|
33
33
|
"@verdant-web/react": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@verdant-web/common": "2.
|
|
44
|
+
"@verdant-web/common": "2.9.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "5.7.3",
|
|
@@ -59,10 +59,10 @@
|
|
|
59
59
|
"@vitejs/plugin-react": "4.3.4",
|
|
60
60
|
"react-dom": "19.0.0",
|
|
61
61
|
"@types/react-dom": "19.0.4",
|
|
62
|
-
"@verdant-web/
|
|
63
|
-
"@verdant-web/
|
|
62
|
+
"@verdant-web/react": "42.0.0",
|
|
63
|
+
"@verdant-web/store": "4.3.0",
|
|
64
64
|
"@verdant-web/cli": "4.8.2",
|
|
65
|
-
"@verdant-web/server": "3.3.
|
|
65
|
+
"@verdant-web/server": "3.3.10"
|
|
66
66
|
},
|
|
67
67
|
"scripts": {
|
|
68
68
|
"test": "vitest",
|
|
@@ -32,6 +32,19 @@ const testSchema = schema({
|
|
|
32
32
|
|
|
33
33
|
const hooks = createHooks(testSchema);
|
|
34
34
|
|
|
35
|
+
function safeLogger(level: string, ...args: any[]) {
|
|
36
|
+
try {
|
|
37
|
+
if (args.some((arg) => typeof arg === 'string' && arg.includes('Redo')))
|
|
38
|
+
console.debug(
|
|
39
|
+
...args.map((arg) =>
|
|
40
|
+
typeof arg === 'object' ? JSON.stringify(arg, undefined, ' ') : arg,
|
|
41
|
+
),
|
|
42
|
+
);
|
|
43
|
+
} catch (err) {
|
|
44
|
+
console.debug(...args);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
35
48
|
let clientDesc: ClientDescriptor;
|
|
36
49
|
let client: ClientWithCollections;
|
|
37
50
|
beforeAll(async () => {
|
|
@@ -40,6 +53,7 @@ beforeAll(async () => {
|
|
|
40
53
|
oldSchemas: [testSchema],
|
|
41
54
|
migrations: [createMigration(testSchema)],
|
|
42
55
|
namespace: 'tiptatp-test',
|
|
56
|
+
// log: safeLogger,
|
|
43
57
|
});
|
|
44
58
|
client = await (clientDesc.open() as Promise<ClientWithCollections>);
|
|
45
59
|
});
|
|
@@ -107,20 +121,20 @@ it('should support non-nullable tiptap schema fields', async () => {
|
|
|
107
121
|
{
|
|
108
122
|
type: 'text',
|
|
109
123
|
attrs: {},
|
|
110
|
-
content:
|
|
111
|
-
marks:
|
|
124
|
+
content: null,
|
|
125
|
+
marks: null,
|
|
112
126
|
from: null,
|
|
113
127
|
to: null,
|
|
114
128
|
text: 'Hello, world!',
|
|
115
129
|
},
|
|
116
130
|
],
|
|
117
|
-
marks:
|
|
131
|
+
marks: null,
|
|
118
132
|
from: null,
|
|
119
133
|
to: null,
|
|
120
134
|
text: null,
|
|
121
135
|
},
|
|
122
136
|
],
|
|
123
|
-
marks:
|
|
137
|
+
marks: null,
|
|
124
138
|
text: null,
|
|
125
139
|
});
|
|
126
140
|
});
|
|
@@ -176,20 +190,20 @@ it('should support nullable tiptap schema fields with a specified default doc',
|
|
|
176
190
|
{
|
|
177
191
|
type: 'text',
|
|
178
192
|
attrs: {},
|
|
179
|
-
content:
|
|
180
|
-
marks:
|
|
193
|
+
content: null,
|
|
194
|
+
marks: null,
|
|
181
195
|
from: null,
|
|
182
196
|
to: null,
|
|
183
197
|
text: 'Hello, world!',
|
|
184
198
|
},
|
|
185
199
|
],
|
|
186
|
-
marks:
|
|
200
|
+
marks: null,
|
|
187
201
|
from: null,
|
|
188
202
|
to: null,
|
|
189
203
|
text: null,
|
|
190
204
|
},
|
|
191
205
|
],
|
|
192
|
-
marks:
|
|
206
|
+
marks: null,
|
|
193
207
|
text: null,
|
|
194
208
|
});
|
|
195
209
|
});
|
|
@@ -262,7 +276,7 @@ it('should support Verdant undo and redo', async () => {
|
|
|
262
276
|
from: null,
|
|
263
277
|
to: null,
|
|
264
278
|
content: [],
|
|
265
|
-
marks:
|
|
279
|
+
marks: null,
|
|
266
280
|
text: null,
|
|
267
281
|
});
|
|
268
282
|
});
|
|
@@ -333,15 +347,15 @@ it('should support TipTap undo and redo', async () => {
|
|
|
333
347
|
content: [
|
|
334
348
|
{
|
|
335
349
|
attrs: {},
|
|
336
|
-
content:
|
|
350
|
+
content: null,
|
|
337
351
|
from: null,
|
|
338
|
-
marks:
|
|
352
|
+
marks: null,
|
|
339
353
|
text: null,
|
|
340
354
|
to: null,
|
|
341
355
|
type: 'paragraph',
|
|
342
356
|
},
|
|
343
357
|
],
|
|
344
|
-
marks:
|
|
358
|
+
marks: null,
|
|
345
359
|
text: null,
|
|
346
360
|
});
|
|
347
361
|
});
|
|
@@ -398,3 +412,101 @@ it('should initialize from an existing document', async () => {
|
|
|
398
412
|
await expect.element(editor).toHaveTextContent('');
|
|
399
413
|
await expect.element(editor).toHaveTextContent('Hello, world!');
|
|
400
414
|
});
|
|
415
|
+
|
|
416
|
+
function testLog(...args: any[]) {
|
|
417
|
+
console.debug('[TEST]', ...args);
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
it('should withstand multiple edits, undo, and redo consistently', async () => {
|
|
421
|
+
const testPost = await client.posts.put({
|
|
422
|
+
requiredBody: {
|
|
423
|
+
type: 'doc',
|
|
424
|
+
content: [
|
|
425
|
+
{
|
|
426
|
+
type: 'paragraph',
|
|
427
|
+
content: [
|
|
428
|
+
{
|
|
429
|
+
type: 'text',
|
|
430
|
+
text: 'Hello, world!',
|
|
431
|
+
},
|
|
432
|
+
],
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
},
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
// reset history
|
|
439
|
+
await client.entities.flushAllBatches();
|
|
440
|
+
client.undoHistory.clear();
|
|
441
|
+
|
|
442
|
+
const TipTapTest = () => {
|
|
443
|
+
const editor = useSyncedEditor(testPost, 'requiredBody', {
|
|
444
|
+
editorOptions: {
|
|
445
|
+
extensions: [StarterKit.configure({ history: false })],
|
|
446
|
+
},
|
|
447
|
+
});
|
|
448
|
+
|
|
449
|
+
return (
|
|
450
|
+
<div>
|
|
451
|
+
<div>Text editor:</div>
|
|
452
|
+
<EditorContent
|
|
453
|
+
style={{
|
|
454
|
+
width: 500,
|
|
455
|
+
height: 300,
|
|
456
|
+
}}
|
|
457
|
+
editor={editor}
|
|
458
|
+
id="#editor"
|
|
459
|
+
data-testid="editor"
|
|
460
|
+
/>
|
|
461
|
+
</div>
|
|
462
|
+
);
|
|
463
|
+
};
|
|
464
|
+
|
|
465
|
+
const screen = await renderWithProvider(<TipTapTest />);
|
|
466
|
+
await expect.element(screen.getByTestId('editor')).toBeVisible();
|
|
467
|
+
|
|
468
|
+
const editor = screen.getByTestId('editor').getByRole('textbox');
|
|
469
|
+
await expect.element(editor).toHaveTextContent('');
|
|
470
|
+
await expect.element(editor).toHaveTextContent('Hello, world!');
|
|
471
|
+
|
|
472
|
+
await userEvent.type(editor, '[pageDown]');
|
|
473
|
+
await userEvent.type(editor, '\nLine 2!');
|
|
474
|
+
|
|
475
|
+
await client.entities.flushAllBatches();
|
|
476
|
+
|
|
477
|
+
await userEvent.type(editor, '\nLine 3!');
|
|
478
|
+
|
|
479
|
+
await client.entities.flushAllBatches();
|
|
480
|
+
|
|
481
|
+
expect(client.undoHistory.canUndo).toBe(true);
|
|
482
|
+
|
|
483
|
+
await client.undoHistory.undo();
|
|
484
|
+
await client.entities.flushAllBatches();
|
|
485
|
+
|
|
486
|
+
await expect.element(editor).toHaveTextContent(/^Hello, world!Line 2!$/);
|
|
487
|
+
|
|
488
|
+
await client.undoHistory.redo();
|
|
489
|
+
await client.entities.flushAllBatches();
|
|
490
|
+
|
|
491
|
+
await expect
|
|
492
|
+
.element(editor)
|
|
493
|
+
.toHaveTextContent(/^Hello, world!Line 2!Line 3!$/);
|
|
494
|
+
|
|
495
|
+
await client.undoHistory.undo();
|
|
496
|
+
await client.entities.flushAllBatches();
|
|
497
|
+
|
|
498
|
+
await expect.element(editor).toHaveTextContent(/^Hello, world!Line 2!$/);
|
|
499
|
+
|
|
500
|
+
// I've noticed some strangeness when restoring a deleted block
|
|
501
|
+
// when the editor is not on the same line as the deletion,
|
|
502
|
+
// not sure if this is actually related to cursor position but
|
|
503
|
+
// testing anyway.
|
|
504
|
+
await userEvent.type(editor, '[arrowUp]');
|
|
505
|
+
|
|
506
|
+
await client.undoHistory.redo();
|
|
507
|
+
await client.entities.flushAllBatches();
|
|
508
|
+
|
|
509
|
+
await expect
|
|
510
|
+
.element(editor)
|
|
511
|
+
.toHaveTextContent(/^Hello, world!Line 2!Line 3!$/);
|
|
512
|
+
});
|
package/src/fields.ts
CHANGED
|
@@ -3,28 +3,69 @@ import {
|
|
|
3
3
|
ShapeFromProperty,
|
|
4
4
|
StorageAnyFieldSchema,
|
|
5
5
|
StorageArrayFieldSchema,
|
|
6
|
+
StorageMapFieldSchema,
|
|
6
7
|
StorageNumberFieldSchema,
|
|
7
8
|
StorageObjectFieldSchema,
|
|
8
9
|
StorageStringFieldSchema,
|
|
9
10
|
} from '@verdant-web/common';
|
|
11
|
+
import { ListEntity, ObjectEntity } from '@verdant-web/store';
|
|
10
12
|
|
|
11
13
|
export type TiptapFieldSchema = StorageObjectFieldSchema<{
|
|
12
14
|
type: StorageStringFieldSchema;
|
|
13
|
-
from: StorageNumberFieldSchema;
|
|
14
|
-
to: StorageNumberFieldSchema;
|
|
15
|
-
attrs:
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
text: StorageStringFieldSchema;
|
|
20
|
-
marks: StorageArrayFieldSchema<TiptapFieldSchema>;
|
|
15
|
+
from: StorageNumberFieldSchema & { nullable: true };
|
|
16
|
+
to: StorageNumberFieldSchema & { nullable: true };
|
|
17
|
+
attrs: StorageMapFieldSchema<StorageAnyFieldSchema>;
|
|
18
|
+
content: StorageArrayFieldSchema<TiptapFieldSchema> & { nullable: true };
|
|
19
|
+
text: StorageStringFieldSchema & { nullable: true };
|
|
20
|
+
marks: StorageArrayFieldSchema<TiptapFieldSchema> & { nullable: true };
|
|
21
21
|
}>;
|
|
22
22
|
|
|
23
|
+
type PartialNull<T> = {
|
|
24
|
+
[K in keyof T]?: T[K] | null;
|
|
25
|
+
};
|
|
26
|
+
|
|
23
27
|
export type TipTapFieldInitializer = Pick<
|
|
24
28
|
ShapeFromProperty<TiptapFieldSchema>,
|
|
25
29
|
'type'
|
|
26
30
|
> &
|
|
27
|
-
|
|
31
|
+
PartialNull<ShapeFromProperty<TiptapFieldSchema>>;
|
|
32
|
+
|
|
33
|
+
export type TipTapAttrsEntity = ObjectEntity<
|
|
34
|
+
{ [key: string]: any },
|
|
35
|
+
{ [key: string]: any },
|
|
36
|
+
{ [key: string]: any }
|
|
37
|
+
>;
|
|
38
|
+
export type TipTapContentEntity = ListEntity<
|
|
39
|
+
TipTapFieldInitializer[],
|
|
40
|
+
TipTapDocumentEntity[],
|
|
41
|
+
ShapeFromProperty<TiptapFieldSchema>[]
|
|
42
|
+
>;
|
|
43
|
+
/**
|
|
44
|
+
* NOTE: it's not recommended to use this type directly. Instead rely on the generated
|
|
45
|
+
* types from the Verdant CLI.
|
|
46
|
+
*/
|
|
47
|
+
export type TipTapDocumentEntity = ObjectEntity<
|
|
48
|
+
TipTapFieldInitializer,
|
|
49
|
+
{
|
|
50
|
+
type: string;
|
|
51
|
+
from: number | null;
|
|
52
|
+
to: number | null;
|
|
53
|
+
attrs: TipTapAttrsEntity;
|
|
54
|
+
content: TipTapContentEntity;
|
|
55
|
+
text: string | null;
|
|
56
|
+
marks: TipTapContentEntity;
|
|
57
|
+
},
|
|
58
|
+
ShapeFromProperty<TiptapFieldSchema>
|
|
59
|
+
>;
|
|
60
|
+
|
|
61
|
+
const otherDefaults = {
|
|
62
|
+
content: [],
|
|
63
|
+
marks: null,
|
|
64
|
+
attrs: {},
|
|
65
|
+
from: null,
|
|
66
|
+
to: null,
|
|
67
|
+
text: null,
|
|
68
|
+
};
|
|
28
69
|
|
|
29
70
|
/**
|
|
30
71
|
* Creates a generic TipTap schema field. You must invoke this and assign it
|
|
@@ -52,10 +93,12 @@ export function createTipTapFieldSchema(options: {
|
|
|
52
93
|
}),
|
|
53
94
|
content: schema.fields.array({
|
|
54
95
|
items: baseField,
|
|
96
|
+
nullable: true,
|
|
55
97
|
}),
|
|
56
98
|
text: schema.fields.string({ nullable: true }),
|
|
57
99
|
marks: schema.fields.array({
|
|
58
100
|
items: baseField,
|
|
101
|
+
nullable: true,
|
|
59
102
|
}),
|
|
60
103
|
});
|
|
61
104
|
|
|
@@ -69,17 +112,19 @@ export function createTipTapFieldSchema(options: {
|
|
|
69
112
|
}),
|
|
70
113
|
content: schema.fields.array({
|
|
71
114
|
items: nestedContent,
|
|
115
|
+
nullable: true,
|
|
72
116
|
}),
|
|
73
117
|
text: schema.fields.string({ nullable: true }),
|
|
74
118
|
marks: schema.fields.array({
|
|
75
119
|
items: nestedContent,
|
|
120
|
+
nullable: true,
|
|
76
121
|
}),
|
|
77
122
|
},
|
|
78
123
|
default: () => {
|
|
79
124
|
if (options.default === null) {
|
|
80
125
|
return null;
|
|
81
126
|
}
|
|
82
|
-
return structuredClone(options.default);
|
|
127
|
+
return { ...otherDefaults, ...structuredClone(options.default) };
|
|
83
128
|
},
|
|
84
129
|
nullable: options.default === null,
|
|
85
130
|
});
|
package/src/plugins.ts
CHANGED
|
@@ -180,7 +180,7 @@ export const VerdantExtension = Extension.create<
|
|
|
180
180
|
const field = parent.get(fieldName) as ObjectEntity<any, any> | null;
|
|
181
181
|
if (field) {
|
|
182
182
|
unsubscribe = field.subscribe('changeDeep', (target, info) => {
|
|
183
|
-
if (!info.isLocal || target === field) {
|
|
183
|
+
if (!field.deleted && (!info.isLocal || target === field)) {
|
|
184
184
|
updateFromField(field);
|
|
185
185
|
}
|
|
186
186
|
});
|
|
@@ -210,7 +210,7 @@ export const VerdantExtension = Extension.create<
|
|
|
210
210
|
} else {
|
|
211
211
|
// re-assign oids to data objects so they can be diffed more effectively
|
|
212
212
|
// against existing data
|
|
213
|
-
|
|
213
|
+
formatSnapshotForVerdantAndAssignOids(newData);
|
|
214
214
|
// printAllOids(newData);
|
|
215
215
|
const client = getEntityClient(value);
|
|
216
216
|
client.batch(this.options.batchConfig).run(() => {
|
|
@@ -264,13 +264,29 @@ export function createVerdantExtension<
|
|
|
264
264
|
});
|
|
265
265
|
}
|
|
266
266
|
|
|
267
|
-
function
|
|
267
|
+
function formatSnapshotForVerdantAndAssignOids(doc: JSONContent) {
|
|
268
268
|
if (doc.attrs?.[verdantIdAttribute] !== undefined) {
|
|
269
269
|
assignOid(doc, doc.attrs[verdantIdAttribute]);
|
|
270
270
|
delete doc.attrs[verdantIdAttribute];
|
|
271
271
|
}
|
|
272
|
+
// make sure all fields are present, even if null.
|
|
273
|
+
if (doc.from === undefined) {
|
|
274
|
+
doc.from = null;
|
|
275
|
+
}
|
|
276
|
+
if (doc.to === undefined) {
|
|
277
|
+
doc.to = null;
|
|
278
|
+
}
|
|
279
|
+
if (doc.text === undefined) {
|
|
280
|
+
doc.text = null as any;
|
|
281
|
+
}
|
|
282
|
+
if (doc.attrs === undefined) {
|
|
283
|
+
doc.attrs = {};
|
|
284
|
+
}
|
|
285
|
+
if (doc.marks === undefined) {
|
|
286
|
+
doc.marks = null as any;
|
|
287
|
+
}
|
|
272
288
|
if (doc.content) {
|
|
273
|
-
doc.content.forEach(
|
|
289
|
+
doc.content.forEach(formatSnapshotForVerdantAndAssignOids);
|
|
274
290
|
}
|
|
275
291
|
}
|
|
276
292
|
|
|
@@ -279,7 +295,7 @@ function consumeOidsAndAssignToSnapshots(doc: JSONContent) {
|
|
|
279
295
|
function ensureDocShape(json: any) {
|
|
280
296
|
for (const node of json.content ?? []) {
|
|
281
297
|
// remove undefined nodes
|
|
282
|
-
node.content = node.content
|
|
298
|
+
node.content = node.content?.filter((n: any) => !!n).map(ensureDocShape);
|
|
283
299
|
}
|
|
284
300
|
return json;
|
|
285
301
|
}
|