@hcengineering/text-markdown 0.7.17 → 0.7.19

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.
@@ -13,9 +13,9 @@
13
13
  // limitations under the License.
14
14
  //
15
15
 
16
- import { MarkupNode } from '@hcengineering/text-core'
16
+ import { MarkupNode, MarkupNodeType, MarkupMarkType } from '@hcengineering/text-core'
17
17
  import { markdownToMarkup, markupToMarkdown } from '..'
18
- import { isMarkdownsEquals } from '../compare'
18
+ import { isMarkdownsEquals, normalizeMarkdown } from '../compare'
19
19
 
20
20
  const refUrl: string = 'ref://'
21
21
  const imageUrl: string = 'http://localhost'
@@ -912,6 +912,25 @@ Lorem ipsum dolor sit amet.
912
912
  }
913
913
  ]
914
914
  }
915
+ },
916
+ {
917
+ name: 'textColor',
918
+ markdown: '<span style="color: #abcdef" data-color="#abcdef">colored</span>',
919
+ markup: {
920
+ type: MarkupNodeType.doc,
921
+ content: [
922
+ {
923
+ type: MarkupNodeType.paragraph,
924
+ content: [
925
+ {
926
+ type: MarkupNodeType.text,
927
+ text: 'colored',
928
+ marks: [{ type: 'textColor' as MarkupMarkType, attrs: { color: '#abcdef' } }]
929
+ }
930
+ ]
931
+ }
932
+ ]
933
+ }
915
934
  }
916
935
  ]
917
936
 
@@ -924,11 +943,10 @@ Lorem ipsum dolor sit amet.
924
943
  })
925
944
  })
926
945
 
927
- describe('to markup and back', () => {
946
+ describe('to markdown', () => {
928
947
  tests.forEach(({ name, markdown, markup }) => {
929
948
  it(name, () => {
930
- const json = markdownToMarkup(markdown, options)
931
- const serialized = markupToMarkdown(json, options)
949
+ const serialized = markupToMarkdown(markup as MarkupNode, options)
932
950
  expect(serialized).toEqualMarkdown(markdown)
933
951
  })
934
952
  })
@@ -979,6 +997,109 @@ describe('markupToMarkdown', () => {
979
997
  }
980
998
  ]
981
999
  }
1000
+ },
1001
+ {
1002
+ name: 'textColor',
1003
+ markdown: '<span style="color: #abcdef" data-color="#abcdef">colored</span>',
1004
+ markup: {
1005
+ type: MarkupNodeType.doc,
1006
+ content: [
1007
+ {
1008
+ type: MarkupNodeType.paragraph,
1009
+ content: [
1010
+ {
1011
+ type: MarkupNodeType.text,
1012
+ text: 'colored',
1013
+ marks: [{ type: 'textColor' as MarkupMarkType, attrs: { color: '#abcdef' } }]
1014
+ }
1015
+ ]
1016
+ }
1017
+ ]
1018
+ }
1019
+ },
1020
+ {
1021
+ name: 'textColor + italic',
1022
+ markdown: '<span style="color: #abcdef" data-color="#abcdef">*styled*</span>',
1023
+ markup: {
1024
+ type: MarkupNodeType.doc,
1025
+ content: [
1026
+ {
1027
+ type: MarkupNodeType.paragraph,
1028
+ content: [
1029
+ {
1030
+ type: MarkupNodeType.text,
1031
+ text: 'styled',
1032
+ marks: [
1033
+ { type: 'textColor' as MarkupMarkType, attrs: { color: '#abcdef' } },
1034
+ { type: MarkupMarkType.em }
1035
+ ]
1036
+ }
1037
+ ]
1038
+ }
1039
+ ]
1040
+ }
1041
+ },
1042
+ {
1043
+ name: 'textStyle with font-family',
1044
+ markdown: '<span style="font-family: Arial">arial</span>',
1045
+ markup: {
1046
+ type: MarkupNodeType.doc,
1047
+ content: [
1048
+ {
1049
+ type: MarkupNodeType.paragraph,
1050
+ content: [
1051
+ {
1052
+ type: MarkupNodeType.text,
1053
+ text: 'arial',
1054
+ marks: [{ type: MarkupMarkType.textStyle, attrs: { fontFamily: 'Arial' } }]
1055
+ }
1056
+ ]
1057
+ }
1058
+ ]
1059
+ }
1060
+ },
1061
+ {
1062
+ name: 'textStyle with multiple properties',
1063
+ markdown: '<span style="font-family: Arial; font-size: 16px; font-weight: bold">styled</span>',
1064
+ markup: {
1065
+ type: MarkupNodeType.doc,
1066
+ content: [
1067
+ {
1068
+ type: MarkupNodeType.paragraph,
1069
+ content: [
1070
+ {
1071
+ type: MarkupNodeType.text,
1072
+ text: 'styled',
1073
+ marks: [
1074
+ {
1075
+ type: MarkupMarkType.textStyle,
1076
+ attrs: { fontFamily: 'Arial', fontSize: '16px', fontWeight: 'bold' }
1077
+ }
1078
+ ]
1079
+ }
1080
+ ]
1081
+ }
1082
+ ]
1083
+ }
1084
+ },
1085
+ {
1086
+ name: 'textStyle with color (no data-color)',
1087
+ markdown: '<span style="color: red">red</span>',
1088
+ markup: {
1089
+ type: MarkupNodeType.doc,
1090
+ content: [
1091
+ {
1092
+ type: MarkupNodeType.paragraph,
1093
+ content: [
1094
+ {
1095
+ type: MarkupNodeType.text,
1096
+ text: 'red',
1097
+ marks: [{ type: MarkupMarkType.textStyle, attrs: { color: 'red' } }]
1098
+ }
1099
+ ]
1100
+ }
1101
+ ]
1102
+ }
982
1103
  }
983
1104
  ]
984
1105
 
@@ -1074,3 +1195,58 @@ describe('markdownToMarkup -> markupToMarkdown', () => {
1074
1195
  })
1075
1196
  })
