@cratis/screenplay-language 4.50.0 → 4.52.0

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 (81) hide show
  1. package/DestinationHint.ts +8 -0
  2. package/ProductionSymbol.ts +11 -0
  3. package/completion-items.ts +14 -0
  4. package/completion-planner.ts +6 -0
  5. package/completions.ts +4 -2
  6. package/diagnostic-codes.ts +9 -0
  7. package/dist/DestinationHint.d.ts +6 -0
  8. package/dist/DestinationHint.d.ts.map +1 -0
  9. package/dist/DestinationHint.js +4 -0
  10. package/dist/DestinationHint.js.map +1 -0
  11. package/dist/ProductionSymbol.d.ts +13 -0
  12. package/dist/ProductionSymbol.d.ts.map +1 -0
  13. package/dist/ProductionSymbol.js +4 -0
  14. package/dist/ProductionSymbol.js.map +1 -0
  15. package/dist/completion-items.d.ts +2 -0
  16. package/dist/completion-items.d.ts.map +1 -1
  17. package/dist/completion-items.js +12 -0
  18. package/dist/completion-items.js.map +1 -1
  19. package/dist/completion-planner.d.ts.map +1 -1
  20. package/dist/completion-planner.js +7 -0
  21. package/dist/completion-planner.js.map +1 -1
  22. package/dist/completions.d.ts.map +1 -1
  23. package/dist/completions.js +4 -1
  24. package/dist/completions.js.map +1 -1
  25. package/dist/diagnostic-codes.d.ts +9 -0
  26. package/dist/diagnostic-codes.d.ts.map +1 -1
  27. package/dist/diagnostic-codes.js +9 -0
  28. package/dist/diagnostic-codes.js.map +1 -1
  29. package/dist/event-analysis-source.d.ts +2 -0
  30. package/dist/event-analysis-source.d.ts.map +1 -0
  31. package/dist/event-analysis-source.js +19 -0
  32. package/dist/event-analysis-source.js.map +1 -0
  33. package/dist/hover-content.d.ts.map +1 -1
  34. package/dist/hover-content.js +9 -1
  35. package/dist/hover-content.js.map +1 -1
  36. package/dist/index.d.ts +3 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +3 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/inlay-hints.d.ts +3 -0
  41. package/dist/inlay-hints.d.ts.map +1 -0
  42. package/dist/inlay-hints.js +15 -0
  43. package/dist/inlay-hints.js.map +1 -0
  44. package/dist/inline-event-validation.d.ts +4 -0
  45. package/dist/inline-event-validation.d.ts.map +1 -0
  46. package/dist/inline-event-validation.js +131 -0
  47. package/dist/inline-event-validation.js.map +1 -0
  48. package/dist/keyword-docs.d.ts.map +1 -1
  49. package/dist/keyword-docs.js +5 -3
  50. package/dist/keyword-docs.js.map +1 -1
  51. package/dist/production-destinations.d.ts +8 -0
  52. package/dist/production-destinations.d.ts.map +1 -0
  53. package/dist/production-destinations.js +32 -0
  54. package/dist/production-destinations.js.map +1 -0
  55. package/dist/symbols.d.ts +5 -0
  56. package/dist/symbols.d.ts.map +1 -1
  57. package/dist/symbols.js +68 -20
  58. package/dist/symbols.js.map +1 -1
  59. package/dist/tokens.d.ts.map +1 -1
  60. package/dist/tokens.js +13 -4
  61. package/dist/tokens.js.map +1 -1
  62. package/dist/validation.d.ts.map +1 -1
  63. package/dist/validation.js +11 -32
  64. package/dist/validation.js.map +1 -1
  65. package/event-analysis-source.ts +18 -0
  66. package/for_inlineEvents/when_analyzing_many_inline_events.ts +59 -0
  67. package/for_inlineEvents/when_authoring_inline_events.ts +149 -0
  68. package/for_inlineEvents/when_completing_many_events.ts +49 -0
  69. package/for_inlineEvents/when_indexing_command_production_ownership.ts +79 -0
  70. package/for_tokens/when_highlighting_event_metadata.ts +63 -0
  71. package/for_validateLines/when_validating_a_document/with_a_problem_of_every_coded_kind.ts +14 -0
  72. package/hover-content.ts +9 -1
  73. package/index.ts +5 -0
  74. package/inlay-hints.ts +17 -0
  75. package/inline-event-validation.ts +115 -0
  76. package/keyword-docs.ts +5 -3
  77. package/package.json +1 -1
  78. package/production-destinations.ts +32 -0
  79. package/symbols.ts +70 -19
  80. package/tokens.ts +14 -4
  81. package/validation.ts +13 -28
