@cratis/screenplay-language 0.1.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.
- package/README.md +52 -0
- package/completion-items.ts +128 -0
- package/completion-planner.ts +111 -0
- package/completions.ts +112 -0
- package/diagnostics.ts +52 -0
- package/dist/completion-items.d.ts +23 -0
- package/dist/completion-items.d.ts.map +1 -0
- package/dist/completion-items.js +105 -0
- package/dist/completion-items.js.map +1 -0
- package/dist/completion-planner.d.ts +25 -0
- package/dist/completion-planner.d.ts.map +1 -0
- package/dist/completion-planner.js +90 -0
- package/dist/completion-planner.js.map +1 -0
- package/dist/completions.d.ts +4 -0
- package/dist/completions.d.ts.map +1 -0
- package/dist/completions.js +78 -0
- package/dist/completions.js.map +1 -0
- package/dist/diagnostics.d.ts +5 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +47 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/document-context.d.ts +5 -0
- package/dist/document-context.d.ts.map +1 -0
- package/dist/document-context.js +45 -0
- package/dist/document-context.js.map +1 -0
- package/dist/hover-content.d.ts +2 -0
- package/dist/hover-content.d.ts.map +1 -0
- package/dist/hover-content.js +64 -0
- package/dist/hover-content.js.map +1 -0
- package/dist/hover.d.ts +3 -0
- package/dist/hover.d.ts.map +1 -0
- package/dist/hover.js +15 -0
- package/dist/hover.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/keyword-docs.d.ts +4 -0
- package/dist/keyword-docs.d.ts.map +1 -0
- package/dist/keyword-docs.js +100 -0
- package/dist/keyword-docs.js.map +1 -0
- package/dist/language.d.ts +12 -0
- package/dist/language.d.ts.map +1 -0
- package/dist/language.js +117 -0
- package/dist/language.js.map +1 -0
- package/dist/sub-language-registry.d.ts +20 -0
- package/dist/sub-language-registry.d.ts.map +1 -0
- package/dist/sub-language-registry.js +18 -0
- package/dist/sub-language-registry.js.map +1 -0
- package/dist/sub-languages/capture/CompletionProvider.d.ts +32 -0
- package/dist/sub-languages/capture/CompletionProvider.d.ts.map +1 -0
- package/dist/sub-languages/capture/CompletionProvider.js +332 -0
- package/dist/sub-languages/capture/CompletionProvider.js.map +1 -0
- package/dist/sub-languages/capture/HoverProvider.d.ts +8 -0
- package/dist/sub-languages/capture/HoverProvider.d.ts.map +1 -0
- package/dist/sub-languages/capture/HoverProvider.js +87 -0
- package/dist/sub-languages/capture/HoverProvider.js.map +1 -0
- package/dist/sub-languages/capture/Validator.d.ts +6 -0
- package/dist/sub-languages/capture/Validator.d.ts.map +1 -0
- package/dist/sub-languages/capture/Validator.js +72 -0
- package/dist/sub-languages/capture/Validator.js.map +1 -0
- package/dist/sub-languages/capture/index.d.ts +6 -0
- package/dist/sub-languages/capture/index.d.ts.map +1 -0
- package/dist/sub-languages/capture/index.js +58 -0
- package/dist/sub-languages/capture/index.js.map +1 -0
- package/dist/sub-languages/capture/language.d.ts +6 -0
- package/dist/sub-languages/capture/language.d.ts.map +1 -0
- package/dist/sub-languages/capture/language.js +160 -0
- package/dist/sub-languages/capture/language.js.map +1 -0
- package/dist/sub-languages/cdl.d.ts +3 -0
- package/dist/sub-languages/cdl.d.ts.map +1 -0
- package/dist/sub-languages/cdl.js +74 -0
- package/dist/sub-languages/cdl.js.map +1 -0
- package/dist/sub-languages/pdl.d.ts +3 -0
- package/dist/sub-languages/pdl.d.ts.map +1 -0
- package/dist/sub-languages/pdl.js +67 -0
- package/dist/sub-languages/pdl.js.map +1 -0
- package/dist/sub-languages/projection/CodeActionProvider.d.ts +18 -0
- package/dist/sub-languages/projection/CodeActionProvider.d.ts.map +1 -0
- package/dist/sub-languages/projection/CodeActionProvider.js +93 -0
- package/dist/sub-languages/projection/CodeActionProvider.js.map +1 -0
- package/dist/sub-languages/projection/CompletionProvider.d.ts +41 -0
- package/dist/sub-languages/projection/CompletionProvider.d.ts.map +1 -0
- package/dist/sub-languages/projection/CompletionProvider.js +591 -0
- package/dist/sub-languages/projection/CompletionProvider.js.map +1 -0
- package/dist/sub-languages/projection/HoverProvider.d.ts +24 -0
- package/dist/sub-languages/projection/HoverProvider.d.ts.map +1 -0
- package/dist/sub-languages/projection/HoverProvider.js +298 -0
- package/dist/sub-languages/projection/HoverProvider.js.map +1 -0
- package/dist/sub-languages/projection/Validator.d.ts +22 -0
- package/dist/sub-languages/projection/Validator.d.ts.map +1 -0
- package/dist/sub-languages/projection/Validator.js +339 -0
- package/dist/sub-languages/projection/Validator.js.map +1 -0
- package/dist/sub-languages/projection/index.d.ts +49 -0
- package/dist/sub-languages/projection/index.d.ts.map +1 -0
- package/dist/sub-languages/projection/index.js +160 -0
- package/dist/sub-languages/projection/index.js.map +1 -0
- package/dist/sub-languages/projection/language.d.ts +5 -0
- package/dist/sub-languages/projection/language.d.ts.map +1 -0
- package/dist/sub-languages/projection/language.js +171 -0
- package/dist/sub-languages/projection/language.js.map +1 -0
- package/dist/symbols.d.ts +45 -0
- package/dist/symbols.d.ts.map +1 -0
- package/dist/symbols.js +100 -0
- package/dist/symbols.js.map +1 -0
- package/dist/themes/screenplay-dark.d.ts +4 -0
- package/dist/themes/screenplay-dark.d.ts.map +1 -0
- package/dist/themes/screenplay-dark.js +29 -0
- package/dist/themes/screenplay-dark.js.map +1 -0
- package/dist/themes/screenplay-light.d.ts +4 -0
- package/dist/themes/screenplay-light.d.ts.map +1 -0
- package/dist/themes/screenplay-light.js +29 -0
- package/dist/themes/screenplay-light.js.map +1 -0
- package/dist/tokens.d.ts +5 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +121 -0
- package/dist/tokens.js.map +1 -0
- package/dist/validation.d.ts +10 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +101 -0
- package/dist/validation.js.map +1 -0
- package/document-context.ts +51 -0
- package/hover-content.ts +76 -0
- package/hover.ts +23 -0
- package/index.ts +98 -0
- package/keyword-docs.ts +102 -0
- package/language.ts +130 -0
- package/package.json +44 -0
- package/sub-language-registry.ts +42 -0
- package/sub-languages/capture/CompletionProvider.ts +365 -0
- package/sub-languages/capture/HoverProvider.ts +99 -0
- package/sub-languages/capture/Validator.ts +97 -0
- package/sub-languages/capture/index.ts +72 -0
- package/sub-languages/capture/language.ts +176 -0
- package/sub-languages/cdl.ts +76 -0
- package/sub-languages/pdl.ts +69 -0
- package/sub-languages/projection/CodeActionProvider.ts +123 -0
- package/sub-languages/projection/CompletionProvider.ts +653 -0
- package/sub-languages/projection/HoverProvider.ts +338 -0
- package/sub-languages/projection/Validator.ts +387 -0
- package/sub-languages/projection/index.ts +223 -0
- package/sub-languages/projection/language.ts +193 -0
- package/symbols.ts +161 -0
- package/themes/screenplay-dark.ts +32 -0
- package/themes/screenplay-light.ts +32 -0
- package/tokens.ts +145 -0
- package/validation.ts +145 -0
|
@@ -0,0 +1,171 @@
|
|
|
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 = 'pdl';
|
|
4
|
+
// Keywords for the Projection Declaration Language
|
|
5
|
+
const KEYWORDS = [
|
|
6
|
+
'projection',
|
|
7
|
+
'sequence',
|
|
8
|
+
'all',
|
|
9
|
+
'every',
|
|
10
|
+
'on',
|
|
11
|
+
'from',
|
|
12
|
+
'key',
|
|
13
|
+
'parent',
|
|
14
|
+
'join',
|
|
15
|
+
'automap',
|
|
16
|
+
'no',
|
|
17
|
+
'children',
|
|
18
|
+
'nested',
|
|
19
|
+
'identified',
|
|
20
|
+
'by',
|
|
21
|
+
'add',
|
|
22
|
+
'subtract',
|
|
23
|
+
'remove',
|
|
24
|
+
'via',
|
|
25
|
+
'with',
|
|
26
|
+
'default',
|
|
27
|
+
'increment',
|
|
28
|
+
'decrement',
|
|
29
|
+
'count',
|
|
30
|
+
'set',
|
|
31
|
+
'unset',
|
|
32
|
+
'clear',
|
|
33
|
+
'events',
|
|
34
|
+
'id',
|
|
35
|
+
'exclude',
|
|
36
|
+
];
|
|
37
|
+
// Built-in expressions and functions
|
|
38
|
+
const BUILTINS = [
|
|
39
|
+
'$eventSourceId',
|
|
40
|
+
'$causedBy',
|
|
41
|
+
'$occurred',
|
|
42
|
+
'$namespace',
|
|
43
|
+
'$eventContext',
|
|
44
|
+
];
|
|
45
|
+
// Operators
|
|
46
|
+
const OPERATORS = ['=', '+=', '-=', '=>', '.'];
|
|
47
|
+
export const configuration = {
|
|
48
|
+
comments: {
|
|
49
|
+
lineComment: '#',
|
|
50
|
+
},
|
|
51
|
+
brackets: [
|
|
52
|
+
['{', '}'],
|
|
53
|
+
['[', ']'],
|
|
54
|
+
['(', ')'],
|
|
55
|
+
],
|
|
56
|
+
autoClosingPairs: [
|
|
57
|
+
{ open: '{', close: '}' },
|
|
58
|
+
{ open: '[', close: ']' },
|
|
59
|
+
{ open: '(', close: ')' },
|
|
60
|
+
{ open: '"', close: '"' },
|
|
61
|
+
{ open: "'", close: "'" },
|
|
62
|
+
{ open: '`', close: '`' },
|
|
63
|
+
],
|
|
64
|
+
surroundingPairs: [
|
|
65
|
+
{ open: '{', close: '}' },
|
|
66
|
+
{ open: '[', close: ']' },
|
|
67
|
+
{ open: '(', close: ')' },
|
|
68
|
+
{ open: '"', close: '"' },
|
|
69
|
+
{ open: "'", close: "'" },
|
|
70
|
+
{ open: '`', close: '`' },
|
|
71
|
+
],
|
|
72
|
+
indentationRules: {
|
|
73
|
+
increaseIndentPattern: /^.*(:|\bon\b|\ball\b|\bevery\b|\bchildren\b|\bnested\b|\bparent\b)\s*$/,
|
|
74
|
+
decreaseIndentPattern: /^.*\}.*$/,
|
|
75
|
+
},
|
|
76
|
+
folding: {
|
|
77
|
+
offSide: true,
|
|
78
|
+
markers: {
|
|
79
|
+
start: /^\s*(projection|all|every|on|children|nested|parent)/,
|
|
80
|
+
end: /^\s*$/,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
wordPattern: /@?[a-zA-Z_$][\w$-]*/,
|
|
84
|
+
};
|
|
85
|
+
export const monarchLanguage = {
|
|
86
|
+
defaultToken: '',
|
|
87
|
+
tokenPostfix: '.pdl',
|
|
88
|
+
keywords: KEYWORDS,
|
|
89
|
+
builtins: BUILTINS,
|
|
90
|
+
operators: OPERATORS,
|
|
91
|
+
// Symbols
|
|
92
|
+
symbols: /[=><!~?:&|+\-*/^%]+/,
|
|
93
|
+
escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
|
|
94
|
+
tokenizer: {
|
|
95
|
+
root: [
|
|
96
|
+
// Whitespace
|
|
97
|
+
{ include: '@whitespace' },
|
|
98
|
+
// Template strings with ${...} interpolation
|
|
99
|
+
[/`/, { token: 'string.template', next: '@templateString' }],
|
|
100
|
+
// Escaped identifiers (@ prefix allows using keywords as identifiers)
|
|
101
|
+
[/@[a-zA-Z_$][\w$]*/, 'identifier.escape'],
|
|
102
|
+
// Check for uppercase keywords (error case - keywords must be lowercase)
|
|
103
|
+
[
|
|
104
|
+
/[A-Z][a-zA-Z_$][\w$]*/,
|
|
105
|
+
{
|
|
106
|
+
cases: {
|
|
107
|
+
'@keywords': 'invalid',
|
|
108
|
+
'@default': 'identifier',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
// Identifiers and keywords (lowercase only for keywords)
|
|
113
|
+
[
|
|
114
|
+
/[a-z_$][\w$]*/,
|
|
115
|
+
{
|
|
116
|
+
cases: {
|
|
117
|
+
'@keywords': 'keyword',
|
|
118
|
+
'@builtins': 'variable.predefined',
|
|
119
|
+
'@default': 'identifier',
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
],
|
|
123
|
+
// Delimiters and operators
|
|
124
|
+
[/[{}()[\]]/, '@brackets'],
|
|
125
|
+
[/=>/, 'operator.arrow'],
|
|
126
|
+
[
|
|
127
|
+
/@symbols/,
|
|
128
|
+
{
|
|
129
|
+
cases: {
|
|
130
|
+
'@operators': 'operator',
|
|
131
|
+
'@default': '',
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
// Numbers
|
|
136
|
+
[/\d*\.\d+([eE][-+]?\d+)?/, 'number.float'],
|
|
137
|
+
[/0[xX][0-9a-fA-F]+/, 'number.hex'],
|
|
138
|
+
[/\d+/, 'number'],
|
|
139
|
+
// Delimiter: after number because of .\d floats
|
|
140
|
+
[/[;,.]/, 'delimiter'],
|
|
141
|
+
// Strings
|
|
142
|
+
[/"([^"\\]|\\.)*$/, 'string.invalid'],
|
|
143
|
+
[/"/, { token: 'string.quote', next: '@string' }],
|
|
144
|
+
],
|
|
145
|
+
whitespace: [
|
|
146
|
+
[/[ \t\r\n]+/, ''],
|
|
147
|
+
[/#.*$/, 'comment'],
|
|
148
|
+
],
|
|
149
|
+
// Template string state
|
|
150
|
+
templateString: [
|
|
151
|
+
[/\$\{/, { token: 'delimiter.bracket', next: '@templateExpression' }],
|
|
152
|
+
[/[^\\`$]+/, 'string.template'],
|
|
153
|
+
[/@escapes/, 'string.template.escape'],
|
|
154
|
+
[/\\./, 'string.template.escape.invalid'],
|
|
155
|
+
[/`/, { token: 'string.template', next: '@pop' }],
|
|
156
|
+
],
|
|
157
|
+
// Template expression inside ${}
|
|
158
|
+
templateExpression: [
|
|
159
|
+
[/\}/, { token: 'delimiter.bracket', next: '@pop' }],
|
|
160
|
+
{ include: '@root' },
|
|
161
|
+
],
|
|
162
|
+
// Regular string state
|
|
163
|
+
string: [
|
|
164
|
+
[/[^\\"]+/, 'string'],
|
|
165
|
+
[/@escapes/, 'string.escape'],
|
|
166
|
+
[/\\./, 'string.escape.invalid'],
|
|
167
|
+
[/"/, { token: 'string.quote', next: '@pop' }],
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=language.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"language.js","sourceRoot":"","sources":["../../../sub-languages/projection/language.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface PropertySymbol {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ConceptSymbol {
|
|
6
|
+
name: string;
|
|
7
|
+
primitive: string;
|
|
8
|
+
attributes: string[];
|
|
9
|
+
enumValues: string[];
|
|
10
|
+
line: number;
|
|
11
|
+
}
|
|
12
|
+
export interface PolicySymbol {
|
|
13
|
+
name: string;
|
|
14
|
+
requires: string[];
|
|
15
|
+
line: number;
|
|
16
|
+
}
|
|
17
|
+
export interface EventSymbol {
|
|
18
|
+
name: string;
|
|
19
|
+
properties: PropertySymbol[];
|
|
20
|
+
line: number;
|
|
21
|
+
}
|
|
22
|
+
export interface NamedSymbol {
|
|
23
|
+
name: string;
|
|
24
|
+
line: number;
|
|
25
|
+
}
|
|
26
|
+
export interface QuerySymbol extends NamedSymbol {
|
|
27
|
+
returnType: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ImportSymbol {
|
|
30
|
+
qualifiedName: string;
|
|
31
|
+
shortName: string;
|
|
32
|
+
line: number;
|
|
33
|
+
}
|
|
34
|
+
export interface DocumentSymbols {
|
|
35
|
+
imports: ImportSymbol[];
|
|
36
|
+
concepts: ConceptSymbol[];
|
|
37
|
+
policies: PolicySymbol[];
|
|
38
|
+
events: EventSymbol[];
|
|
39
|
+
commands: NamedSymbol[];
|
|
40
|
+
queries: QuerySymbol[];
|
|
41
|
+
screens: NamedSymbol[];
|
|
42
|
+
}
|
|
43
|
+
export declare function scanDocument(lines: string[]): DocumentSymbols;
|
|
44
|
+
export declare function knownEventNames(symbols: DocumentSymbols): string[];
|
|
45
|
+
//# sourceMappingURL=symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,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,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,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,EAAE,cAAc,EAAE,CAAC;IAC7B,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;CACtB;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,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B;AAoBD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,CAgF7D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAKlE"}
|
package/dist/symbols.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
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 { fenceMap, indentOf } from './document-context';
|
|
4
|
+
const conceptPattern = /^concept\s+(\w+)\s*:\s*(\w+)((?:\s+@\w+)*)\s*$/;
|
|
5
|
+
const propertyPattern = /^\s*([a-z_]\w*)\s+([\w.]+(?:\[\])?\??)\s*$/;
|
|
6
|
+
function collectBody(lines, fences, start, indent) {
|
|
7
|
+
const body = [];
|
|
8
|
+
for (let index = start + 1; index < lines.length; index++) {
|
|
9
|
+
if (fences[index]) {
|
|
10
|
+
body.push(index);
|
|
11
|
+
continue;
|
|
12
|
+
}
|
|
13
|
+
const line = lines[index];
|
|
14
|
+
if (line.trim().length === 0)
|
|
15
|
+
continue;
|
|
16
|
+
if (indentOf(line) <= indent)
|
|
17
|
+
break;
|
|
18
|
+
body.push(index);
|
|
19
|
+
}
|
|
20
|
+
return body;
|
|
21
|
+
}
|
|
22
|
+
export function scanDocument(lines) {
|
|
23
|
+
const symbols = {
|
|
24
|
+
imports: [],
|
|
25
|
+
concepts: [],
|
|
26
|
+
policies: [],
|
|
27
|
+
events: [],
|
|
28
|
+
commands: [],
|
|
29
|
+
queries: [],
|
|
30
|
+
screens: [],
|
|
31
|
+
};
|
|
32
|
+
const fences = fenceMap(lines);
|
|
33
|
+
for (let index = 0; index < lines.length; index++) {
|
|
34
|
+
if (fences[index])
|
|
35
|
+
continue;
|
|
36
|
+
const line = lines[index];
|
|
37
|
+
const trimmed = line.trim();
|
|
38
|
+
const indent = indentOf(line);
|
|
39
|
+
const importMatch = trimmed.match(/^import\s+([\w.]+)\s*$/);
|
|
40
|
+
if (importMatch && indent === 0) {
|
|
41
|
+
const qualifiedName = importMatch[1];
|
|
42
|
+
const shortName = qualifiedName.split('.').pop() ?? qualifiedName;
|
|
43
|
+
symbols.imports.push({ qualifiedName, shortName, line: index });
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const conceptMatch = trimmed.match(conceptPattern);
|
|
47
|
+
if (conceptMatch) {
|
|
48
|
+
const enumValues = conceptMatch[2] === 'Enum'
|
|
49
|
+
? collectBody(lines, fences, index, indent).map((i) => lines[i].trim())
|
|
50
|
+
: [];
|
|
51
|
+
symbols.concepts.push({
|
|
52
|
+
name: conceptMatch[1],
|
|
53
|
+
primitive: conceptMatch[2],
|
|
54
|
+
attributes: conceptMatch[3].trim().split(/\s+/).filter(Boolean),
|
|
55
|
+
enumValues,
|
|
56
|
+
line: index,
|
|
57
|
+
});
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
const policyMatch = trimmed.match(/^policy\s+(\w+)\s*$/);
|
|
61
|
+
if (policyMatch) {
|
|
62
|
+
const requires = collectBody(lines, fences, index, indent)
|
|
63
|
+
.filter((i) => !fences[i])
|
|
64
|
+
.map((i) => lines[i].trim());
|
|
65
|
+
symbols.policies.push({ name: policyMatch[1], requires, line: index });
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const eventMatch = trimmed.match(/^event\s+(\w+)\s*$/);
|
|
69
|
+
if (eventMatch) {
|
|
70
|
+
const properties = collectBody(lines, fences, index, indent)
|
|
71
|
+
.map((i) => lines[i].match(propertyPattern))
|
|
72
|
+
.filter((match) => match !== null)
|
|
73
|
+
.map((match) => ({ name: match[1], type: match[2] }));
|
|
74
|
+
symbols.events.push({ name: eventMatch[1], properties, line: index });
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
const commandMatch = trimmed.match(/^command\s+(\w+)\s*$/);
|
|
78
|
+
if (commandMatch) {
|
|
79
|
+
symbols.commands.push({ name: commandMatch[1], line: index });
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const queryMatch = trimmed.match(/^query\s+(\w+)\s*=>\s*([\w[\]]+)\s*$/);
|
|
83
|
+
if (queryMatch) {
|
|
84
|
+
symbols.queries.push({ name: queryMatch[1], returnType: queryMatch[2], line: index });
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
const screenMatch = trimmed.match(/^screen\s+(\w+)\s*$/);
|
|
88
|
+
if (screenMatch) {
|
|
89
|
+
symbols.screens.push({ name: screenMatch[1], line: index });
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return symbols;
|
|
93
|
+
}
|
|
94
|
+
export function knownEventNames(symbols) {
|
|
95
|
+
return [
|
|
96
|
+
...symbols.events.map((event) => event.name),
|
|
97
|
+
...symbols.imports.map((imported) => imported.shortName),
|
|
98
|
+
];
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../symbols.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenplay-dark.d.ts","sourceRoot":"","sources":["../../themes/screenplay-dark.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,uBAAuB,oBAAoB,CAAC;AAEzD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,oBAwBnC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 screenplayDarkThemeName = 'screenplay-dark';
|
|
4
|
+
export const screenplayDark = {
|
|
5
|
+
base: 'vs-dark',
|
|
6
|
+
inherit: true,
|
|
7
|
+
rules: [
|
|
8
|
+
{ token: 'keyword.play', foreground: 'C586C0' },
|
|
9
|
+
{ token: 'keyword.tag.play', foreground: '569CD6', fontStyle: 'italic' },
|
|
10
|
+
{ token: 'keyword.type.play', foreground: '4FC1FF', fontStyle: 'bold' },
|
|
11
|
+
{ token: 'type.play', foreground: '4EC9B0' },
|
|
12
|
+
{ token: 'type.identifier.play', foreground: '4EC9B0' },
|
|
13
|
+
{ token: 'identifier.play', foreground: '9CDCFE' },
|
|
14
|
+
{ token: 'annotation.play', foreground: 'DCDCAA' },
|
|
15
|
+
{ token: 'variable.predefined.play', foreground: 'D7BA7D' },
|
|
16
|
+
{ token: 'string.play', foreground: 'CE9178' },
|
|
17
|
+
{ token: 'string.invalid.play', foreground: 'F44747' },
|
|
18
|
+
{ token: 'string.quote.play', foreground: '6A9955' },
|
|
19
|
+
{ token: 'number.play', foreground: 'B5CEA8' },
|
|
20
|
+
{ token: 'number.float.play', foreground: 'B5CEA8' },
|
|
21
|
+
{ token: 'comment.play', foreground: '6A9955', fontStyle: 'italic' },
|
|
22
|
+
{ token: 'operator.play', foreground: 'D4D4D4' },
|
|
23
|
+
{ token: 'delimiter.play', foreground: 'CCCCCC' },
|
|
24
|
+
],
|
|
25
|
+
colors: {
|
|
26
|
+
'editor.background': '#1E1E1E',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=screenplay-dark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenplay-dark.js","sourceRoot":"","sources":["../../themes/screenplay-dark.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAEzD,MAAM,CAAC,MAAM,cAAc,GAAgC;IACvD,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,KAAK,EAAE;QACH,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC/C,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;QACxE,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;QACvE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC5C,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACvD,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE;QAClD,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE;QAClD,EAAE,KAAK,EAAE,0BAA0B,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC9C,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACtD,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACpD,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC9C,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACpD,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;QACpE,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE;QAChD,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE;KACpD;IACD,MAAM,EAAE;QACJ,mBAAmB,EAAE,SAAS;KACjC;CACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenplay-light.d.ts","sourceRoot":"","sources":["../../themes/screenplay-light.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAE3D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,oBAwBpC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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 screenplayLightThemeName = 'screenplay-light';
|
|
4
|
+
export const screenplayLight = {
|
|
5
|
+
base: 'vs',
|
|
6
|
+
inherit: true,
|
|
7
|
+
rules: [
|
|
8
|
+
{ token: 'keyword.play', foreground: 'AF00DB' },
|
|
9
|
+
{ token: 'keyword.tag.play', foreground: '0000FF', fontStyle: 'italic' },
|
|
10
|
+
{ token: 'keyword.type.play', foreground: '0070C1', fontStyle: 'bold' },
|
|
11
|
+
{ token: 'type.play', foreground: '267F99' },
|
|
12
|
+
{ token: 'type.identifier.play', foreground: '267F99' },
|
|
13
|
+
{ token: 'identifier.play', foreground: '001080' },
|
|
14
|
+
{ token: 'annotation.play', foreground: '795E26' },
|
|
15
|
+
{ token: 'variable.predefined.play', foreground: 'B45309' },
|
|
16
|
+
{ token: 'string.play', foreground: 'A31515' },
|
|
17
|
+
{ token: 'string.invalid.play', foreground: 'CD3131' },
|
|
18
|
+
{ token: 'string.quote.play', foreground: '008000' },
|
|
19
|
+
{ token: 'number.play', foreground: '098658' },
|
|
20
|
+
{ token: 'number.float.play', foreground: '098658' },
|
|
21
|
+
{ token: 'comment.play', foreground: '008000', fontStyle: 'italic' },
|
|
22
|
+
{ token: 'operator.play', foreground: '000000' },
|
|
23
|
+
{ token: 'delimiter.play', foreground: '000000' },
|
|
24
|
+
],
|
|
25
|
+
colors: {
|
|
26
|
+
'editor.background': '#FFFFFF',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=screenplay-light.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenplay-light.js","sourceRoot":"","sources":["../../themes/screenplay-light.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAIrG,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAgC;IACxD,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE;QACH,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC/C,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;QACxE,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;QACvE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC5C,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACvD,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE;QAClD,EAAE,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,QAAQ,EAAE;QAClD,EAAE,KAAK,EAAE,0BAA0B,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC3D,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC9C,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACtD,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACpD,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC9C,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE;QACpD,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE;QACpE,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE;QAChD,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE;KACpD;IACD,MAAM,EAAE;QACJ,mBAAmB,EAAE,SAAS;KACjC;CACJ,CAAC"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { languages } from 'monaco-editor';
|
|
2
|
+
import { MonarchTokenRules, SubLanguage } from './sub-language-registry';
|
|
3
|
+
export declare const commonTokenRules: MonarchTokenRules;
|
|
4
|
+
export declare function createTokensProvider(subLanguages: SubLanguage[]): languages.IMonarchLanguage;
|
|
5
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +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;AAyBzE,eAAO,MAAM,gBAAgB,EAAE,iBAa9B,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC,gBAAgB,CA6F5F"}
|
package/dist/tokens.js
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
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 { clauseKeywords, codeBlockTags, constructKeywords, primitiveTypes, sliceTypes, } from './language';
|
|
4
|
+
// Maps a Screenplay inline code tag to the Monaco language id used for embedded highlighting.
|
|
5
|
+
const embeddedLanguages = {
|
|
6
|
+
csharp: 'csharp',
|
|
7
|
+
typescript: 'typescript',
|
|
8
|
+
react: 'typescript',
|
|
9
|
+
html: 'html',
|
|
10
|
+
};
|
|
11
|
+
function subLanguageState(keyword) {
|
|
12
|
+
return `subLanguage_${keyword}`;
|
|
13
|
+
}
|
|
14
|
+
// A construct keyword at the start of a line ends any indented sub-language block.
|
|
15
|
+
function subLanguageExitRule(subLanguages) {
|
|
16
|
+
const exitKeywords = [...constructKeywords, ...subLanguages.map((subLanguage) => subLanguage.keyword)];
|
|
17
|
+
return [
|
|
18
|
+
new RegExp(`^\\s*(?:${exitKeywords.join('|')})\\b`),
|
|
19
|
+
{ token: '@rematch', next: '@pop' },
|
|
20
|
+
];
|
|
21
|
+
}
|
|
22
|
+
// Shared across the composite `.play` tokenizer and every standalone sub-language tokenizer
|
|
23
|
+
// (comments, `$`-prefixed context variables, strings, numbers, operators, delimiters, whitespace).
|
|
24
|
+
export const commonTokenRules = [
|
|
25
|
+
[/\/\/.*$/, 'comment'],
|
|
26
|
+
[/\$(?:context|eventContext|eventSourceId|causedBy)(?:\.\w+)*/, 'variable.predefined'],
|
|
27
|
+
[/\$(?:env|secrets|strings)\.[\w.]+/, 'variable.predefined'],
|
|
28
|
+
[/\$\.[\w.]*/, 'variable.predefined'],
|
|
29
|
+
[/"(?:[^"\\]|\\.)*"/, 'string'],
|
|
30
|
+
[/"(?:[^"\\]|\\.)*$/, 'string.invalid'],
|
|
31
|
+
[/\d+(?:ms|s|m|h|d)\b/, 'number'],
|
|
32
|
+
[/-?\d+\.\d+/, 'number.float'],
|
|
33
|
+
[/-?\d+/, 'number'],
|
|
34
|
+
[/=>|==|!=|>=|<=|[><=:?]/, 'operator'],
|
|
35
|
+
[/[[\](),.]/, 'delimiter'],
|
|
36
|
+
[/\s+/, 'white'],
|
|
37
|
+
];
|
|
38
|
+
export function createTokensProvider(subLanguages) {
|
|
39
|
+
const tokenizer = {
|
|
40
|
+
root: [
|
|
41
|
+
// Inline code block tags at end of line open an embedded code block.
|
|
42
|
+
...codeBlockTags.map((tag) => [
|
|
43
|
+
new RegExp(`\\b${tag}\\b(?=\\s*$)`),
|
|
44
|
+
{ token: 'keyword.tag', next: `@codeBlockPending.${embeddedLanguages[tag]}` },
|
|
45
|
+
]),
|
|
46
|
+
// Sub-language constructs switch to the registered sub-language's token rules.
|
|
47
|
+
...subLanguages.map((subLanguage) => [
|
|
48
|
+
new RegExp(`\\b${subLanguage.keyword}\\b`),
|
|
49
|
+
{ token: 'keyword', next: `@${subLanguageState(subLanguage.keyword)}` },
|
|
50
|
+
]),
|
|
51
|
+
// A bare description keyword at end of line opens a fenced plain-text block.
|
|
52
|
+
[/\bdescription\b(?=\s*$)/, { token: 'keyword', next: '@descriptionBlockPending' }],
|
|
53
|
+
[/\brow-click\b/, 'keyword'],
|
|
54
|
+
[/@\w+/, 'annotation'],
|
|
55
|
+
[
|
|
56
|
+
/[A-Z]\w*/,
|
|
57
|
+
{
|
|
58
|
+
cases: {
|
|
59
|
+
'@sliceTypes': 'keyword.type',
|
|
60
|
+
'@primitiveTypes': 'type',
|
|
61
|
+
'@default': 'type.identifier',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
/[a-z_]\w*/,
|
|
67
|
+
{
|
|
68
|
+
cases: {
|
|
69
|
+
'@keywords': 'keyword',
|
|
70
|
+
'@default': 'identifier',
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
{ include: '@common' },
|
|
75
|
+
],
|
|
76
|
+
common: commonTokenRules,
|
|
77
|
+
// After a code tag, the only thing allowed before the opening fence is whitespace.
|
|
78
|
+
codeBlockPending: [
|
|
79
|
+
[
|
|
80
|
+
/^\s*```\s*$/,
|
|
81
|
+
{ token: 'string.quote', switchTo: '@codeBlock.$S2', nextEmbedded: '$S2' },
|
|
82
|
+
],
|
|
83
|
+
[/^\s*[^\s`].*$/, { token: '@rematch', next: '@pop' }],
|
|
84
|
+
[/\s+/, 'white'],
|
|
85
|
+
],
|
|
86
|
+
codeBlock: [
|
|
87
|
+
[/^\s*```\s*$/, { token: 'string.quote', next: '@pop', nextEmbedded: '@pop' }],
|
|
88
|
+
[/[^`]+/, ''],
|
|
89
|
+
[/`/, ''],
|
|
90
|
+
],
|
|
91
|
+
// After a bare description, the only thing allowed before the opening fence is whitespace.
|
|
92
|
+
descriptionBlockPending: [
|
|
93
|
+
[/^\s*```\s*$/, { token: 'string.quote', switchTo: '@descriptionBlock' }],
|
|
94
|
+
[/^\s*[^\s`].*$/, { token: '@rematch', next: '@pop' }],
|
|
95
|
+
[/\s+/, 'white'],
|
|
96
|
+
],
|
|
97
|
+
descriptionBlock: [
|
|
98
|
+
[/^\s*```\s*$/, { token: 'string.quote', next: '@pop' }],
|
|
99
|
+
[/.+/, 'string'],
|
|
100
|
+
],
|
|
101
|
+
};
|
|
102
|
+
for (const subLanguage of subLanguages) {
|
|
103
|
+
tokenizer[subLanguageState(subLanguage.keyword)] = [
|
|
104
|
+
subLanguageExitRule(subLanguages),
|
|
105
|
+
...subLanguage.tokens,
|
|
106
|
+
{ include: '@common' },
|
|
107
|
+
[/[A-Z]\w*/, 'type.identifier'],
|
|
108
|
+
[/[a-z_]\w*/, 'identifier'],
|
|
109
|
+
];
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
defaultToken: '',
|
|
113
|
+
tokenPostfix: '.play',
|
|
114
|
+
ignoreCase: false,
|
|
115
|
+
keywords: [...constructKeywords, ...clauseKeywords, ...codeBlockTags],
|
|
116
|
+
sliceTypes,
|
|
117
|
+
primitiveTypes,
|
|
118
|
+
tokenizer,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type ValidationSeverity = 'error' | 'warning';
|
|
2
|
+
export interface ValidationIssue {
|
|
3
|
+
line: number;
|
|
4
|
+
startColumn: number;
|
|
5
|
+
endColumn: number;
|
|
6
|
+
message: string;
|
|
7
|
+
severity: ValidationSeverity;
|
|
8
|
+
}
|
|
9
|
+
export declare function validateLines(lines: string[]): ValidationIssue[];
|
|
10
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../validation.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,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;CAChC;AAyBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAwGhE"}
|