1076
1197
  })
1198
+
1199
+ describe('normalizeMarkdown', () => {
1200
+ it('handles null and undefined inputs', () => {
1201
+ expect(normalizeMarkdown(null as any)).toBe('')
1202
+ expect(normalizeMarkdown(undefined as any)).toBe('')
1203
+ expect(normalizeMarkdown('')).toBe('')
1204
+ })
1205
+
1206
+ it('handles non-string inputs', () => {
1207
+ expect(normalizeMarkdown(123 as any)).toBe('')
1208
+ expect(normalizeMarkdown({} as any)).toBe('')
1209
+ expect(normalizeMarkdown([] as any)).toBe('')
1210
+ })
1211
+
1212
+ it('normalizes line endings', () => {
1213
+ expect(normalizeMarkdown('line1\r\nline2\rline3\nline4')).toBe('line1\nline2\nline3\nline4')
1214
+ })
1215
+
1216
+ it('removes trailing whitespace and empty lines', () => {
1217
+ expect(normalizeMarkdown('line1 \n \nline2 \n\n\nline3')).toBe('line1\nline2\nline3')
1218
+ })
1219
+
1220
+ it('normalizes HTML tag attributes', () => {
1221
+ const input = '<img src="test.jpg" alt="test" width="100">'
1222
+ const expected = '<img alt="test" src="test.jpg" width="100" />'
1223
+ expect(normalizeMarkdown(input)).toBe(expected)
1224
+ })
1225
+
1226
+ it('handles void elements correctly', () => {
1227
+ expect(normalizeMarkdown('<img src="test.jpg">')).toBe('<img src="test.jpg" />')
1228
+ expect(normalizeMarkdown('<br>')).toBe('<br />')
1229
+ expect(normalizeMarkdown('<hr>')).toBe('<hr />')
1230
+ })
1231
+
1232
+ it('handles non-void elements correctly', () => {
1233
+ expect(normalizeMarkdown('<div class="test">')).toBe('<div class="test">')
1234
+ expect(normalizeMarkdown('<span>')).toBe('<span>')
1235
+ })
1236
+
1237
+ it('sorts attributes alphabetically', () => {
1238
+ const input = '<img width="100" src="test.jpg" height="200" alt="test">'
1239
+ const expected = '<img alt="test" height="200" src="test.jpg" width="100" />'
1240
+ expect(normalizeMarkdown(input)).toBe(expected)
1241
+ })
1242
+
1243
+ it('handles attributes without values', () => {
1244
+ expect(normalizeMarkdown('<input type="checkbox" checked>')).toBe('<input checked type="checkbox" />')
1245
+ })
1246
+
1247
+ it('handles mixed content', () => {
1248
+ const input = 'Text before\r\n<img alt="test" src="image.jpg"> \n\nText after '
1249
+ const expected = 'Text before\n<img alt="test" src="image.jpg" />\nText after'
1250
+ expect(normalizeMarkdown(input)).toBe(expected)
1251
+ })
1252
+ })
package/src/compare.ts CHANGED
@@ -17,6 +17,8 @@
17
17
  * Calculate Sørensen–Dice coefficient
