@haklex/rich-headless 0.3.1 → 0.3.3
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +74 -1
- package/dist/sanitize.d.ts +38 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -126,4 +126,5 @@ export declare class GridContainerNode extends DecoratorNode<null> {
|
|
|
126
126
|
export declare const customHeadlessNodes: Klass<LexicalNode>[];
|
|
127
127
|
export declare const allHeadlessNodes: Klass<LexicalNode>[];
|
|
128
128
|
export { $toMarkdown, allHeadlessTransformers } from './transformers';
|
|
129
|
+
export { type SanitizeOptions, sanitizeSerializedJSON, sanitizeSerializedState } from './sanitize';
|
|
129
130
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
|
@@ -6,6 +6,79 @@ import { ListItemNode, ListNode } from "@lexical/list";
|
|
|
6
6
|
import { HeadingNode, QuoteNode } from "@lexical/rich-text";
|
|
7
7
|
import { TableCellNode, TableNode, TableRowNode } from "@lexical/table";
|
|
8
8
|
import { DecoratorNode, ElementNode } from "lexical";
|
|
9
|
+
//#region src/sanitize.ts
|
|
10
|
+
var INTRINSIC_TYPES = [
|
|
11
|
+
"root",
|
|
12
|
+
"paragraph",
|
|
13
|
+
"text",
|
|
14
|
+
"linebreak",
|
|
15
|
+
"tab"
|
|
16
|
+
];
|
|
17
|
+
function collectKnownTypes(nodes) {
|
|
18
|
+
const out = new Set(INTRINSIC_TYPES);
|
|
19
|
+
for (const klass of nodes) {
|
|
20
|
+
const fn = klass.getType;
|
|
21
|
+
if (typeof fn === "function") out.add(fn.call(klass));
|
|
22
|
+
}
|
|
23
|
+
return out;
|
|
24
|
+
}
|
|
25
|
+
function sanitizeNode(node, known, reported, onUnknown) {
|
|
26
|
+
if (!node || typeof node !== "object") return [];
|
|
27
|
+
const sanitizedChildren = [];
|
|
28
|
+
if (Array.isArray(node.children)) for (const child of node.children) sanitizedChildren.push(...sanitizeNode(child, known, reported, onUnknown));
|
|
29
|
+
const type = typeof node.type === "string" ? node.type : void 0;
|
|
30
|
+
if (!type || !known.has(type)) {
|
|
31
|
+
if (type && onUnknown && !reported.has(type)) {
|
|
32
|
+
reported.add(type);
|
|
33
|
+
onUnknown(type);
|
|
34
|
+
}
|
|
35
|
+
return sanitizedChildren;
|
|
36
|
+
}
|
|
37
|
+
if (Array.isArray(node.children)) return [{
|
|
38
|
+
...node,
|
|
39
|
+
children: sanitizedChildren
|
|
40
|
+
}];
|
|
41
|
+
return [node];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns a sanitized copy of `state` where any node whose `type` isn't in
|
|
45
|
+
* the configured node-set has been unwrapped (element) or dropped (leaf).
|
|
46
|
+
* Mutates nothing; safe to call on user-supplied JSON.
|
|
47
|
+
*/
|
|
48
|
+
function sanitizeSerializedState(state, options) {
|
|
49
|
+
const known = collectKnownTypes(options.nodes);
|
|
50
|
+
const reported = /* @__PURE__ */ new Set();
|
|
51
|
+
const root = state.root;
|
|
52
|
+
if (!root || !Array.isArray(root.children)) return state;
|
|
53
|
+
const newChildren = [];
|
|
54
|
+
for (const child of root.children) newChildren.push(...sanitizeNode(child, known, reported, options.onUnknown));
|
|
55
|
+
return {
|
|
56
|
+
...state,
|
|
57
|
+
root: {
|
|
58
|
+
...root,
|
|
59
|
+
children: newChildren
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* String-in / string-out convenience for callers that work with raw JSON
|
|
65
|
+
* (e.g. `editor.parseEditorState(json)` paths).
|
|
66
|
+
*
|
|
67
|
+
* If the input isn't valid JSON, it's returned unchanged — the caller's
|
|
68
|
+
* existing parser will surface the JSON error.
|
|
69
|
+
*/
|
|
70
|
+
function sanitizeSerializedJSON(json, options) {
|
|
71
|
+
let parsed;
|
|
72
|
+
try {
|
|
73
|
+
parsed = JSON.parse(json);
|
|
74
|
+
} catch {
|
|
75
|
+
return json;
|
|
76
|
+
}
|
|
77
|
+
if (!parsed || typeof parsed !== "object") return json;
|
|
78
|
+
const sanitized = sanitizeSerializedState(parsed, options);
|
|
79
|
+
return JSON.stringify(sanitized);
|
|
80
|
+
}
|
|
81
|
+
//#endregion
|
|
9
82
|
//#region src/index.ts
|
|
10
83
|
/**
|
|
11
84
|
* @haklex/rich-headless
|
|
@@ -477,4 +550,4 @@ var customHeadlessNodes = [
|
|
|
477
550
|
];
|
|
478
551
|
var allHeadlessNodes = [...builtinNodes, ...customHeadlessNodes];
|
|
479
552
|
//#endregion
|
|
480
|
-
export { $toMarkdown, AlertQuoteNode, BannerNode, CodeBlockNode, CodeSnippetNode, CommentNode, DetailsNode, EmbedNode, ExcalidrawNode, FootnoteNode, FootnoteSectionNode, GalleryNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NestedDocNode, PollNode, RubyNode, SpoilerNode, TagNode, VideoNode, allHeadlessNodes, allHeadlessTransformers, builtinNodes, customHeadlessNodes };
|
|
553
|
+
export { $toMarkdown, AlertQuoteNode, BannerNode, CodeBlockNode, CodeSnippetNode, CommentNode, DetailsNode, EmbedNode, ExcalidrawNode, FootnoteNode, FootnoteSectionNode, GalleryNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NestedDocNode, PollNode, RubyNode, SpoilerNode, TagNode, VideoNode, allHeadlessNodes, allHeadlessTransformers, builtinNodes, customHeadlessNodes, sanitizeSerializedJSON, sanitizeSerializedState };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Klass, LexicalNode } from 'lexical';
|
|
2
|
+
interface AnyNode {
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
children?: unknown[];
|
|
5
|
+
type?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface SanitizeOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Lexical node classes to consider known. Defaults to all node classes
|
|
10
|
+
* registered in this package via `allHeadlessNodes`. Pass an explicit set
|
|
11
|
+
* if you've assembled a smaller registry.
|
|
12
|
+
*/
|
|
13
|
+
nodes?: Klass<LexicalNode>[];
|
|
14
|
+
/** Called once per encountered unknown type for observability. */
|
|
15
|
+
onUnknown?: (type: string) => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns a sanitized copy of `state` where any node whose `type` isn't in
|
|
19
|
+
* the configured node-set has been unwrapped (element) or dropped (leaf).
|
|
20
|
+
* Mutates nothing; safe to call on user-supplied JSON.
|
|
21
|
+
*/
|
|
22
|
+
export declare function sanitizeSerializedState<T extends {
|
|
23
|
+
root?: AnyNode;
|
|
24
|
+
}>(state: T, options: SanitizeOptions & {
|
|
25
|
+
nodes: Klass<LexicalNode>[];
|
|
26
|
+
}): T;
|
|
27
|
+
/**
|
|
28
|
+
* String-in / string-out convenience for callers that work with raw JSON
|
|
29
|
+
* (e.g. `editor.parseEditorState(json)` paths).
|
|
30
|
+
*
|
|
31
|
+
* If the input isn't valid JSON, it's returned unchanged — the caller's
|
|
32
|
+
* existing parser will surface the JSON error.
|
|
33
|
+
*/
|
|
34
|
+
export declare function sanitizeSerializedJSON(json: string, options: SanitizeOptions & {
|
|
35
|
+
nodes: Klass<LexicalNode>[];
|
|
36
|
+
}): string;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../src/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,OAAO;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;IAC7B,kEAAkE;IAClE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAoDD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAClE,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAA;CAAE,GACzD,CAAC,CAWH;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,CAAA;CAAE,GACzD,MAAM,CAUR"}
|