@openrewrite/rewrite 8.67.0-20251106-160325 → 8.67.0-20251107-071946
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/dist/java/tree.d.ts +2 -0
- package/dist/java/tree.d.ts.map +1 -1
- package/dist/java/tree.js +5 -1
- package/dist/java/tree.js.map +1 -1
- package/dist/javascript/assertions.js +2 -2
- package/dist/javascript/assertions.js.map +1 -1
- package/dist/javascript/format.js +1 -1
- package/dist/javascript/format.js.map +1 -1
- package/dist/javascript/templating/engine.d.ts +34 -8
- package/dist/javascript/templating/engine.d.ts.map +1 -1
- package/dist/javascript/templating/engine.js +317 -60
- package/dist/javascript/templating/engine.js.map +1 -1
- package/dist/javascript/templating/pattern.d.ts +11 -0
- package/dist/javascript/templating/pattern.d.ts.map +1 -1
- package/dist/javascript/templating/pattern.js +36 -295
- package/dist/javascript/templating/pattern.js.map +1 -1
- package/dist/javascript/templating/placeholder-replacement.d.ts +1 -1
- package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -1
- package/dist/javascript/templating/template.d.ts +9 -2
- package/dist/javascript/templating/template.d.ts.map +1 -1
- package/dist/javascript/templating/template.js +37 -0
- package/dist/javascript/templating/template.js.map +1 -1
- package/dist/javascript/templating/types.d.ts +26 -11
- package/dist/javascript/templating/types.d.ts.map +1 -1
- package/dist/javascript/templating/utils.d.ts +41 -22
- package/dist/javascript/templating/utils.d.ts.map +1 -1
- package/dist/javascript/templating/utils.js +111 -76
- package/dist/javascript/templating/utils.js.map +1 -1
- package/dist/version.txt +1 -1
- package/package.json +3 -1
- package/src/java/tree.ts +2 -0
- package/src/javascript/assertions.ts +1 -1
- package/src/javascript/format.ts +1 -1
- package/src/javascript/templating/engine.ts +376 -54
- package/src/javascript/templating/pattern.ts +55 -322
- package/src/javascript/templating/placeholder-replacement.ts +1 -1
- package/src/javascript/templating/template.ts +57 -3
- package/src/javascript/templating/types.ts +27 -11
- package/src/javascript/templating/utils.ts +113 -81
|
@@ -10,96 +10,201 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.TemplateApplier = exports.TemplateEngine = void 0;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* <p>
|
|
16
|
-
* Licensed under the Moderne Source Available License (the "License");
|
|
17
|
-
* you may not use this file except in compliance with the License.
|
|
18
|
-
* You may obtain a copy of the License at
|
|
19
|
-
* <p>
|
|
20
|
-
* https://docs.moderne.io/licensing/moderne-source-available-license
|
|
21
|
-
* <p>
|
|
22
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
23
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
24
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
25
|
-
* See the License for the specific language governing permissions and
|
|
26
|
-
* limitations under the License.
|
|
27
|
-
*/
|
|
13
|
+
exports.setTemplateSourceFileCache = setTemplateSourceFileCache;
|
|
14
|
+
exports.clearTemplateCache = clearTemplateCache;
|
|
28
15
|
const __1 = require("../..");
|
|
29
16
|
const java_1 = require("../../java");
|
|
30
|
-
const __2 = require("..");
|
|
31
17
|
const immer_1 = require("immer");
|
|
32
18
|
const utils_1 = require("./utils");
|
|
33
19
|
const capture_1 = require("./capture");
|
|
34
20
|
const placeholder_replacement_1 = require("./placeholder-replacement");
|
|
21
|
+
const visitor_1 = require("../visitor");
|
|
22
|
+
const parser_1 = require("../parser");
|
|
23
|
+
const dependency_workspace_1 = require("../dependency-workspace");
|
|
24
|
+
/**
|
|
25
|
+
* Simple LRU (Least Recently Used) cache implementation.
|
|
26
|
+
* Used for template/pattern compilation caching with bounded memory usage.
|
|
27
|
+
*/
|
|
28
|
+
class LRUCache {
|
|
29
|
+
constructor(maxSize) {
|
|
30
|
+
this.maxSize = maxSize;
|
|
31
|
+
this.cache = new Map();
|
|
32
|
+
}
|
|
33
|
+
get(key) {
|
|
34
|
+
const value = this.cache.get(key);
|
|
35
|
+
if (value !== undefined) {
|
|
36
|
+
// Move to end (most recently used)
|
|
37
|
+
this.cache.delete(key);
|
|
38
|
+
this.cache.set(key, value);
|
|
39
|
+
}
|
|
40
|
+
return value;
|
|
41
|
+
}
|
|
42
|
+
set(key, value) {
|
|
43
|
+
// Remove if exists (to update position)
|
|
44
|
+
this.cache.delete(key);
|
|
45
|
+
// Add to end
|
|
46
|
+
this.cache.set(key, value);
|
|
47
|
+
// Evict oldest if over capacity
|
|
48
|
+
if (this.cache.size > this.maxSize) {
|
|
49
|
+
const iterator = this.cache.keys();
|
|
50
|
+
const firstEntry = iterator.next();
|
|
51
|
+
if (!firstEntry.done) {
|
|
52
|
+
this.cache.delete(firstEntry.value);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
clear() {
|
|
57
|
+
this.cache.clear();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Module-level TypeScript sourceFileCache for template parsing.
|
|
62
|
+
*/
|
|
63
|
+
let templateSourceFileCache;
|
|
64
|
+
/**
|
|
65
|
+
* Configure the sourceFileCache used for template parsing.
|
|
66
|
+
*
|
|
67
|
+
* @param cache The sourceFileCache to use, or undefined to disable caching
|
|
68
|
+
*/
|
|
69
|
+
function setTemplateSourceFileCache(cache) {
|
|
70
|
+
templateSourceFileCache = cache;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Cache for compiled templates and patterns.
|
|
74
|
+
* Stores parsed ASTs to avoid expensive re-parsing and dependency resolution.
|
|
75
|
+
* Bounded to 100 entries using LRU eviction to prevent unbounded memory growth.
|
|
76
|
+
*/
|
|
77
|
+
class TemplateCache {
|
|
78
|
+
constructor() {
|
|
79
|
+
this.cache = new LRUCache(100);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Generates a cache key from template string, captures, and options.
|
|
83
|
+
*/
|
|
84
|
+
generateKey(templateString, captures, contextStatements, dependencies) {
|
|
85
|
+
// Use the actual template string (with placeholders) as the primary key
|
|
86
|
+
const templateKey = templateString;
|
|
87
|
+
// Capture names
|
|
88
|
+
const capturesKey = captures.map(c => c.getName()).join(',');
|
|
89
|
+
// Context statements
|
|
90
|
+
const contextKey = contextStatements.join(';');
|
|
91
|
+
// Dependencies
|
|
92
|
+
const depsKey = JSON.stringify(dependencies || {});
|
|
93
|
+
return `${templateKey}::${capturesKey}::${contextKey}::${depsKey}`;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Gets a cached compilation unit or creates and caches a new one.
|
|
97
|
+
*/
|
|
98
|
+
getOrParse(templateString, captures, contextStatements, dependencies) {
|
|
99
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
const key = this.generateKey(templateString, captures, contextStatements, dependencies);
|
|
101
|
+
let cu = this.cache.get(key);
|
|
102
|
+
if (cu) {
|
|
103
|
+
return cu;
|
|
104
|
+
}
|
|
105
|
+
// Create workspace if dependencies are provided
|
|
106
|
+
// DependencyWorkspace has its own cache, so multiple templates with
|
|
107
|
+
// the same dependencies will automatically share the same workspace
|
|
108
|
+
let workspaceDir;
|
|
109
|
+
if (dependencies && Object.keys(dependencies).length > 0) {
|
|
110
|
+
workspaceDir = yield dependency_workspace_1.DependencyWorkspace.getOrCreateWorkspace(dependencies);
|
|
111
|
+
}
|
|
112
|
+
// Prepend context statements for type attribution context
|
|
113
|
+
const fullTemplateString = contextStatements.length > 0
|
|
114
|
+
? contextStatements.join('\n') + '\n' + templateString
|
|
115
|
+
: templateString;
|
|
116
|
+
// Parse and cache (workspace only needed during parsing)
|
|
117
|
+
// Use templateSourceFileCache if configured for ~3.2x speedup on dependency file parsing
|
|
118
|
+
const parser = new parser_1.JavaScriptParser({
|
|
119
|
+
relativeTo: workspaceDir,
|
|
120
|
+
sourceFileCache: templateSourceFileCache
|
|
121
|
+
});
|
|
122
|
+
const parseGenerator = parser.parse({ text: fullTemplateString, sourcePath: 'template.ts' });
|
|
123
|
+
cu = (yield parseGenerator.next()).value;
|
|
124
|
+
this.cache.set(key, cu);
|
|
125
|
+
return cu;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Clears the cache.
|
|
130
|
+
*/
|
|
131
|
+
clear() {
|
|
132
|
+
this.cache.clear();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
35
135
|
/**
|
|
36
|
-
* Cache for compiled templates.
|
|
136
|
+
* Cache for compiled templates and patterns.
|
|
137
|
+
* Private to the engine module - encapsulates caching implementation.
|
|
37
138
|
*/
|
|
38
|
-
const templateCache = new
|
|
139
|
+
const templateCache = new TemplateCache();
|
|
140
|
+
/**
|
|
141
|
+
* Clears the template cache. Only exported for testing and benchmarking purposes.
|
|
142
|
+
* Normal application code should not need to call this.
|
|
143
|
+
*/
|
|
144
|
+
function clearTemplateCache() {
|
|
145
|
+
templateCache.clear();
|
|
146
|
+
}
|
|
39
147
|
/**
|
|
40
148
|
* Internal template engine - handles the core templating logic.
|
|
41
149
|
* Not exported from index, so only visible within the templating module.
|
|
42
150
|
*/
|
|
43
151
|
class TemplateEngine {
|
|
44
152
|
/**
|
|
45
|
-
*
|
|
153
|
+
* Gets the parsed and extracted template tree (before value substitution).
|
|
154
|
+
* This is the cacheable part of template processing.
|
|
46
155
|
*
|
|
47
156
|
* @param templateParts The string parts of the template
|
|
48
157
|
* @param parameters The parameters between the string parts
|
|
49
|
-
* @param cursor The cursor pointing to the current location in the AST
|
|
50
|
-
* @param coordinates The coordinates specifying where and how to insert the generated AST
|
|
51
|
-
* @param values Map of capture names to values to replace the parameters with
|
|
52
|
-
* @param wrappersMap Map of capture names to J.RightPadded wrappers (for preserving markers)
|
|
53
158
|
* @param contextStatements Context declarations (imports, types, etc.) to prepend for type attribution
|
|
54
159
|
* @param dependencies NPM dependencies for type attribution
|
|
55
|
-
* @returns A Promise resolving to the
|
|
160
|
+
* @returns A Promise resolving to the extracted template AST
|
|
56
161
|
*/
|
|
57
|
-
static
|
|
58
|
-
return __awaiter(this, arguments, void 0, function* (templateParts, parameters,
|
|
162
|
+
static getTemplateTree(templateParts_1, parameters_1) {
|
|
163
|
+
return __awaiter(this, arguments, void 0, function* (templateParts, parameters, contextStatements = [], dependencies = {}) {
|
|
59
164
|
// Generate type preamble for captures/parameters with types
|
|
60
165
|
const preamble = TemplateEngine.generateTypePreamble(parameters);
|
|
61
166
|
// Build the template string with parameter placeholders
|
|
62
167
|
const templateString = TemplateEngine.buildTemplateString(templateParts, parameters);
|
|
63
|
-
// If the template string is empty, return undefined
|
|
64
|
-
if (!templateString.trim()) {
|
|
65
|
-
return undefined;
|
|
66
|
-
}
|
|
67
168
|
// Add preamble to context statements (so they're skipped during extraction)
|
|
68
169
|
const contextWithPreamble = preamble.length > 0
|
|
69
170
|
? [...contextStatements, ...preamble]
|
|
70
171
|
: contextStatements;
|
|
71
172
|
// Use cache to get or parse the compilation unit
|
|
72
|
-
|
|
73
|
-
const cu = yield templateCache.getOrParse(templateString, [], // templates don't have captures in the cache key
|
|
74
|
-
contextWithPreamble, dependencies);
|
|
173
|
+
const cu = yield templateCache.getOrParse(templateString, [], contextWithPreamble, dependencies);
|
|
75
174
|
// Check if there are any statements
|
|
76
175
|
if (!cu.statements || cu.statements.length === 0) {
|
|
77
176
|
throw new Error(`Failed to parse template code (no statements):\n${templateString}`);
|
|
78
177
|
}
|
|
79
178
|
// The template code is always the last statement (after context + preamble)
|
|
80
179
|
const lastStatement = cu.statements[cu.statements.length - 1].element;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (lastStatement.kind === java_1.J.Kind.MethodDeclaration) {
|
|
84
|
-
const func = lastStatement;
|
|
85
|
-
if (func.name.simpleName === '__TEMPLATE__' && func.body) {
|
|
86
|
-
// __TEMPLATE__ wrapper indicates the original template was a block.
|
|
87
|
-
// Always return the block to preserve the block structure.
|
|
88
|
-
extracted = func.body;
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// Not a __TEMPLATE__ wrapper
|
|
92
|
-
extracted = lastStatement;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
else if (lastStatement.kind === __2.JS.Kind.ExpressionStatement) {
|
|
96
|
-
extracted = lastStatement.expression;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
extracted = lastStatement;
|
|
100
|
-
}
|
|
180
|
+
// Extract from wrapper using shared utility
|
|
181
|
+
const extracted = utils_1.PlaceholderUtils.extractFromWrapper(lastStatement, 'Template');
|
|
101
182
|
// Create a copy to avoid sharing cached AST instances
|
|
102
|
-
|
|
183
|
+
return (0, immer_1.produce)(extracted, _ => { });
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Applies a template with optional match results from pattern matching.
|
|
188
|
+
*
|
|
189
|
+
* @param templateParts The string parts of the template
|
|
190
|
+
* @param parameters The parameters between the string parts
|
|
191
|
+
* @param cursor The cursor pointing to the current location in the AST
|
|
192
|
+
* @param coordinates The coordinates specifying where and how to insert the generated AST
|
|
193
|
+
* @param values Map of capture names to values to replace the parameters with
|
|
194
|
+
* @param wrappersMap Map of capture names to J.RightPadded wrappers (for preserving markers)
|
|
195
|
+
* @param contextStatements Context declarations (imports, types, etc.) to prepend for type attribution
|
|
196
|
+
* @param dependencies NPM dependencies for type attribution
|
|
197
|
+
* @returns A Promise resolving to the generated AST node
|
|
198
|
+
*/
|
|
199
|
+
static applyTemplate(templateParts_1, parameters_1, cursor_1, coordinates_1) {
|
|
200
|
+
return __awaiter(this, arguments, void 0, function* (templateParts, parameters, cursor, coordinates, values = new Map(), wrappersMap = new Map(), contextStatements = [], dependencies = {}) {
|
|
201
|
+
// Build the template string to check if empty
|
|
202
|
+
const templateString = TemplateEngine.buildTemplateString(templateParts, parameters);
|
|
203
|
+
if (!templateString.trim()) {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
// Get the parsed and extracted template tree
|
|
207
|
+
const ast = yield TemplateEngine.getTemplateTree(templateParts, parameters, contextStatements, dependencies);
|
|
103
208
|
// Create substitutions map for placeholders
|
|
104
209
|
const substitutions = new Map();
|
|
105
210
|
for (let i = 0; i < parameters.length; i++) {
|
|
@@ -192,12 +297,9 @@ class TemplateEngine {
|
|
|
192
297
|
}
|
|
193
298
|
}
|
|
194
299
|
}
|
|
195
|
-
//
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
result = `function __TEMPLATE__() ${result}`;
|
|
199
|
-
}
|
|
200
|
-
return result;
|
|
300
|
+
// Always wrap in function body - let the parser decide what it is,
|
|
301
|
+
// then we'll extract intelligently based on what was parsed
|
|
302
|
+
return `function ${utils_1.WRAPPER_FUNCTION_NAME}() { ${result} }`;
|
|
201
303
|
}
|
|
202
304
|
/**
|
|
203
305
|
* Converts a Type instance to a TypeScript type string.
|
|
@@ -242,8 +344,163 @@ class TemplateEngine {
|
|
|
242
344
|
// TODO: Implement proper Type to string conversion for other Type.Kind values
|
|
243
345
|
return 'any';
|
|
244
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* Gets the parsed and extracted pattern tree with capture markers attached.
|
|
349
|
+
* This is the entry point for pattern processing, providing pattern-specific
|
|
350
|
+
* functionality on top of the shared template tree generation.
|
|
351
|
+
*
|
|
352
|
+
* @param templateParts The string parts of the template
|
|
353
|
+
* @param captures The captures between the string parts
|
|
354
|
+
* @param contextStatements Context declarations (imports, types, etc.) to prepend for type attribution
|
|
355
|
+
* @param dependencies NPM dependencies for type attribution
|
|
356
|
+
* @returns A Promise resolving to the extracted pattern AST with capture markers
|
|
357
|
+
*/
|
|
358
|
+
static getPatternTree(templateParts_1, captures_1) {
|
|
359
|
+
return __awaiter(this, arguments, void 0, function* (templateParts, captures, contextStatements = [], dependencies = {}) {
|
|
360
|
+
// Generate type preamble for captures with types
|
|
361
|
+
const preamble = [];
|
|
362
|
+
for (const capture of captures) {
|
|
363
|
+
const captureName = capture[capture_1.CAPTURE_NAME_SYMBOL] || capture.getName();
|
|
364
|
+
const captureType = capture[capture_1.CAPTURE_TYPE_SYMBOL];
|
|
365
|
+
if (captureType) {
|
|
366
|
+
// Convert Type to string if needed
|
|
367
|
+
const typeString = typeof captureType === 'string'
|
|
368
|
+
? captureType
|
|
369
|
+
: this.typeToString(captureType);
|
|
370
|
+
const placeholder = utils_1.PlaceholderUtils.createCapture(captureName, undefined);
|
|
371
|
+
preamble.push(`let ${placeholder}: ${typeString};`);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
const placeholder = utils_1.PlaceholderUtils.createCapture(captureName, undefined);
|
|
375
|
+
preamble.push(`let ${placeholder};`);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// Build the template string with placeholders for captures
|
|
379
|
+
let result = '';
|
|
380
|
+
for (let i = 0; i < templateParts.length; i++) {
|
|
381
|
+
result += templateParts[i];
|
|
382
|
+
if (i < captures.length) {
|
|
383
|
+
const capture = captures[i];
|
|
384
|
+
// Use symbol to access capture name without triggering Proxy
|
|
385
|
+
const captureName = capture[capture_1.CAPTURE_NAME_SYMBOL] || capture.getName();
|
|
386
|
+
result += utils_1.PlaceholderUtils.createCapture(captureName, undefined);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
// Always wrap in function body - let the parser decide what it is,
|
|
390
|
+
// then we'll extract intelligently based on what was parsed
|
|
391
|
+
const templateString = `function ${utils_1.WRAPPER_FUNCTION_NAME}() { ${result} }`;
|
|
392
|
+
// Add preamble to context statements (so they're skipped during extraction)
|
|
393
|
+
const contextWithPreamble = preamble.length > 0
|
|
394
|
+
? [...contextStatements, ...preamble]
|
|
395
|
+
: contextStatements;
|
|
396
|
+
// Use cache to get or parse the compilation unit
|
|
397
|
+
const cu = yield templateCache.getOrParse(templateString, captures, contextWithPreamble, dependencies);
|
|
398
|
+
// Check if there are any statements
|
|
399
|
+
if (!cu.statements || cu.statements.length === 0) {
|
|
400
|
+
throw new Error(`Failed to parse pattern code (no statements):\n${templateString}`);
|
|
401
|
+
}
|
|
402
|
+
// The pattern code is always the last statement (after context + preamble)
|
|
403
|
+
const lastStatement = cu.statements[cu.statements.length - 1].element;
|
|
404
|
+
// Extract from wrapper using shared utility
|
|
405
|
+
const extracted = utils_1.PlaceholderUtils.extractFromWrapper(lastStatement, 'Pattern');
|
|
406
|
+
// Attach CaptureMarkers to capture identifiers
|
|
407
|
+
const visitor = new MarkerAttachmentVisitor(captures);
|
|
408
|
+
return (yield visitor.visit(extracted, undefined));
|
|
409
|
+
});
|
|
410
|
+
}
|
|
245
411
|
}
|
|
246
412
|
exports.TemplateEngine = TemplateEngine;
|
|
413
|
+
/**
|
|
414
|
+
* Visitor that attaches CaptureMarkers to capture identifiers in pattern ASTs.
|
|
415
|
+
* This allows efficient capture detection without string parsing during matching.
|
|
416
|
+
* Used by TemplateEngine.getPatternTree() for pattern-specific processing.
|
|
417
|
+
*/
|
|
418
|
+
class MarkerAttachmentVisitor extends visitor_1.JavaScriptVisitor {
|
|
419
|
+
constructor(captures) {
|
|
420
|
+
super();
|
|
421
|
+
this.captures = captures;
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Attaches CaptureMarker to capture identifiers.
|
|
425
|
+
*/
|
|
426
|
+
visitIdentifier(ident, p) {
|
|
427
|
+
const _super = Object.create(null, {
|
|
428
|
+
visitIdentifier: { get: () => super.visitIdentifier }
|
|
429
|
+
});
|
|
430
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
431
|
+
var _a, _b;
|
|
432
|
+
// First call parent to handle standard visitation
|
|
433
|
+
const visited = yield _super.visitIdentifier.call(this, ident, p);
|
|
434
|
+
if (!visited || visited.kind !== java_1.J.Kind.Identifier) {
|
|
435
|
+
return visited;
|
|
436
|
+
}
|
|
437
|
+
ident = visited;
|
|
438
|
+
// Check if this is a capture placeholder
|
|
439
|
+
if ((_a = ident.simpleName) === null || _a === void 0 ? void 0 : _a.startsWith(utils_1.PlaceholderUtils.CAPTURE_PREFIX)) {
|
|
440
|
+
const captureInfo = utils_1.PlaceholderUtils.parseCapture(ident.simpleName);
|
|
441
|
+
if (captureInfo) {
|
|
442
|
+
// Find the original capture object to get variadic options and constraint
|
|
443
|
+
const captureObj = this.captures.find(c => c.getName() === captureInfo.name);
|
|
444
|
+
const variadicOptions = captureObj === null || captureObj === void 0 ? void 0 : captureObj.getVariadicOptions();
|
|
445
|
+
const constraint = (_b = captureObj === null || captureObj === void 0 ? void 0 : captureObj.getConstraint) === null || _b === void 0 ? void 0 : _b.call(captureObj);
|
|
446
|
+
// Add CaptureMarker to the Identifier with constraint
|
|
447
|
+
const marker = new utils_1.CaptureMarker(captureInfo.name, variadicOptions, constraint);
|
|
448
|
+
return (0, __1.updateIfChanged)(ident, {
|
|
449
|
+
markers: Object.assign(Object.assign({}, ident.markers), { markers: [...ident.markers.markers, marker] })
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
return ident;
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Propagates markers from element to RightPadded wrapper.
|
|
458
|
+
*/
|
|
459
|
+
visitRightPadded(right, p) {
|
|
460
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
461
|
+
if (!(0, __1.isTree)(right.element)) {
|
|
462
|
+
return right;
|
|
463
|
+
}
|
|
464
|
+
const visitedElement = yield this.visit(right.element, p);
|
|
465
|
+
if (visitedElement && visitedElement !== right.element) {
|
|
466
|
+
return (0, __1.produceAsync)(right, (draft) => __awaiter(this, void 0, void 0, function* () {
|
|
467
|
+
// Visit element first
|
|
468
|
+
if (right.element && right.element.kind) {
|
|
469
|
+
// Check if element has a CaptureMarker
|
|
470
|
+
const elementMarker = utils_1.PlaceholderUtils.getCaptureMarker(visitedElement);
|
|
471
|
+
if (elementMarker) {
|
|
472
|
+
draft.markers.markers.push(elementMarker);
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
draft.element = visitedElement;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}));
|
|
479
|
+
}
|
|
480
|
+
return right;
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Propagates markers from expression to ExpressionStatement.
|
|
485
|
+
*/
|
|
486
|
+
visitExpressionStatement(expressionStatement, p) {
|
|
487
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
488
|
+
// Visit the expression
|
|
489
|
+
const visitedExpression = yield this.visit(expressionStatement.expression, p);
|
|
490
|
+
// Check if expression has a CaptureMarker
|
|
491
|
+
const expressionMarker = utils_1.PlaceholderUtils.getCaptureMarker(visitedExpression);
|
|
492
|
+
if (expressionMarker) {
|
|
493
|
+
return (0, __1.updateIfChanged)(expressionStatement, {
|
|
494
|
+
markers: Object.assign(Object.assign({}, expressionStatement.markers), { markers: [...expressionStatement.markers.markers, expressionMarker] }),
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
// No marker to move, just update with visited expression
|
|
498
|
+
return (0, __1.updateIfChanged)(expressionStatement, {
|
|
499
|
+
expression: visitedExpression
|
|
500
|
+
});
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
}
|
|
247
504
|
/**
|
|
248
505
|
* Helper class for applying a template to an AST.
|
|
249
506
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/javascript/templating/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/javascript/templating/engine.ts"],"names":[],"mappings":";;;;;;;;;;;;AAgFA,gEAEC;AA8FD,gDAEC;AAlKD,6BAA0E;AAC1E,qCAAmC;AAEnC,iCAA8B;AAC9B,mCAA+E;AAC/E,uCAAiH;AACjH,uEAAwE;AAExE,wCAA6C;AAE7C,sCAA2C;AAC3C,kEAA4D;AAE5D;;;GAGG;AACH,MAAM,QAAQ;IAGV,YAAoB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;QAF3B,UAAK,GAAG,IAAI,GAAG,EAAQ,CAAC;IAEM,CAAC;IAEvC,GAAG,CAAC,GAAM;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,mCAAmC;YACnC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAChB,wCAAwC;QACxC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEvB,aAAa;QACb,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAE3B,gCAAgC;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACJ;AAED;;GAEG;AACH,IAAI,uBAA+D,CAAC;AAEpE;;;;GAIG;AACH,SAAgB,0BAA0B,CAAC,KAAkC;IACzE,uBAAuB,GAAG,KAAK,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,MAAM,aAAa;IAAnB;QACY,UAAK,GAAG,IAAI,QAAQ,CAA6B,GAAG,CAAC,CAAC;IA0ElE,CAAC;IAxEG;;OAEG;IACK,WAAW,CACf,cAAsB,EACtB,QAAgC,EAChC,iBAA2B,EAC3B,YAAoC;QAEpC,wEAAwE;QACxE,MAAM,WAAW,GAAG,cAAc,CAAC;QAEnC,gBAAgB;QAChB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE7D,qBAAqB;QACrB,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/C,eAAe;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAEnD,OAAO,GAAG,WAAW,KAAK,WAAW,KAAK,UAAU,KAAK,OAAO,EAAE,CAAC;IACvE,CAAC;IAED;;OAEG;IACG,UAAU,CACZ,cAAsB,EACtB,QAA2B,EAC3B,iBAA2B,EAC3B,YAAoC;;YAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAExF,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,EAAE,EAAE,CAAC;gBACL,OAAO,EAAE,CAAC;YACd,CAAC;YAED,gDAAgD;YAChD,oEAAoE;YACpE,oEAAoE;YACpE,IAAI,YAAgC,CAAC;YACrC,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,YAAY,GAAG,MAAM,0CAAmB,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAChF,CAAC;YAED,0DAA0D;YAC1D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBACnD,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,cAAc;gBACtD,CAAC,CAAC,cAAc,CAAC;YAErB,yDAAyD;YACzD,yFAAyF;YACzF,MAAM,MAAM,GAAG,IAAI,yBAAgB,CAAC;gBAChC,UAAU,EAAE,YAAY;gBACxB,eAAe,EAAE,uBAAuB;aAC3C,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,EAAC,CAAC,CAAC;YAC3F,EAAE,GAAG,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,KAA2B,CAAC;YAE/D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,OAAO,EAAE,CAAC;QACd,CAAC;KAAA;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C;;;GAGG;AACH,SAAgB,kBAAkB;IAC9B,aAAa,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAa,cAAc;IACvB;;;;;;;;;OASG;IACH,MAAM,CAAO,eAAe;6DACxB,aAAmC,EACnC,UAAuB,EACvB,oBAA8B,EAAE,EAChC,eAAuC,EAAE;YAEzC,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,cAAc,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAEjE,wDAAwD;YACxD,MAAM,cAAc,GAAG,cAAc,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAErF,4EAA4E;YAC5E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC3C,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,QAAQ,CAAC;gBACrC,CAAC,CAAC,iBAAiB,CAAC;YAExB,iDAAiD;YACjD,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,CACrC,cAAc,EACd,EAAE,EACF,mBAAmB,EACnB,YAAY,CACf,CAAC;YAEF,oCAAoC;YACpC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,mDAAmD,cAAc,EAAE,CAAC,CAAC;YACzF,CAAC;YAED,4EAA4E;YAC5E,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAEtE,4CAA4C;YAC5C,MAAM,SAAS,GAAG,wBAAgB,CAAC,kBAAkB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YAEjF,sDAAsD;YACtD,OAAO,IAAA,eAAO,EAAC,SAAS,EAAE,CAAC,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC;QACvC,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAO,aAAa;6DACtB,aAAmC,EACnC,UAAuB,EACvB,MAAc,EACd,WAA4B,EAC5B,SAAsC,IAAI,GAAG,EAAE,EAC/C,cAA+E,IAAI,GAAG,EAAE,EACxF,oBAA8B,EAAE,EAChC,eAAuC,EAAE;YAEzC,8CAA8C;YAC9C,MAAM,cAAc,GAAG,cAAc,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;YACrF,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC;YACrB,CAAC;YAED,6CAA6C;YAC7C,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,eAAe,CAC5C,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,YAAY,CACf,CAAC;YAEF,4CAA4C;YAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqB,CAAC;YACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACzC,MAAM,WAAW,GAAG,GAAG,wBAAgB,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC;gBACnE,aAAa,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;YAED,2EAA2E;YAC3E,MAAM,OAAO,GAAG,IAAI,uDAA6B,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACtF,MAAM,gBAAgB,GAAG,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAE,CAAC;YAE3D,wCAAwC;YACxC,OAAO,IAAI,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9E,CAAC;KAAA;IAED;;;;;OAKG;IACK,MAAM,CAAC,oBAAoB,CAAC,UAAuB;QACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAClC,MAAM,WAAW,GAAG,GAAG,wBAAgB,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC;YAEnE,qEAAqE;YACrE,MAAM,SAAS,GAAG,KAAK,YAAY,qBAAW;gBAC9B,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,6BAAmB,CAAC,CAAC,CAAC;YACnF,MAAM,cAAc,GAAG,KAAK,YAAY,sBAAY,CAAC;YACrD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,UAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAEjF,IAAI,SAAS,EAAE,CAAC;gBACZ,MAAM,WAAW,GAAG,KAAK,CAAC,6BAAmB,CAAC,CAAC;gBAC/C,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,UAAU,GAAG,OAAO,WAAW,KAAK,QAAQ;wBAC9C,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,KAAK,UAAU,GAAG,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;iBAAM,IAAI,cAAc,EAAE,CAAC;gBACxB,yDAAyD;gBACzD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACtC,IAAI,WAAW,EAAE,CAAC;oBACd,MAAM,WAAW,GAAI,WAAmB,CAAC,6BAAmB,CAAC,CAAC;oBAC9D,IAAI,WAAW,EAAE,CAAC;wBACd,MAAM,UAAU,GAAG,OAAO,WAAW,KAAK,QAAQ;4BAC9C,CAAC,CAAC,WAAW;4BACb,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;wBACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,KAAK,UAAU,GAAG,CAAC,CAAC;oBACxD,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,IAAA,UAAM,EAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACvC,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,KAAU,CAAC;gBAC5B,IAAK,QAAgB,CAAC,IAAI,EAAE,CAAC;oBACzB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAE,QAAgB,CAAC,IAAI,CAAC,CAAC;oBAC7D,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,KAAK,UAAU,GAAG,CAAC,CAAC;gBACxD,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CAAC,mBAAmB,CAC9B,aAAmC,EACnC,UAAuB;QAEvB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAClC,6FAA6F;gBAC7F,+DAA+D;gBAC/D,qEAAqE;gBACrE,MAAM,SAAS,GAAG,KAAK,YAAY,qBAAW;oBAC9B,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,6BAAmB,CAAC,CAAC,CAAC;gBACnF,MAAM,eAAe,GAAG,KAAK,YAAY,2BAAiB,CAAC;gBAC3D,MAAM,cAAc,GAAG,KAAK,YAAY,sBAAY,CAAC;gBACrD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAA,UAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjF,IAAI,SAAS,IAAI,eAAe,IAAI,cAAc,IAAI,IAAA,UAAM,EAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;oBACjF,MAAM,WAAW,GAAG,GAAG,wBAAgB,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC;oBACnE,MAAM,IAAI,WAAW,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,KAAK,CAAC;gBACpB,CAAC;YACL,CAAC;QACL,CAAC;QAED,mEAAmE;QACnE,4DAA4D;QAC5D,OAAO,YAAY,6BAAqB,QAAQ,MAAM,IAAI,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,YAAY,CAAC,IAAU;QAClC,+EAA+E;QAC/E,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACxE,MAAM,SAAS,GAAG,IAAkB,CAAC;YACrC,OAAO,SAAS,CAAC,kBAAkB,CAAC;QACxC,CAAC;QAED,4DAA4D;QAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,aAAa,GAAG,IAAsB,CAAC;YAC7C,QAAQ,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK,QAAQ;oBACT,OAAO,QAAQ,CAAC;gBACpB,KAAK,SAAS;oBACV,OAAO,SAAS,CAAC;gBACrB,KAAK,QAAQ,CAAC;gBACd,KAAK,OAAO,CAAC;gBACb,KAAK,KAAK,CAAC;gBACX,KAAK,MAAM,CAAC;gBACZ,KAAK,OAAO,CAAC;gBACb,KAAK,MAAM;oBACP,OAAO,QAAQ,CAAC;gBACpB,KAAK,MAAM;oBACP,OAAO,MAAM,CAAC;gBAClB;oBACI,OAAO,KAAK,CAAC;YACrB,CAAC;QACL,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,IAAkB,CAAC;YACrC,MAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClE,OAAO,GAAG,mBAAmB,IAAI,CAAC;QACtC,CAAC;QAED,8CAA8C;QAC9C,8EAA8E;QAC9E,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAO,cAAc;6DACvB,aAAmC,EACnC,QAAgC,EAChC,oBAA8B,EAAE,EAChC,eAAuC,EAAE;YAEzC,iDAAiD;YACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAI,OAAe,CAAC,6BAAmB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC/E,MAAM,WAAW,GAAI,OAAe,CAAC,6BAAmB,CAAC,CAAC;gBAC1D,IAAI,WAAW,EAAE,CAAC;oBACd,mCAAmC;oBACnC,MAAM,UAAU,GAAG,OAAO,WAAW,KAAK,QAAQ;wBAC9C,CAAC,CAAC,WAAW;wBACb,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;oBACrC,MAAM,WAAW,GAAG,wBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC3E,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,KAAK,UAAU,GAAG,CAAC,CAAC;gBACxD,CAAC;qBAAM,CAAC;oBACJ,MAAM,WAAW,GAAG,wBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;oBAC3E,QAAQ,CAAC,IAAI,CAAC,OAAO,WAAW,GAAG,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC;YAED,2DAA2D;YAC3D,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC5B,6DAA6D;oBAC7D,MAAM,WAAW,GAAI,OAAe,CAAC,6BAAmB,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC/E,MAAM,IAAI,wBAAgB,CAAC,aAAa,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACrE,CAAC;YACL,CAAC;YAED,mEAAmE;YACnE,4DAA4D;YAC5D,MAAM,cAAc,GAAG,YAAY,6BAAqB,QAAQ,MAAM,IAAI,CAAC;YAE3E,4EAA4E;YAC5E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAC3C,CAAC,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,QAAQ,CAAC;gBACrC,CAAC,CAAC,iBAAiB,CAAC;YAExB,iDAAiD;YACjD,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,CACrC,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,YAAY,CACf,CAAC;YAEF,oCAAoC;YACpC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,kDAAkD,cAAc,EAAE,CAAC,CAAC;YACxF,CAAC;YAED,2EAA2E;YAC3E,MAAM,aAAa,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YAEtE,4CAA4C;YAC5C,MAAM,SAAS,GAAG,wBAAgB,CAAC,kBAAkB,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAEhF,+CAA+C;YAC/C,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAE,CAAC;QACxD,CAAC;KAAA;CACJ;AA/TD,wCA+TC;AAED;;;;GAIG;AACH,MAAM,uBAAwB,SAAQ,2BAA4B;IAC9D,YAA6B,QAAgC;QACzD,KAAK,EAAE,CAAC;QADiB,aAAQ,GAAR,QAAQ,CAAwB;IAE7D,CAAC;IAED;;OAEG;IACsB,eAAe,CAAC,KAAmB,EAAE,CAAY;;;;;;YACtE,kDAAkD;YAClD,MAAM,OAAO,GAAG,MAAM,OAAM,eAAe,YAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,QAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjD,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,KAAK,GAAG,OAAuB,CAAC;YAEhC,yCAAyC;YACzC,IAAI,MAAA,KAAK,CAAC,UAAU,0CAAE,UAAU,CAAC,wBAAgB,CAAC,cAAc,CAAC,EAAE,CAAC;gBAChE,MAAM,WAAW,GAAG,wBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpE,IAAI,WAAW,EAAE,CAAC;oBACd,0EAA0E;oBAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC;oBAC7E,MAAM,eAAe,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,kBAAkB,EAAE,CAAC;oBACzD,MAAM,UAAU,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,0DAAI,CAAC;oBAEjD,sDAAsD;oBACtD,MAAM,MAAM,GAAG,IAAI,qBAAa,CAAC,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC;oBAChF,OAAO,IAAA,mBAAe,EAAC,KAAK,EAAE;wBAC1B,OAAO,kCACA,KAAK,CAAC,OAAO,KAChB,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,GAC9C;qBACJ,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;KAAA;IAED;;OAEG;IACmB,gBAAgB,CAAwB,KAAuB,EAAE,CAAY;;YAC/F,IAAI,CAAC,IAAA,UAAM,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAY,EAAE,CAAC,CAAC,CAAC;YAC/D,IAAI,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,OAAe,EAAE,CAAC;gBAC7D,OAAO,IAAA,gBAAY,EAAmB,KAAK,EAAE,CAAO,KAAU,EAAE,EAAE;oBAC9D,sBAAsB;oBACtB,IAAI,KAAK,CAAC,OAAO,IAAK,KAAK,CAAC,OAAe,CAAC,IAAI,EAAE,CAAC;wBAC/C,uCAAuC;wBACvC,MAAM,aAAa,GAAG,wBAAgB,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;wBACxE,IAAI,aAAa,EAAE,CAAC;4BAChB,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACJ,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;wBACnC,CAAC;oBACL,CAAC;gBACL,CAAC,CAAA,CAAC,CAAC;YACP,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;KAAA;IAED;;OAEG;IACsB,wBAAwB,CAAC,mBAA2C,EAAE,CAAY;;YACvG,uBAAuB;YACvB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAE9E,0CAA0C;YAC1C,MAAM,gBAAgB,GAAG,wBAAgB,CAAC,gBAAgB,CAAC,iBAAwB,CAAC,CAAC;YACrF,IAAI,gBAAgB,EAAE,CAAC;gBACnB,OAAO,IAAA,mBAAe,EAAC,mBAAmB,EAAE;oBACxC,OAAO,kCACA,mBAAmB,CAAC,OAAO,KAC9B,OAAO,EAAE,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,GACtE;iBACJ,CAAC,CAAC;YACP,CAAC;YAED,yDAAyD;YACzD,OAAO,IAAA,mBAAe,EAAC,mBAAmB,EAAE;gBACxC,UAAU,EAAE,iBAAiB;aAChC,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAED;;GAEG;AACH,MAAa,eAAe;IACxB,YACqB,MAAc,EACd,WAA4B,EAC5B,GAAM;QAFN,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAiB;QAC5B,QAAG,GAAH,GAAG,CAAG;IAE3B,CAAC;IAED;;;;OAIG;IACG,KAAK;;YACP,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAE/B,oDAAoD;YACpD,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;gBACjC,KAAK,mBAAmB;oBACpB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACpC,KAAK,kBAAkB;oBACnB,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACnC,KAAK,WAAW;oBACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC/B;oBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;YACxD,CAAC;QACL,CAAC;KAAA;IAED;;;;OAIG;IACW,iBAAiB;;YAC3B,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAEhC,2DAA2D;YAC3D,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,eAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;gBACpC,KAAK,CAAC,MAAM,GAAI,IAAU,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAClB,CAAC;KAAA;IAED;;;;OAIG;IACW,gBAAgB;;YAC1B,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAEhC,2DAA2D;YAC3D,OAAO,IAAA,eAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;gBAC7B,KAAK,CAAC,MAAM,GAAI,IAAU,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAED;;;;OAIG;IACW,YAAY;;YACtB,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,CAAC,WAAW,CAAC;YAEhC,2DAA2D;YAC3D,OAAO,IAAA,eAAO,EAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE;gBAC7B,KAAK,CAAC,MAAM,GAAI,IAAU,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAtED,0CAsEC"}
|
|
@@ -57,6 +57,7 @@ export declare class Pattern {
|
|
|
57
57
|
readonly templateParts: TemplateStringsArray;
|
|
58
58
|
readonly captures: (Capture | Any<any>)[];
|
|
59
59
|
private _options;
|
|
60
|
+
private _cachedAstPattern?;
|
|
60
61
|
/**
|
|
61
62
|
* Gets the configuration options for this pattern.
|
|
62
63
|
* @readonly
|
|
@@ -98,6 +99,16 @@ export declare class Pattern {
|
|
|
98
99
|
* })
|
|
99
100
|
*/
|
|
100
101
|
configure(options: PatternOptions): Pattern;
|
|
102
|
+
/**
|
|
103
|
+
* Gets the AST pattern for this pattern, using two-level caching:
|
|
104
|
+
* 1. Instance-level cache (fastest - this pattern instance)
|
|
105
|
+
* 2. Global LRU cache (fast - shared across pattern instances with same code)
|
|
106
|
+
* 3. Compute via TemplateProcessor (slow - parse and process)
|
|
107
|
+
*
|
|
108
|
+
* @returns The cached or newly computed pattern AST
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
getAstPattern(): Promise<J>;
|
|
101
112
|
/**
|
|
102
113
|
* Creates a matcher for this pattern against a specific AST node.
|
|
103
114
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/pattern.ts"],"names":[],"mappings":"AAeA,OAAO,EAAC,MAAM,EAAC,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAC,CAAC,EAAC,MAAM,YAAY,CAAC;AAC7B,OAAO,EAAC,GAAG,EAAE,OAAO,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAGrD,OAAO,EAAgB,mBAAmB,EAAoC,mBAAmB,EAAC,MAAM,SAAS,CAAC;AAIlH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAA8B;IAE9C;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAcvB;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI;IAajD;;;;OAIG;IACH,KAAK,IAAI,OAAO;CAiBnB;AAED;;GAEG;AACH,qBAAa,OAAO;aAqCI,aAAa,EAAE,oBAAoB;aACnC,QAAQ,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IArCpD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,iBAAiB,CAAC,CAAI;IAE9B;;;OAGG;IACH,IAAI,OAAO,IAAI,QAAQ,CAAC,cAAc,CAAC,CAEtC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAIhC;;;;;OAKG;gBAEiB,aAAa,EAAE,oBAAoB,EACnC,QAAQ,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAIpD;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO;IAO3C;;;;;;;;OAQG;IACG,aAAa,IAAI,OAAO,CAAC,CAAC,CAAC;IAqCjC;;;;;;;;OAQG;IACG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAUzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,WAAW;IAEhB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAa;IAK1E,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS;IAE9C,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAE1C,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAYnC;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAkBvB;;;;OAIG;IACH,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;CAa9E;AA0LD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAY5G"}
|