@codemerge/kernel 2.4.0 → 2.5.1

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.
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAItD,wBAAgB,cAAc,CAAC,CAAC,SAAI,GAAG,IAAI,CAE1C;AAED,wBAAgB,MAAM,CAAC,MAAM,SAAM,GAAG,MAAM,CAG3C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,IAAI,EAAO,GAAG,OAAO,CAEpE;AAED,wBAAgB,eAAe,CAC7B,OAAO,GAAE,OAAO,EAAqB,EACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAOT;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAMtD;AAMD,yDAAyD;AACzD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1D;AAED,oFAAoF;AACpF,wBAAgB,SAAS,CACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CASrC;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAQhD;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAkBpD;AAMD,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE/C;AAcD,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAgBrE;AAeD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAS/D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAW9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAQhD"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAItD,wBAAgB,cAAc,CAAC,CAAC,SAAI,GAAG,IAAI,CAE1C;AAED,wBAAgB,MAAM,CAAC,MAAM,SAAM,GAAG,MAAM,CAG3C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,IAAI,EAAO,GAAG,OAAO,CAIpE;AAED,wBAAgB,eAAe,CAC7B,OAAO,GAAE,OAAO,EAAqB,EACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAQT;AAED,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAMtD;AAMD,yDAAyD;AACzD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1D;AAED,oFAAoF;AACpF,wBAAgB,SAAS,CACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CASrC;AAED,yFAAyF;AACzF,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CA0BhD;AAED,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAqCpD;AAMD,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE/C;AAcD,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAgBrE;AAeD,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAS/D;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAW9E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAQhD"}
package/dist/index.cjs CHANGED
@@ -9,15 +9,19 @@ function nextId(prefix = "n") {
9
9
  return `${prefix}${idCounter}`;
10
10
  }
11
11
  function createText(text, marks = []) {
12
- return {
13
- marks: marks.length > 0 ? marks.map((m) => ({ ...m })) : void 0,
12
+ return marks.length > 0 ? {
13
+ marks: marks.map((m) => ({ ...m })),
14
+ text,
15
+ type: "text"
16
+ } : {
14
17
  text,
15
18
  type: "text"
16
19
  };
17
20
  }
18
21
  function createParagraph(content = [createText("")], attrs) {
22
+ const nextAttrs = copyAttrs(attrs);
19
23
  return {
20
- attrs: copyAttrs(attrs),
24
+ ...nextAttrs ? { attrs: nextAttrs } : {},
21
25
  content: [...content],
22
26
  id: nextId("p"),
23
27
  type: "paragraph"
@@ -48,16 +52,19 @@ function copyAttrs(src) {
48
52
  }
49
53
  /** Shallow clone node; children array is new, child refs shared (structural sharing). */
50
54
  function cloneNode(node) {
51
- return {
52
- ...node,
53
- attrs: copyAttrs(node.attrs),
54
- content: node.content ? [...node.content] : void 0,
55
- marks: node.marks ? node.marks.map((m) => ({
56
- ...m,
57
- attrs: copyAttrs(m.attrs)
58
- })) : void 0,
59
- text: node.text
60
- };
55
+ const out = { type: node.type };
56
+ if (node.id !== void 0) out.id = node.id;
57
+ if (node.text !== void 0) out.text = node.text;
58
+ const attrs = copyAttrs(node.attrs);
59
+ if (attrs) out.attrs = attrs;
60
+ if (node.content) out.content = [...node.content];
61
+ if (node.marks) out.marks = node.marks.map((m) => {
62
+ const mark = { type: m.type };
63
+ const markAttrs = copyAttrs(m.attrs);
64
+ if (markAttrs) mark.attrs = markAttrs;
65
+ return mark;
66
+ });
67
+ return out;
61
68
  }
62
69
  /** Deep clone node tree (content recursively cloned). */
63
70
  function deepCloneNode(node) {
@@ -67,11 +74,18 @@ function deepCloneNode(node) {
67
74
  }
68
75
  /** Assign stable ids to every non-text node missing `id`. */
69
76
  function ensureNodeIds(node) {
70
- const out = {
71
- ...node,
72
- content: node.content ? node.content.map(ensureNodeIds) : void 0,
73
- marks: node.marks ? node.marks.map((m) => ({ ...m })) : void 0
74
- };
77
+ const out = { type: node.type };
78
+ if (node.id !== void 0) out.id = node.id;
79
+ if (node.text !== void 0) out.text = node.text;
80
+ const attrs = copyAttrs(node.attrs);
81
+ if (attrs) out.attrs = attrs;
82
+ if (node.content) out.content = node.content.map(ensureNodeIds);
83
+ if (node.marks) out.marks = node.marks.map((m) => {
84
+ const mark = { type: m.type };
85
+ const markAttrs = copyAttrs(m.attrs);
86
+ if (markAttrs) mark.attrs = markAttrs;
87
+ return mark;
88
+ });
75
89
  if (out.type !== "text" && !out.id) out.id = nextId(out.type === "doc" ? "doc" : out.type === "paragraph" ? "p" : out.type === "listItem" ? "li" : "n");
76
90
  return out;
77
91
  }