todoosy 0.3.4 → 0.3.7

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 (43) hide show
  1. package/dist/cjs/formatter.d.ts +2 -1
  2. package/dist/cjs/formatter.js +11 -4
  3. package/dist/cjs/index.d.ts +3 -1
  4. package/dist/cjs/index.js +5 -1
  5. package/dist/cjs/linter.d.ts +2 -1
  6. package/dist/cjs/linter.js +140 -126
  7. package/dist/cjs/parser.d.ts +11 -4
  8. package/dist/cjs/parser.js +269 -287
  9. package/dist/cjs/query.d.ts +2 -1
  10. package/dist/cjs/query.js +12 -5
  11. package/dist/cjs/relative-date.d.ts +34 -0
  12. package/dist/cjs/relative-date.js +233 -0
  13. package/dist/cjs/settings.js +1 -1
  14. package/dist/cjs/types.d.ts +2 -0
  15. package/dist/formatter.d.ts +2 -1
  16. package/dist/formatter.d.ts.map +1 -1
  17. package/dist/formatter.js +11 -4
  18. package/dist/formatter.js.map +1 -1
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +1 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/linter.d.ts +2 -1
  24. package/dist/linter.d.ts.map +1 -1
  25. package/dist/linter.js +140 -126
  26. package/dist/linter.js.map +1 -1
  27. package/dist/parser.d.ts +11 -4
  28. package/dist/parser.d.ts.map +1 -1
  29. package/dist/parser.js +269 -287
  30. package/dist/parser.js.map +1 -1
  31. package/dist/query.d.ts +2 -1
  32. package/dist/query.d.ts.map +1 -1
  33. package/dist/query.js +12 -5
  34. package/dist/query.js.map +1 -1
  35. package/dist/relative-date.d.ts +35 -0
  36. package/dist/relative-date.d.ts.map +1 -0
  37. package/dist/relative-date.js +229 -0
  38. package/dist/relative-date.js.map +1 -0
  39. package/dist/settings.js +1 -1
  40. package/dist/settings.js.map +1 -1
  41. package/dist/types.d.ts +2 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/package.json +5 -5
package/dist/linter.js CHANGED
@@ -72,8 +72,8 @@ function parseMiscLocation(misc) {
72
72
  heading: misc.substring(slashIndex + 1),
73
73
  };
74
74
  }
75
- export function lint(text, scheme, filename) {
76
- const { ast } = parse(text);
75
+ export function lint(text, scheme, filename, options) {
76
+ const { ast } = parse(text, options);
77
77
  const warnings = [];
78
78
  const lines = text.split('\n');
79
79
  // Determine misc location from scheme or use default
@@ -98,6 +98,12 @@ export function lint(text, scheme, filename) {
98
98
  miscSectionSpan = item.item_span;
99
99
  }
100
100
  }
101
+ // If the parser already recognized a due date for this item, skip the
102
+ // regex-based date-format validation entirely. The parser accepts a
103
+ // richer surface than these regexes know about (today/tomorrow keywords,
104
+ // relative offsets like "in 2 weeks", spans like `start~end`); trusting
105
+ // the parser is both more correct and avoids divergence between the two.
106
+ const skipDateFormatChecks = item.metadata.due !== null;
101
107
  // Check for invalid date formats in parentheses
102
108
  const parenMatches = rawLine.matchAll(/\(([^)]+)\)/g);
