@moda-editor/core 0.2.0 → 0.2.2

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.
Files changed (156) hide show
  1. package/dist/collab.d.ts +7 -0
  2. package/dist/collab.d.ts.map +1 -1
  3. package/dist/collab.js +29 -8
  4. package/dist/collab.js.map +1 -1
  5. package/dist/commands.d.ts +35 -1
  6. package/dist/commands.d.ts.map +1 -1
  7. package/dist/commands.js +144 -36
  8. package/dist/commands.js.map +1 -1
  9. package/dist/editor/editor.d.ts +6 -0
  10. package/dist/editor/editor.d.ts.map +1 -1
  11. package/dist/editor/editor.js +14 -4
  12. package/dist/editor/editor.js.map +1 -1
  13. package/dist/features/ace.d.ts.map +1 -1
  14. package/dist/features/ace.js +6 -0
  15. package/dist/features/ace.js.map +1 -1
  16. package/dist/features/alignment.d.ts.map +1 -1
  17. package/dist/features/alignment.js +6 -0
  18. package/dist/features/alignment.js.map +1 -1
  19. package/dist/features/block-dnd.d.ts.map +1 -1
  20. package/dist/features/block-dnd.js +6 -1
  21. package/dist/features/block-dnd.js.map +1 -1
  22. package/dist/features/blockquote.d.ts.map +1 -1
  23. package/dist/features/blockquote.js +40 -11
  24. package/dist/features/blockquote.js.map +1 -1
  25. package/dist/features/code-block.d.ts.map +1 -1
  26. package/dist/features/code-block.js +21 -9
  27. package/dist/features/code-block.js.map +1 -1
  28. package/dist/features/code-context.d.ts.map +1 -1
  29. package/dist/features/code-context.js +3 -1
  30. package/dist/features/code-context.js.map +1 -1
  31. package/dist/features/code-edit.d.ts.map +1 -1
  32. package/dist/features/code-edit.js +25 -4
  33. package/dist/features/code-edit.js.map +1 -1
  34. package/dist/features/code-format.d.ts.map +1 -1
  35. package/dist/features/code-format.js +131 -42
  36. package/dist/features/code-format.js.map +1 -1
  37. package/dist/features/doc.d.ts.map +1 -1
  38. package/dist/features/doc.js +36 -13
  39. package/dist/features/doc.js.map +1 -1
  40. package/dist/features/heading.d.ts.map +1 -1
  41. package/dist/features/heading.js +10 -3
  42. package/dist/features/heading.js.map +1 -1
  43. package/dist/features/horizontal-rule.d.ts.map +1 -1
  44. package/dist/features/horizontal-rule.js +34 -8
  45. package/dist/features/horizontal-rule.js.map +1 -1
  46. package/dist/features/image.d.ts.map +1 -1
  47. package/dist/features/image.js +25 -6
  48. package/dist/features/image.js.map +1 -1
  49. package/dist/features/inline-style.d.ts.map +1 -1
  50. package/dist/features/inline-style.js +48 -22
  51. package/dist/features/inline-style.js.map +1 -1
  52. package/dist/features/link.d.ts.map +1 -1
  53. package/dist/features/link.js +43 -17
  54. package/dist/features/link.js.map +1 -1
  55. package/dist/features/lists.d.ts.map +1 -1
  56. package/dist/features/lists.js +31 -14
  57. package/dist/features/lists.js.map +1 -1
  58. package/dist/features/markdown.d.ts.map +1 -1
  59. package/dist/features/markdown.js +7 -1
  60. package/dist/features/markdown.js.map +1 -1
  61. package/dist/features/marks.d.ts.map +1 -1
  62. package/dist/features/marks.js +31 -13
  63. package/dist/features/marks.js.map +1 -1
  64. package/dist/features/mention.d.ts.map +1 -1
  65. package/dist/features/mention.js +11 -0
  66. package/dist/features/mention.js.map +1 -1
  67. package/dist/features/script.d.ts.map +1 -1
  68. package/dist/features/script.js +5 -2
  69. package/dist/features/script.js.map +1 -1
  70. package/dist/features/search.d.ts.map +1 -1
  71. package/dist/features/search.js +62 -15
  72. package/dist/features/search.js.map +1 -1
  73. package/dist/features/table.d.ts.map +1 -1
  74. package/dist/features/table.js +74 -17
  75. package/dist/features/table.js.map +1 -1
  76. package/dist/features/task-list.d.ts.map +1 -1
  77. package/dist/features/task-list.js +23 -3
  78. package/dist/features/task-list.js.map +1 -1
  79. package/dist/history.d.ts.map +1 -1
  80. package/dist/history.js +64 -7
  81. package/dist/history.js.map +1 -1
  82. package/dist/index.d.ts +4 -3
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +4 -3
  85. package/dist/index.js.map +1 -1
  86. package/dist/parse/html.d.ts.map +1 -1
  87. package/dist/parse/html.js +91 -16
  88. package/dist/parse/html.js.map +1 -1
  89. package/dist/parse/sanitize.d.ts +6 -0
  90. package/dist/parse/sanitize.d.ts.map +1 -1
  91. package/dist/parse/sanitize.js +39 -3
  92. package/dist/parse/sanitize.js.map +1 -1
  93. package/dist/presets/markdown-parse.d.ts.map +1 -1
  94. package/dist/presets/markdown-parse.js +155 -33
  95. package/dist/presets/markdown-parse.js.map +1 -1
  96. package/dist/presets/markdown.d.ts.map +1 -1
  97. package/dist/presets/markdown.js +59 -13
  98. package/dist/presets/markdown.js.map +1 -1
  99. package/dist/state/apply.d.ts +1 -1
  100. package/dist/state/apply.d.ts.map +1 -1
  101. package/dist/state/apply.js +34 -8
  102. package/dist/state/apply.js.map +1 -1
  103. package/dist/state/delete-ops.d.ts.map +1 -1
  104. package/dist/state/delete-ops.js +13 -21
  105. package/dist/state/delete-ops.js.map +1 -1
  106. package/dist/state/insert-ops.d.ts +5 -2
  107. package/dist/state/insert-ops.d.ts.map +1 -1
  108. package/dist/state/insert-ops.js +7 -5
  109. package/dist/state/insert-ops.js.map +1 -1
  110. package/dist/state/list-ops.d.ts.map +1 -1
  111. package/dist/state/list-ops.js +74 -10
  112. package/dist/state/list-ops.js.map +1 -1
  113. package/dist/state/navigate.d.ts.map +1 -1
  114. package/dist/state/navigate.js +13 -4
  115. package/dist/state/navigate.js.map +1 -1
  116. package/dist/state/resolve-insert.d.ts.map +1 -1
  117. package/dist/state/resolve-insert.js +42 -4
  118. package/dist/state/resolve-insert.js.map +1 -1
  119. package/dist/state/selection.d.ts +9 -0
  120. package/dist/state/selection.d.ts.map +1 -1
  121. package/dist/state/selection.js +25 -1
  122. package/dist/state/selection.js.map +1 -1
  123. package/dist/state/slice-ops.d.ts +3 -0
  124. package/dist/state/slice-ops.d.ts.map +1 -1
  125. package/dist/state/slice-ops.js +44 -11
  126. package/dist/state/slice-ops.js.map +1 -1
  127. package/dist/state/state.d.ts.map +1 -1
  128. package/dist/state/state.js +27 -8
  129. package/dist/state/state.js.map +1 -1
  130. package/dist/state/transaction.d.ts +11 -3
  131. package/dist/state/transaction.d.ts.map +1 -1
  132. package/dist/state/transaction.js +37 -4
  133. package/dist/state/transaction.js.map +1 -1
  134. package/dist/theme.d.ts.map +1 -1
  135. package/dist/theme.js +5 -1
  136. package/dist/theme.js.map +1 -1
  137. package/dist/view/decoration.d.ts.map +1 -1
  138. package/dist/view/decoration.js +39 -35
  139. package/dist/view/decoration.js.map +1 -1
  140. package/dist/view/hook-ctx.d.ts.map +1 -1
  141. package/dist/view/hook-ctx.js +30 -9
  142. package/dist/view/hook-ctx.js.map +1 -1
  143. package/dist/view/ime.d.ts +6 -0
  144. package/dist/view/ime.d.ts.map +1 -1
  145. package/dist/view/ime.js +9 -3
  146. package/dist/view/ime.js.map +1 -1
  147. package/dist/view/input.d.ts.map +1 -1
  148. package/dist/view/input.js +53 -9
  149. package/dist/view/input.js.map +1 -1
  150. package/dist/view/node-selection.d.ts.map +1 -1
  151. package/dist/view/node-selection.js +6 -1
  152. package/dist/view/node-selection.js.map +1 -1
  153. package/dist/view/render.d.ts.map +1 -1
  154. package/dist/view/render.js +37 -4
  155. package/dist/view/render.js.map +1 -1
  156. package/package.json +1 -1
