skir 0.0.1 → 0.0.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.
Files changed (115) hide show
  1. package/dist/casing.d.ts +1 -4
  2. package/dist/casing.d.ts.map +1 -1
  3. package/dist/casing.js +0 -29
  4. package/dist/casing.js.map +1 -1
  5. package/dist/casing.test.js +2 -13
  6. package/dist/casing.test.js.map +1 -1
  7. package/dist/command_line_parser.d.ts +3 -3
  8. package/dist/command_line_parser.d.ts.map +1 -1
  9. package/dist/command_line_parser.js +35 -38
  10. package/dist/command_line_parser.js.map +1 -1
  11. package/dist/command_line_parser.test.js +73 -78
  12. package/dist/command_line_parser.test.js.map +1 -1
  13. package/dist/compatibility_checker.d.ts +9 -3
  14. package/dist/compatibility_checker.d.ts.map +1 -1
  15. package/dist/compatibility_checker.js +17 -4
  16. package/dist/compatibility_checker.js.map +1 -1
  17. package/dist/compatibility_checker.test.js +55 -1
  18. package/dist/compatibility_checker.test.js.map +1 -1
  19. package/dist/compiler.js +34 -17
  20. package/dist/compiler.js.map +1 -1
  21. package/dist/config.d.ts +5 -35
  22. package/dist/config.d.ts.map +1 -1
  23. package/dist/definition_finder.d.ts +1 -1
  24. package/dist/definition_finder.d.ts.map +1 -1
  25. package/dist/doc_comment_parser.d.ts +3 -0
  26. package/dist/doc_comment_parser.d.ts.map +1 -0
  27. package/dist/doc_comment_parser.js +223 -0
  28. package/dist/doc_comment_parser.js.map +1 -0
  29. package/dist/doc_comment_parser.test.d.ts +2 -0
  30. package/dist/doc_comment_parser.test.d.ts.map +1 -0
  31. package/dist/doc_comment_parser.test.js +496 -0
  32. package/dist/doc_comment_parser.test.js.map +1 -0
  33. package/dist/error_renderer.d.ts +1 -1
  34. package/dist/error_renderer.d.ts.map +1 -1
  35. package/dist/error_renderer.js +84 -65
  36. package/dist/error_renderer.js.map +1 -1
  37. package/dist/formatter.d.ts +15 -2
  38. package/dist/formatter.d.ts.map +1 -1
  39. package/dist/formatter.js +191 -234
  40. package/dist/formatter.js.map +1 -1
  41. package/dist/formatter.test.js +322 -88
  42. package/dist/formatter.test.js.map +1 -1
  43. package/dist/index.d.ts +1 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -4
  46. package/dist/index.js.map +1 -1
  47. package/dist/language_server.js +1 -1
  48. package/dist/language_server.js.map +1 -1
  49. package/dist/literals.d.ts +1 -2
  50. package/dist/literals.d.ts.map +1 -1
  51. package/dist/literals.js +1 -12
  52. package/dist/literals.js.map +1 -1
  53. package/dist/literals.test.js +1 -4
  54. package/dist/literals.test.js.map +1 -1
  55. package/dist/module_set.d.ts +3 -7
  56. package/dist/module_set.d.ts.map +1 -1
  57. package/dist/module_set.js +205 -51
  58. package/dist/module_set.js.map +1 -1
  59. package/dist/module_set.test.js +595 -28
  60. package/dist/module_set.test.js.map +1 -1
  61. package/dist/parser.d.ts +3 -4
  62. package/dist/parser.d.ts.map +1 -1
  63. package/dist/parser.js +186 -92
  64. package/dist/parser.js.map +1 -1
  65. package/dist/parser.test.js +243 -15
  66. package/dist/parser.test.js.map +1 -1
  67. package/dist/project_initializer.d.ts +2 -0
  68. package/dist/project_initializer.d.ts.map +1 -0
  69. package/dist/project_initializer.js +30 -0
  70. package/dist/project_initializer.js.map +1 -0
  71. package/dist/snapshotter.d.ts +3 -0
  72. package/dist/snapshotter.d.ts.map +1 -1
  73. package/dist/snapshotter.js +43 -6
  74. package/dist/snapshotter.js.map +1 -1
  75. package/dist/tokenizer.d.ts +8 -2
  76. package/dist/tokenizer.d.ts.map +1 -1
  77. package/dist/tokenizer.js +26 -20
  78. package/dist/tokenizer.js.map +1 -1
  79. package/dist/tokenizer.test.js +285 -269
  80. package/dist/tokenizer.test.js.map +1 -1
  81. package/package.json +7 -5
  82. package/src/casing.ts +1 -36
  83. package/src/command_line_parser.ts +42 -48
  84. package/src/compatibility_checker.ts +29 -7
  85. package/src/compiler.ts +35 -18
  86. package/src/definition_finder.ts +1 -1
  87. package/src/doc_comment_parser.ts +251 -0
  88. package/src/error_renderer.ts +90 -66
  89. package/src/formatter.ts +249 -238
  90. package/src/index.ts +0 -6
  91. package/src/language_server.ts +8 -8
  92. package/src/literals.ts +5 -14
  93. package/src/module_set.ts +259 -79
  94. package/src/parser.ts +214 -98
  95. package/src/project_initializer.ts +39 -0
  96. package/src/snapshotter.ts +46 -5
  97. package/src/tokenizer.ts +47 -25
  98. package/dist/encoding.d.ts +0 -2
  99. package/dist/encoding.d.ts.map +0 -1
  100. package/dist/encoding.js +0 -38
  101. package/dist/encoding.js.map +0 -1
  102. package/dist/encoding.test.d.ts +0 -2
  103. package/dist/encoding.test.d.ts.map +0 -1
  104. package/dist/encoding.test.js +0 -23
  105. package/dist/encoding.test.js.map +0 -1
  106. package/dist/index.test.d.ts +0 -2
  107. package/dist/index.test.d.ts.map +0 -1
  108. package/dist/index.test.js +0 -14
  109. package/dist/index.test.js.map +0 -1
  110. package/dist/types.d.ts +0 -375
  111. package/dist/types.d.ts.map +0 -1
  112. package/dist/types.js +0 -2
  113. package/dist/types.js.map +0 -1
  114. package/src/encoding.ts +0 -32
  115. package/src/types.ts +0 -518
