@cratis/screenplay-language 4.52.0 → 4.54.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 (191) hide show
  1. package/README.md +15 -0
  2. package/dist/TypeReferenceSymbol.d.ts +8 -0
  3. package/dist/TypeReferenceSymbol.d.ts.map +1 -0
  4. package/dist/bundles/chunk-GJX4NJYC.js +4836 -0
  5. package/dist/bundles/chunk-GJX4NJYC.js.map +7 -0
  6. package/dist/bundles/index.js +1417 -0
  7. package/dist/bundles/index.js.map +7 -0
  8. package/dist/bundles/sub-languages/capture/index.js +677 -0
  9. package/dist/bundles/sub-languages/capture/index.js.map +7 -0
  10. package/dist/bundles/sub-languages/projection/index.js +1647 -0
  11. package/dist/bundles/sub-languages/projection/index.js.map +7 -0
  12. package/dist/code-actions.d.ts +3 -0
  13. package/dist/code-actions.d.ts.map +1 -0
  14. package/dist/completion-items.d.ts +1 -0
  15. package/dist/completion-items.d.ts.map +1 -1
  16. package/dist/completion-planner.d.ts.map +1 -1
  17. package/dist/completions.d.ts.map +1 -1
  18. package/dist/diagnostic-codes.d.ts +3 -0
  19. package/dist/diagnostic-codes.d.ts.map +1 -1
  20. package/dist/diagnostics.d.ts.map +1 -1
  21. package/dist/hover-content.d.ts.map +1 -1
  22. package/dist/index.d.ts +3 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/keyword-docs.d.ts.map +1 -1
  25. package/dist/language.d.ts +1 -0
  26. package/dist/language.d.ts.map +1 -1
  27. package/dist/production-destinations.d.ts.map +1 -1
  28. package/dist/symbols.d.ts +4 -0
  29. package/dist/symbols.d.ts.map +1 -1
  30. package/dist/tokens.d.ts.map +1 -1
  31. package/dist/validation.d.ts +1 -0
  32. package/dist/validation.d.ts.map +1 -1
  33. package/package.json +13 -9
  34. package/DestinationHint.ts +0 -8
  35. package/ProductionSymbol.ts +0 -11
  36. package/completion-items.ts +0 -261
  37. package/completion-planner.ts +0 -167
  38. package/completions.ts +0 -156
  39. package/diagnostic-codes.ts +0 -43
  40. package/diagnostics.ts +0 -55
  41. package/dist/DestinationHint.js +0 -4
  42. package/dist/DestinationHint.js.map +0 -1
  43. package/dist/ProductionSymbol.js +0 -4
  44. package/dist/ProductionSymbol.js.map +0 -1
  45. package/dist/completion-items.js +0 -228
  46. package/dist/completion-items.js.map +0 -1
  47. package/dist/completion-planner.js +0 -143
  48. package/dist/completion-planner.js.map +0 -1
  49. package/dist/completions.js +0 -101
  50. package/dist/completions.js.map +0 -1
  51. package/dist/diagnostic-codes.js +0 -41
  52. package/dist/diagnostic-codes.js.map +0 -1
  53. package/dist/diagnostics.js +0 -50
  54. package/dist/diagnostics.js.map +0 -1
  55. package/dist/document-context.js +0 -85
  56. package/dist/document-context.js.map +0 -1
  57. package/dist/event-analysis-source.js +0 -19
  58. package/dist/event-analysis-source.js.map +0 -1
  59. package/dist/event-context-catalog.js +0 -116
  60. package/dist/event-context-catalog.js.map +0 -1
  61. package/dist/event-context.js +0 -88
  62. package/dist/event-context.js.map +0 -1
  63. package/dist/file-imports.js +0 -58
  64. package/dist/file-imports.js.map +0 -1
  65. package/dist/file-references.js +0 -70
  66. package/dist/file-references.js.map +0 -1
  67. package/dist/hover-content.js +0 -98
  68. package/dist/hover-content.js.map +0 -1
  69. package/dist/hover.js +0 -15
  70. package/dist/hover.js.map +0 -1
  71. package/dist/index.js +0 -61
  72. package/dist/index.js.map +0 -1
  73. package/dist/inlay-hints.js +0 -15
  74. package/dist/inlay-hints.js.map +0 -1
  75. package/dist/inline-event-validation.js +0 -131
  76. package/dist/inline-event-validation.js.map +0 -1
  77. package/dist/keyword-docs.js +0 -148
  78. package/dist/keyword-docs.js.map +0 -1
  79. package/dist/language.js +0 -196
  80. package/dist/language.js.map +0 -1
  81. package/dist/production-destinations.js +0 -32
  82. package/dist/production-destinations.js.map +0 -1
  83. package/dist/sub-language-registry.js +0 -18
  84. package/dist/sub-language-registry.js.map +0 -1
  85. package/dist/sub-languages/capture/CompletionProvider.js +0 -332
  86. package/dist/sub-languages/capture/CompletionProvider.js.map +0 -1
  87. package/dist/sub-languages/capture/HoverProvider.js +0 -87
  88. package/dist/sub-languages/capture/HoverProvider.js.map +0 -1
  89. package/dist/sub-languages/capture/Validator.js +0 -72
  90. package/dist/sub-languages/capture/Validator.js.map +0 -1
  91. package/dist/sub-languages/capture/index.js +0 -58
  92. package/dist/sub-languages/capture/index.js.map +0 -1
  93. package/dist/sub-languages/capture/language.js +0 -160
  94. package/dist/sub-languages/capture/language.js.map +0 -1
  95. package/dist/sub-languages/cdl.js +0 -74
  96. package/dist/sub-languages/cdl.js.map +0 -1
  97. package/dist/sub-languages/pdl.js +0 -73
  98. package/dist/sub-languages/pdl.js.map +0 -1
  99. package/dist/sub-languages/projection/CodeActionProvider.js +0 -93
  100. package/dist/sub-languages/projection/CodeActionProvider.js.map +0 -1
  101. package/dist/sub-languages/projection/CompletionProvider.js +0 -595
  102. package/dist/sub-languages/projection/CompletionProvider.js.map +0 -1
  103. package/dist/sub-languages/projection/HoverProvider.js +0 -333
  104. package/dist/sub-languages/projection/HoverProvider.js.map +0 -1
  105. package/dist/sub-languages/projection/Validator.js +0 -388
  106. package/dist/sub-languages/projection/Validator.js.map +0 -1
  107. package/dist/sub-languages/projection/index.js +0 -160
  108. package/dist/sub-languages/projection/index.js.map +0 -1
  109. package/dist/sub-languages/projection/language.js +0 -171
  110. package/dist/sub-languages/projection/language.js.map +0 -1
  111. package/dist/symbols.js +0 -275
  112. package/dist/symbols.js.map +0 -1
  113. package/dist/themes/screenplay-dark.js +0 -30
  114. package/dist/themes/screenplay-dark.js.map +0 -1
  115. package/dist/themes/screenplay-light.js +0 -30
  116. package/dist/themes/screenplay-light.js.map +0 -1
  117. package/dist/tokens.js +0 -147
  118. package/dist/tokens.js.map +0 -1
  119. package/dist/validation.js +0 -248
  120. package/dist/validation.js.map +0 -1
  121. package/document-context.ts +0 -93
  122. package/event-analysis-source.ts +0 -18
  123. package/event-context-catalog.ts +0 -135
  124. package/event-context.ts +0 -119
  125. package/file-imports.ts +0 -70
  126. package/file-references.ts +0 -87
  127. package/for_documentContext/when_stripping_comments.ts +0 -32
  128. package/for_eventContext/when_resolving_generated_catalog_vectors.ts +0 -15
  129. package/for_eventGenerations/when_editing_event_generations.ts +0 -57
  130. package/for_fileImports/when_finding_file_imports.ts +0 -38
  131. package/for_fileReferences/when_recognizing_an_absolute_path/with_paths_of_every_shape.ts +0 -26
  132. package/for_fileReferences/when_scanning_a_document/inside_a_code_fence.ts +0 -26
  133. package/for_fileReferences/when_scanning_a_document/with_a_bare_file_keyword.ts +0 -19
  134. package/for_fileReferences/when_scanning_a_document/with_a_file_directive.ts +0 -30
  135. package/for_fileReferences/when_scanning_a_document/with_a_property_named_file.ts +0 -25
  136. package/for_fileReferences/when_scanning_a_document/with_a_trailing_comment.ts +0 -25
  137. package/for_fileReferences/when_scanning_a_document/with_directives_on_several_constructs.ts +0 -41
  138. package/for_importablePaths/when_listing_what_a_document_can_import.ts +0 -34
  139. package/for_inlineEvents/when_analyzing_many_inline_events.ts +0 -59
  140. package/for_inlineEvents/when_authoring_inline_events.ts +0 -149
  141. package/for_inlineEvents/when_completing_many_events.ts +0 -49
  142. package/for_inlineEvents/when_indexing_command_production_ownership.ts +0 -79
  143. package/for_planCompletions/when_completing_a_file_import.ts +0 -26
  144. package/for_planCompletions/when_completing_a_specification_query.ts +0 -24
  145. package/for_planCompletions/when_completing_a_specification_step.ts +0 -42
  146. package/for_planCompletions/when_completing_an_absent_read_model.ts +0 -14
  147. package/for_planCompletions/when_completing_reaction_reads.ts +0 -36
  148. package/for_projectionCompletionProvider/when_completing_an_event_context_path.ts +0 -102
  149. package/for_projectionHoverProvider/when_hovering_an_event_context_path.ts +0 -44
  150. package/for_projectionValidator/when_validating_a_projection_with_variants.ts +0 -128
  151. package/for_projectionValidator/when_validating_event_context_paths.ts +0 -31
  152. package/for_scanDocument/when_scanning_a_query/with_a_dotted_return_type.ts +0 -34
  153. package/for_scanDocument/when_scanning_aliased_reads.ts +0 -33
  154. package/for_scanDocument/when_scanning_many_commands.ts +0 -47
  155. package/for_tokens/when_highlighting_a_file_import.ts +0 -18
  156. package/for_tokens/when_highlighting_event_metadata.ts +0 -63
  157. package/for_tokens/when_highlighting_specification_steps.ts +0 -28
  158. package/for_validateLines/when_validating_a_document/with_a_problem_of_every_coded_kind.ts +0 -77
  159. package/for_validateLines/when_validating_a_document/with_an_unknown_policy.ts +0 -33
  160. package/for_validateLines/when_validating_a_file_placed_by_an_import/with_names_declared_in_other_files.ts +0 -43
  161. package/for_validateLines/when_validating_event_context_paths/in_a_projection.ts +0 -97
  162. package/for_validateLines/when_validating_file_imports/at_every_level.ts +0 -36
  163. package/for_validateLines/when_validating_production_destinations/with_an_available_identifier.ts +0 -120
  164. package/hover-content.ts +0 -117
  165. package/hover.ts +0 -23
  166. package/index.ts +0 -125
  167. package/inlay-hints.ts +0 -17
  168. package/inline-event-validation.ts +0 -115
  169. package/keyword-docs.ts +0 -152
  170. package/language.ts +0 -212
  171. package/production-destinations.ts +0 -32
  172. package/sub-language-registry.ts +0 -42
  173. package/sub-languages/capture/CompletionProvider.ts +0 -365
  174. package/sub-languages/capture/HoverProvider.ts +0 -99
  175. package/sub-languages/capture/Validator.ts +0 -97
  176. package/sub-languages/capture/index.ts +0 -72
  177. package/sub-languages/capture/language.ts +0 -176
  178. package/sub-languages/cdl.ts +0 -76
  179. package/sub-languages/pdl.ts +0 -75
  180. package/sub-languages/projection/CodeActionProvider.ts +0 -123
  181. package/sub-languages/projection/CompletionProvider.ts +0 -660
  182. package/sub-languages/projection/HoverProvider.ts +0 -377
  183. package/sub-languages/projection/Validator.ts +0 -441
  184. package/sub-languages/projection/index.ts +0 -223
  185. package/sub-languages/projection/language.ts +0 -193
  186. package/symbols.ts +0 -374
  187. package/themes/screenplay-dark.ts +0 -33
  188. package/themes/screenplay-light.ts +0 -33
  189. package/tokens.ts +0 -174
  190. package/validation.ts +0 -443
  191. package/vitest.setup.ts +0 -5