@@ -0,0 +1,4 @@
1
+ import { DocumentSymbols } from './symbols';
2
+ import type { ValidationIssue } from './validation';
3
+ export declare function validateInlineEvents(lines: string[], symbols: DocumentSymbols, application: DocumentSymbols): ValidationIssue[];
4
+ //# sourceMappingURL=inline-event-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-event-validation.d.ts","sourceRoot":"","sources":["../inline-event-validation.ts"],"names":[],"mappings":"AAOA,OAAO,EAAc,eAAe,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,cAAc,CAAC;AAKxE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,GAAG,eAAe,EAAE,CA+E/H"}
@@ -0,0 +1,131 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { diagnosticCodes } from './diagnostic-codes';
4
+ import { fenceMap, indentOf } from './document-context';
5
+ import { productionDestinations } from './production-destinations';
6
+ import { eventAnalysisSource } from './event-analysis-source';
7
+ import { directBody } from './symbols';
8
+ const reserved = new Set(['namespace', 'sequence', 'correlation', 'causation', 'causedBy', 'occurred']);
9
+ const quotedId = /^id\s+"((?:[^"\\]|\\.)*)"$/;
10
+ export function validateInlineEvents(lines, symbols, application) {
11
+ lines = eventAnalysisSource(lines);
12
+ const issues = [];
13
+ const fences = fenceMap(lines);
14
+ const documentationBlocks = nonemptyMarkdownBlocks(lines, fences);
15
+ const commandProductions = new Set(symbols.commands.flatMap(command => command.productionHeaders ?? []));
16
+ const eventCounts = new Map();
17
+ const importedNames = new Set();
18
+ for (const document of [symbols, application]) {
19
+ for (const event of document.events)
20
+ eventCounts.set(event.name, (eventCounts.get(event.name) ?? 0) + 1);
21
+ for (const imported of document.imports)
22
+ importedNames.add(imported.shortName);
23
+ }
24
+ const report = (line, code, message, severity = 'error') => {
25
+ issues.push({ line, startColumn: indentOf(lines[line]) + 1, endColumn: lines[line].length + 1, code, message, severity });
26
+ };
27
+ for (const event of symbols.events) {
28
+ const body = directBody(lines, fences, event.line, indentOf(lines[event.line]));
29
+ if (event.inline) {
30
+ const properties = new Set();
31
+ for (const property of event.properties) {
32
+ if (properties.has(property.name))
33
+ report(property.line, diagnosticCodes.duplicateDeclaration, `Event '${event.name}' already declares property '${property.name}'.`);
34
+ properties.add(property.name);
35
+ }
36
+ if (!commandProductions.has(event.line))
37
+ report(event.line, diagnosticCodes.inlineEventOutsideCommand, 'Inline events can only be declared inside commands.');
38
+ if (event.generation !== undefined)
39
+ report(event.line, diagnosticCodes.inlineEventGeneration, 'Inline events are generation 1; extract the event before declaring generations.');
40
+ if ((eventCounts.get(event.name) ?? 0) > 1 || importedNames.has(event.name)) {
41
+ report(event.line, diagnosticCodes.inlineEventCollision, `Inline event '${event.name}' collides with another declaration or import.`);
42
+ }
43
+ }
44
+ let hasId = false;
45
+ let hasDocumentation = false;
46
+ for (const index of body) {
47
+ const text = lines[index].trim();
48
+ const keyword = text.split(/\s+/)[0];
49
+ if (event.inline && keyword === 'generation')
50
+ report(index, diagnosticCodes.inlineEventGeneration, 'Inline events are generation 1; extract the event before declaring generations.');
51
+ if (event.inline && keyword === 'origin')
52
+ report(index, diagnosticCodes.reservedProductionMetadata, 'An inline event is local to its command and cannot declare origin.');
53
+ // Property-shaped metadata names stay properties, whether standalone or typed mappings.
54
+ if (/^(?:id|description|documentation)\s+[\w.]+(?:\[\])?\??(?:\s*=.*)?$/.test(text))
55
+ continue;
56
+ if (keyword === 'id') {
57
+ const match = text.match(quotedId);
58
+ if (hasId || match === null || match[1].trim().length === 0)
59
+ report(index, diagnosticCodes.invalidEventId, 'Expected one nonempty id "<old-name>".');
60
+ else if (match[1] === event.name)
61
+ report(index, diagnosticCodes.redundantEventId, 'This id repeats the event name; remove it.', 'information');
62
+ hasId = true;
63
+ }
64
+ if (keyword === 'documentation') {
65
+ let next = index + 1;
66
+ while (next < lines.length && lines[next].trim().length === 0)
67
+ next++;
68
+ if (hasDocumentation || text !== 'documentation' || lines[next]?.trim() !== '```markdown' || indentOf(lines[next]) <= indentOf(lines[index]) ||
69
+ !documentationBlocks.has(next)) {
70
+ report(index, diagnosticCodes.invalidEventDocumentation, 'Expected one nonempty fenced markdown documentation block.');
71
+ }
72
+ hasDocumentation = true;
73
+ }
74
+ }
75
+ }
76
+ // Also cover reaction productions without a backward ancestry walk per metadata line.
77
+ const productionIndents = [];
78
+ for (let index = 0; index < lines.length; index++) {
79
+ if (fences[index] || lines[index].trim().length === 0)
80
+ continue;
81
+ const indent = indentOf(lines[index]);
82
+ while (productionIndents.length > 0 && productionIndents[productionIndents.length - 1] >= indent)
83
+ productionIndents.pop();
84
+ const keyword = lines[index].trim().split(/\s+/)[0];
85
+ if (reserved.has(keyword) && productionIndents.length > 0) {
86
+ report(index, diagnosticCodes.reservedProductionMetadata, `'${keyword}' is system-assigned production metadata.`);
87
+ }
88
+ if (keyword === 'produces')
89
+ productionIndents.push(indent);
90
+ }
91
+ for (const command of symbols.commands) {
92
+ const { identifier, mixed } = productionDestinations(command);
93
+ for (const production of command.produces ?? []) {
94
+ if (mixed && production.target === undefined)
95
+ report(production.line, diagnosticCodes.explicitProducesTargetsRequired, `Production '${production.name}' must state for explicitly when destinations differ.`);
96
+ const destination = production.target ?? (production.inline ? identifier : undefined);
97
+ if (identifier === undefined || destination !== identifier)
98
+ continue;
99
+ for (const mapping of production.mappings.filter(mapping => mapping.source === identifier)) {
100
+ report(mapping.line, diagnosticCodes.eventSourceIdInPayload, `The payload copies '${identifier}', which already identifies the event source.`, production.inline ? 'warning' : 'information');
101
+ }
102
+ }
103
+ }
104
+ return issues;
105
+ }
106
+ // Record complete, nonempty Markdown fences once. Validation must not scan a suffix
107
+ // for every documentation directive, especially while its opener is still being typed.
108
+ function nonemptyMarkdownBlocks(lines, fences) {
109
+ const blocks = new Set();
110
+ let opening;
111
+ let content = false;
112
+ for (let index = 0; index < lines.length; index++) {
113
+ if (!fences[index])
114
+ continue;
115
+ const text = lines[index].trim();
116
+ if (opening === undefined) {
117
+ opening = index;
118
+ content = false;
119
+ }
120
+ else if (text === '```') {
121
+ if (content && lines[opening].trim() === '```markdown')
122
+ blocks.add(opening);
123
+ opening = undefined;
124
+ }
125
+ else if (text.length > 0) {
126
+ content = true;
127
+ }
128
+ }
129
+ return blocks;
130
+ }
131
+ //# sourceMappingURL=inline-event-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-event-validation.js","sourceRoot":"","sources":["../inline-event-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-docs.d.ts","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAwG9C,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuBtD,CAAC"}
1
+ {"version":3,"file":"keyword-docs.d.ts","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0G9C,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGhD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuBtD,CAAC"}
@@ -18,7 +18,9 @@ export const keywordDocs = {
18
18
  template: 'Declares the named slots of a layout.',
19
19
  feature: 'A vertical slice grouping. Features nest arbitrarily deep.',
20
20
  slice: 'The atomic unit of behavior, aligned with Event Modeling. Has a type and a name.',
21
- event: 'An event type — an immutable, past-tense fact. Properties use concepts or primitives.',
21
+ event: 'An immutable, past-tense fact. Declare it in a slice or inline with `produces event <Name>` in a command. Inline properties are typed mappings; inline tags belong to the event type.',
22
+ documentation: 'Authoring-only event documentation in a fenced ```markdown block. It does not change executable model bytes.',
23
+ id: 'Preserves the previous persisted event name after a rename. Leave absent on new events; repeating the current name is redundant.',
22
24
  command: 'An imperative intent. Declares authorization, validation, and what events it produces — declaratively, or via a full handler.',
23
25
  query: 'A read-side entry point mapping to a return type, with an optional description, parameters and performer.',
24
26
  observable: 'Qualifies a query return type as a live read — `query <Name> => observable <ReadModel>` keeps pushing as the read model changes, instead of answering once.',
@@ -36,7 +38,7 @@ export const keywordDocs = {
36
38
  constraint: 'A server-side rule enforced in the Chronicle kernel before events are committed.',
37
39
  authorize: 'References the policies that must all pass for the construct to execute.',
38
40
  validate: 'Declarative validation rules, or `validate` followed by ```csharp for imperative rules — on commands and concepts.',
39
- produces: 'Declares the events a command emits — single, multiple, or conditional.',
41
+ produces: 'References a declared event with `produces <Name>`, or declares one inline with `produces event <Name>`. An inline omitted `for` uses the command identifier only when all destinations are the same source; legacy plain omission allocates an identity.',
40
42
  reads: 'Declares a view consulted by a command or reaction trigger: `reads <View> [as <alias>] [by <value>]`. A reaction `by` names a value taken by its trigger; clock triggers cannot use `by`. Repeated views require unique aliases. Runtime binding is not yet supported for command or reaction reads.',
41
43
  as: 'Names an instance of a view in a command or reaction trigger reads declaration, for example `reads Account as source by sourceId`.',
42
44
  handler: 'A fully imperative command implementation — a `file <Path>` reference or an inline `csharp` block, instead of `produces`.',
@@ -65,7 +67,7 @@ export const keywordDocs = {
65
67
  streamId: 'Concurrency dimension — scope the check to an event stream id.',
66
68
  tag: 'Attaches a tag to appended events — a static identifier or string, or a `$context.` expression resolved at append time.',
67
69
  seed: 'Declares events to seed into the event store per event source id — multiple blocks accumulate.',
68
- for: 'Introduces a seed group — the events to seed for one event source id.',
70
+ for: 'Names the event source of a production or seed group. Inside `produces event`, omission uses the command identifier unless another production targets a different source.',
69
71
  readmodel: 'Read model state in a specification — `given readmodel` establishes it, `then readmodel` asserts it, `then no readmodel <View> for <key>` asserts keyed absence.',
70
72
  no: 'A keyed absence assertion: `then no readmodel <View> for <key>`.',
71
73
  arguments: 'The values supplied to a query asserted by `then query`.',
@@ -1 +1 @@
1
- {"version":3,"file":"keyword-docs.js","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyword-docs.js","sourceRoot":"","sources":["../keyword-docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DestinationHint } from './DestinationHint';
2
+ import { CommandSymbol } from './symbols';
3
+ export declare function productionDestinations(command: CommandSymbol): {
4
+ identifier?: string;
5
+ mixed: boolean;
6
+ };
7
+ export declare function destinationHints(lines: string[]): DestinationHint[];
8
+ //# sourceMappingURL=production-destinations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-destinations.d.ts","sourceRoot":"","sources":["../production-destinations.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAgB,MAAM,WAAW,CAAC;AAExD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAQtG;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAanE"}
@@ -0,0 +1,32 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { eventAnalysisSource } from './event-analysis-source';
4
+ import { scanDocument } from './symbols';
5
+ export function productionDestinations(command) {
6
+ const identifiers = command.properties.filter(property => property.isIdentifier && !property.type.includes('?') && !property.type.includes('[]'));
7
+ const identifier = identifiers.length === 1 ? identifiers[0].name : undefined;
8
+ const productions = command.produces ?? [];
9
+ const mixed = productions.some(production => production.target !== undefined && production.target !== identifier) ||
10
+ (productions.some(production => production.inline && production.target === undefined) &&
11
+ productions.some(production => !production.inline && production.target === undefined));
12
+ return { identifier, mixed };
13
+ }
14
+ // Shared by both editor adapters. Never suggest that a legacy allocated source is the command identifier.
15
+ export function destinationHints(lines) {
16
+ const source = eventAnalysisSource(lines);
17
+ return scanDocument(source).commands.flatMap(command => {
18
+ const { identifier, mixed } = productionDestinations(command);
19
+ if (mixed || command.productionHeaders?.length !== command.produces?.length)
20
+ return [];
21
+ const hasPromotedDestination = command.produces?.some(sibling => sibling.target !== undefined || sibling.inline);
22
+ return (command.produces ?? []).flatMap(production => {
23
+ if (production.target !== undefined || (production.inline && (identifier === undefined || /\bgeneration\b/.test(source[production.line]))))
24
+ return [];
25
+ // A sibling destination can promote the command default in the legacy binder.
26
+ if (!production.inline && hasPromotedDestination)
27
+ return [];
28
+ return [{ line: production.line, column: source[production.line].length + 1, label: production.inline ? `for ${identifier}` : 'for <new event source>' }];
29
+ });
30
+ });
31
+ }
32
+ //# sourceMappingURL=production-destinations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"production-destinations.js","sourceRoot":"","sources":["../production-destinations.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAiB,YAAY,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,UAAU,sBAAsB,CAAC,OAAsB;IACzD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAClJ,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9E,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC;QAC7G,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC;YACpF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;IAC5F,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACjC,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,gBAAgB,CAAC,KAAe;IAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,KAAK,IAAI,OAAO,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QACvF,MAAM,sBAAsB,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACjH,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YACjD,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,CAAC;YACtJ,8EAA8E;YAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,sBAAsB;gBAAE,OAAO,EAAE,CAAC;YAC5D,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,UAAU,EAAE,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC;QAC9J,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/symbols.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ProductionSymbol } from './ProductionSymbol';
1
2
  export interface PropertySymbol {
2
3
  name: string;
3
4
  type: string;
@@ -25,12 +26,15 @@ export interface PolicySymbol {
25
26
  export interface EventSymbol {
26
27
  name: string;
27
28
  generation?: number;
29
+ inline?: boolean;
28
30
  properties: PropertySymbol[];
29
31
  line: number;
30
32
  }
31
33
  export interface CommandSymbol extends NamedSymbol {
32
34
  properties: PropertySymbol[];
33
35
  reads?: ReadSymbol[];
36
+ produces?: ProductionSymbol[];
37
+ productionHeaders?: number[];
34
38
  }
35
39
  export interface ReadSymbol {
36
40
  view: string;
@@ -62,6 +66,7 @@ export interface DocumentSymbols {
62
66
  screens: NamedSymbol[];
63
67
  triggers: NamedSymbol[];
64
68
  }
69
+ export declare function directBody(lines: string[], fences: boolean[], start: number, indent: number): number[];
65
70
  export declare function scanDocument(lines: string[]): DocumentSymbols;
66
71
  export declare function mergeSymbols(...documents: DocumentSymbols[]): DocumentSymbols;
67
72
  export declare function knownEventNames(symbols: DocumentSymbols): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAC9C,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,WAAW,EAAE,CAAC;CAC3B;AAuCD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CA6J7D;AAID,wBAAgB,YAAY,CAAC,GAAG,SAAS,EAAE,eAAe,EAAE,GAAG,eAAe,CAY7E;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAKlE;AAGD,eAAO,MAAM,mBAAmB,UAA0B,CAAC;AAI3D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAMpE;AAID,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAOhG"}
1
+ {"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"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"}
package/dist/symbols.js CHANGED
@@ -1,11 +1,16 @@
1
1
  // Copyright (c) Cratis. All rights reserved.
2
2
  // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
- import { fenceMap, indentOf, withoutComment } from './document-context';
3
+ import { fenceMap, indentOf } from './document-context';
4
+ import { eventAnalysisSource } from './event-analysis-source';
4
5
  import { clauseKeywords } from './language';
5
6
  const conceptPattern = /^concept\s+(\w+)\s*:\s*(\w+)((?:\s+@\w+)*)\s*$/;
6
7
  const propertyPattern = /^\s*(@?[a-z_]\w*)\s+([\w.]+(?:\[\])?\??)(\s+identifier)?\s*$/;
7
8
  const attributeReasonPattern = /^([a-z_]\w*)\s+reason\s+"((?:[^"\\]|\\.)*)"\s*$/;
8
9
  const readPattern = /^\s*reads\s+([A-Z]\w*)(?:\s+as\s+([a-z_]\w*))?(?:\s+by\s+([a-z_]\w*))?\s*$/;
10
+ const commandReserved = ['authorize', 'produces', 'reads'];
11
+ // AuthorizeParser's continuation pattern, including the compiler's Unicode word characters.
12
+ const authorizationContinuation = /^(?:(?:or|and)\s+)?[A-Za-z_(][\p{L}\p{Mn}\p{Nd}\p{Pc}\s()]*$/u;
13
+ const eventReserved = clauseKeywords.filter(keyword => !['id', 'description', 'documentation'].includes(keyword));
9
14
  const queryParameterPattern = /^\s*(?:by|filter)\s+([a-z_]\w*)\s+([\w.]+(?:\[\])?\??)(?:\s+from\s+.+)?\s*$/;
10
15
  // Property-shaped clauses depend on their owner. Commands reserve only authorize,
11
16
  // produces and reads; bare directives such as description and handler can be properties.
@@ -37,6 +42,30 @@ function collectBody(lines, fences, start, indent) {
37
42
  }
38
43
  return body;
39
44
  }
45
+ // Event/production parsers accept every greater indent, not just the smallest child indent.
46
+ // Command block directives own their nested lines; properties do not. Fenced prose is never syntax.
47
+ export function directBody(lines, fences, start, indent) {
48
+ const body = collectBody(lines, fences, start, indent).filter(index => !fences[index] && !/^\s*(?:\/\/|#)/.test(lines[index]));
49
+ if (!/^\s*command\b/.test(lines[start]))
50
+ return body;
51
+ let blockIndent;
52
+ let authorization = false;
53
+ return body.filter(index => {
54
+ const childIndent = indentOf(lines[index]);
55
+ const text = lines[index].trim();
56
+ // AuthorizeParser owns only consecutive deeper lines with requirement shape.
57
+ // Unlike opaque blocks, a nonmatching line returns control to CommandParser.
58
+ if (blockIndent !== undefined && childIndent > blockIndent &&
59
+ (!authorization || authorizationContinuation.test(text)))
60
+ return false;
61
+ const property = text !== 'validate csharp' && propertiesIn(lines, [index], commandReserved).length > 0;
62
+ // Description consumes only a quoted value or a fence (already excluded above).
63
+ const leaf = property || /^description(?:\s|$)/.test(text);
64
+ blockIndent = leaf ? undefined : childIndent;
65
+ authorization = /^authorize(?:\s|$)/.test(text);
66
+ return true;
67
+ });
68
+ }
40
69
  export function scanDocument(lines) {
41
70
  const symbols = {
42
71
  imports: [],
@@ -49,16 +78,21 @@ export function scanDocument(lines) {
49
78
  screens: [],
50
79
  triggers: [],
51
80
  };
81
+ // One normalization pass for every declaration, including comments on fence openers.
82
+ lines = eventAnalysisSource(lines);
52
83
  const fences = fenceMap(lines);
53
- // Normalize only structural lines; quoted strings and fenced code retain their contents.
54
- lines = lines.map((line, index) => fences[index] ? line : withoutComment(line));
84
+ const eventLines = lines;
85
+ const eventFences = fences;
86
+ // Typed inline mappings share property syntax once their source expression is removed.
87
+ // Do this once, never once per inline event.
88
+ const eventPropertyLines = lines.map(line => line.replace(/\s*=(?!=|>).*/, ''));
55
89
  for (let index = 0; index < lines.length; index++) {
56
90
  if (fences[index])
57
91
  continue;
58
92
  const line = lines[index];
59
93
  const trimmed = line.trim();
60
94
  const indent = indentOf(line);
61
- const importMatch = trimmed.match(/^import\s+([\w.]+)\s*$/);
95
+ const importMatch = eventLines[index].trim().match(/^import\s+([\w.]+)\s*$/);
62
96
  if (importMatch && indent === 0) {
63
97
  const qualifiedName = importMatch[1];
64
98
  const shortName = qualifiedName.split('.').pop() ?? qualifiedName;
@@ -105,33 +139,47 @@ export function scanDocument(lines) {
105
139
  symbols.policies.push({ name: policyMatch[1], requires, line: index });
106
140
  continue;
107
141
  }
108
- const eventMatch = trimmed.match(/^event\s+(\w+)(?:\s+generation\s+(\d+))?\s*$/);
142
+ const eventMatch = eventLines[index].trim().match(/^(?:produces\s+)?event\s+(\w+)(?:\s+generation\s+(\d+))?\s*$/);
109
143
  if (eventMatch) {
110
144
  symbols.events.push({
111
145
  name: eventMatch[1],
112
146
  ...(eventMatch[2] ? { generation: Number(eventMatch[2]) } : {}),
113
- properties: propertiesIn(lines, collectBody(lines, fences, index, indent), clauseKeywords),
147
+ inline: trimmed.startsWith('produces '),
148
+ properties: propertiesIn(trimmed.startsWith('produces ') ? eventPropertyLines : eventLines, directBody(eventLines, eventFences, index, indent), eventReserved),
114
149
  line: index,
115
150
  });
116
151
  continue;
117
152
  }
118
- const commandMatch = trimmed.match(/^command\s+(\w+)\s*$/);
153
+ const commandMatch = eventLines[index].trim().match(/^command\s+(\w+)\s*$/);
119
154
  if (commandMatch) {
120
- const body = collectBody(lines, fences, index, indent);
121
- // The body is already comment-normalized and fence-free. Track indentation once,
122
- // rather than walking back to the document root for every property-shaped line.
123
- const ancestors = [indent];
124
- const directChildren = body.filter(line => {
125
- const childIndent = indentOf(lines[line]);
126
- while (ancestors[ancestors.length - 1] >= childIndent)
127
- ancestors.pop();
128
- const direct = ancestors.length === 1;
129
- ancestors.push(childIndent);
130
- return direct && lines[line].trim() !== 'validate csharp';
131
- });
155
+ // A command property is a leaf, not an indentation owner. Share the parser-shaped
156
+ // body with properties, productions, advice and destination hints.
157
+ const body = directBody(lines, fences, index, indent);
158
+ const productionHeaders = body.filter(line => /^\s*produces\b/.test(lines[line]));
132
159
  symbols.commands.push({
133
160
  name: commandMatch[1],
134
- properties: propertiesIn(lines, directChildren, ['authorize', 'produces', 'reads']),
161
+ properties: propertiesIn(lines, body.filter(line => lines[line].trim() !== 'validate csharp'), commandReserved),
162
+ productionHeaders,
163
+ produces: productionHeaders.flatMap(line => {
164
+ const header = eventLines[line].trim();
165
+ const inline = /^produces\s+event\b/.test(header);
166
+ const conditional = /^produces\s+when\b/.test(header);
167
+ const eventLine = conditional ? directBody(eventLines, eventFences, line, indentOf(eventLines[line]))[0] : line;
168
+ if (eventLine === undefined)
169
+ return [];
170
+ const name = conditional ? eventLines[eventLine].trim() : header.match(inline ? /^produces\s+event\s+([A-Za-z_]\w*)(?:\s+generation\s+\d+)?\s*$/ : /^produces\s+([A-Z]\w*)\s*$/)?.[1];
171
+ if (name === undefined || !/^[A-Za-z_]\w*$/.test(name))
172
+ return [];
173
+ const children = directBody(eventLines, eventFences, eventLine, indentOf(eventLines[eventLine]));
174
+ const targets = children.map(index => eventLines[index].trim().match(/^for(?:\s+(.*))?$/)).filter(match => match !== null);
175
+ // Empty or repeated targets are uncertain, not implicit destinations.
176
+ const target = targets.length === 0 ? undefined : targets.length === 1 ? targets[0][1] ?? '' : '';
177
+ const mappings = children.flatMap(index => {
178
+ const match = eventLines[index].trim().match(inline ? /^(@?[a-z_]\w*)\s+[\w.[\]?]+\s*=(?!=|>)\s*(.+)$/ : /^(@?[\w.]+)\s*=(?!=|>)\s*(.+)$/);
179
+ return match === null ? [] : [{ name: match[1].replace(/^@/, ''), source: match[2], line: index }];
180
+ });
181
+ return [{ name, inline, conditional, line, target, mappings }];
182
+ }),
135
183
  reads: body.filter((line) => !fences[line])
136
184
  .map((line) => ({ line, match: lines[line].match(readPattern) }))
137
185
  .filter((entry) => entry.match !== null)
@@ -1 +1 @@
1
- {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA6E5C,MAAM,cAAc,GAAG,gDAAgD,CAAC;AACxE,MAAM,eAAe,GAAG,8DAA8D,CAAC;AACvF,MAAM,sBAAsB,GAAG,iDAAiD,CAAC;AACjF,MAAM,WAAW,GAAG,4EAA4E,CAAC;AACjG,MAAM,qBAAqB,GACvB,6EAA6E,CAAC;AAElF,kFAAkF;AAClF,yFAAyF;AACzF,2FAA2F;AAC3F,SAAS,YAAY,CAAC,KAAe,EAAE,IAAc,EAAE,QAA2B;IAC9E,OAAO,IAAI;SACN,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;SACvE,MAAM,CAAC,CAAC,KAAK,EAAuD,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;SAC5F,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACpG,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACxB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;QACpC,IAAI,EAAE,KAAK;KACd,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,WAAW,CAAC,KAAe,EAAE,MAAiB,EAAE,KAAa,EAAE,MAAc;IAClF,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACxD,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YAChB,SAAS;QACb,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACvC,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM;YAAE,MAAM;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAe;IACxC,MAAM,OAAO,GAAoB;QAC7B,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACf,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,yFAAyF;IACzF,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhF,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAChD,IAAI,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5D,IAAI,WAAW,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,aAAa,CAAC;YAClE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnD,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,MAAM,gBAAgB,GAA2B,EAAE,CAAC;YACpD,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBAClD,IAAI,MAAM,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;oBACtD,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACL,CAAC;YACD,MAAM,UAAU,GACZ,YAAY,CAAC,CAAC,CAAC,KAAK,MAAM;gBACtB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3D,CAAC,CAAC,EAAE,CAAC;YACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC1B,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC/D,gBAAgB;gBAChB,UAAU;gBACV,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;gBAClB,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC;gBAC1F,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBACrD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACvE,SAAS;QACb,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACjF,IAAI,UAAU,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBACnB,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/D,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC;gBAC1F,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACvD,iFAAiF;YACjF,gFAAgF;YAChF,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC;YAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACtC,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1C,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,WAAW;oBAAE,SAAS,CAAC,GAAG,EAAE,CAAC;gBACvE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5B,OAAO,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,iBAAiB,CAAC;YAC9D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAClB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBACrB,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBACnF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;qBACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;qBAChE,MAAM,CAAC,CAAC,KAAK,EAAsD,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;qBAC3F,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACvB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACd,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrC,IAAI;iBACP,CAAC,CAAC;gBACP,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,wEAAwE;QACxE,4FAA4F;QAC5F,8FAA8F;QAC9F,iBAAiB;QACjB,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACrG,IAAI,UAAU,EAAE,CAAC;YACb,6EAA6E;YAC7E,yEAAyE;YACzE,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;iBACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;iBACxE,MAAM,CACH,CAAC,KAAK,EAAuD,EAAE,CAC3D,KAAK,CAAC,KAAK,KAAK,IAAI,CAC3B;iBACA,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC9B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACd,YAAY,EAAE,KAAK;gBACnB,IAAI;aACP,CAAC,CAAC,CAAC;YACR,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;gBACnB,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;gBACzB,UAAU;gBACV,IAAI,EAAE,KAAK;aACd,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YACd,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,SAAS;QACb,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC3D,IAAI,YAAY,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,2GAA2G;AAC3G,2FAA2F;AAC3F,MAAM,UAAU,YAAY,CAAC,GAAG,SAA4B;IACxD,OAAO;QACH,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1D,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5D,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtD,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5D,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxD,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC5D,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1D,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1D,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC/D,CAAC;AACN,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAwB;IACpD,OAAO;QACH,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5C,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC3D,CAAC;AACN,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAE3D,2GAA2G;AAC3G,yGAAyG;AACzG,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACtD,OAAO;QACH,GAAG,eAAe,CAAC,OAAO,CAAC;QAC3B,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAClD,GAAG,mBAAmB;KACzB,CAAC;AACN,CAAC;AAED,qFAAqF;AACrF,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,OAAwB,EAAE,UAA6B;IAClF,OAAO;QACH,GAAG,UAAU;QACb,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAClD,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACzC,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC3D,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA0BzE,eAAO,MAAM,gBAAgB,EAAE,iBAa9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,gBAAgB,CA+G5F"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA0BzE,eAAO,MAAM,gBAAgB,EAAE,iBAa9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,gBAAgB,CAyH5F"}
package/dist/tokens.js CHANGED
@@ -45,9 +45,11 @@ export function createTokensProvider(subLanguages) {
45
45
  [/^(\s*)(then)(\s+)(result|no\s+result)\b/, ['white', 'keyword', 'white', 'keyword']],
46
46
  // A quoted import names .play files rather than a qualified name - the path reads as a link.
47
47
  [/^(\s*)(import)(\s+)("[^"\\]*")/, ['white', 'keyword', 'white', 'string.link']],
48
- // Only an event header reserves 'generation'; properties and context paths do not.
49
- [/^(\s*)(event)(\s+)([A-Za-z_]\w*)(\s+)(generation)(?=\s+\d+\s*$)/,
50
- ['white', 'keyword', 'white', 'type.identifier', 'white', 'keyword']],
48
+ // Retain the header indent so event metadata stops at the enclosing block boundary.
49
+ [/^(\s*)((?:produces\s+)?event)(\s+)([A-Za-z_]\w*)(\s+)(generation)(\s+)(\d+)(?=\s*(?:\/\/.*)?$)/,
50
+ ['white', 'keyword', 'white', 'type.identifier', 'white', 'keyword', 'white', { token: 'number', next: '@eventBody.$1' }]],
51
+ [/^(\s*)((?:produces\s+)?event)(\s+)([A-Za-z_]\w*)(?=\s*(?:\/\/.*)?$)/,
52
+ ['white', 'keyword', 'white', { token: 'type.identifier', next: '@eventBody.$1' }]],
51
53
  // A tagged opening fence carries the embedded language; legacy tag lines still highlight.
52
54
  ...codeBlockTags.map((tag) => [
53
55
  new RegExp(`^\\s*\\x60\\x60\\x60${tag}\\s*$`),
@@ -90,6 +92,12 @@ export function createTokensProvider(subLanguages) {
90
92
  ],
91
93
  { include: '@common' },
92
94
  ],
95
+ eventBody: [
96
+ [/^(?!$S2[ \t]+|\s*$)/, { token: '@rematch', next: '@pop' }],
97
+ [/^(\s*)(id)(?=\s+")/, ['white', 'keyword']],
98
+ [/^(\s*)(documentation)(?=\s*(?:\/\/.*)?$)/, ['white', { token: 'keyword', next: '@descriptionBlockPending' }]],
99
+ { include: '@root' },
100
+ ],
93
101
  common: commonTokenRules,
94
102
  // After a code tag, the only thing allowed before the opening fence is whitespace.
95
103
  codeBlockPending: [
@@ -107,7 +115,8 @@ export function createTokensProvider(subLanguages) {
107
115
  ],
108
116
  // After a bare description, the only thing allowed before the opening fence is whitespace.
109
117
  descriptionBlockPending: [
110
- [/^\s*```(?:text)?\s*$/, { token: 'string.quote', switchTo: '@descriptionBlock' }],
118
+ [/\/\/.*$/, 'comment'],
119
+ [/^\s*```(?:text|markdown)?\s*$/, { token: 'string.quote', switchTo: '@descriptionBlock' }],
111
120
  [/^\s*[^\s`].*$/, { token: '@rematch', next: '@pop' }],
112
121
  [/\s+/, 'white'],
113
122
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EACH,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,UAAU,GACb,MAAM,YAAY,CAAC;AAGpB,8FAA8F;AAC9F,MAAM,iBAAiB,GAA2B;IAC9C,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;CACb,CAAC;AAEF,SAAS,gBAAgB,CAAC,OAAe;IACrC,OAAO,eAAe,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,mFAAmF;AACnF,SAAS,mBAAmB,CAAC,YAA2B;IACpD,MAAM,YAAY,GAAG,CAAC,GAAG,iBAAiB,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IACvG,OAAO;QACH,IAAI,MAAM,CAAC,WAAW,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QACnD,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;KACtC,CAAC;AACN,CAAC;AAED,4FAA4F;AAC5F,mGAAmG;AACnG,MAAM,CAAC,MAAM,gBAAgB,GAAsB;IAC/C,CAAC,SAAS,EAAE,SAAS,CAAC;IACtB,CAAC,6DAA6D,EAAE,qBAAqB,CAAC;IACtF,CAAC,mCAAmC,EAAE,qBAAqB,CAAC;IAC5D,CAAC,YAAY,EAAE,qBAAqB,CAAC;IACrC,CAAC,mBAAmB,EAAE,QAAQ,CAAC;IAC/B,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;IACvC,CAAC,qBAAqB,EAAE,QAAQ,CAAC;IACjC,CAAC,YAAY,EAAE,cAAc,CAAC;IAC9B,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,wBAAwB,EAAE,UAAU,CAAC;IACtC,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,KAAK,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,YAA2B;IAC5D,MAAM,SAAS,GAAsC;QACjD,IAAI,EAAE;YACF,oGAAoG;YACpG,qFAAqF;YACrF,CAAC,wDAAwD,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACpG,CAAC,yCAAyC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACrF,6FAA6F;YAC7F,CAAC,gCAAgC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;YAChF,mFAAmF;YACnF,CAAC,iEAAiE;gBAC9D,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACzE,0FAA0F;YAC1F,GAAG,aAAa,CAAC,GAAG,CAChB,CAAC,GAAG,EAA6B,EAAE,CAAC;gBAChC,IAAI,MAAM,CAAC,uBAAuB,GAAG,OAAO,CAAC;gBAC7C,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,cAAc,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE;aAChH,CACJ;YACD,qEAAqE;YACrE,GAAG,aAAa,CAAC,GAAG,CAChB,CAAC,GAAG,EAA6B,EAAE,CAAC;gBAChC,IAAI,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;gBACnC,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,qBAAqB,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE;aAChF,CACJ;YACD,+EAA+E;YAC/E,GAAG,YAAY,CAAC,GAAG,CACf,CAAC,WAAW,EAA6B,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,OAAO,KAAK,CAAC;gBAC1C,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE;aAC1E,CACJ;YACD,6EAA6E;YAC7E,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;YACnF,CAAC,eAAe,EAAE,SAAS,CAAC;YAC5B,sGAAsG;YACtG,CAAC,gBAAgB,EAAE,YAAY,CAAC;YAChC,CAAC,MAAM,EAAE,YAAY,CAAC;YACtB;gBACI,UAAU;gBACV;oBACI,KAAK,EAAE;wBACH,aAAa,EAAE,cAAc;wBAC7B,iBAAiB,EAAE,MAAM;wBACzB,UAAU,EAAE,iBAAiB;qBAChC;iBACJ;aACJ;YACD;gBACI,WAAW;gBACX;oBACI,KAAK,EAAE;wBACH,WAAW,EAAE,SAAS;wBACtB,UAAU,EAAE,YAAY;qBAC3B;iBACJ;aACJ;YACD,EAAE,OAAO,EAAE,SAAS,EAAE;SACzB;QAED,MAAM,EAAE,gBAAgB;QAExB,mFAAmF;QACnF,gBAAgB,EAAE;YACd;gBACI,aAAa;gBACb,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE;aAC7E;YACD,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACtD,CAAC,KAAK,EAAE,OAAO,CAAC;SACnB;QAED,SAAS,EAAE;YACP,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;YAC9E,CAAC,OAAO,EAAE,EAAE,CAAC;YACb,CAAC,GAAG,EAAE,EAAE,CAAC;SACZ;QAED,2FAA2F;QAC3F,uBAAuB,EAAE;YACrB,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;YAClF,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACtD,CAAC,KAAK,EAAE,OAAO,CAAC;SACnB;QAED,gBAAgB,EAAE;YACd,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACxD,CAAC,IAAI,EAAE,QAAQ,CAAC;SACnB;KACJ,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACrC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG;YAC/C,mBAAmB,CAAC,YAAY,CAAC;YACjC,GAAG,WAAW,CAAC,MAAM;YACrB,EAAE,OAAO,EAAE,SAAS,EAAE;YACtB,CAAC,UAAU,EAAE,iBAAiB,CAAC;YAC/B,CAAC,WAAW,EAAE,YAAY,CAAC;SAC9B,CAAC;IACN,CAAC;IAED,OAAO;QACH,YAAY,EAAE,EAAE;QAChB,YAAY,EAAE,OAAO;QACrB,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,CAAC,GAAG,iBAAiB,EAAE,GAAG,cAAc,EAAE,GAAG,aAAa,CAAC;QACrE,UAAU;QACV,cAAc;QACd,SAAS;KACkB,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAmB,MAAM,oBAAoB,CAAC;AAGrE,OAAO,EACH,eAAe,EAMlB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAI7B,IAAI,CAAC,EAAE,cAAc,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAiB;IAI9B,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAiGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,eAAe,EAAE,CAqNjG;AA6DD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAiD/F"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAmB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,EACH,eAAe,EAMlB,MAAM,WAAW,CAAC;AAGnB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;AAErE,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAI7B,IAAI,CAAC,EAAE,cAAc,CAAC;CACzB;AAGD,MAAM,WAAW,iBAAiB;IAI9B,WAAW,CAAC,EAAE,eAAe,CAAC;CACjC;AAiGD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,eAAe,EAAE,CAsNjG;AA2CD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAiD/F"}