@@ -0,0 +1,496 @@
1
+ import { expect } from "buckwheat";
2
+ import { describe, it } from "mocha";
3
+ import { parseDocComments } from "./doc_comment_parser.js";
4
+ function makeToken(text, position = 0) {
5
+ const line = {
6
+ lineNumber: 0,
7
+ line: text,
8
+ position: 0,
9
+ modulePath: "test",
10
+ };
11
+ return {
12
+ text,
13
+ originalText: text,
14
+ position,
15
+ line,
16
+ colNumber: 0,
17
+ };
18
+ }
19
+ describe("doc_comment_parser", () => {
20
+ it("parses simple text", () => {
21
+ const tokens = [makeToken("/// Hello, world!")];
22
+ const result = parseDocComments(tokens);
23
+ expect(result).toMatch({
24
+ errors: [],
25
+ result: {
26
+ pieces: [{ kind: "text", text: "Hello, world!" }],
27
+ },
28
+ });
29
+ });
30
+ it("skips exactly one space after ///", () => {
31
+ const tokens = [
32
+ makeToken("/// Hello"),
33
+ makeToken("/// Two spaces"),
34
+ makeToken("///No space"),
35
+ ];
36
+ const result = parseDocComments(tokens);
37
+ expect(result).toMatch({
38
+ errors: [],
39
+ result: {
40
+ text: "Hello\n Two spaces\nNo space",
41
+ pieces: [{ kind: "text", text: "Hello\n Two spaces\nNo space" }],
42
+ },
43
+ });
44
+ });
45
+ it("parses multiple lines as single text fragment", () => {
46
+ const tokens = [
47
+ makeToken("/// Hello,"),
48
+ makeToken("/// world!"),
49
+ makeToken("/// How are you?"),
50
+ ];
51
+ const result = parseDocComments(tokens);
52
+ expect(result).toMatch({
53
+ errors: [],
54
+ result: {
55
+ pieces: [{ kind: "text", text: "Hello,\nworld!\nHow are you?" }],
56
+ },
57
+ });
58
+ });
59
+ it("parses simple reference", () => {
60
+ const tokens = [makeToken("/// See [.foo.Bar] for details")];
61
+ const result = parseDocComments(tokens);
62
+ expect(result).toMatch({
63
+ errors: [],
64
+ result: {
65
+ text: "See [.foo.Bar] for details",
66
+ pieces: [
67
+ { kind: "text", text: "See " },
68
+ {
69
+ kind: "reference",
70
+ nameChain: [{ text: "foo" }, { text: "Bar" }],
71
+ absolute: true,
72
+ },
73
+ { kind: "text", text: " for details" },
74
+ ],
75
+ },
76
+ });
77
+ });
78
+ it("parses reference without leading dot", () => {
79
+ const tokens = [makeToken("/// See [Foo] for details")];
80
+ const result = parseDocComments(tokens);
81
+ expect(result).toMatch({
82
+ errors: [],
83
+ result: {
84
+ pieces: [
85
+ {},
86
+ {
87
+ kind: "reference",
88
+ nameChain: [{ text: "Foo" }],
89
+ absolute: false,
90
+ },
91
+ {},
92
+ ],
93
+ },
94
+ });
95
+ });
96
+ it("rejects reference with whitespace", () => {
97
+ const tokens = [makeToken("/// See [ .foo ] for details")];
98
+ const result = parseDocComments(tokens);
99
+ expect(result).toMatch({
100
+ errors: [
101
+ {
102
+ token: {
103
+ text: "[ .foo ]",
104
+ },
105
+ message: "Invalid character in reference at column 10",
106
+ },
107
+ ],
108
+ });
109
+ });
110
+ it("parses escaped brackets", () => {
111
+ const tokens = [makeToken("/// Hello [[world]]!")];
112
+ const result = parseDocComments(tokens);
113
+ expect(result).toMatch({
114
+ errors: [],
115
+ result: {
116
+ pieces: [{ kind: "text", text: "Hello [world]!" }],
117
+ },
118
+ });
119
+ });
120
+ it("handles unmatched closing bracket", () => {
121
+ const tokens = [makeToken("/// Hello ] world")];
122
+ const result = parseDocComments(tokens);
123
+ expect(result).toMatch({
124
+ errors: [],
125
+ result: {
126
+ pieces: [{ kind: "text", text: "Hello ] world" }],
127
+ },
128
+ });
129
+ });
130
+ it("parses multiple references and text fragments", () => {
131
+ const tokens = [
132
+ makeToken("/// Hello,"),
133
+ makeToken("/// world [.foo.Bar], how are"),
134
+ makeToken("/// you?"),
135
+ ];
136
+ const result = parseDocComments(tokens);
137
+ expect(result).toMatch({
138
+ errors: [],
139
+ result: {
140
+ pieces: [
141
+ { kind: "text", text: "Hello,\nworld " },
142
+ { kind: "reference" },
143
+ { kind: "text", text: ", how are\nyou?" },
144
+ ],
145
+ },
146
+ });
147
+ });
148
+ it("reports error for empty reference", () => {
149
+ const tokens = [makeToken("/// See [] for details")];
150
+ const result = parseDocComments(tokens);
151
+ expect(result).toMatch({
152
+ result: {},
153
+ errors: [
154
+ {
155
+ token: {
156
+ text: "]",
157
+ },
158
+ expected: "identifier or '.'",
159
+ },
160
+ ],
161
+ });
162
+ });
163
+ it("reports error for unterminated reference", () => {
164
+ const tokens = [makeToken("/// See [.foo.Bar")];
165
+ const result = parseDocComments(tokens);
166
+ expect(result).toMatch({
167
+ result: {
168
+ pieces: [
169
+ { kind: "text", text: "See " },
170
+ { kind: "reference", nameChain: [], absolute: true },
171
+ ],
172
+ },
173
+ errors: [{ message: "Unterminated reference" }],
174
+ });
175
+ });
176
+ it("reports error for invalid character in reference", () => {
177
+ const tokens = [makeToken("/// See [foo@bar] for details")];
178
+ const result = parseDocComments(tokens);
179
+ expect(result).toMatch({
180
+ errors: [
181
+ {
182
+ token: {
183
+ text: "[foo@bar]",
184
+ },
185
+ message: "Invalid character in reference at column 13",
186
+ },
187
+ ],
188
+ });
189
+ });
190
+ it("rejects digit at start of word in reference", () => {
191
+ const tokens = [makeToken("/// See [.foo.9Bar] for details")];
192
+ const result = parseDocComments(tokens);
193
+ expect(result).toMatch({
194
+ errors: [
195
+ {
196
+ token: {
197
+ text: "[.foo.9Bar]",
198
+ },
199
+ message: "Invalid character in reference at column 15",
200
+ },
201
+ ],
202
+ });
203
+ });
204
+ it("allows underscore and digits in word after first letter", () => {
205
+ const tokens = [makeToken("/// See [Foo_Bar_123] for details")];
206
+ const result = parseDocComments(tokens);
207
+ expect(result).toMatch({
208
+ errors: [],
209
+ result: {
210
+ pieces: [
211
+ {},
212
+ {
213
+ kind: "reference",
214
+ nameChain: [{ text: "Foo_Bar_123" }],
215
+ absolute: false,
216
+ },
217
+ {},
218
+ ],
219
+ },
220
+ });
221
+ });
222
+ it("handles mixed escaped brackets and references", () => {
223
+ const tokens = [
224
+ makeToken("/// [[Not a reference]] but [RealReference] is"),
225
+ ];
226
+ const result = parseDocComments(tokens);
227
+ expect(result).toMatch({
228
+ errors: [],
229
+ result: {
230
+ pieces: [
231
+ { kind: "text", text: "[Not a reference] but " },
232
+ { kind: "reference" },
233
+ { kind: "text", text: " is" },
234
+ ],
235
+ },
236
+ });
237
+ });
238
+ it("handles empty doc comments", () => {
239
+ const tokens = [];
240
+ const result = parseDocComments(tokens);
241
+ expect(result).toMatch({
242
+ errors: [],
243
+ result: {
244
+ pieces: [],
245
+ },
246
+ });
247
+ });
248
+ it("handles only whitespace after ///", () => {
249
+ const tokens = [makeToken("///"), makeToken("/// ")];
250
+ const result = parseDocComments(tokens);
251
+ expect(result).toMatch({
252
+ errors: [],
253
+ result: {
254
+ pieces: [{ kind: "text", text: "\n " }],
255
+ },
256
+ });
257
+ });
258
+ it("continues parsing after error", () => {
259
+ const tokens = [
260
+ makeToken("/// Invalid [@ but"),
261
+ makeToken("/// valid [Link] here"),
262
+ ];
263
+ const result = parseDocComments(tokens);
264
+ expect(result).toMatch({
265
+ errors: [
266
+ {
267
+ token: {
268
+ text: "[@ but",
269
+ position: 12,
270
+ },
271
+ message: "Unterminated reference",
272
+ },
273
+ {
274
+ token: {
275
+ text: "[@ but",
276
+ },
277
+ message: "Invalid character in reference at column 14",
278
+ },
279
+ ],
280
+ });
281
+ });
282
+ it("handles reference at start of comment", () => {
283
+ const tokens = [makeToken("///[Reference] at start")];
284
+ const result = parseDocComments(tokens);
285
+ expect(result).toMatch({
286
+ errors: [],
287
+ result: {
288
+ pieces: [{ kind: "reference" }, { kind: "text", text: " at start" }],
289
+ },
290
+ });
291
+ });
292
+ it("handles reference at end of comment", () => {
293
+ const tokens = [makeToken("/// End with [Reference]")];
294
+ const result = parseDocComments(tokens);
295
+ expect(result).toMatch({
296
+ errors: [],
297
+ result: {
298
+ pieces: [{ kind: "text", text: "End with " }, { kind: "reference" }],
299
+ },
300
+ });
301
+ });
302
+ it("handles reference at end of line followed by text on next line", () => {
303
+ const tokens = [
304
+ makeToken("/// End with [Reference]"),
305
+ makeToken("/// and continue text"),
306
+ ];
307
+ const result = parseDocComments(tokens);
308
+ expect(result).toMatch({
309
+ errors: [],
310
+ result: {
311
+ pieces: [
312
+ { kind: "text", text: "End with " },
313
+ {
314
+ kind: "reference",
315
+ nameChain: [{ text: "Reference" }],
316
+ absolute: false,
317
+ },
318
+ { kind: "text", text: "\nand continue text" },
319
+ ],
320
+ },
321
+ });
322
+ });
323
+ it("handles consecutive references", () => {
324
+ const tokens = [makeToken("/// [Ref1][Ref2][Ref3]")];
325
+ const result = parseDocComments(tokens);
326
+ expect(result).toMatch({
327
+ errors: [],
328
+ result: {
329
+ pieces: [
330
+ { kind: "reference" },
331
+ { kind: "reference" },
332
+ { kind: "reference" },
333
+ ],
334
+ },
335
+ });
336
+ });
337
+ it("preserves correct token positions with space after ///", () => {
338
+ const tokens = [makeToken("/// [Foo]", 100)];
339
+ const result = parseDocComments(tokens);
340
+ // Position should be 100 (start) + 3 (///) + 1 (space) + 1 (opening bracket) = 105
341
+ expect(result).toMatch({
342
+ errors: [],
343
+ result: {
344
+ pieces: [
345
+ {
346
+ kind: "reference",
347
+ nameChain: [{ text: "Foo", position: 105 }],
348
+ absolute: false,
349
+ },
350
+ ],
351
+ },
352
+ });
353
+ });
354
+ it("preserves correct token positions without space after ///", () => {
355
+ const tokens = [makeToken("///[Foo]", 100)];
356
+ const result = parseDocComments(tokens);
357
+ // Position should be 100 (start) + 3 (///) + 1 (opening bracket) = 104
358
+ expect(result).toMatch({
359
+ errors: [],
360
+ result: {
361
+ pieces: [
362
+ {
363
+ kind: "reference",
364
+ nameChain: [{ text: "Foo", position: 104 }],
365
+ absolute: false,
366
+ },
367
+ ],
368
+ },
369
+ });
370
+ });
371
+ it("preserves correct error positions with space after ///", () => {
372
+ const tokens = [makeToken("/// [@invalid]", 100)];
373
+ const result = parseDocComments(tokens);
374
+ // Error should be at position 100 + 3 (///) + 1 (space) = 104
375
+ expect(result).toMatch({
376
+ errors: [
377
+ {
378
+ token: {
379
+ text: "[@invalid]",
380
+ position: 104,
381
+ },
382
+ },
383
+ ],
384
+ });
385
+ });
386
+ it("preserves correct error positions without space after ///", () => {
387
+ const tokens = [makeToken("///[@invalid]", 100)];
388
+ const result = parseDocComments(tokens);
389
+ // Error should be at position 100 + 3 (///) = 103
390
+ expect(result).toMatch({
391
+ errors: [
392
+ {
393
+ token: {
394
+ text: "[@invalid]",
395
+ position: 103,
396
+ },
397
+ },
398
+ ],
399
+ });
400
+ });
401
+ it("parses multiple references on different lines", () => {
402
+ const tokens = [
403
+ makeToken("/// See [Ref1] and"),
404
+ makeToken("/// also [Ref2] here"),
405
+ ];
406
+ const result = parseDocComments(tokens);
407
+ expect(result).toMatch({
408
+ errors: [],
409
+ result: {
410
+ pieces: [
411
+ { kind: "text", text: "See " },
412
+ {
413
+ kind: "reference",
414
+ nameChain: [{ text: "Ref1" }],
415
+ absolute: false,
416
+ },
417
+ { kind: "text", text: " and\nalso " },
418
+ {
419
+ kind: "reference",
420
+ nameChain: [{ text: "Ref2" }],
421
+ absolute: false,
422
+ },
423
+ { kind: "text", text: " here" },
424
+ ],
425
+ },
426
+ });
427
+ });
428
+ it("reports error for unterminated reference at end of line", () => {
429
+ const tokens = [makeToken("/// See [.foo.Bar")];
430
+ const result = parseDocComments(tokens);
431
+ expect(result).toMatch({
432
+ result: {},
433
+ errors: [{ message: "Unterminated reference" }],
434
+ });
435
+ });
436
+ it("sets docComment field in reference", () => {
437
+ const tokens = [makeToken("/// See [Foo] here")];
438
+ const result = parseDocComments(tokens);
439
+ expect(result).toMatch({
440
+ errors: [],
441
+ result: {
442
+ pieces: [
443
+ {},
444
+ {
445
+ kind: "reference",
446
+ docComment: tokens[0],
447
+ },
448
+ {},
449
+ ],
450
+ },
451
+ });
452
+ });
453
+ it("sets referenceRange field to include brackets", () => {
454
+ const tokens = [makeToken("/// See [.foo.Bar] here", 100)];
455
+ const result = parseDocComments(tokens);
456
+ // Position: 100 (start) + 4 (/// ) + 4 (See ) = 108
457
+ expect(result).toMatch({
458
+ errors: [],
459
+ result: {
460
+ pieces: [
461
+ {},
462
+ {
463
+ kind: "reference",
464
+ referenceRange: {
465
+ text: "[.foo.Bar]",
466
+ originalText: "[.foo.Bar]",
467
+ position: 108,
468
+ colNumber: 108,
469
+ },
470
+ },
471
+ {},
472
+ ],
473
+ },
474
+ });
475
+ });
476
+ it("referenceRange works without space after ///", () => {
477
+ const tokens = [makeToken("///[Foo]", 50)];
478
+ const result = parseDocComments(tokens);
479
+ // Position: 50 (start) + 3 (///) = 53
480
+ expect(result).toMatch({
481
+ errors: [],
482
+ result: {
483
+ pieces: [
484
+ {
485
+ kind: "reference",
486
+ referenceRange: {
487
+ text: "[Foo]",
488
+ position: 53,
489
+ },
490
+ },
491
+ ],
492
+ },
493
+ });
494
+ });
495
+ });
496
+ //# sourceMappingURL=doc_comment_parser.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doc_comment_parser.test.js","sourceRoot":"","sources":["../src/doc_comment_parser.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
+ import type { SkirError } from "skir-internal";
1
2
  import { BeforeAfter, BreakingChange } from "./compatibility_checker.js";
2
3
  import { ModuleSet } from "./module_set.js";
3
- import { SkirError } from "./types.js";
4
4
  export declare function renderErrors(errors: readonly SkirError[]): void;
5
5
  export declare function formatError(error: SkirError): string;
6
6
  export declare function renderBreakingChanges(breakingChanges: readonly BreakingChange[], moduleSet: BeforeAfter<ModuleSet>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"error_renderer.d.ts","sourceRoot":"","sources":["../src/error_renderer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,cAAc,EAGf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAgC,SAAS,EAAS,MAAM,YAAY,CAAC;AAE5E,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAgB/D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAuBpD;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,SAAS,cAAc,EAAE,EAC1C,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,GAChC,IAAI,CAUN;AA6LD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}
1
+ {"version":3,"file":"error_renderer.d.ts","sourceRoot":"","sources":["../src/error_renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,SAAS,EAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,cAAc,EAGf,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,IAAI,CAgB/D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAuBpD;AAED,wBAAgB,qBAAqB,CACnC,eAAe,EAAE,SAAS,cAAc,EAAE,EAC1C,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC,GAChC,IAAI,CAYN;AA8MD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}