@byline/ai 1.9.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/LICENSE +21 -0
- package/README.md +4 -0
- package/dist/@types.d.ts +103 -0
- package/dist/@types.d.ts.map +1 -0
- package/dist/@types.js +68 -0
- package/dist/@types.js.map +1 -0
- package/dist/config/ai-config.d.ts +76 -0
- package/dist/config/ai-config.d.ts.map +1 -0
- package/dist/config/ai-config.js +108 -0
- package/dist/config/ai-config.js.map +1 -0
- package/dist/config/ai-config.test.node.d.ts +9 -0
- package/dist/config/ai-config.test.node.d.ts.map +1 -0
- package/dist/config/ai-config.test.node.js +31 -0
- package/dist/config/ai-config.test.node.js.map +1 -0
- package/dist/config/ai-provider.d.ts +17 -0
- package/dist/config/ai-provider.d.ts.map +1 -0
- package/dist/config/ai-provider.js +32 -0
- package/dist/config/ai-provider.js.map +1 -0
- package/dist/execute.d.ts +15 -0
- package/dist/execute.d.ts.map +1 -0
- package/dist/execute.js +473 -0
- package/dist/execute.js.map +1 -0
- package/dist/generate.d.ts +64 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +235 -0
- package/dist/generate.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/lexical-text-edits.d.ts +23 -0
- package/dist/lexical-text-edits.d.ts.map +1 -0
- package/dist/lexical-text-edits.js +62 -0
- package/dist/lexical-text-edits.js.map +1 -0
- package/dist/lib/logger.d.ts +10 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +16 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/models/anthropic/anthropic-models.d.ts +14 -0
- package/dist/models/anthropic/anthropic-models.d.ts.map +1 -0
- package/dist/models/anthropic/anthropic-models.js +41 -0
- package/dist/models/anthropic/anthropic-models.js.map +1 -0
- package/dist/models/anthropic/anthropic.d.ts +9 -0
- package/dist/models/anthropic/anthropic.d.ts.map +1 -0
- package/dist/models/anthropic/anthropic.js +20 -0
- package/dist/models/anthropic/anthropic.js.map +1 -0
- package/dist/models/anthropic/generate-native.d.ts +59 -0
- package/dist/models/anthropic/generate-native.d.ts.map +1 -0
- package/dist/models/anthropic/generate-native.js +271 -0
- package/dist/models/anthropic/generate-native.js.map +1 -0
- package/dist/models/anthropic/generate-vercel.d.ts +59 -0
- package/dist/models/anthropic/generate-vercel.d.ts.map +1 -0
- package/dist/models/anthropic/generate-vercel.js +126 -0
- package/dist/models/anthropic/generate-vercel.js.map +1 -0
- package/dist/models/anthropic/generate.d.ts +16 -0
- package/dist/models/anthropic/generate.d.ts.map +1 -0
- package/dist/models/anthropic/generate.js +28 -0
- package/dist/models/anthropic/generate.js.map +1 -0
- package/dist/models/anthropic/generate.test.node.d.ts +9 -0
- package/dist/models/anthropic/generate.test.node.d.ts.map +1 -0
- package/dist/models/anthropic/generate.test.node.js +106 -0
- package/dist/models/anthropic/generate.test.node.js.map +1 -0
- package/dist/models/anthropic/patch-native.d.ts +33 -0
- package/dist/models/anthropic/patch-native.d.ts.map +1 -0
- package/dist/models/anthropic/patch-native.js +152 -0
- package/dist/models/anthropic/patch-native.js.map +1 -0
- package/dist/models/anthropic/patch-vercel.d.ts +33 -0
- package/dist/models/anthropic/patch-vercel.d.ts.map +1 -0
- package/dist/models/anthropic/patch-vercel.js +47 -0
- package/dist/models/anthropic/patch-vercel.js.map +1 -0
- package/dist/models/anthropic/patch.d.ts +12 -0
- package/dist/models/anthropic/patch.d.ts.map +1 -0
- package/dist/models/anthropic/patch.js +16 -0
- package/dist/models/anthropic/patch.js.map +1 -0
- package/dist/models/anthropic/patch.test.node.d.ts +9 -0
- package/dist/models/anthropic/patch.test.node.d.ts.map +1 -0
- package/dist/models/anthropic/patch.test.node.js +110 -0
- package/dist/models/anthropic/patch.test.node.js.map +1 -0
- package/dist/models/anthropic/schema.d.ts +212 -0
- package/dist/models/anthropic/schema.d.ts.map +1 -0
- package/dist/models/anthropic/schema.js +131 -0
- package/dist/models/anthropic/schema.js.map +1 -0
- package/dist/models/google/generate-native.d.ts +59 -0
- package/dist/models/google/generate-native.d.ts.map +1 -0
- package/dist/models/google/generate-native.js +244 -0
- package/dist/models/google/generate-native.js.map +1 -0
- package/dist/models/google/generate-vercel.d.ts +59 -0
- package/dist/models/google/generate-vercel.d.ts.map +1 -0
- package/dist/models/google/generate-vercel.js +133 -0
- package/dist/models/google/generate-vercel.js.map +1 -0
- package/dist/models/google/generate.d.ts +16 -0
- package/dist/models/google/generate.d.ts.map +1 -0
- package/dist/models/google/generate.js +28 -0
- package/dist/models/google/generate.js.map +1 -0
- package/dist/models/google/generate.test.node.d.ts +9 -0
- package/dist/models/google/generate.test.node.d.ts.map +1 -0
- package/dist/models/google/generate.test.node.js +106 -0
- package/dist/models/google/generate.test.node.js.map +1 -0
- package/dist/models/google/google-models.d.ts +14 -0
- package/dist/models/google/google-models.d.ts.map +1 -0
- package/dist/models/google/google-models.js +25 -0
- package/dist/models/google/google-models.js.map +1 -0
- package/dist/models/google/normalize-generated-doc.d.ts +10 -0
- package/dist/models/google/normalize-generated-doc.d.ts.map +1 -0
- package/dist/models/google/normalize-generated-doc.js +48 -0
- package/dist/models/google/normalize-generated-doc.js.map +1 -0
- package/dist/models/google/patch-native.d.ts +33 -0
- package/dist/models/google/patch-native.d.ts.map +1 -0
- package/dist/models/google/patch-native.js +164 -0
- package/dist/models/google/patch-native.js.map +1 -0
- package/dist/models/google/patch-vercel.d.ts +33 -0
- package/dist/models/google/patch-vercel.d.ts.map +1 -0
- package/dist/models/google/patch-vercel.js +49 -0
- package/dist/models/google/patch-vercel.js.map +1 -0
- package/dist/models/google/patch.d.ts +12 -0
- package/dist/models/google/patch.d.ts.map +1 -0
- package/dist/models/google/patch.js +16 -0
- package/dist/models/google/patch.js.map +1 -0
- package/dist/models/google/patch.test.node.d.ts +9 -0
- package/dist/models/google/patch.test.node.d.ts.map +1 -0
- package/dist/models/google/patch.test.node.js +110 -0
- package/dist/models/google/patch.test.node.js.map +1 -0
- package/dist/models/google/schema.d.ts +416 -0
- package/dist/models/google/schema.d.ts.map +1 -0
- package/dist/models/google/schema.js +254 -0
- package/dist/models/google/schema.js.map +1 -0
- package/dist/models/openai/generate-native.d.ts +65 -0
- package/dist/models/openai/generate-native.d.ts.map +1 -0
- package/dist/models/openai/generate-native.js +276 -0
- package/dist/models/openai/generate-native.js.map +1 -0
- package/dist/models/openai/generate-vercel.d.ts +59 -0
- package/dist/models/openai/generate-vercel.d.ts.map +1 -0
- package/dist/models/openai/generate-vercel.js +132 -0
- package/dist/models/openai/generate-vercel.js.map +1 -0
- package/dist/models/openai/generate.d.ts +16 -0
- package/dist/models/openai/generate.d.ts.map +1 -0
- package/dist/models/openai/generate.js +28 -0
- package/dist/models/openai/generate.js.map +1 -0
- package/dist/models/openai/generate.test.node.d.ts +9 -0
- package/dist/models/openai/generate.test.node.d.ts.map +1 -0
- package/dist/models/openai/generate.test.node.js +106 -0
- package/dist/models/openai/generate.test.node.js.map +1 -0
- package/dist/models/openai/openai-models.d.ts +14 -0
- package/dist/models/openai/openai-models.d.ts.map +1 -0
- package/dist/models/openai/openai-models.js +23 -0
- package/dist/models/openai/openai-models.js.map +1 -0
- package/dist/models/openai/patch-native.d.ts +33 -0
- package/dist/models/openai/patch-native.d.ts.map +1 -0
- package/dist/models/openai/patch-native.js +151 -0
- package/dist/models/openai/patch-native.js.map +1 -0
- package/dist/models/openai/patch-vercel.d.ts +33 -0
- package/dist/models/openai/patch-vercel.d.ts.map +1 -0
- package/dist/models/openai/patch-vercel.js +49 -0
- package/dist/models/openai/patch-vercel.js.map +1 -0
- package/dist/models/openai/patch.d.ts +12 -0
- package/dist/models/openai/patch.d.ts.map +1 -0
- package/dist/models/openai/patch.js +16 -0
- package/dist/models/openai/patch.js.map +1 -0
- package/dist/models/openai/patch.test.node.d.ts +9 -0
- package/dist/models/openai/patch.test.node.d.ts.map +1 -0
- package/dist/models/openai/patch.test.node.js +110 -0
- package/dist/models/openai/patch.test.node.js.map +1 -0
- package/dist/models/openai/schema.d.ts +460 -0
- package/dist/models/openai/schema.d.ts.map +1 -0
- package/dist/models/openai/schema.js +327 -0
- package/dist/models/openai/schema.js.map +1 -0
- package/dist/patch.d.ts +45 -0
- package/dist/patch.d.ts.map +1 -0
- package/dist/patch.js +138 -0
- package/dist/patch.js.map +1 -0
- package/dist/plugins/ai-plugin-base.d.ts +40 -0
- package/dist/plugins/ai-plugin-base.d.ts.map +1 -0
- package/dist/plugins/ai-plugin-base.js +218 -0
- package/dist/plugins/ai-plugin-base.js.map +1 -0
- package/dist/plugins/ai-plugin.css +181 -0
- package/dist/plugins/lexical/create-empty-editor-state.d.ts +32 -0
- package/dist/plugins/lexical/create-empty-editor-state.d.ts.map +1 -0
- package/dist/plugins/lexical/create-empty-editor-state.js +51 -0
- package/dist/plugins/lexical/create-empty-editor-state.js.map +1 -0
- package/dist/plugins/lexical/import-html.d.ts +10 -0
- package/dist/plugins/lexical/import-html.d.ts.map +1 -0
- package/dist/plugins/lexical/import-html.js +31 -0
- package/dist/plugins/lexical/import-html.js.map +1 -0
- package/dist/plugins/lexical/index.d.ts +9 -0
- package/dist/plugins/lexical/index.d.ts.map +1 -0
- package/dist/plugins/lexical/index.js +9 -0
- package/dist/plugins/lexical/index.js.map +1 -0
- package/dist/plugins/lexical/plugin.d.ts +11 -0
- package/dist/plugins/lexical/plugin.d.ts.map +1 -0
- package/dist/plugins/lexical/plugin.js +305 -0
- package/dist/plugins/lexical/plugin.js.map +1 -0
- package/dist/plugins/storage.d.ts +18 -0
- package/dist/plugins/storage.d.ts.map +1 -0
- package/dist/plugins/storage.js +57 -0
- package/dist/plugins/storage.js.map +1 -0
- package/dist/plugins/streaming-preview.d.ts +12 -0
- package/dist/plugins/streaming-preview.d.ts.map +1 -0
- package/dist/plugins/streaming-preview.js +24 -0
- package/dist/plugins/streaming-preview.js.map +1 -0
- package/dist/plugins/text/index.d.ts +9 -0
- package/dist/plugins/text/index.d.ts.map +1 -0
- package/dist/plugins/text/index.js +9 -0
- package/dist/plugins/text/index.js.map +1 -0
- package/dist/plugins/text/plugin.d.ts +18 -0
- package/dist/plugins/text/plugin.d.ts.map +1 -0
- package/dist/plugins/text/plugin.js +261 -0
- package/dist/plugins/text/plugin.js.map +1 -0
- package/dist/prompts.d.ts +30 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +83 -0
- package/dist/prompts.js.map +1 -0
- package/dist/schemas/lexical-json-schema.d.ts +68 -0
- package/dist/schemas/lexical-json-schema.d.ts.map +1 -0
- package/dist/schemas/lexical-json-schema.js +434 -0
- package/dist/schemas/lexical-json-schema.js.map +1 -0
- package/dist/scripts/list-models.d.ts +9 -0
- package/dist/scripts/list-models.d.ts.map +1 -0
- package/dist/scripts/list-models.js +55 -0
- package/dist/scripts/list-models.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +22 -0
- package/dist/server.js.map +1 -0
- package/dist/utils/convert-to-lexical.d.ts +62 -0
- package/dist/utils/convert-to-lexical.d.ts.map +1 -0
- package/dist/utils/convert-to-lexical.js +210 -0
- package/dist/utils/convert-to-lexical.js.map +1 -0
- package/dist/utils/create-empty-editor-state.d.ts +32 -0
- package/dist/utils/create-empty-editor-state.d.ts.map +1 -0
- package/dist/utils/create-empty-editor-state.js +51 -0
- package/dist/utils/create-empty-editor-state.js.map +1 -0
- package/dist/utils/has-text.d.ts +10 -0
- package/dist/utils/has-text.d.ts.map +1 -0
- package/dist/utils/has-text.js +35 -0
- package/dist/utils/has-text.js.map +1 -0
- package/dist/utils/has-text.test.d.ts +9 -0
- package/dist/utils/has-text.test.d.ts.map +1 -0
- package/dist/utils/has-text.test.js +69 -0
- package/dist/utils/has-text.test.js.map +1 -0
- package/dist/utils/is-object-schema.d.ts +17 -0
- package/dist/utils/is-object-schema.d.ts.map +1 -0
- package/dist/utils/is-object-schema.js +19 -0
- package/dist/utils/is-object-schema.js.map +1 -0
- package/dist/utils/lexical-text-edits.d.ts +23 -0
- package/dist/utils/lexical-text-edits.d.ts.map +1 -0
- package/dist/utils/lexical-text-edits.js +62 -0
- package/dist/utils/lexical-text-edits.js.map +1 -0
- package/package.json +111 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
const DEFAULT_DIRECTION = 'ltr';
|
|
9
|
+
const normalizeAlign = (value) => {
|
|
10
|
+
if (value === 'start' || value === 'center' || value === 'right')
|
|
11
|
+
return value;
|
|
12
|
+
if (value === 'left')
|
|
13
|
+
return 'start';
|
|
14
|
+
return 'start';
|
|
15
|
+
};
|
|
16
|
+
const marksToTextFormat = (marks) => {
|
|
17
|
+
if (!marks)
|
|
18
|
+
return 0;
|
|
19
|
+
let format = 0;
|
|
20
|
+
if (marks.bold)
|
|
21
|
+
format |= 1;
|
|
22
|
+
if (marks.italic)
|
|
23
|
+
format |= 2;
|
|
24
|
+
if (marks.underline)
|
|
25
|
+
format |= 8;
|
|
26
|
+
if (marks.code)
|
|
27
|
+
format |= 16;
|
|
28
|
+
return format;
|
|
29
|
+
};
|
|
30
|
+
const createTextNode = (text, marks) => {
|
|
31
|
+
return {
|
|
32
|
+
type: 'text',
|
|
33
|
+
text,
|
|
34
|
+
format: marksToTextFormat(marks),
|
|
35
|
+
style: '',
|
|
36
|
+
mode: 0,
|
|
37
|
+
detail: 0,
|
|
38
|
+
direction: DEFAULT_DIRECTION,
|
|
39
|
+
indent: 0,
|
|
40
|
+
version: 1,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const createLineBreakNode = () => {
|
|
44
|
+
return {
|
|
45
|
+
type: 'linebreak',
|
|
46
|
+
version: 1,
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
const createLinkNode = (url, text, marks) => {
|
|
50
|
+
return {
|
|
51
|
+
type: 'link',
|
|
52
|
+
url,
|
|
53
|
+
children: [createTextNode(text, marks)],
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
const inlinesToLexicalNodes = (inlines) => {
|
|
57
|
+
const out = [];
|
|
58
|
+
for (const inline of inlines) {
|
|
59
|
+
if (inline.kind === 'text') {
|
|
60
|
+
out.push(createTextNode(inline.text, inline.marks));
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
if (inline.kind === 'link') {
|
|
64
|
+
out.push(createLinkNode(inline.url, inline.text, inline.marks));
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (inline.kind === 'br') {
|
|
68
|
+
out.push(createLineBreakNode());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return out;
|
|
72
|
+
};
|
|
73
|
+
const createParagraphNode = (block) => {
|
|
74
|
+
return {
|
|
75
|
+
type: 'paragraph',
|
|
76
|
+
children: inlinesToLexicalNodes(block.inlines),
|
|
77
|
+
direction: DEFAULT_DIRECTION,
|
|
78
|
+
format: normalizeAlign(block.align),
|
|
79
|
+
indent: 0,
|
|
80
|
+
textFormat: 0,
|
|
81
|
+
textStyle: '',
|
|
82
|
+
version: 1,
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
const createHeadingNode = (block) => {
|
|
86
|
+
const tag = block.level === 1 ? 'h1' : block.level === 2 ? 'h2' : 'h3';
|
|
87
|
+
return {
|
|
88
|
+
type: 'heading',
|
|
89
|
+
children: inlinesToLexicalNodes(block.inlines),
|
|
90
|
+
direction: DEFAULT_DIRECTION,
|
|
91
|
+
indent: 0,
|
|
92
|
+
tag,
|
|
93
|
+
version: 1,
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
const createHorizontalRuleNode = () => {
|
|
97
|
+
return {
|
|
98
|
+
type: 'horizontalrule',
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
const createQuoteNode = (block) => {
|
|
102
|
+
return {
|
|
103
|
+
type: 'quote',
|
|
104
|
+
children: block.blocks.map((p) => createParagraphNode(p)),
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
const createListItemNode = (indent, paragraphs) => {
|
|
108
|
+
// Keep property order stable: indent -> type -> children
|
|
109
|
+
return {
|
|
110
|
+
indent,
|
|
111
|
+
type: 'listitem',
|
|
112
|
+
children: paragraphs,
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
const createListNode = (listType, children) => {
|
|
116
|
+
return {
|
|
117
|
+
type: 'list',
|
|
118
|
+
children,
|
|
119
|
+
listType,
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
const createEmptyParagraph = () => {
|
|
123
|
+
return {
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
children: [createTextNode('', { bold: false, italic: false, underline: false, code: false })],
|
|
126
|
+
direction: DEFAULT_DIRECTION,
|
|
127
|
+
format: 'start',
|
|
128
|
+
indent: 0,
|
|
129
|
+
textFormat: 0,
|
|
130
|
+
textStyle: '',
|
|
131
|
+
version: 1,
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
const listBlockToLexicalNode = (block) => {
|
|
135
|
+
const topLevelItems = [];
|
|
136
|
+
let lastTopLevelItem = null;
|
|
137
|
+
for (const item of block.items) {
|
|
138
|
+
const itemParagraphs = (item.blocks ?? []).map((p) => createParagraphNode(p));
|
|
139
|
+
const safeParagraphs = itemParagraphs.length > 0 ? itemParagraphs : [createEmptyParagraph()];
|
|
140
|
+
if (item.indent === 0 || lastTopLevelItem == null) {
|
|
141
|
+
const li = createListItemNode(0, safeParagraphs);
|
|
142
|
+
topLevelItems.push(li);
|
|
143
|
+
lastTopLevelItem = li;
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
// indent === 1: nest under the previous top-level list item.
|
|
147
|
+
const parentChildren = Array.isArray(lastTopLevelItem.children)
|
|
148
|
+
? lastTopLevelItem.children
|
|
149
|
+
: [];
|
|
150
|
+
lastTopLevelItem.children = parentChildren;
|
|
151
|
+
let nestedList = parentChildren.find((c) => c && c.type === 'list' && c.listType === block.listType && Array.isArray(c.children));
|
|
152
|
+
if (!nestedList) {
|
|
153
|
+
nestedList = createListNode(block.listType, []);
|
|
154
|
+
parentChildren.push(nestedList);
|
|
155
|
+
}
|
|
156
|
+
nestedList.children.push(createListItemNode(1, safeParagraphs));
|
|
157
|
+
}
|
|
158
|
+
return createListNode(block.listType, topLevelItems);
|
|
159
|
+
};
|
|
160
|
+
export function convertToLexical(doc) {
|
|
161
|
+
const children = [];
|
|
162
|
+
const title = doc.title?.trim() ?? '';
|
|
163
|
+
if (title.length > 0) {
|
|
164
|
+
children.push(createHeadingNode({
|
|
165
|
+
kind: 'heading',
|
|
166
|
+
level: 1,
|
|
167
|
+
inlines: [
|
|
168
|
+
{
|
|
169
|
+
kind: 'text',
|
|
170
|
+
text: title,
|
|
171
|
+
marks: { bold: false, italic: false, underline: false, code: false },
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
}));
|
|
175
|
+
}
|
|
176
|
+
for (const block of doc.blocks ?? []) {
|
|
177
|
+
if (block.kind === 'heading') {
|
|
178
|
+
children.push(createHeadingNode(block));
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
if (block.kind === 'paragraph') {
|
|
182
|
+
children.push(createParagraphNode(block));
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
if (block.kind === 'list') {
|
|
186
|
+
children.push(listBlockToLexicalNode(block));
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
if (block.kind === 'quote') {
|
|
190
|
+
children.push(createQuoteNode(block));
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
if (block.kind === 'hr') {
|
|
194
|
+
children.push(createHorizontalRuleNode());
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (children.length === 0) {
|
|
198
|
+
children.push(createEmptyParagraph());
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
root: {
|
|
202
|
+
type: 'root',
|
|
203
|
+
children,
|
|
204
|
+
direction: DEFAULT_DIRECTION,
|
|
205
|
+
indent: 0,
|
|
206
|
+
version: 1,
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=convert-to-lexical.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-to-lexical.js","sourceRoot":"","sources":["../../src/utils/convert-to-lexical.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import type { SerializedEditorState, SerializedLexicalNode } from 'lexical';
|
|
9
|
+
/**
|
|
10
|
+
* createEmptyEditorState
|
|
11
|
+
* @returns
|
|
12
|
+
* "root": {
|
|
13
|
+
"children": [{
|
|
14
|
+
"children": [],
|
|
15
|
+
"direction": null,
|
|
16
|
+
"format": "",
|
|
17
|
+
"indent": 0,
|
|
18
|
+
"type": "paragraph",
|
|
19
|
+
"version": 1,
|
|
20
|
+
"textFormat": 0,
|
|
21
|
+
"textStyle": ""
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"direction": null,
|
|
25
|
+
"format": "",
|
|
26
|
+
"indent": 0,
|
|
27
|
+
"type": "root",
|
|
28
|
+
"version": 1
|
|
29
|
+
}
|
|
30
|
+
*/
|
|
31
|
+
export declare function createEmptyEditorState(): SerializedEditorState<SerializedLexicalNode>;
|
|
32
|
+
//# sourceMappingURL=create-empty-editor-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-empty-editor-state.d.ts","sourceRoot":"","sources":["../../src/utils/create-empty-editor-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAGtB,MAAM,SAAS,CAAA;AAEhB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,CAsBrF"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* createEmptyEditorState
|
|
10
|
+
* @returns
|
|
11
|
+
* "root": {
|
|
12
|
+
"children": [{
|
|
13
|
+
"children": [],
|
|
14
|
+
"direction": null,
|
|
15
|
+
"format": "",
|
|
16
|
+
"indent": 0,
|
|
17
|
+
"type": "paragraph",
|
|
18
|
+
"version": 1,
|
|
19
|
+
"textFormat": 0,
|
|
20
|
+
"textStyle": ""
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"direction": null,
|
|
24
|
+
"format": "",
|
|
25
|
+
"indent": 0,
|
|
26
|
+
"type": "root",
|
|
27
|
+
"version": 1
|
|
28
|
+
}
|
|
29
|
+
*/
|
|
30
|
+
export function createEmptyEditorState() {
|
|
31
|
+
const emptyParagraphNode = {
|
|
32
|
+
children: [],
|
|
33
|
+
direction: null,
|
|
34
|
+
format: '',
|
|
35
|
+
indent: 0,
|
|
36
|
+
type: 'paragraph',
|
|
37
|
+
version: 1,
|
|
38
|
+
textFormat: 0,
|
|
39
|
+
textStyle: '',
|
|
40
|
+
};
|
|
41
|
+
const rootNode = {
|
|
42
|
+
children: [emptyParagraphNode],
|
|
43
|
+
direction: null,
|
|
44
|
+
format: '',
|
|
45
|
+
indent: 0,
|
|
46
|
+
type: 'root',
|
|
47
|
+
version: 1,
|
|
48
|
+
};
|
|
49
|
+
return { root: rootNode };
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=create-empty-editor-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-empty-editor-state.js","sourceRoot":"","sources":["../../src/utils/create-empty-editor-state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,kBAAkB,GAA4B;QAClD,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,EAAE;KACd,CAAA;IAED,MAAM,QAAQ,GAAuB;QACnC,QAAQ,EAAE,CAAC,kBAAkB,CAAC;QAC9B,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC;KACX,CAAA;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import type { SerializedEditorState, SerializedLexicalNode } from 'lexical';
|
|
9
|
+
export declare function hasText(value: SerializedEditorState<SerializedLexicalNode> | null | undefined): boolean;
|
|
10
|
+
//# sourceMappingURL=has-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-text.d.ts","sourceRoot":"","sources":["../../src/utils/has-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EAGtB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,OAAO,CACrB,KAAK,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,GAAG,IAAI,GAAG,SAAS,GACrE,OAAO,CAwBT"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
export function hasText(value) {
|
|
9
|
+
if (value === null || value === undefined)
|
|
10
|
+
return false;
|
|
11
|
+
const rootChildren = value.root?.children;
|
|
12
|
+
if (rootChildren === null || rootChildren === undefined)
|
|
13
|
+
return false;
|
|
14
|
+
if (rootChildren.length === 0)
|
|
15
|
+
return false;
|
|
16
|
+
// Treat a single empty paragraph as "no content".
|
|
17
|
+
if (rootChildren.length === 1 && rootChildren[0]?.type === 'paragraph') {
|
|
18
|
+
const paragraphNode = rootChildren[0];
|
|
19
|
+
const paragraphChildren = paragraphNode.children;
|
|
20
|
+
if (paragraphChildren === null || paragraphChildren === undefined)
|
|
21
|
+
return false;
|
|
22
|
+
if (paragraphChildren.length === 0)
|
|
23
|
+
return false;
|
|
24
|
+
if (paragraphChildren.length === 1 && paragraphChildren[0]?.type === 'text') {
|
|
25
|
+
const textNode = paragraphChildren[0];
|
|
26
|
+
const text = textNode.text;
|
|
27
|
+
if (text === null || text === undefined)
|
|
28
|
+
return false;
|
|
29
|
+
if (text.length === 0)
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=has-text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-text.js","sourceRoot":"","sources":["../../src/utils/has-text.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,UAAU,OAAO,CACrB,KAAsE;IAEtE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IAEvD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAA;IACzC,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAE3C,kDAAkD;IAClD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;QACvE,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAA4B,CAAA;QAChE,MAAM,iBAAiB,GAAG,aAAa,CAAC,QAAQ,CAAA;QAEhD,IAAI,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QAC/E,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAEhD,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAuB,CAAA;YAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC1B,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAA;YACrD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAA;QACrC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=has-text.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-text.test.d.ts","sourceRoot":"","sources":["../../src/utils/has-text.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { describe, expect, it } from 'vitest';
|
|
9
|
+
import { createEmptyEditorState } from './create-empty-editor-state';
|
|
10
|
+
import { hasText } from './has-text';
|
|
11
|
+
function rootState(_children) {
|
|
12
|
+
return {
|
|
13
|
+
root: {
|
|
14
|
+
direction: null,
|
|
15
|
+
format: '',
|
|
16
|
+
indent: 0,
|
|
17
|
+
type: 'root',
|
|
18
|
+
version: 1,
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function emptyParagraph(children = []) {
|
|
23
|
+
return {
|
|
24
|
+
children,
|
|
25
|
+
direction: null,
|
|
26
|
+
format: '',
|
|
27
|
+
indent: 0,
|
|
28
|
+
type: 'paragraph',
|
|
29
|
+
version: 1,
|
|
30
|
+
textFormat: 0,
|
|
31
|
+
textStyle: '',
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function textNode(text) {
|
|
35
|
+
return {
|
|
36
|
+
detail: 0,
|
|
37
|
+
format: 0,
|
|
38
|
+
mode: 'normal',
|
|
39
|
+
style: '',
|
|
40
|
+
text,
|
|
41
|
+
type: 'text',
|
|
42
|
+
version: 1,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
describe('hasText', () => {
|
|
46
|
+
it('returns false for null/undefined', () => {
|
|
47
|
+
expect(hasText(null)).toBe(false);
|
|
48
|
+
expect(hasText(undefined)).toBe(false);
|
|
49
|
+
});
|
|
50
|
+
it('returns false when root has no children', () => {
|
|
51
|
+
expect(hasText(rootState([]))).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
it('returns false for createEmptySerializedEditorState()', () => {
|
|
54
|
+
expect(hasText(createEmptyEditorState())).toBe(false);
|
|
55
|
+
});
|
|
56
|
+
it('returns false for a single empty paragraph (no children)', () => {
|
|
57
|
+
expect(hasText(rootState([emptyParagraph([])]))).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
it('returns false for a single empty paragraph with one empty text node', () => {
|
|
60
|
+
expect(hasText(rootState([emptyParagraph([textNode('')])]))).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
it('returns true for a single paragraph with non-empty text', () => {
|
|
63
|
+
expect(hasText(rootState([emptyParagraph([textNode('Hello')])]))).toBe(true);
|
|
64
|
+
});
|
|
65
|
+
it('returns true when there are multiple root children', () => {
|
|
66
|
+
expect(hasText(rootState([emptyParagraph([textNode('')]), emptyParagraph([textNode('Still counts')])]))).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=has-text.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"has-text.test.js","sourceRoot":"","sources":["../../src/utils/has-text.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Credit: Adapted from https://github.com/ashbuilds/payload-ai
|
|
10
|
+
* Portions copyright Ash Builds, licensed under MIT.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Type guard to check if a value is an object (likely a JSON schema object).
|
|
14
|
+
* This is a simple structural check - it doesn't validate the full schema.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isObjectSchema(schema: unknown): schema is Record<string, unknown>;
|
|
17
|
+
//# sourceMappingURL=is-object-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-object-schema.d.ts","sourceRoot":"","sources":["../../src/utils/is-object-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AAEH;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Credit: Adapted from https://github.com/ashbuilds/payload-ai
|
|
10
|
+
* Portions copyright Ash Builds, licensed under MIT.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Type guard to check if a value is an object (likely a JSON schema object).
|
|
14
|
+
* This is a simple structural check - it doesn't validate the full schema.
|
|
15
|
+
*/
|
|
16
|
+
export function isObjectSchema(schema) {
|
|
17
|
+
return typeof schema === 'object' && schema !== null && !Array.isArray(schema);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=is-object-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-object-schema.js","sourceRoot":"","sources":["../../src/utils/is-object-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAChF,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
export declare const lexicalTextEditsResponseSchema: z.ZodObject<{
|
|
10
|
+
edits: z.ZodArray<z.ZodObject<{
|
|
11
|
+
id: z.ZodNumber;
|
|
12
|
+
text: z.ZodString;
|
|
13
|
+
}, z.core.$strip>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export type LexicalTextEditsResponse = z.infer<typeof lexicalTextEditsResponseSchema>;
|
|
16
|
+
export type ExtractedTextNode = {
|
|
17
|
+
id: number;
|
|
18
|
+
path: (string | number)[];
|
|
19
|
+
text: string;
|
|
20
|
+
};
|
|
21
|
+
export declare function extractTextNodesFromLexicalState(state: unknown): ExtractedTextNode[];
|
|
22
|
+
export declare function setAtPath(root: unknown, path: (string | number)[], value: unknown): void;
|
|
23
|
+
//# sourceMappingURL=lexical-text-edits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexical-text-edits.d.ts","sourceRoot":"","sources":["../../src/utils/lexical-text-edits.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,8BAA8B;;;;;iBAOzC,CAAA;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA;AAErF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAMD,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,EAAE,CA+BpF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAexF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
export const lexicalTextEditsResponseSchema = z.object({
|
|
10
|
+
edits: z.array(z.object({
|
|
11
|
+
id: z.number(),
|
|
12
|
+
text: z.string(),
|
|
13
|
+
})),
|
|
14
|
+
});
|
|
15
|
+
const isPlainObject = (value) => {
|
|
16
|
+
return typeof value === 'object' && value !== null && Array.isArray(value) === false;
|
|
17
|
+
};
|
|
18
|
+
export function extractTextNodesFromLexicalState(state) {
|
|
19
|
+
const nodes = [];
|
|
20
|
+
const walk = (value, path) => {
|
|
21
|
+
if (Array.isArray(value)) {
|
|
22
|
+
for (let index = 0; index < value.length; index++) {
|
|
23
|
+
walk(value[index], [...path, index]);
|
|
24
|
+
}
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (!isPlainObject(value))
|
|
28
|
+
return;
|
|
29
|
+
const type = value.type;
|
|
30
|
+
const text = value.text;
|
|
31
|
+
if (type === 'text' && typeof text === 'string') {
|
|
32
|
+
nodes.push({
|
|
33
|
+
id: nodes.length,
|
|
34
|
+
path: [...path, 'text'],
|
|
35
|
+
text,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
for (const [key, child] of Object.entries(value)) {
|
|
39
|
+
if (key === 'text')
|
|
40
|
+
continue;
|
|
41
|
+
walk(child, [...path, key]);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
walk(state, []);
|
|
45
|
+
return nodes;
|
|
46
|
+
}
|
|
47
|
+
export function setAtPath(root, path, value) {
|
|
48
|
+
let cursor = root;
|
|
49
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
50
|
+
const key = path[i];
|
|
51
|
+
if (cursor == null) {
|
|
52
|
+
throw new Error('Invalid path: hit null/undefined');
|
|
53
|
+
}
|
|
54
|
+
cursor = cursor[key];
|
|
55
|
+
}
|
|
56
|
+
const last = path[path.length - 1];
|
|
57
|
+
if (cursor == null) {
|
|
58
|
+
throw new Error('Invalid path: hit null/undefined at leaf parent');
|
|
59
|
+
}
|
|
60
|
+
cursor[last] = value;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=lexical-text-edits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexical-text-edits.js","sourceRoot":"","sources":["../../src/utils/lexical-text-edits.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,CAAC,CAAC,KAAK,CACZ,CAAC,CAAC,MAAM,CAAC;QACP,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC,CACH;CACF,CAAC,CAAA;AAUF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAoC,EAAE;IACzE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAA;AACtF,CAAC,CAAA;AAED,MAAM,UAAU,gCAAgC,CAAC,KAAc;IAC7D,MAAM,KAAK,GAAwB,EAAE,CAAA;IAErC,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,IAAyB,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;YACtC,CAAC;YACD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;YAAE,OAAM;QAEjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QACvB,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,KAAK,CAAC,MAAM;gBAChB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;gBACvB,IAAI;aACL,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,IAAI,GAAG,KAAK,MAAM;gBAAE,SAAQ;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QAC7B,CAAC;IACH,CAAC,CAAA;IAED,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACf,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAa,EAAE,IAAyB,EAAE,KAAc;IAChF,IAAI,MAAM,GAAQ,IAAI,CAAA;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACrD,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,GAAU,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAClC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IACpE,CAAC;IACD,MAAM,CAAC,IAAW,CAAC,GAAG,KAAK,CAAA;AAC7B,CAAC"}
|