@openrewrite/rewrite 8.66.0 → 8.66.2
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 +10 -1
- package/dist/java/tree.d.ts.map +1 -1
- package/dist/java/tree.js +21 -5
- package/dist/java/tree.js.map +1 -1
- package/dist/java/type-visitor.d.ts +1 -1
- package/dist/java/type-visitor.d.ts.map +1 -1
- package/dist/java/visitor.d.ts +2 -2
- package/dist/java/visitor.d.ts.map +1 -1
- package/dist/java/visitor.js +8 -2
- package/dist/java/visitor.js.map +1 -1
- package/dist/javascript/assertions.d.ts +6 -0
- package/dist/javascript/assertions.d.ts.map +1 -1
- package/dist/javascript/assertions.js +14 -6
- package/dist/javascript/assertions.js.map +1 -1
- package/dist/javascript/comparator.d.ts +217 -7
- package/dist/javascript/comparator.d.ts.map +1 -1
- package/dist/javascript/comparator.js +1020 -2848
- package/dist/javascript/comparator.js.map +1 -1
- package/dist/javascript/format.d.ts +5 -3
- package/dist/javascript/format.d.ts.map +1 -1
- package/dist/javascript/format.js +87 -44
- package/dist/javascript/format.js.map +1 -1
- package/dist/javascript/index.d.ts +2 -1
- package/dist/javascript/index.d.ts.map +1 -1
- package/dist/javascript/index.js +2 -1
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/parser.d.ts +2 -1
- package/dist/javascript/parser.d.ts.map +1 -1
- package/dist/javascript/parser.js +54 -43
- package/dist/javascript/parser.js.map +1 -1
- package/dist/javascript/templating/capture.d.ts +293 -0
- package/dist/javascript/templating/capture.d.ts.map +1 -0
- package/dist/javascript/templating/capture.js +461 -0
- package/dist/javascript/templating/capture.js.map +1 -0
- package/dist/javascript/templating/comparator.d.ts +171 -0
- package/dist/javascript/templating/comparator.d.ts.map +1 -0
- package/dist/javascript/templating/comparator.js +1221 -0
- package/dist/javascript/templating/comparator.js.map +1 -0
- package/dist/javascript/templating/engine.d.ts +108 -0
- package/dist/javascript/templating/engine.d.ts.map +1 -0
- package/dist/javascript/templating/engine.js +661 -0
- package/dist/javascript/templating/engine.js.map +1 -0
- package/dist/javascript/templating/index.d.ts +6 -0
- package/dist/javascript/templating/index.d.ts.map +1 -0
- package/dist/javascript/templating/index.js +44 -0
- package/dist/javascript/templating/index.js.map +1 -0
- package/dist/javascript/templating/pattern.d.ts +276 -0
- package/dist/javascript/templating/pattern.d.ts.map +1 -0
- package/dist/javascript/templating/pattern.js +952 -0
- package/dist/javascript/templating/pattern.js.map +1 -0
- package/dist/javascript/templating/placeholder-replacement.d.ts +83 -0
- package/dist/javascript/templating/placeholder-replacement.d.ts.map +1 -0
- package/dist/javascript/templating/placeholder-replacement.js +467 -0
- package/dist/javascript/templating/placeholder-replacement.js.map +1 -0
- package/dist/javascript/templating/rewrite.d.ts +84 -0
- package/dist/javascript/templating/rewrite.d.ts.map +1 -0
- package/dist/javascript/templating/rewrite.js +208 -0
- package/dist/javascript/templating/rewrite.js.map +1 -0
- package/dist/javascript/templating/template.d.ts +230 -0
- package/dist/javascript/templating/template.d.ts.map +1 -0
- package/dist/javascript/templating/template.js +367 -0
- package/dist/javascript/templating/template.js.map +1 -0
- package/dist/javascript/templating/types.d.ts +610 -0
- package/dist/javascript/templating/types.d.ts.map +1 -0
- package/dist/javascript/templating/types.js +3 -0
- package/dist/javascript/templating/types.js.map +1 -0
- package/dist/javascript/templating/utils.d.ts +135 -0
- package/dist/javascript/templating/utils.d.ts.map +1 -0
- package/dist/javascript/templating/utils.js +251 -0
- package/dist/javascript/templating/utils.js.map +1 -0
- package/dist/javascript/type-mapping.d.ts.map +1 -1
- package/dist/javascript/type-mapping.js +21 -11
- package/dist/javascript/type-mapping.js.map +1 -1
- package/dist/json/rpc.js +2 -2
- package/dist/json/rpc.js.map +1 -1
- package/dist/recipe/order-imports.js.map +1 -1
- package/dist/test/rewrite-test.d.ts.map +1 -1
- package/dist/test/rewrite-test.js +10 -6
- package/dist/test/rewrite-test.js.map +1 -1
- package/dist/version.txt +1 -1
- package/dist/visitor.d.ts +4 -4
- package/dist/visitor.d.ts.map +1 -1
- package/dist/visitor.js +8 -3
- package/dist/visitor.js.map +1 -1
- package/package.json +5 -2
- package/src/java/tree.ts +10 -3
- package/src/java/type-visitor.ts +1 -1
- package/src/java/visitor.ts +11 -5
- package/src/javascript/assertions.ts +9 -3
- package/src/javascript/comparator.ts +1095 -3373
- package/src/javascript/format.ts +72 -33
- package/src/javascript/index.ts +2 -1
- package/src/javascript/parser.ts +67 -45
- package/src/javascript/templating/capture.ts +595 -0
- package/src/javascript/templating/comparator.ts +1383 -0
- package/src/javascript/templating/engine.ts +750 -0
- package/src/javascript/templating/index.ts +67 -0
- package/src/javascript/templating/pattern.ts +1101 -0
- package/src/javascript/templating/placeholder-replacement.ts +475 -0
- package/src/javascript/templating/rewrite.ts +229 -0
- package/src/javascript/templating/template.ts +414 -0
- package/src/javascript/templating/types.ts +674 -0
- package/src/javascript/templating/utils.ts +298 -0
- package/src/javascript/type-mapping.ts +20 -11
- package/src/json/rpc.ts +2 -2
- package/src/recipe/order-imports.ts +1 -1
- package/src/test/rewrite-test.ts +12 -7
- package/src/visitor.ts +14 -6
- package/dist/javascript/templating.d.ts +0 -265
- package/dist/javascript/templating.d.ts.map +0 -1
- package/dist/javascript/templating.js +0 -1027
- package/dist/javascript/templating.js.map +0 -1
- package/src/javascript/templating.ts +0 -1226
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import { Cursor } from '../..';
|
|
2
|
+
import { J, Type } from '../../java';
|
|
3
|
+
import { Any, Capture, CaptureOptions, ConstraintFunction, TemplateParam, VariadicOptions } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Combines multiple constraints with AND logic.
|
|
6
|
+
* All constraints must return true for the combined constraint to pass.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const largeEvenNumber = capture('n', {
|
|
10
|
+
* constraint: and(
|
|
11
|
+
* (node) => typeof node.value === 'number',
|
|
12
|
+
* (node) => node.value > 100,
|
|
13
|
+
* (node) => node.value % 2 === 0
|
|
14
|
+
* )
|
|
15
|
+
* });
|
|
16
|
+
*/
|
|
17
|
+
export declare function and<T>(...constraints: ((node: T, cursor?: Cursor) => boolean)[]): (node: T, cursor?: Cursor) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Combines multiple constraints with OR logic.
|
|
20
|
+
* At least one constraint must return true for the combined constraint to pass.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* const stringOrNumber = capture('value', {
|
|
24
|
+
* constraint: or(
|
|
25
|
+
* (node) => node.kind === J.Kind.Literal && typeof node.value === 'string',
|
|
26
|
+
* (node) => node.kind === J.Kind.Literal && typeof node.value === 'number'
|
|
27
|
+
* )
|
|
28
|
+
* });
|
|
29
|
+
*/
|
|
30
|
+
export declare function or<T>(...constraints: ((node: T, cursor?: Cursor) => boolean)[]): (node: T, cursor?: Cursor) => boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Negates a constraint.
|
|
33
|
+
* Returns true when the constraint returns false, and vice versa.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const notString = capture('value', {
|
|
37
|
+
* constraint: not((node) => typeof node.value === 'string')
|
|
38
|
+
* });
|
|
39
|
+
*/
|
|
40
|
+
export declare function not<T>(constraint: (node: T, cursor?: Cursor) => boolean): (node: T, cursor?: Cursor) => boolean;
|
|
41
|
+
export declare const CAPTURE_NAME_SYMBOL: unique symbol;
|
|
42
|
+
export declare const CAPTURE_VARIADIC_SYMBOL: unique symbol;
|
|
43
|
+
export declare const CAPTURE_CONSTRAINT_SYMBOL: unique symbol;
|
|
44
|
+
export declare const CAPTURE_CAPTURING_SYMBOL: unique symbol;
|
|
45
|
+
export declare const CAPTURE_TYPE_SYMBOL: unique symbol;
|
|
46
|
+
export declare const RAW_CODE_SYMBOL: unique symbol;
|
|
47
|
+
export declare class CaptureImpl<T = any> implements Capture<T> {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
[CAPTURE_NAME_SYMBOL]: string;
|
|
50
|
+
[CAPTURE_VARIADIC_SYMBOL]: VariadicOptions | undefined;
|
|
51
|
+
[CAPTURE_CONSTRAINT_SYMBOL]: ConstraintFunction<T> | undefined;
|
|
52
|
+
[CAPTURE_CAPTURING_SYMBOL]: boolean;
|
|
53
|
+
[CAPTURE_TYPE_SYMBOL]: string | Type | undefined;
|
|
54
|
+
constructor(name: string, options?: CaptureOptions<T>, capturing?: boolean);
|
|
55
|
+
getName(): string;
|
|
56
|
+
isVariadic(): boolean;
|
|
57
|
+
getVariadicOptions(): VariadicOptions | undefined;
|
|
58
|
+
getConstraint(): ConstraintFunction<T> | undefined;
|
|
59
|
+
isCapturing(): boolean;
|
|
60
|
+
getType(): string | Type | undefined;
|
|
61
|
+
}
|
|
62
|
+
export declare class TemplateParamImpl<T = any> implements TemplateParam<T> {
|
|
63
|
+
readonly name: string;
|
|
64
|
+
constructor(name: string);
|
|
65
|
+
getName(): string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Represents a property access on a captured value.
|
|
69
|
+
* When you access a property on a Capture (e.g., method.name), you get a CaptureValue
|
|
70
|
+
* that knows how to resolve that property from the matched values.
|
|
71
|
+
*/
|
|
72
|
+
export declare class CaptureValue {
|
|
73
|
+
readonly rootCapture: Capture;
|
|
74
|
+
readonly propertyPath: string[];
|
|
75
|
+
readonly arrayOperation?: {
|
|
76
|
+
type: "index" | "slice" | "length";
|
|
77
|
+
args?: number[];
|
|
78
|
+
} | undefined;
|
|
79
|
+
constructor(rootCapture: Capture, propertyPath: string[], arrayOperation?: {
|
|
80
|
+
type: "index" | "slice" | "length";
|
|
81
|
+
args?: number[];
|
|
82
|
+
} | undefined);
|
|
83
|
+
/**
|
|
84
|
+
* Resolves this capture value by looking up the root capture in the values map
|
|
85
|
+
* and navigating through the property path.
|
|
86
|
+
*/
|
|
87
|
+
resolve(values: Pick<Map<string, J | J[]>, 'get'>): any;
|
|
88
|
+
/**
|
|
89
|
+
* Checks if this CaptureValue will resolve to an array that should be expanded.
|
|
90
|
+
*/
|
|
91
|
+
isArrayExpansion(): boolean;
|
|
92
|
+
}
|
|
93
|
+
export declare function capture<T = any>(options: CaptureOptions<T> & {
|
|
94
|
+
variadic?: never;
|
|
95
|
+
}): Capture<T> & T;
|
|
96
|
+
export declare function capture<T = any>(options: {
|
|
97
|
+
name?: string;
|
|
98
|
+
variadic: true | VariadicOptions;
|
|
99
|
+
constraint?: ConstraintFunction<T[]>;
|
|
100
|
+
min?: number;
|
|
101
|
+
max?: number;
|
|
102
|
+
}): Capture<T[]> & T[];
|
|
103
|
+
export declare function capture<T = any>(name?: string): Capture<T> & T;
|
|
104
|
+
export declare namespace capture {
|
|
105
|
+
var nextUnnamedId: number;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Creates a non-capturing pattern match for use in patterns.
|
|
109
|
+
*
|
|
110
|
+
* Use `any()` when you need to match AST structure without binding the matched value to a name.
|
|
111
|
+
* This is useful for validation patterns where you care about structure but not the specific values.
|
|
112
|
+
*
|
|
113
|
+
* **Key Differences from `capture()`:**
|
|
114
|
+
* - `any()` returns `Any<T>` type (not `Capture<T>`)
|
|
115
|
+
* - Cannot be used in templates (TypeScript compiler prevents this)
|
|
116
|
+
* - Does not bind matched values (more memory efficient for patterns)
|
|
117
|
+
* - Supports same features: constraints, variadic matching
|
|
118
|
+
*
|
|
119
|
+
* @template T The expected type of the matched AST node (for TypeScript autocomplete and constraints)
|
|
120
|
+
* @param options Optional configuration (variadic, constraint)
|
|
121
|
+
* @returns An Any object that matches patterns without capturing
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* // Match any single argument without capturing
|
|
125
|
+
* const pat = pattern`foo(${any()})`;
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* // Match with constraint validation
|
|
129
|
+
* const numericArg = any<J.Literal>({
|
|
130
|
+
* constraint: (node) => typeof node.value === 'number'
|
|
131
|
+
* });
|
|
132
|
+
* const pat = pattern`process(${numericArg})`;
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* // Variadic any - match zero or more without capturing
|
|
136
|
+
* const rest = any({ variadic: true });
|
|
137
|
+
* const first = capture('first');
|
|
138
|
+
* const pat = pattern`foo(${first}, ${rest})`;
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* // Mixed with captures - capture some, ignore others
|
|
142
|
+
* const important = capture('important');
|
|
143
|
+
* const pat = pattern`
|
|
144
|
+
* if (${any()}) {
|
|
145
|
+
* ${important}
|
|
146
|
+
* }
|
|
147
|
+
* `;
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* // Variadic with constraints
|
|
151
|
+
* const numericArgs = any<J.Literal>({
|
|
152
|
+
* variadic: true,
|
|
153
|
+
* constraint: (nodes) => nodes.every(n => typeof n.value === 'number')
|
|
154
|
+
* });
|
|
155
|
+
* const pat = pattern`sum(${numericArgs})`;
|
|
156
|
+
*/
|
|
157
|
+
export declare function any<T = any>(options: {
|
|
158
|
+
constraint: ConstraintFunction<T>;
|
|
159
|
+
} & {
|
|
160
|
+
variadic?: never;
|
|
161
|
+
}): Any<T> & T;
|
|
162
|
+
export declare function any<T = any>(options: {
|
|
163
|
+
variadic: true | VariadicOptions;
|
|
164
|
+
constraint?: ConstraintFunction<T[]>;
|
|
165
|
+
min?: number;
|
|
166
|
+
max?: number;
|
|
167
|
+
}): Any<T[]> & T[];
|
|
168
|
+
export declare function any<T = any>(options?: CaptureOptions<T>): Any<T> & T;
|
|
169
|
+
export declare namespace any {
|
|
170
|
+
var nextAnonId: number;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Creates a parameter specification for use in standalone templates (not used with patterns).
|
|
174
|
+
*
|
|
175
|
+
* Use `param()` when creating templates that are not used with pattern matching.
|
|
176
|
+
* Use `capture()` when the template works with a pattern.
|
|
177
|
+
*
|
|
178
|
+
* @template T The expected type of the parameter value (for TypeScript autocomplete only)
|
|
179
|
+
* @param name Optional name for the parameter. If not provided, an auto-generated name is used.
|
|
180
|
+
* @returns A TemplateParam object (simpler than Capture, no property access support)
|
|
181
|
+
*
|
|
182
|
+
* @remarks
|
|
183
|
+
* **When to use `param()` vs `capture()`:**
|
|
184
|
+
*
|
|
185
|
+
* - Use `param()` in **standalone templates** (no pattern matching involved)
|
|
186
|
+
* - Use `capture()` in **patterns** and templates used with patterns
|
|
187
|
+
*
|
|
188
|
+
* **Key Differences:**
|
|
189
|
+
* - `TemplateParam` is simpler - no property access proxy overhead
|
|
190
|
+
* - `Capture` supports property access (e.g., `capture('x').name.simpleName`)
|
|
191
|
+
* - Both work in templates, but `param()` makes intent clearer for standalone use
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* // ✅ GOOD: Use param() for standalone templates
|
|
195
|
+
* const value = param<J.Literal>('value');
|
|
196
|
+
* const tmpl = template`return ${value} * 2;`;
|
|
197
|
+
* await tmpl.apply(cursor, node, new Map([['value', someLiteral]]));
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* // ✅ GOOD: Use capture() with patterns
|
|
201
|
+
* const value = capture('value');
|
|
202
|
+
* const pat = pattern`foo(${value})`;
|
|
203
|
+
* const tmpl = template`bar(${value})`; // capture() makes sense here
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* // ⚠️ CONFUSING: Using capture() in standalone template
|
|
207
|
+
* const value = capture('value');
|
|
208
|
+
* template`return ${value} * 2;`; // "Capturing" what? There's no pattern!
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* // ❌ WRONG: param() doesn't support property access
|
|
212
|
+
* const node = param<J.MethodInvocation>('invocation');
|
|
213
|
+
* template`console.log(${node.name})` // Error! Use capture() for property access
|
|
214
|
+
*/
|
|
215
|
+
export declare function param<T = any>(name?: string): TemplateParam<T>;
|
|
216
|
+
/**
|
|
217
|
+
* Represents raw code that should be inserted verbatim into templates at construction time.
|
|
218
|
+
* This is useful for dynamic code generation where the code structure is determined at runtime.
|
|
219
|
+
*/
|
|
220
|
+
export declare class RawCode {
|
|
221
|
+
readonly code: string;
|
|
222
|
+
[RAW_CODE_SYMBOL]: boolean;
|
|
223
|
+
constructor(code: string);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Creates a raw code specification for inserting literal code strings into templates.
|
|
227
|
+
*
|
|
228
|
+
* Use `raw()` when you need to insert code that is generated dynamically (e.g., from recipe options,
|
|
229
|
+
* computed field names, or programmatic string manipulation) directly into a template at construction time.
|
|
230
|
+
*
|
|
231
|
+
* The string is spliced into the template before parsing, so it becomes part of the template's AST.
|
|
232
|
+
* This is different from `param()` or `capture()` which are placeholders replaced during application.
|
|
233
|
+
*
|
|
234
|
+
* @param code The code string to insert verbatim into the template
|
|
235
|
+
* @returns A RawCode object that will be spliced into the template
|
|
236
|
+
*
|
|
237
|
+
* @remarks
|
|
238
|
+
* **When to use `raw()` vs `param()` vs `capture()`:**
|
|
239
|
+
*
|
|
240
|
+
* - Use `raw()` when you have a **code string** to insert at **template construction time**
|
|
241
|
+
* - Use `param()` when you have an **AST node** to substitute at **template application time**
|
|
242
|
+
* - Use `capture()` when working with **pattern matching** and need to reference matched values
|
|
243
|
+
*
|
|
244
|
+
* **Safety Considerations:**
|
|
245
|
+
* - No validation is performed on the code string
|
|
246
|
+
* - The code must be syntactically valid at the position where it's inserted
|
|
247
|
+
* - Recipe authors are trusted to provide valid code
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* // Recipe option determines the log level
|
|
251
|
+
* class MyRecipe extends Recipe {
|
|
252
|
+
* @Option
|
|
253
|
+
* logLevel: string = "info";
|
|
254
|
+
*
|
|
255
|
+
* getVisitor() {
|
|
256
|
+
* // Template constructed with dynamic method name
|
|
257
|
+
* const replacement = template`logger.${raw(this.logLevel)}(${_('msg')})`;
|
|
258
|
+
* // Produces: logger.info(...) or logger.warn(...) etc.
|
|
259
|
+
* }
|
|
260
|
+
* }
|
|
261
|
+
*
|
|
262
|
+
* @example
|
|
263
|
+
* // Build object literal from collected field names
|
|
264
|
+
* const fields = ["userId", "timestamp", "status"];
|
|
265
|
+
* template`{ ${raw(fields.join(', '))} }`
|
|
266
|
+
* // Produces: { userId, timestamp, status }
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* // Dynamic import path
|
|
270
|
+
* const modulePath = "./utils";
|
|
271
|
+
* template`import { helper } from ${raw(`'${modulePath}'`)}`
|
|
272
|
+
* // Produces: import { helper } from './utils'
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* // Configurable operator
|
|
276
|
+
* const operator = ">=";
|
|
277
|
+
* template`${_('value')} ${raw(operator)} threshold`
|
|
278
|
+
* // Produces: value >= threshold
|
|
279
|
+
*/
|
|
280
|
+
export declare function raw(code: string): RawCode;
|
|
281
|
+
/**
|
|
282
|
+
* Concise alias for `capture`. Works well for inline captures in patterns and templates.
|
|
283
|
+
*
|
|
284
|
+
* @param name Optional name for the capture. If not provided, an auto-generated name is used.
|
|
285
|
+
* @returns A Capture object
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* // Inline captures with _ alias
|
|
289
|
+
* pattern`isDate(${_('dateArg')})`
|
|
290
|
+
* template`${_('dateArg')} instanceof Date`
|
|
291
|
+
*/
|
|
292
|
+
export declare const _: typeof capture;
|
|
293
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../../src/javascript/templating/capture.ts"],"names":[],"mappings":"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"}
|