103
109
  for (const match of parenMatches) {
@@ -110,7 +116,7 @@ export function lint(text, scheme, filename) {
110
116
  for (const textDueMatch of textDueMatches) {
111
117
  textDueIndices.add(textDueMatch.index || 0);
112
118
  const dateStr = textDueMatch[1];
113
- if (!isValidDate(dateStr)) {
119
+ if (!isValidDate(dateStr) && !skipDateFormatChecks) {
114
120
  const tokenStart = parenStart + 1 + (textDueMatch.index || 0);
115
121
  warnings.push({
116
122
  code: 'INVALID_DATE_FORMAT',
@@ -126,7 +132,7 @@ export function lint(text, scheme, filename) {
126
132
  for (const textDueMatch of textDueDayFirstMatches) {
127
133
  textDueIndices.add(textDueMatch.index || 0);
128
134
  const dateStr = textDueMatch[1];
129
- if (!isValidDate(dateStr)) {
135
+ if (!isValidDate(dateStr) && !skipDateFormatChecks) {
130
136
  const tokenStart = parenStart + 1 + (textDueMatch.index || 0);
131
137
  warnings.push({
132
138
  code: 'INVALID_DATE_FORMAT',
@@ -152,7 +158,7 @@ export function lint(text, scheme, filename) {
152
158
  // Skip if this looks like a day number (could be start of day-first date, with or without ~)
153
159
  if (/^~?\d{1,2}$/.test(dateStr))
154
160
  continue;
155
- if (!isValidDate(dateStr)) {
161
+ if (!isValidDate(dateStr) && !skipDateFormatChecks) {
156
162
  const tokenStart = parenStart + 1 + (dueMatch.index || 0);
157
163
  warnings.push({
158
164
  code: 'INVALID_DATE_FORMAT',
@@ -163,134 +169,138 @@ export function lint(text, scheme, filename) {
163
169
  });
164
170
  }
165
171
  }
166
- // Check for multiple due dates across all paren groups
172
+ // Check for multiple due dates across all paren groups.
173
+ // Span syntax (`start~end`) legitimately contains two ISO/text dates,
174
+ // so skip duplicate detection when the parser recognized a span.
167
175
  const allDueDates = [];
168
- const allParenMatches = rawLine.matchAll(/\(([^)]+)\)/g);
169
- for (const pMatch of allParenMatches) {
170
- const pContent = pMatch[1];
171
- const pStart = item.item_span[0] + (pMatch.index || 0);
172
- const matchedPositions = new Set();
173
- // Check text dates first (month-first, year can be 2 or 4 digits) with "due" prefix
174
- // Allow optional ~ prefix for soft dates
175
- const textDueDatesInGroup = pContent.matchAll(/\bdue\s+(~?(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)\s+\d{1,2}(?:\s+\d{2,4})?)/gi);
176
- for (const tdm of textDueDatesInGroup) {
177
- const ds = tdm[1];
178
- if (isValidDate(ds)) {
179
- matchedPositions.add(tdm.index || 0);
180
- const dStart = pStart + 1 + (tdm.index || 0);
181
- allDueDates.push({
182
- dateStr: ds,
183
- span: [dStart, dStart + tdm[0].length],
184
- });
176
+ if (item.metadata.due_start === null) {
177
+ const allParenMatches = rawLine.matchAll(/\(([^)]+)\)/g);
178
+ for (const pMatch of allParenMatches) {
179
+ const pContent = pMatch[1];
180
+ const pStart = item.item_span[0] + (pMatch.index || 0);
181
+ const matchedPositions = new Set();
182
+ // Check text dates first (month-first, year can be 2 or 4 digits) with "due" prefix
183
+ // Allow optional ~ prefix for soft dates
184
+ const textDueDatesInGroup = pContent.matchAll(/\bdue\s+(~?(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)\s+\d{1,2}(?:\s+\d{2,4})?)/gi);
185
+ for (const tdm of textDueDatesInGroup) {
186
+ const ds = tdm[1];
187
+ if (isValidDate(ds)) {
188
+ matchedPositions.add(tdm.index || 0);
189
+ const dStart = pStart + 1 + (tdm.index || 0);
190
+ allDueDates.push({
191
+ dateStr: ds,
192
+ span: [dStart, dStart + tdm[0].length],
193
+ });
194
+ }
185
195
  }
186
- }
187
- // Check day-first text dates (year can be 2 or 4 digits) with "due" prefix
188
- // Allow optional ~ prefix for soft dates
189
- const textDueDayFirstInGroup = pContent.matchAll(/\bdue\s+(~?\d{1,2}\s+(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)(?:\s+\d{2,4})?)/gi);
190
- for (const tdm of textDueDayFirstInGroup) {
191
- const ds = tdm[1];
192
- if (isValidDate(ds)) {
193
- matchedPositions.add(tdm.index || 0);
194
- const dStart = pStart + 1 + (tdm.index || 0);
195
- allDueDates.push({
196
- dateStr: ds,
197
- span: [dStart, dStart + tdm[0].length],
198
- });
196
+ // Check day-first text dates (year can be 2 or 4 digits) with "due" prefix
197
+ // Allow optional ~ prefix for soft dates
198
+ const textDueDayFirstInGroup = pContent.matchAll(/\bdue\s+(~?\d{1,2}\s+(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)(?:\s+\d{2,4})?)/gi);
199
+ for (const tdm of textDueDayFirstInGroup) {
200
+ const ds = tdm[1];
201
+ if (isValidDate(ds)) {
202
+ matchedPositions.add(tdm.index || 0);
203
+ const dStart = pStart + 1 + (tdm.index || 0);
204
+ allDueDates.push({
205
+ dateStr: ds,
206
+ span: [dStart, dStart + tdm[0].length],
207
+ });
208
+ }
199
209
  }
200
- }
201
- // Check standard dates with "due" prefix
202
- // Allow optional ~ prefix for soft dates
203
- const dueDatesInGroup = pContent.matchAll(/\bdue\s+(~?[^\s,)]+)/gi);
204
- for (const dm of dueDatesInGroup) {
205
- // Skip if already matched as text date
206
- if (matchedPositions.has(dm.index || 0))
207
- continue;
208
- const ds = dm[1];
209
- // Skip if it's a month name (part of text date, with or without ~)
210
- const strippedDs = ds.startsWith('~') ? ds.slice(1) : ds;
211
- if (MONTH_NAMES.has(strippedDs.toLowerCase()))
212
- continue;
213
- // Skip if it's a day number (part of day-first text date, with or without ~)
214
- if (/^~?\d{1,2}$/.test(ds))
215
- continue;
216
- if (isValidDate(ds)) {
217
- matchedPositions.add(dm.index || 0);
218
- const dStart = pStart + 1 + (dm.index || 0);
219
- allDueDates.push({
220
- dateStr: ds,
221
- span: [dStart, dStart + dm[0].length],
222
- });
210
+ // Check standard dates with "due" prefix
211
+ // Allow optional ~ prefix for soft dates
212
+ const dueDatesInGroup = pContent.matchAll(/\bdue\s+(~?[^\s,)]+)/gi);
213
+ for (const dm of dueDatesInGroup) {
214
+ // Skip if already matched as text date
215
+ if (matchedPositions.has(dm.index || 0))
216
+ continue;
217
+ const ds = dm[1];
218
+ // Skip if it's a month name (part of text date, with or without ~)
219
+ const strippedDs = ds.startsWith('~') ? ds.slice(1) : ds;
220
+ if (MONTH_NAMES.has(strippedDs.toLowerCase()))
221
+ continue;
222
+ // Skip if it's a day number (part of day-first text date, with or without ~)
223
+ if (/^~?\d{1,2}$/.test(ds))
224
+ continue;
225
+ if (isValidDate(ds)) {
226
+ matchedPositions.add(dm.index || 0);
227
+ const dStart = pStart + 1 + (dm.index || 0);
228
+ allDueDates.push({
229
+ dateStr: ds,
230
+ span: [dStart, dStart + dm[0].length],
231
+ });
232
+ }
223
233
  }
224
- }
225
- // Check standalone text dates (without "due" prefix, not preceded by digit+space which indicates day-first)
226
- // Allow optional ~ prefix for soft dates
227
- // Exclude if preceded by "due " or "due ~"
228
- const standaloneTextDatesInGroup = pContent.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d\s)(~?(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)\s+\d{1,2}(?:\s+\d{2,4})?)/gi);
229
- for (const stm of standaloneTextDatesInGroup) {
230
- // Skip if already matched
231
- if (matchedPositions.has(stm.index || 0))
232
- continue;
233
- const ds = stm[1];
234
- if (isValidDate(ds)) {
235
- matchedPositions.add(stm.index || 0);
236
- const dStart = pStart + 1 + (stm.index || 0);
237
- allDueDates.push({
238
- dateStr: ds,
239
- span: [dStart, dStart + stm[0].length],
240
- });
234
+ // Check standalone text dates (without "due" prefix, not preceded by digit+space which indicates day-first)
235
+ // Allow optional ~ prefix for soft dates
236
+ // Exclude if preceded by "due " or "due ~"
237
+ const standaloneTextDatesInGroup = pContent.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d\s)(~?(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)\s+\d{1,2}(?:\s+\d{2,4})?)/gi);
238
+ for (const stm of standaloneTextDatesInGroup) {
239
+ // Skip if already matched
240
+ if (matchedPositions.has(stm.index || 0))
241
+ continue;
242
+ const ds = stm[1];
243
+ if (isValidDate(ds)) {
244
+ matchedPositions.add(stm.index || 0);
245
+ const dStart = pStart + 1 + (stm.index || 0);
246
+ allDueDates.push({
247
+ dateStr: ds,
248
+ span: [dStart, dStart + stm[0].length],
249
+ });
250
+ }
241
251
  }
242
- }
243
- // Check standalone day-first text dates (without "due" prefix, not preceded by digit)
244
- // Note: Day-first soft dates would be like ~15 Feb, but this is unusual; keep pattern simple
245
- // Exclude if preceded by "due " or "due ~"
246
- const standaloneDayFirstInGroup = pContent.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d)(~?\d{1,2}\s+(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)(?:\s+\d{2,4})?)/gi);
247
- for (const stm of standaloneDayFirstInGroup) {
248
- // Skip if already matched
249
- if (matchedPositions.has(stm.index || 0))
250
- continue;
251
- const ds = stm[1];
252
- if (isValidDate(ds)) {
253
- matchedPositions.add(stm.index || 0);
254
- const dStart = pStart + 1 + (stm.index || 0);
255
- allDueDates.push({
256
- dateStr: ds,
257
- span: [dStart, dStart + stm[0].length],
258
- });
252
+ // Check standalone day-first text dates (without "due" prefix, not preceded by digit)
253
+ // Note: Day-first soft dates would be like ~15 Feb, but this is unusual; keep pattern simple
254
+ // Exclude if preceded by "due " or "due ~"
255
+ const standaloneDayFirstInGroup = pContent.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d)(~?\d{1,2}\s+(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)(?:\s+\d{2,4})?)/gi);
256
+ for (const stm of standaloneDayFirstInGroup) {
257
+ // Skip if already matched
258
+ if (matchedPositions.has(stm.index || 0))
259
+ continue;
260
+ const ds = stm[1];
261
+ if (isValidDate(ds)) {
262
+ matchedPositions.add(stm.index || 0);
263
+ const dStart = pStart + 1 + (stm.index || 0);
264
+ allDueDates.push({
265
+ dateStr: ds,
266
+ span: [dStart, dStart + stm[0].length],
267
+ });
268
+ }
269
+ }
270
+ // Check standalone ISO/slash dates (without "due" prefix)
271
+ // Use word boundary to avoid matching partial dates
272
+ // Allow optional ~ prefix for soft dates
273
+ // Exclude if preceded by "due " or "due ~"
274
+ const standaloneNumericDates = pContent.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d)(~?\d{2,4}[-\/]\d{1,2}[-\/]\d{1,4})(?!\d)/gi);
275
+ for (const snm of standaloneNumericDates) {
276
+ // Skip if already matched
277
+ if (matchedPositions.has(snm.index || 0))
278
+ continue;
279
+ const ds = snm[1];
280
+ if (isValidDate(ds)) {
281
+ matchedPositions.add(snm.index || 0);
282
+ const dStart = pStart + 1 + (snm.index || 0);
283
+ allDueDates.push({
284
+ dateStr: ds,
285
+ span: [dStart, dStart + snm[0].length],
286
+ });
287
+ }
259
288
  }
260
289
  }
261
- // Check standalone ISO/slash dates (without "due" prefix)
262
- // Use word boundary to avoid matching partial dates
263
- // Allow optional ~ prefix for soft dates
264
- // Exclude if preceded by "due " or "due ~"
265
- const standaloneNumericDates = pContent.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d)(~?\d{2,4}[-\/]\d{1,2}[-\/]\d{1,4})(?!\d)/gi);
266
- for (const snm of standaloneNumericDates) {
267
- // Skip if already matched
268
- if (matchedPositions.has(snm.index || 0))
269
- continue;
270
- const ds = snm[1];
271
- if (isValidDate(ds)) {
272
- matchedPositions.add(snm.index || 0);
273
- const dStart = pStart + 1 + (snm.index || 0);
274
- allDueDates.push({
275
- dateStr: ds,
276
- span: [dStart, dStart + snm[0].length],
290
+ if (allDueDates.length > 1) {
291
+ // Warn for the second and subsequent ones
292
+ for (let i = 1; i < allDueDates.length; i++) {
293
+ warnings.push({
294
+ code: 'DUPLICATE_DUE_DATE',
295
+ message: 'Multiple due dates found, using last value',
296
+ line: item.line,
297
+ column: allDueDates[i].span[0] - item.item_span[0] + 1,
298
+ span: allDueDates[i].span,
277
299
  });
278
300
  }
301
+ break; // Only warn once per item
279
302
  }
280
- }
281
- if (allDueDates.length > 1) {
282
- // Warn for the second and subsequent ones
283
- for (let i = 1; i < allDueDates.length; i++) {
284
- warnings.push({
285
- code: 'DUPLICATE_DUE_DATE',
286
- message: 'Multiple due dates found, using last value',
287
- line: item.line,
288
- column: allDueDates[i].span[0] - item.item_span[0] + 1,
289
- span: allDueDates[i].span,
290
- });
291
- }
292
- break; // Only warn once per item
293
- }
303
+ } // end if (item.metadata.due_start === null)
294
304
  // Check for standalone dates (without "due" prefix)
295
305
  // Standalone text dates: Month Day [Year] (not preceded by "due" or digit+space)
296
306
  // Allow optional ~ prefix for soft dates
@@ -298,7 +308,7 @@ export function lint(text, scheme, filename) {
298
308
  const standaloneTextDates = content.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d\s)(~?(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)\s+\d{1,2}(?:\s+\d{2,4})?)/gi);
299
309
  for (const stdMatch of standaloneTextDates) {
300
310
  const dateStr = stdMatch[1];
301
- if (!isValidDate(dateStr)) {
311
+ if (!isValidDate(dateStr) && !skipDateFormatChecks) {
302
312
  const tokenStart = parenStart + 1 + (stdMatch.index || 0);
303
313
  warnings.push({
304
314
  code: 'INVALID_DATE_FORMAT',
@@ -315,7 +325,7 @@ export function lint(text, scheme, filename) {
315
325
  const standaloneDayFirstDates = content.matchAll(/(?<!\bdue\s)(?<!\bdue\s~)(?<!\d)(~?\d{1,2}\s+(?:january|jan|february|feb|march|mar|april|apr|may|june|jun|july|jul|august|aug|september|sep|october|oct|november|nov|december|dec)(?:\s+\d{2,4})?)/gi);
316
326
  for (const stdMatch of standaloneDayFirstDates) {
317
327
  const dateStr = stdMatch[1];
318
- if (!isValidDate(dateStr)) {
328
+ if (!isValidDate(dateStr) && !skipDateFormatChecks) {
319
329
  const tokenStart = parenStart + 1 + (stdMatch.index || 0);
320
330
  warnings.push({
321
331
  code: 'INVALID_DATE_FORMAT',
@@ -346,7 +356,11 @@ export function lint(text, scheme, filename) {
346
356
  const invalidEstimates = content.matchAll(/\b(\d+)([a-zA-Z])(?![mhdMHD])\b/gi);
347
357
  for (const ieMatch of invalidEstimates) {
348
358
  const unit = ieMatch[2].toLowerCase();
349
- if (unit !== 'm' && unit !== 'h' && unit !== 'd') {
359
+ // Allow relative-date single-letter units `w` (week) and `y` (year)
360
+ // alongside the existing estimate units m/h/d. Multi-letter forms
361
+ // (`2wk`, `2week`, `2years`, `2 days`, `in 2 weeks`) don't match this
362
+ // regex anyway because the trailing word boundary fails on extra letters.
363
+ if (unit !== 'm' && unit !== 'h' && unit !== 'd' && unit !== 'w' && unit !== 'y') {
350
364
  const tokenStart = parenStart + 1 + (ieMatch.index || 0);
351
365
  warnings.push({
352
366
  code: 'INVALID_TOKEN',
@@ -1 +1 @@
1
- {"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linter.js","sourceRoot":"","sources":["../src/linter.ts"],"names":[],"mappings":"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"}
package/dist/parser.d.ts CHANGED
@@ -1,12 +1,19 @@
1
1
  /**
2
2
  * Todoosy Parser
3
3
  */
4
- import type { AST, ParenGroup, Warning } from './types.js';
4
+ import type { AST, ParenGroup, Warning, Settings } from './types.js';
5
+ import { type ResolvedNow } from './relative-date.js';
6
+ export interface ParseOptions {
7
+ /** Override "now" for deterministic tests. */
8
+ now?: Date;
9
+ /** Settings (timezone) used when resolving relative dates. */
10
+ settings?: Settings;
11
+ }
5
12
  export interface ParseResult {
6
13
  ast: AST;
7
14
  warnings: Warning[];
8
15
  }
9
- export declare function parseTokensInParenGroup(content: string, groupStart: number): ParenGroup;
10
- export declare function extractParenGroups(line: string, lineStart: number): ParenGroup[];
11
- export declare function parse(text: string): ParseResult;
16
+ export declare function parseTokensInParenGroup(content: string, groupStart: number, now?: ResolvedNow): ParenGroup;
17
+ export declare function extractParenGroups(line: string, _lineStart: number, now?: ResolvedNow): ParenGroup[];
18
+ export declare function parse(text: string, options?: ParseOptions): ParseResult;
12
19
  //# sourceMappingURL=parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAuC,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA6BhG,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AA2ND,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAuNvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CA4BhF;AAiED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAiO/C"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAuC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAgD,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA0BpG,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AA6MD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,CAG1G;AAgND,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,GAAG,UAAU,EAAE,CAGpG;AAoFD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAgMvE"}