package/dist/language.js DELETED
@@ -1,196 +0,0 @@
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
- export const languageId = 'screenplay';
4
- export const languageExtensionPoint = {
5
- id: languageId,
6
- extensions: ['.play'],
7
- aliases: ['Screenplay', 'screenplay', 'play'],
8
- mimetypes: ['text/x-screenplay'],
9
- };
10
- // Every word the parser dispatches on at the top level, inside a module, or inside a slice.
11
- // `for_LanguageService.when_comparing_keywords_against_the_parsers` derives that set from
12
- // ScreenplayParser and SliceParser and fails when this list has drifted from it, so a construct
13
- // added to the compiler cannot silently lose its highlighting and completion.
14
- export const constructKeywords = [
15
- 'domain',
16
- 'import',
17
- 'concept',
18
- 'type',
19
- 'policy',
20
- 'persona',
21
- 'authentication',
22
- 'module',
23
- 'layout',
24
- 'theme',
25
- 'ui',
26
- 'feature',
27
- 'slice',
28
- 'event',
29
- 'command',
30
- 'query',
31
- 'projection',
32
- 'capture',
33
- 'reaction',
34
- 'reducer',
35
- 'trigger',
36
- 'screen',
37
- 'dialog',
38
- 'form',
39
- 'contribute',
40
- 'constraint',
41
- 'specification',
42
- 'seed',
43
- 'behavior',
44
- ];
45
- export const clauseKeywords = [
46
- 'description',
47
- 'template',
48
- 'profile',
49
- 'require',
50
- 'authenticated',
51
- 'role',
52
- 'claim',
53
- 'subject',
54
- 'authorize',
55
- 'validate',
56
- 'produces',
57
- 'reads', // A clause in command bodies and reaction trigger bodies; @reads remains a value.
58
- 'as',
59
- 'handler',
60
- 'performer',
61
- 'observable',
62
- 'identifier',
63
- 'reason',
64
- 'from',
65
- 'when',
66
- 'given',
67
- 'then',
68
- 'arguments',
69
- 'result',
70
- 'clock', // A specification step - 'given clock' and 'when clock' state an instant.
71
- 'exactly',
72
- 'error',
73
- 'message',
74
- 'not',
75
- 'empty',
76
- 'rule',
77
- 'matches',
78
- 'all',
79
- 'max',
80
- 'min',
81
- 'length',
82
- 'today',
83
- 'true',
84
- 'false',
85
- 'and',
86
- 'or',
87
- 'by',
88
- 'filter',
89
- 'data',
90
- 'via',
91
- 'action',
92
- 'navigate',
93
- 'to',
94
- 'label',
95
- 'section',
96
- 'table',
97
- 'summary',
98
- 'title',
99
- 'column',
100
- 'field',
101
- 'on',
102
- 'unique',
103
- 'file',
104
- 'concurrency',
105
- 'eventSource',
106
- 'sourceType',
107
- 'streamType',
108
- 'streamId',
109
- 'tag',
110
- 'for',
111
- 'readmodel',
112
- 'no',
113
- 'when',
114
- 'every',
115
- 'at',
116
- 'where',
117
- 'invokes',
118
- 'contains',
119
- 'starts',
120
- 'with',
121
- 'provider',
122
- // Interaction: the words a behavior body uses. The built-in interaction kinds ('click', 'submit', and
123
- // friends) are only reserved inside an `on` clause, so they are clause words rather than constructs -
124
- // an identifier of the same name elsewhere in a document remains an identifier.
125
- 'uses',
126
- 'parameter',
127
- 'order',
128
- 'execute',
129
- 'open',
130
- 'close',
131
- 'refresh',
132
- 'set',
133
- 'notify',
134
- 'confirm',
135
- 'raise',
136
- 'interval',
137
- 'success',
138
- 'failure',
139
- 'click',
140
- 'double',
141
- 'select',
142
- 'submit',
143
- 'change',
144
- 'load',
145
- 'unload',
146
- 'enter',
147
- 'leave',
148
- 'info',
149
- 'warning',
150
- ];
151
- export const codeBlockTags = ['csharp', 'typescript', 'react', 'html', 'sql'];
152
- // The roots a `$context.` path can start with — the members of CommandContext and QueryContext.
153
- export const contextRoots = [
154
- 'command',
155
- 'arguments',
156
- 'tenant',
157
- 'causedBy',
158
- 'causation',
159
- 'occurred',
160
- 'identity',
161
- ];
162
- export const causedByProperties = ['subject', 'name', 'userName'];
163
- // The properties a `$context.identity.` path can name — the members of Identity. Everything after
164
- // `claims.` is the name of a claim rather than a member, so it is never checked.
165
- export const identityProperties = ['id', 'name', 'userName', 'isAuthenticated', 'roles', 'claims'];
166
- export const sliceTypes = ['StateChange', 'StateView', 'Automation', 'Translate'];
167
- export const primitiveTypes = ['Uuid', 'String', 'Int', 'Decimal', 'Bool', 'Date', 'DateTime'];
168
- export const conceptAttributes = ['@pii', '@sensitive'];
169
- export const languageConfiguration = {
170
- comments: {
171
- lineComment: '//',
172
- },
173
- brackets: [
174
- ['(', ')'],
175
- ['[', ']'],
176
- ],
177
- autoClosingPairs: [
178
- { open: '(', close: ')' },
179
- { open: '[', close: ']' },
180
- { open: '"', close: '"' },
181
- ],
182
- surroundingPairs: [
183
- { open: '(', close: ')' },
184
- { open: '[', close: ']' },
185
- { open: '"', close: '"' },
186
- ],
187
- folding: {
188
- offSide: true,
189
- },
190
- indentationRules: {
191
- increaseIndentPattern: /^\s*(module|feature|slice|policy|persona|authentication|provider|event|command|query|type|screen|projection|capture|reaction|trigger|constraint|specification|layout|template|validate|produces|handler|performer|rule|section|concurrency|seed|for|when|then|arguments|result|every|at)\b.*$/,
192
- // Dedents are always explicit in an offside language — never auto-dedent.
193
- decreaseIndentPattern: /(?!)/,
194
- },
195
- };
196
- //# sourceMappingURL=language.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"language.js","sourceRoot":"","sources":["../language.ts"],"names":[],"mappings":"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"}
@@ -1,32 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,18 +0,0 @@
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
- const subLanguages = new Map();
4
- const listeners = new Set();
5
- export function registerSubLanguage(keyword, definition) {
6
- subLanguages.set(keyword, { keyword, ...definition });
7
- listeners.forEach((listener) => listener());
8
- }
9
- export function getSubLanguages() {
10
- return [...subLanguages.values()];
11
- }
12
- export function getSubLanguage(keyword) {
13
- return subLanguages.get(keyword);
14
- }
15
- export function onSubLanguagesChanged(listener) {
16
- listeners.add(listener);
17
- }
18
- //# sourceMappingURL=sub-language-registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sub-language-registry.js","sourceRoot":"","sources":["../sub-language-registry.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAsBrG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;AACpD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;AAExC,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,UAAiC;IAClF,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IACtD,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe;IAC3B,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC1C,OAAO,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAoB;IACtD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,332 +0,0 @@
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 { languages } from 'monaco-editor';
4
- const commonPropertyPaths = [
5
- 'id',
6
- 'status',
7
- 'firstName',
8
- 'lastName',
9
- 'fullName',
10
- 'address.street',
11
- 'address.city',
12
- 'lineItems',
13
- 'lineItems.quantity',
14
- 'lineNumber',
15
- 'quantity',
16
- ];
17
- export class CompletionProvider {
18
- triggerCharacters = ['.', ' ', '=', '$'];
19
- provideCompletionItems(model, position) {
20
- const context = this.buildContext(model, position);
21
- const suggestions = [];
22
- if (context.lineNumber === 1) {
23
- this.addCaptureLineCompletions(suggestions, context);
24
- }
25
- else if (this.isAfterKeyword(context, 'capture')) {
26
- this.addCaptureNameCompletions(suggestions, context);
27
- }
28
- else if (this.isAfterKeyword(context, 'source')) {
29
- this.addSourceTypeCompletions(suggestions, context);
30
- }
31
- else if (this.isAfterAppendKeyword(context)) {
32
- this.addAppendNameCompletions(suggestions, context);
33
- }
34
- else if (this.isAfterWhenKeyword(context)) {
35
- this.addWhenCompletions(suggestions, context);
36
- }
37
- else if (this.isAfterWhenFrom(context)) {
38
- this.addFromValueCompletions(suggestions, context);
39
- }
40
- else if (this.isAfterWhenTo(context)) {
41
- this.addToValueCompletions(suggestions, context);
42
- }
43
- else if (this.isAfterContextPrefix(context, '$.')) {
44
- this.addPathCompletions(suggestions, context, '$.');
45
- }
46
- else if (this.isAfterContextPrefix(context, '$previous.')) {
47
- this.addPathCompletions(suggestions, context, '$previous.');
48
- }
49
- else if (this.isAfterContextPrefix(context, '$context.')) {
50
- this.addContextCompletions(suggestions, context);
51
- }
52
- else if (this.isAfterContextPrefix(context, '$env.')) {
53
- this.addEnvironmentCompletions(suggestions, context);
54
- }
55
- else if (this.isAfterAssignment(context)) {
56
- this.addAssignmentValueCompletions(suggestions, context);
57
- }
58
- else if ((this.isStartOfLine(context) || this.isAfterIndent(context)) && context.indentLevel === 1) {
59
- this.addTopLevelStatementCompletions(suggestions, context);
60
- }
61
- else if ((this.isStartOfLine(context) || this.isAfterIndent(context)) && context.indentLevel >= 2) {
62
- this.addSourceBlockCompletions(suggestions, context, this.getCurrentSourceType(model, position.lineNumber));
63
- }
64
- return { suggestions };
65
- }
66
- buildContext(model, position) {
67
- const lineContent = model.getLineContent(position.lineNumber);
68
- const textBeforeCursor = lineContent.substring(0, position.column - 1);
69
- const word = model.getWordUntilPosition(position);
70
- return {
71
- textBeforeCursor,
72
- currentWord: word.word || '',
73
- indentLevel: this.getIndentLevel(textBeforeCursor),
74
- lineNumber: position.lineNumber,
75
- wordStartColumn: word.startColumn,
76
- wordEndColumn: word.endColumn,
77
- };
78
- }
79
- getIndentLevel(text) {
80
- const match = text.match(/^(\s*)/);
81
- return match ? Math.floor(match[1].length / 2) : 0;
82
- }
83
- isStartOfLine(context) {
84
- return context.textBeforeCursor.trim() === '';
85
- }
86
- isAfterIndent(context) {
87
- return /^\s+$/.test(context.textBeforeCursor);
88
- }
89
- isAfterKeyword(context, keyword) {
90
- const pattern = new RegExp(`\\b${keyword}\\s+\\w*$`);
91
- return pattern.test(context.textBeforeCursor);
92
- }
93
- isAfterAppendKeyword(context) {
94
- return /\bappend\s+[\w.]*$/.test(context.textBeforeCursor);
95
- }
96
- isAfterWhenKeyword(context) {
97
- return /\bwhen\s+[\w.]*$/.test(context.textBeforeCursor);
98
- }
99
- isAfterWhenFrom(context) {
100
- return /\bwhen\s+[\w.]+\s+from\s+[^\s]*$/.test(context.textBeforeCursor);
101
- }
102
- isAfterWhenTo(context) {
103
- return /\bwhen\s+[\w.]+\s+from\s+\S+\s+to\s+[^\s]*$/.test(context.textBeforeCursor);
104
- }
105
- isAfterAssignment(context) {
106
- return /=\s*([$\w.]*)$/.test(context.textBeforeCursor);
107
- }
108
- isAfterContextPrefix(context, prefix) {
109
- return context.textBeforeCursor.endsWith(prefix);
110
- }
111
- addCaptureLineCompletions(suggestions, context) {
112
- const trimmed = context.textBeforeCursor.trim();
113
- if (trimmed === '' || 'capture'.startsWith(trimmed)) {
114
- suggestions.push({
115
- label: 'capture',
116
- kind: languages.CompletionItemKind.Keyword,
117
- insertText: 'capture ',
118
- documentation: 'Define a capture declaration',
119
- detail: 'capture <Name>',
120
- range: this.getRangeForWord(context),
121
- });
122
- }
123
- if (trimmed.startsWith('capture ')) {
124
- this.addCaptureNameCompletions(suggestions, context);
125
- }
126
- }
127
- addCaptureNameCompletions(suggestions, context) {
128
- suggestions.push({
129
- label: 'CaptureDefinition',
130
- kind: languages.CompletionItemKind.Class,
131
- insertText: 'CaptureDefinition',
132
- documentation: 'A descriptive name for this capture declaration',
133
- detail: 'Capture name',
134
- range: this.getRangeForWord(context),
135
- });
136
- }
137
- addSourceTypeCompletions(suggestions, context) {
138
- [
139
- { label: 'api', detail: 'source api', documentation: 'Capture data by polling an HTTP API' },
140
- { label: 'webhook', detail: 'source webhook', documentation: 'Capture data from incoming webhook requests' },
141
- { label: 'message', detail: 'source message', documentation: 'Capture data from a message topic' },
142
- ].forEach((source) => {
143
- suggestions.push({
144
- label: source.label,
145
- kind: languages.CompletionItemKind.Keyword,
146
- insertText: source.label,
147
- documentation: source.documentation,
148
- detail: source.detail,
149
- range: this.getRangeForWord(context),
150
- });
151
- });
152
- }
153
- // Per source type — no `auth`/`bearer`/`url`: an API source references a named
154
- // External Service (`api <ServiceName>`) for base URL and auth; a webhook source's
155
- // authentication is configured on the source builder, not in CDL text.
156
- addSourceBlockCompletions(suggestions, context, sourceType) {
157
- const options = {
158
- api: [
159
- { label: 'api', detail: 'api <ServiceName>', documentation: 'References a configured External Service by name for the base URL and authentication' },
160
- { label: 'route', detail: 'route <path>', documentation: 'Optional path appended to the External Service base URL; if omitted, the base URL is used as-is' },
161
- { label: 'poll', detail: 'poll <interval>', documentation: 'The polling interval, for example 5m' },
162
- ],
163
- webhook: [
164
- { label: 'path', detail: 'path <route>', documentation: 'The inbound path this webhook listens on' },
165
- ],
166
- message: [
167
- { label: 'topic', detail: 'topic <name>', documentation: 'The topic or subject to subscribe to' },
168
- ],
169
- };
170
- (sourceType ? options[sourceType] ?? [] : []).forEach((option) => {
171
- suggestions.push({
172
- label: option.label,
173
- kind: languages.CompletionItemKind.Keyword,
174
- insertText: `${option.label} `,
175
- documentation: option.documentation,
176
- detail: option.detail,
177
- range: this.getRangeForWord(context),
178
- });
179
- });
180
- }
181
- addTopLevelStatementCompletions(suggestions, context) {
182
- [
183
- { label: 'key', insertText: 'key ', detail: 'key <property>', documentation: 'Identify the captured entity' },
184
- { label: 'map', insertText: 'map', detail: 'map', documentation: 'Map captured fields into a normalized shape' },
185
- { label: 'append', insertText: 'append ', detail: 'append <EventName>', documentation: 'Append an event when a condition matches' },
186
- { label: 'nested', insertText: 'nested ', detail: 'nested <property>', documentation: 'Create a nested mapping scope' },
187
- { label: 'children', insertText: 'children ', detail: 'children <collection> identified by <property>', documentation: 'Handle child collections independently' },
188
- ].forEach((statement) => {
189
- suggestions.push({
190
- label: statement.label,
191
- kind: languages.CompletionItemKind.Keyword,
192
- insertText: statement.insertText,
193
- documentation: statement.documentation,
194
- detail: statement.detail,
195
- range: this.getRangeForWord(context),
196
- });
197
- });
198
- }
199
- addAppendNameCompletions(suggestions, context) {
200
- suggestions.push({
201
- label: 'ItemChanged',
202
- kind: languages.CompletionItemKind.Class,
203
- insertText: 'ItemChanged',
204
- documentation: 'A generic event name for the appended event',
205
- detail: 'Event name',
206
- range: this.getRangeForWord(context),
207
- });
208
- }
209
- addWhenCompletions(suggestions, context) {
210
- [
211
- { label: 'added', insertText: 'added', detail: 'when added', documentation: 'Append when a child item was added' },
212
- { label: 'removed', insertText: 'removed', detail: 'when removed', documentation: 'Append when a child item was removed' },
213
- { label: 'status', insertText: 'status', detail: 'when <property>', documentation: 'Append when a property changed' },
214
- { label: 'status transition', insertText: 'status from inactive to active', detail: 'when <property> from <value> to <value>', documentation: 'Append when a property changed between two values' },
215
- { label: 'quantity', insertText: 'quantity', detail: 'when <property>', documentation: 'Append when a property changed' },
216
- { label: 'lineNumber', insertText: 'lineNumber', detail: 'when <property>', documentation: 'Append when a specific property changed' },
217
- ].forEach((option) => {
218
- suggestions.push({
219
- label: option.label,
220
- kind: languages.CompletionItemKind.Keyword,
221
- insertText: option.insertText,
222
- documentation: option.documentation,
223
- detail: option.detail,
224
- range: this.getRangeForWord(context),
225
- });
226
- });
227
- }
228
- addFromValueCompletions(suggestions, context) {
229
- [
230
- { label: '*', insertText: '*', detail: 'Wildcard', documentation: 'Match any previous value' },
231
- { label: 'inactive', insertText: 'inactive', detail: 'Common value', documentation: 'A common previous state value' },
232
- { label: 'active', insertText: 'active', detail: 'Common value', documentation: 'A common previous state value' },
233
- { label: 'true', insertText: 'true', detail: 'Boolean value', documentation: 'Boolean true' },
234
- { label: 'false', insertText: 'false', detail: 'Boolean value', documentation: 'Boolean false' },
235
- ].forEach((option) => {
236
- suggestions.push({
237
- label: option.label,
238
- kind: languages.CompletionItemKind.Value,
239
- insertText: option.insertText,
240
- documentation: option.documentation,
241
- detail: option.detail,
242
- range: this.getRangeForWord(context),
243
- });
244
- });
245
- }
246
- addToValueCompletions(suggestions, context) {
247
- ['active', 'inactive', 'pending', 'true', 'false'].forEach((value) => {
248
- suggestions.push({
249
- label: value,
250
- kind: languages.CompletionItemKind.Value,
251
- insertText: value,
252
- documentation: `Common target value: ${value}`,
253
- detail: 'Target value',
254
- range: this.getRangeForWord(context),
255
- });
256
- });
257
- }
258
- addAssignmentValueCompletions(suggestions, context) {
259
- [
260
- { label: '$.', insertText: '$.', detail: 'Current captured value', documentation: 'Reference the current captured payload' },
261
- { label: '$previous.', insertText: '$previous.', detail: 'Previous captured value', documentation: 'Reference the previous state of the payload' },
262
- { label: '$context.occurred', insertText: '$context.occurred', detail: 'Occurred timestamp', documentation: 'When the capture source produced the current data' },
263
- { label: '$context.eventSourceId', insertText: '$context.eventSourceId', detail: 'Event source identifier', documentation: 'The resolved event source identifier for the append operation' },
264
- { label: '$env.', insertText: '$env.', detail: 'Environment variable', documentation: 'Read an environment variable' },
265
- ].forEach((option) => {
266
- suggestions.push({
267
- label: option.label,
268
- kind: languages.CompletionItemKind.Variable,
269
- insertText: option.insertText,
270
- documentation: option.documentation,
271
- detail: option.detail,
272
- range: this.getRangeForWord(context),
273
- });
274
- });
275
- }
276
- addPathCompletions(suggestions, context, prefix) {
277
- commonPropertyPaths.forEach((path) => {
278
- suggestions.push({
279
- label: path,
280
- kind: languages.CompletionItemKind.Property,
281
- insertText: `${prefix}${path}`,
282
- documentation: `Common property path: ${prefix}${path}`,
283
- detail: prefix === '$.' ? 'Current value path' : 'Previous value path',
284
- range: this.getRangeForWord(context),
285
- });
286
- });
287
- }
288
- addContextCompletions(suggestions, context) {
289
- [
290
- { label: 'occurred', insertText: '$context.occurred', detail: 'When the event occurred', documentation: 'Timestamp for when the append event happened' },
291
- { label: 'eventSourceId', insertText: '$context.eventSourceId', detail: 'Event source identifier', documentation: 'The event source identifier used for the appended event' },
292
- ].forEach((option) => {
293
- suggestions.push({
294
- label: option.label,
295
- kind: languages.CompletionItemKind.Property,
296
- insertText: option.insertText,
297
- documentation: option.documentation,
298
- detail: option.detail,
299
- range: this.getRangeForWord(context),
300
- });
301
- });
302
- }
303
- addEnvironmentCompletions(suggestions, context) {
304
- suggestions.push({
305
- label: 'API_TOKEN',
306
- kind: languages.CompletionItemKind.Variable,
307
- insertText: '$env.API_TOKEN',
308
- documentation: 'Placeholder environment variable reference',
309
- detail: 'Environment variable',
310
- range: this.getRangeForWord(context),
311
- });
312
- }
313
- getCurrentSourceType(model, lineNumber) {
314
- for (let index = lineNumber; index >= 1; index--) {
315
- const line = model.getLineContent(index).trim();
316
- const match = line.match(/^source\s+(api|webhook|message)\b/);
317
- if (match) {
318
- return match[1];
319
- }
320
- }
321
- return null;
322
- }
323
- getRangeForWord(context) {
324
- return {
325
- startLineNumber: context.lineNumber,
326
- endLineNumber: context.lineNumber,
327
- startColumn: context.wordStartColumn,
328
- endColumn: context.wordEndColumn,
329
- };
330
- }
331
- }
332
- //# sourceMappingURL=CompletionProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CompletionProvider.js","sourceRoot":"","sources":["../../../sub-languages/capture/CompletionProvider.ts"],"names":[],"mappings":"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"}