18
18
  */
19
19
  export function calcSørensenDiceCoefficient (a: string, b: string): number {
20
+ if (a == null || b == null) return 0
21
+
20
22
  const first = a.replace(/\s+/g, '')
21
23
  const second = b.replace(/\s+/g, '')
22
24
 
@@ -55,11 +57,13 @@ export function isMarkdownsEquals (source1: string, source2: string): boolean {
55
57
  }
56
58
 
57
59
  export function normalizeMarkdown (source: string): string {
60
+ if (source == null || typeof source !== 'string') return ''
61
+
58
62
  const tagRegex = /<(\w+)([^>]*?)(\/?)>/g
59
63
  const attrRegex = /(\w+)(?:=(?:"([^"]*)"|'([^']*)'|([^\s>]+)))?/g
60
64
 
61
65
  // Normalize line endings to LF
62
- source = source.replace(/\r?\n/g, '\n')
66
+ source = source.replace(/\r\n/g, '\n').replace(/\r/g, '\n')
63
67
 
64
68
  // Remove extra blank lines
65
69
  source = source
package/src/parser.ts CHANGED
@@ -50,8 +50,8 @@ interface ParsingMarkRule {
50
50
  }
51
51
 
52
52
  interface ParsingSpecialRule {
53
- type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType, node: boolean }
54
- getAttrs?: (tok: Token, state: MarkdownParseState) => Attrs
53
+ type: (state: MarkdownParseState, tok: Token) => { type: MarkupMarkType | MarkupNodeType, node: boolean } | undefined
54
+ getAttrs?: (tok: Token, state: MarkdownParseState) => Attrs | undefined
55
55
  }
56
56
 
57
57
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
@@ -161,8 +161,8 @@ class MarkdownParseState {
161
161
  if (tok === undefined) {
162
162
  break
163
163
  }
164
- // Check if we need to merge some content into
165
- // Merge <sub> </sub> into one html token
164
+
165
+ // Merge <sub> ... </sub> into one html token
166
166
  if (tok.type === 'html_inline' && tok.content.trim() === '<sub>') {
167
167
  while (_toks.length > 0) {
168
168
  const _tok = _toks.shift()
@@ -175,6 +175,19 @@ class MarkdownParseState {
175
175
  }
176
176
  }
177
177
 
178
+ // Merge <span ...> ... </span> into one html token
179
+ if (tok.type === 'html_inline' && tok.content.trim().startsWith('<span')) {
180
+ while (_toks.length > 0) {
181
+ const _tok = _toks.shift()
182
+ if (_tok !== undefined) {
183
+ tok.content += _tok.content
184
+ if (_tok.type === 'html_inline' && _tok.content.trim() === '</span>') {
185
+ break
186
+ }
187
+ }
188
+ }
189
+ }
190
+
178
191
  const handler = this.tokenHandlers[tok.type]
179
192
  if (handler === undefined) {
180
193
  throw new Error(`Token type '${String(tok.type)} not supported by Markdown parser`)
@@ -277,18 +290,22 @@ function addSpecMark (handlers: HandlersRecord, spec: ParsingMarkRule, type: str
277
290
  function addSpecialRule (handlers: HandlersRecord, spec: ParsingSpecialRule, type: string): void {
278
291
  handlers[type + '_open'] = (state, tok) => {
279
292
  const type = spec.type(state, tok)
280
- if (type.node) {
281
- state.openNode(type.type as MarkupNodeType, spec.getAttrs?.(tok, state) ?? {})
282
- } else {
283
- state.openMark({ type: type.type as MarkupMarkType, attrs: spec.getAttrs?.(tok, state) ?? {} })
293
+ if (type !== undefined) {
294
+ if (type.node) {
295
+ state.openNode(type.type as MarkupNodeType, spec.getAttrs?.(tok, state) ?? {})
296
+ } else {
297
+ state.openMark({ type: type.type as MarkupMarkType, attrs: spec.getAttrs?.(tok, state) ?? {} })
298
+ }
284
299
  }
285
300
  }
286
301
  handlers[type + '_close'] = (state, tok) => {
287
302
  const type = spec.type(state, tok)
288
- if (type.node) {
289
- state.closeNode()
290
- } else {
291
- state.closeMark(type.type as MarkupMarkType)
303
+ if (type !== undefined) {
304
+ if (type.node) {
305
+ state.closeNode()
306
+ } else {
307
+ state.closeMark(type.type as MarkupMarkType)
308
+ }
292
309
  }
293
310
  }
294
311
  }
@@ -696,7 +713,7 @@ export class MarkdownParser {
696
713
  }
697
714
 
698
715
  listRule: RuleCore = (state: TaskListStateCore): boolean => {
699
- const tokens = state.tokens
716
+ const tokens = (state as any).tokens
700
717
  const states: Array<{ closeIdx: number, lastItemIdx: number }> = []
701
718
 
702
719
  // step #1 - convert list items to todo items
@@ -783,7 +800,7 @@ function convertTodoItem (tokens: Token[], open: number): boolean {
783
800
  }
784
801
 
785
802
  const metaTok = inline.children.find(
786
- (tok) => tok.type === 'html_inline' && tok.content.startsWith('<!--') && tok.content.endsWith('-->')
803
+ (tok: Token) => tok.type === 'html_inline' && tok.content.startsWith('<!--') && tok.content.endsWith('-->')
787
804
  )
788
805
  if (metaTok !== undefined) {
789
806
  const metaValues = metaTok.content.slice(5, -4).split(',')
package/src/serializer.ts CHANGED
@@ -378,6 +378,49 @@ export const storeMarks: Record<string, MarkProcessor> = {
378
378
  mixable: false,
379
379
  expelEnclosingWhitespace: false,
380
380
  escape: false
381
+ },
382
+ textColor: {
383
+ open: (state, mark, parent, index) => {
384
+ if (mark.attrs?.color === undefined) {
385
+ return ''
386
+ }
387
+ return `<span style="color: ${mark.attrs.color}" data-color="${mark.attrs.color}">`
388
+ },
389
+ close: (state, mark, parent, index) => {
390
+ if (mark.attrs?.color === undefined) {
391
+ return ''
392
+ }
393
+ return '</span>'
394
+ },
395
+ mixable: false,
396
+ expelEnclosingWhitespace: false,
397
+ escape: false
398
+ },
399
+ textStyle: {
400
+ open: (state, mark, parent, index) => {
401
+ const attrs = mark.attrs ?? {}
402
+ if (Object.keys(attrs).length === 0) {
403
+ return ''
404
+ }
405
+ const styleAttrs = Object.entries(attrs)
406
+ .map(([key, value]) => {
407
+ const kebabKey = key.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)
408
+ return `${kebabKey}: ${value}`
409
+ })
410
+ .join('; ')
411
+
412
+ return `<span style="${styleAttrs}">`
413
+ },
414
+ close: (state, mark, parent, index) => {
415
+ const attrs = mark.attrs ?? {}
416
+ if (Object.keys(attrs).length === 0) {
417
+ return ''
418
+ }
419
+ return '</span>'
420
+ },
421
+ mixable: false,
422
+ expelEnclosingWhitespace: false,
423
+ escape: false
381
424
  }
382
425
  }
383
426
 
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,wBAAgB,2BAA2B,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAI5E;AAED,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CA8DzD"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../src/compare.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,wBAAgB,2BAA2B,CAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA6BzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAI5E;AAED,wBAAgB,iBAAiB,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAgEzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAExG,OAAO,UAAU,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AA8D3D,UAAU,YAAY;IACpB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;CACb;AAGD,cAAM,kBAAkB;IAOpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAP3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;gBAG5E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAO3B,GAAG,IAAK,YAAY,GAAG,SAAS;IAIhC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAO5B,aAAa,CAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAY9D,OAAO,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAsB7B,QAAQ,CAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAKjC,SAAS,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,CAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI;IA8BxC,OAAO,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,UAAU,EAAO,GAAG,UAAU;IAcpF,QAAQ,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnD,SAAS,IAAK,UAAU;CAQzB;AA8ZD,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,OAAmC,CAAA;AAEjF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE5F,eAAO,MAAM,eAAe,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE3F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,qBAAa,cAAc;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJrC,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;IAC9E,UAAU,EAAE,UAAU,CAAA;gBAEQ,OAAO,EAAE,qBAAqB;IAW5D,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAahC,eAAe,EAAE,QAAQ,CAWxB;IAED,QAAQ,EAAE,QAAQ,CAgDjB;CACF"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAExG,OAAO,UAAU,EAAE,EAAE,KAAK,KAAK,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AA8D3D,UAAU,YAAY;IACpB,IAAI,EAAE,cAAc,CAAA;IACpB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAA;CACb;AAGD,cAAM,kBAAkB;IAOpB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAP3B,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;gBAG5E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,EACrE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM;IAO3B,GAAG,IAAK,YAAY,GAAG,SAAS;IAIhC,IAAI,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAO5B,aAAa,CAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAY9D,OAAO,CAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAsB7B,QAAQ,CAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAKjC,SAAS,CAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,CAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI;IA2CxC,OAAO,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,UAAU,EAAO,GAAG,UAAU;IAcpF,QAAQ,CAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAKnD,SAAS,IAAK,UAAU;CAQzB;AAkaD,eAAO,MAAM,aAAa,GAAI,QAAQ,KAAK,KAAG,OAAmC,CAAA;AAEjF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE5F,eAAO,MAAM,eAAe,GAAI,QAAQ,KAAK,KAAG,OAA2C,CAAA;AAE3F,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,CAAA;AAErD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,qBAAa,cAAc;IAKZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJrC,SAAS,EAAE,UAAU,CAAA;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC,CAAA;IAC9E,UAAU,EAAE,UAAU,CAAA;gBAEQ,OAAO,EAAE,qBAAqB;IAW5D,KAAK,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU;IAahC,eAAe,EAAE,QAAQ,CAWxB;IAED,QAAQ,EAAE,QAAQ,CAgDjB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../src/serializer.ts"],"names":[],"mappings":"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"}