@@ -124,12 +124,18 @@ class Parser {
124
124
  isInline(type) {
125
125
  return type === "text" || this.schema.isInline(type);
126
126
  }
127
- /** 인라인 컨텍스트 — 자식들을 인라인 노드 목록으로 걷는다 */
128
- walkInline(el, marks) {
127
+ /**
128
+ * 인라인 컨텍스트 — 자식들을 인라인 노드 목록으로 걷는다.
129
+ * raw=true(코드 블록 안)이면 공백을 정규화하지 않는다 — <pre>의
130
+ * 개행·들여쓰기는 의미 있는 내용이다 (PM의 preserveWhitespace 관례)
131
+ */
132
+ walkInline(el, marks, raw = false) {
129
133
  const out = [];
130
134
  for (const child of Array.from(el.childNodes)) {
131
135
  if (child.nodeType === 3) {
132
- const text = normWS(child.textContent ?? "");
136
+ const text = raw
137
+ ? (child.textContent ?? "")
138
+ : normWS(child.textContent ?? "");
133
139
  if (!text)
134
140
  continue;
135
141
  out.push({
@@ -142,32 +148,81 @@ class Parser {
142
148
  if (child.nodeType !== 1)
143
149
  continue;
144
150
  const cel = child;
151
+ if (raw) {
152
+ // 코드(raw) 컨텍스트는 순수 텍스트다 — 마크뿐 아니라 인라인
153
+ // 노드(hardBreak·멘션 등)도 만들면 안 된다. <br>만 줄바꿈으로
154
+ // 살리고 나머지 요소는 textContent로 평탄화한다
155
+ const text = cel.tagName === "BR" ? "\n" : (cel.textContent ?? "");
156
+ if (text)
157
+ out.push({ type: "text", text });
158
+ continue;
159
+ }
160
+ // 코드(raw) 컨텍스트는 순수 텍스트다 — <pre><b>x</b></pre>에서
161
+ // 볼드가 코드 안에 마크로 남으면 raw-text 계약이 깨진다.
162
+ // 마크 태그는 마크 없이 투명 언랩한다
145
163
  const mark = this.matchMark(cel);
146
164
  if (mark) {
147
- out.push(...this.walkInline(cel, [...marks, mark]));
165
+ out.push(...this.walkInline(cel, [...marks, mark], raw));
148
166
  continue;
149
167
  }
150
168
  const nodeMatch = this.matchNode(cel);
151
169
  if (nodeMatch && this.isInline(nodeMatch.type)) {
170
+ const spec = this.schema.nodeSpec(nodeMatch.type);
171
+ // 인라인 atom(mention 등)은 content를 갖지 않는다 — walkInline의
172
+ // 빈 배열을 심으면 atom이 isContainer로 오판되고, content 없는
173
+ // Yjs 변환 결과와도 어긋나 협업 문서 비교가 깨진다
152
174
  out.push(this.schema.node(nodeMatch.type, {
153
175
  attrs: nodeMatch.attrs,
154
- content: this.walkInline(cel, marks),
176
+ ...(spec?.atom
177
+ ? {}
178
+ : { content: this.walkInline(cel, marks, raw) }),
155
179
  }));
156
180
  continue;
157
181
  }
158
182
  // 미매칭/블록 매칭 — 인라인 컨텍스트에서는 투명 언랩
159
- out.push(...this.walkInline(cel, marks));
183
+ out.push(...this.walkInline(cel, marks, raw));
160
184
  }
161
185
  return out;
162
186
  }
187
+ /**
188
+ * 부모 content 표현식이 type을 받는가 — 그룹명은 자식 타입의
189
+ * group으로 해석한다 ("cell+"는 tableCell/tableHeader를 받는다).
190
+ * 표현식이 없으면(content 미선언) 검사하지 않는다 — 선언된 스키마
191
+ * 만 좁힌다
192
+ */
193
+ allowsChild(expr, type) {
194
+ if (!expr)
195
+ return true;
196
+ for (const token of expr.replace(/[+*?()]/g, " ").split(/[|\s]+/)) {
197
+ if (!token)
198
+ continue;
199
+ if (token === type || this.schema.groups(type).includes(token)) {
200
+ return true;
201
+ }
202
+ // 타입 플래그 소속 — "listItem+"는 listItem 플래그를 가진
203
+ // 노드(taskItem 등)를 모두 받는다. taskItem은 group이 없어
204
+ // 이름 매칭만으로는 bulletList 안에 못 들어간다
205
+ const ts = this.schema.nodeSpec(token);
206
+ const cs = this.schema.nodeSpec(type);
207
+ if (ts?.listItem && cs?.listItem)
208
+ return true;
209
+ }
210
+ return false;
211
+ }
163
212
  /** 블록 컨텍스트 — 인라인 런은 문단으로 감싼다 */
164
- walkBlocks(el, marks = []) {
213
+ walkBlocks(el, marks = [], expr = "") {
165
214
  const out = [];
166
215
  let run = [];
167
216
  const flush = () => {
168
217
  const content = trimWS(run);
169
- if (content.length)
170
- out.push(this.wrapTextblock(content));
218
+ if (content.length) {
219
+ const w = this.wrapTextblock(content);
220
+ // 런을 감싼 텍스트블록이 부모 표현식을 위반하면 내보내지
221
+ // 않는다 — <td>text</td> 같은 불량 자식이 tr 안에 paragraph를
222
+ // 심어 스키마를 깨는 것을 막는다
223
+ if (this.allowsChild(expr, w.type))
224
+ out.push(w);
225
+ }
171
226
  run = [];
172
227
  };
173
228
  for (const child of Array.from(el.childNodes)) {
@@ -187,10 +242,22 @@ class Parser {
187
242
  const cel = child;
188
243
  const nodeMatch = this.matchNode(cel);
189
244
  if (nodeMatch && !this.isInline(nodeMatch.type)) {
245
+ if (!this.allowsChild(expr, nodeMatch.type)) {
246
+ // 부모가 받지 않는 블록 매치(td in doc, p in tr) — 노드를
247
+ // 만들면 스키마 위반이니 blockish로 내려 자식만 남긴다
248
+ flush();
249
+ out.push(...this.walkBlocks(cel, marks, expr));
250
+ continue;
251
+ }
190
252
  flush();
253
+ const spec = this.schema.nodeSpec(nodeMatch.type);
254
+ // 블록 atom(hr/image 등)에도 content를 심지 않는다 — 인라인과
255
+ // 같은 이유로, atom의 빈 content는 컨테이너 오판을 만든다
191
256
  out.push(this.schema.node(nodeMatch.type, {
192
257
  attrs: nodeMatch.attrs,
193
- content: this.nodeContent(cel, nodeMatch.type, marks),
258
+ ...(spec?.atom
259
+ ? {}
260
+ : { content: this.nodeContent(cel, nodeMatch.type, marks) }),
194
261
  }));
195
262
  continue;
196
263
  }
@@ -201,16 +268,17 @@ class Parser {
201
268
  }
202
269
  if (nodeMatch) {
203
270
  // 인라인 노드 매칭
271
+ const spec = this.schema.nodeSpec(nodeMatch.type);
204
272
  run.push(this.schema.node(nodeMatch.type, {
205
273
  attrs: nodeMatch.attrs,
206
- content: this.walkInline(cel, marks),
274
+ ...(spec?.atom ? {} : { content: this.walkInline(cel, marks) }),
207
275
  }));
208
276
  continue;
209
277
  }
210
278
  // 미매칭 — blockish면 경계, 아니면 투명 언랩
211
279
  if (BLOCKISH.has(cel.tagName.toLowerCase())) {
212
280
  flush();
213
- out.push(...this.walkBlocks(cel, marks));
281
+ out.push(...this.walkBlocks(cel, marks, expr));
214
282
  }
215
283
  else {
216
284
  run.push(...this.walkInline(cel, marks));
@@ -224,9 +292,13 @@ class Parser {
224
292
  const spec = this.schema.nodeSpec(type);
225
293
  const expr = spec?.content ?? "";
226
294
  const inline = expr.includes("inline") || this.isInlineOnly(expr);
227
- if (inline)
228
- return trimWS(this.walkInline(el, marks));
229
- return this.walkBlocks(el, marks);
295
+ if (inline) {
296
+ // code 노드는 순수 텍스트만 담는다 — 바깥 마크 컨텍스트(<b><pre>
297
+ // 같은 래퍼)도 끊고 안쪽 마크 매칭도 끈다 (walkInline의 raw 플래그)
298
+ const raw = spec?.code === true;
299
+ return trimWS(this.walkInline(el, raw ? [] : marks, raw));
300
+ }
301
+ return this.walkBlocks(el, marks, expr);
230
302
  }
231
303
  isInlineOnly(expr) {
232
304
  // "paragraph"/"heading" 같은 노드명이 아니라 그룹만 있으면 inline 아님
@@ -274,6 +346,9 @@ function trimWS(nodes) {
274
346
  */
275
347
  export function parseHTML(html, schema, doc) {
276
348
  const root = sanitizeHTML(html, doc);
277
- return new Parser(schema).walkBlocks(root);
349
+ // 최상위도 topNode의 content 표현식으로 검증한다 — 스키마 밖
350
+ // 블록(예: block이 아닌 그룹의 노드)이 루트에 들어가지 않게
351
+ const topExpr = schema.nodeSpec(schema.topNodeType)?.content ?? "";
352
+ return new Parser(schema).walkBlocks(root, [], topExpr);
278
353
  }
279
354
  //# sourceMappingURL=html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/parse/html.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAqB7C,SAAS,YAAY,CAAC,MAAc;IAIlC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE;YACpC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,gDAAgD;AAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACvB,SAAS;IACT,SAAS;IACT,OAAO;IACP,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,IAAI;IACJ,SAAS;IACT,QAAQ;IACR,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,KAAK;IACL,SAAS;IACT,SAAS;IACT,OAAO;IACP,OAAO;IACP,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;CACL,CAAC,CAAC;AAEH,kDAAkD;AAClD,SAAS,UAAU,CAAC,EAAW,EAAE,KAAa;IAC5C,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAI,EAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,OAAO,IAAI,MAAM,CAAC,OAAO,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAAC,EAAW,EAAE,IAAe;IAC7C,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAClC,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,MAAM;IAIV,YAA6B,MAAc;QAA/B;;;;mBAAiB,MAAM;WAAQ;QAH1B;;;;;WAAsB;QACtB;;;;;WAA0B;QAGzC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;IAEO,SAAS,CACf,EAAW;QAEX,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;YACjD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,SAAS,CAAC,EAAW;QAC3B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC;YACjD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,QAAQ,CAAC,IAAY;QAC3B,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,sCAAsC;IACtC,UAAU,CAAC,EAAQ,EAAE,KAAsB;QACzC,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI;oBACJ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC/C,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,GAAG,GAAG,KAAgB,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,IAAI,CACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBAC/B,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;iBACrC,CAAC,CACH,CAAC;gBACF,SAAS;YACX,CAAC;YACD,gCAAgC;YAChC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gCAAgC;IAChC,UAAU,CAAC,EAAQ,EAAE,QAAyB,EAAE;QAC9C,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,IAAI,GAAG,GAAiB,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,OAAO,CAAC,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1D,GAAG,GAAG,EAAE,CAAC;QACX,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC7C,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI;wBACJ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC/C,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;gBAAE,SAAS;YACnC,MAAM,GAAG,GAAG,KAAgB,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,KAAK,EAAE,CAAC;gBACR,GAAG,CAAC,IAAI,CACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBAC/B,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;iBACtD,CAAC,CACH,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpD,SAAS;YACX,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,YAAY;gBACZ,GAAG,CAAC,IAAI,CACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;oBAC/B,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;iBACrC,CAAC,CACH,CAAC;gBACF,SAAS;YACX,CAAC;YACD,gCAAgC;YAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC5C,KAAK,EAAE,CAAC;gBACR,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC;QACR,OAAO,GAAG,CAAC;IACb,CAAC;IAED,+DAA+D;IACvD,WAAW,CACjB,EAAW,EACX,IAAY,EACZ,KAAsB;QAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,sDAAsD;QACtD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6DAA6D;IACrD,aAAa,CAAC,OAA8B;QAClD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,sCAAsC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,WAAW,CACrC,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,kCAAkC;AAClC,SAAS,MAAM,CAAC,KAA4B;IAC1C,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,OAAO,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAChD,OAAO,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;QAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,MAAc,EACd,GAAc;IAEd,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/parse/html.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@
12
12
  * 스키마 밖 태그의 생존 여부는 sanitizer가 아니라 파서가 결정한다
13
13
  * (parse/html.ts의 unwrap/drop) — 이 함수는 "위험한가"만 본다.
14
14
  */
15
+ /**
16
+ * href/src에 허용되는 URL인가 — javascript:/vbscript:/data: 스킴 차단.
17
+ * sanitizer뿐 아니라 setLink 같은 커맨드 경로도 이 검사를 공유한다 —
18
+ * 커맨드로 만든 링크는 파서를 거치지 않아 여기서 막지 않으면 XSS다.
19
+ */
20
+ export declare function isSafeUrl(value: string): boolean;
15
21
  /**
16
22
  * HTML 문자열을 파싱해 정제된 컨테이너 div를 반환한다.
17
23
  * 브라우저/happy-dom의 DOMParser를 쓰고, 없으면 주입된 Document 사용.
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/parse/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAsGH;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAalE"}
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/parse/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAoEH;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUhD;AAuDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAalE"}
@@ -36,12 +36,18 @@ const DROP_TAGS = new Set([
36
36
  "math",
37
37
  "xml",
38
38
  ]);
39
- /** style 속성에서 생존시키는 선언 — 마크 매칭에 필요한 것만 */
39
+ /** style 속성에서 생존시키는 선언 — 마크·블록 attr 매칭에 필요한 것만 */
40
40
  const KEEP_STYLES = new Set([
41
41
  "font-weight",
42
42
  "font-style",
43
43
  "text-decoration",
44
44
  "text-decoration-line",
45
+ // textColor/fontSize/highlight 마크와 블록 align attr의 왕복 경로 —
46
+ // 전부 불활성 스타일이라 url()·expression() 같은 실행 경로가 없다
47
+ "color",
48
+ "background-color",
49
+ "font-size",
50
+ "text-align",
45
51
  ]);
46
52
  /** 허용 속성 — 나머지는 전부 벗긴다 */
47
53
  const KEEP_ATTRS = new Set([
@@ -53,9 +59,26 @@ const KEEP_ATTRS = new Set([
53
59
  // img/td의 크기 속성 — 값이 숫자라 실행 위험이 없다
54
60
  "width",
55
61
  "height",
62
+ // 에디터 자체 직렬화물의 왕복 속성 — 데이터 전달이라 실행 위험 없음
63
+ "start", // orderedList start
64
+ "data-checked", // taskItem
65
+ "data-language", // codeBlock
66
+ "data-id", // mention
67
+ "data-label",
56
68
  ]);
69
+ /**
70
+ * class는 MS Office 가비지(Mso*)가 널리 퍼지는 채널이라 전량 제거가
71
+ * 원칙 — 단 에디터 자체 마커(me-*)와 하이라이트 언어 표기
72
+ * (language-js)만 토큰 단위로 살려 왕복을 보장한다.
73
+ */
74
+ const KEEP_CLASS = /^(?:me-|language-)[\w-]*$/;
57
75
  const URL_ATTRS = new Set(["href", "src"]);
58
- function isSafeUrl(value) {
76
+ /**
77
+ * href/src에 허용되는 URL인가 — javascript:/vbscript:/data: 스킴 차단.
78
+ * sanitizer뿐 아니라 setLink 같은 커맨드 경로도 이 검사를 공유한다 —
79
+ * 커맨드로 만든 링크는 파서를 거치지 않아 여기서 막지 않으면 XSS다.
80
+ */
81
+ export function isSafeUrl(value) {
59
82
  const v = value
60
83
  .trim()
61
84
  .toLowerCase()
@@ -98,8 +121,21 @@ function sanitizeElement(el) {
98
121
  el.removeAttribute("style");
99
122
  continue;
100
123
  }
124
+ if (name === "class") {
125
+ // me-*/language-* 토큰만 생존 — 나머지(Mso* 등)는 걸러낸다
126
+ const kept = attr.value.split(/\s+/).filter((c) => KEEP_CLASS.test(c));
127
+ if (kept.length)
128
+ el.setAttribute("class", kept.join(" "));
129
+ else
130
+ el.removeAttribute("class");
131
+ continue;
132
+ }
101
133
  if (KEEP_ATTRS.has(name)) {
102
- if (URL_ATTRS.has(name) && !isSafeUrl(attr.value)) {
134
+ // src의 data:image/*는 예외 — <img>는 data: URL에서 스크립트를
135
+ // 실행하지 않고, fileToDataUrl 업로더의 붙여넣기 왕복 경로다.
136
+ // href에는 예외 없음 — 링크 클릭은 스킴을 그대로 탄다
137
+ const safeImg = name === "src" && /^data:image\//i.test(attr.value.trim());
138
+ if (URL_ATTRS.has(name) && !isSafeUrl(attr.value) && !safeImg) {
103
139
  el.removeAttribute(attr.name);
104
140
  }
105
141
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/parse/sanitize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/parse/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;IACxB,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,UAAU;IACV,KAAK;IACL,MAAM;IACN,KAAK;CACN,CAAC,CAAC;AAEH,kDAAkD;AAClD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,sBAAsB;IACtB,0DAA0D;IAC1D,+CAA+C;IAC/C,OAAO;IACP,kBAAkB;IAClB,WAAW;IACX,YAAY;CACb,CAAC,CAAC;AAEH,0BAA0B;AAC1B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,MAAM;IACN,KAAK;IACL,KAAK;IACL,SAAS;IACT,SAAS;IACT,mCAAmC;IACnC,OAAO;IACP,QAAQ;IACR,yCAAyC;IACzC,OAAO,EAAE,oBAAoB;IAC7B,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,YAAY;IAC7B,SAAS,EAAE,UAAU;IACrB,YAAY;CACb,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,CAAC,GAAG,KAAK;SACZ,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,CACN,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;QAC3B,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;QACzB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CACtB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAW;IAClC,kCAAkC;IAClC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACjD,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,CAAC,GAAG,KAAgB,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,gDAAgD;QAChD,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,YAAY;IACZ,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACtD,IAAI,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,IAAI,CAAC,MAAM;gBAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;gBACtD,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,6CAA6C;YAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,MAAM;gBAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;gBACrD,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QACD,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,mDAAmD;YACnD,2CAA2C;YAC3C,mCAAmC;YACnC,MAAM,OAAO,GACX,IAAI,KAAK,KAAK,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9D,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,SAAS;QACX,CAAC;QACD,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAc;IACvD,MAAM,CAAC,GACL,GAAG;QACH,CAAC,OAAO,SAAS,KAAK,WAAW;YAC/B,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,CAAC;IACZ,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,eAAe,CAAC,GAAG,CAAC,CAAC;IACrB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-parse.d.ts","sourceRoot":"","sources":["../../src/presets/markdown-parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAialE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE,CAEtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGnD"}
1
+ {"version":3,"file":"markdown-parse.d.ts","sourceRoot":"","sources":["../../src/presets/markdown-parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAQ,MAAM,kBAAkB,CAAC;AAsiBlE;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE,CAEtD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGnD"}