@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.
- package/lib/__tests__/markdown.test.js +170 -3
- package/lib/__tests__/markdown.test.js.map +2 -2
- package/lib/compare.js +3 -1
- package/lib/compare.js.map +2 -2
- package/lib/parser.js +23 -8
- package/lib/parser.js.map +2 -2
- package/lib/serializer.js +40 -0
- package/lib/serializer.js.map +2 -2
- package/package.json +3 -3
- package/src/__tests__/markdown.test.ts +181 -5
- package/src/compare.ts +5 -1
- package/src/parser.ts +31 -14
- package/src/serializer.ts +43 -0
- package/types/compare.d.ts.map +1 -1
- package/types/parser.d.ts.map +1 -1
- package/types/serializer.d.ts.map +1 -1
|
@@ -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
|
|
946
|
+
describe('to markdown', () => {
|
|
928
947
|
tests.forEach(({ name, markdown, markup }) => {
|
|
929
948
|
it(name, () => {
|
|
930
|
-
const
|
|
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
|
|
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
|
-
|
|
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
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
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
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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
|
|
package/types/compare.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/types/parser.d.ts.map
CHANGED
|
@@ -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;
|
|
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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"}
|