@openrewrite/recipes-angular 1.9.0-20260804-204521 → 1.9.0-20260804-210913
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/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/migration/add-istanbul-instrumenter.d.ts +8 -0
- package/dist/migration/add-istanbul-instrumenter.d.ts.map +1 -0
- package/dist/migration/add-istanbul-instrumenter.js +80 -0
- package/dist/migration/add-istanbul-instrumenter.js.map +1 -0
- package/dist/migration/add-strict-templates-false.d.ts.map +1 -1
- package/dist/migration/add-strict-templates-false.js +4 -5
- package/dist/migration/add-strict-templates-false.js.map +1 -1
- package/dist/migration/add-trust-proxy-headers.d.ts +8 -0
- package/dist/migration/add-trust-proxy-headers.d.ts.map +1 -0
- package/dist/migration/add-trust-proxy-headers.js +82 -0
- package/dist/migration/add-trust-proxy-headers.js.map +1 -0
- package/dist/migration/js-support.d.ts +6 -0
- package/dist/migration/js-support.d.ts.map +1 -0
- package/dist/migration/js-support.js +94 -0
- package/dist/migration/js-support.js.map +1 -0
- package/dist/migration/json-support.d.ts +6 -0
- package/dist/migration/json-support.d.ts.map +1 -1
- package/dist/migration/json-support.js +14 -0
- package/dist/migration/json-support.js.map +1 -1
- package/dist/migration/migrate-input-to-signal.d.ts.map +1 -1
- package/dist/migration/migrate-input-to-signal.js +3 -67
- package/dist/migration/migrate-input-to-signal.js.map +1 -1
- package/dist/migration/migrate-model-with-output.d.ts +8 -0
- package/dist/migration/migrate-model-with-output.d.ts.map +1 -0
- package/dist/migration/migrate-model-with-output.js +192 -0
- package/dist/migration/migrate-model-with-output.js.map +1 -0
- package/dist/migration/suppress-safe-navigation-diagnostics.js +1 -1
- package/dist/migration/suppress-safe-navigation-diagnostics.js.map +1 -1
- package/dist/migration/upgrade-to-angular-22.d.ts.map +1 -1
- package/dist/migration/upgrade-to-angular-22.js +9 -0
- package/dist/migration/upgrade-to-angular-22.js.map +1 -1
- package/dist/search/find-template-safe-navigation.d.ts +8 -0
- package/dist/search/find-template-safe-navigation.d.ts.map +1 -0
- package/dist/search/find-template-safe-navigation.js +105 -0
- package/dist/search/find-template-safe-navigation.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +12 -0
- package/src/migration/add-istanbul-instrumenter.ts +62 -0
- package/src/migration/add-strict-templates-false.ts +4 -6
- package/src/migration/add-trust-proxy-headers.ts +61 -0
- package/src/migration/js-support.ts +92 -0
- package/src/migration/json-support.ts +13 -0
- package/src/migration/migrate-input-to-signal.ts +1 -67
- package/src/migration/migrate-model-with-output.ts +201 -0
- package/src/migration/suppress-safe-navigation-diagnostics.ts +2 -2
- package/src/migration/upgrade-to-angular-22.ts +9 -0
- package/src/search/find-template-safe-navigation.ts +72 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-support.js","sourceRoot":"","sources":["../../src/migration/json-support.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAKH,0BASC;AAED,kCAgBC;AAED,oCAMC;AAED,0CAEC;AAED,oCAaC;AAuBD,sCAmBC;
|
|
1
|
+
{"version":3,"file":"json-support.js","sourceRoot":"","sources":["../../src/migration/json-support.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-input-to-signal.d.ts","sourceRoot":"","sources":["../../src/migration/migrate-input-to-signal.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAgD,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"migrate-input-to-signal.d.ts","sourceRoot":"","sources":["../../src/migration/migrate-input-to-signal.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,gBAAgB,EAAgD,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAQzH,qBAAa,oBAAqB,SAAQ,MAAM;IAC5C,QAAQ,CAAC,IAAI,+DAA+D;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAkD;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAEoE;IAE1F,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA4C9D"}
|
|
@@ -19,6 +19,7 @@ const rewrite_1 = require("@openrewrite/rewrite");
|
|
|
19
19
|
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
20
|
const java_1 = require("@openrewrite/rewrite/java");
|
|
21
21
|
const mutative_1 = require("mutative");
|
|
22
|
+
const js_support_1 = require("./js-support");
|
|
22
23
|
const ANGULAR_DECORATORS = ['Component', 'Directive', 'Pipe', 'Injectable'];
|
|
23
24
|
class MigrateInputToSignal extends rewrite_1.Recipe {
|
|
24
25
|
constructor() {
|
|
@@ -143,8 +144,8 @@ function buildInputCall(typeExpr, existingInitializer, config) {
|
|
|
143
144
|
}
|
|
144
145
|
// Options argument: { alias: 'foo' }
|
|
145
146
|
if (config.alias) {
|
|
146
|
-
const aliasOption = buildOptionsObject([
|
|
147
|
-
buildPropertyAssignment('alias', config.alias),
|
|
147
|
+
const aliasOption = (0, js_support_1.buildOptionsObject)([
|
|
148
|
+
(0, js_support_1.buildPropertyAssignment)('alias', config.alias),
|
|
148
149
|
]);
|
|
149
150
|
if (args.length > 0) {
|
|
150
151
|
// Add space before options when there's a default value
|
|
@@ -214,71 +215,6 @@ function buildInputCall(typeExpr, existingInitializer, config) {
|
|
|
214
215
|
};
|
|
215
216
|
return call;
|
|
216
217
|
}
|
|
217
|
-
function buildPropertyAssignment(key, value) {
|
|
218
|
-
return {
|
|
219
|
-
kind: javascript_1.JS.Kind.PropertyAssignment,
|
|
220
|
-
id: (0, rewrite_1.randomId)(),
|
|
221
|
-
prefix: java_1.singleSpace,
|
|
222
|
-
markers: rewrite_1.emptyMarkers,
|
|
223
|
-
name: {
|
|
224
|
-
kind: java_1.J.Kind.RightPadded,
|
|
225
|
-
element: {
|
|
226
|
-
kind: java_1.J.Kind.Identifier,
|
|
227
|
-
id: (0, rewrite_1.randomId)(),
|
|
228
|
-
prefix: java_1.emptySpace,
|
|
229
|
-
markers: rewrite_1.emptyMarkers,
|
|
230
|
-
simpleName: key,
|
|
231
|
-
annotations: [],
|
|
232
|
-
type: undefined,
|
|
233
|
-
},
|
|
234
|
-
after: java_1.emptySpace,
|
|
235
|
-
markers: rewrite_1.emptyMarkers,
|
|
236
|
-
},
|
|
237
|
-
assigmentToken: 'Colon',
|
|
238
|
-
initializer: {
|
|
239
|
-
kind: java_1.J.Kind.Literal,
|
|
240
|
-
id: (0, rewrite_1.randomId)(),
|
|
241
|
-
prefix: java_1.singleSpace,
|
|
242
|
-
markers: rewrite_1.emptyMarkers,
|
|
243
|
-
value: value,
|
|
244
|
-
valueSource: `'${value}'`,
|
|
245
|
-
unicodeEscapes: undefined,
|
|
246
|
-
type: undefined,
|
|
247
|
-
},
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
function buildOptionsObject(properties) {
|
|
251
|
-
return {
|
|
252
|
-
kind: java_1.J.Kind.NewClass,
|
|
253
|
-
id: (0, rewrite_1.randomId)(),
|
|
254
|
-
prefix: java_1.emptySpace,
|
|
255
|
-
markers: rewrite_1.emptyMarkers,
|
|
256
|
-
enclosing: undefined,
|
|
257
|
-
new: java_1.emptySpace,
|
|
258
|
-
clazz: undefined,
|
|
259
|
-
arguments: {
|
|
260
|
-
kind: 'org.openrewrite.java.tree.JContainer',
|
|
261
|
-
before: java_1.emptySpace,
|
|
262
|
-
markers: rewrite_1.emptyMarkers,
|
|
263
|
-
elements: [],
|
|
264
|
-
},
|
|
265
|
-
body: {
|
|
266
|
-
kind: java_1.J.Kind.Block,
|
|
267
|
-
id: (0, rewrite_1.randomId)(),
|
|
268
|
-
prefix: java_1.emptySpace,
|
|
269
|
-
markers: rewrite_1.emptyMarkers,
|
|
270
|
-
static: { kind: java_1.J.Kind.RightPadded, element: false, after: java_1.emptySpace, markers: rewrite_1.emptyMarkers },
|
|
271
|
-
statements: properties.map(p => ({
|
|
272
|
-
kind: java_1.J.Kind.RightPadded,
|
|
273
|
-
element: p,
|
|
274
|
-
after: java_1.emptySpace,
|
|
275
|
-
markers: rewrite_1.emptyMarkers,
|
|
276
|
-
})),
|
|
277
|
-
end: java_1.singleSpace,
|
|
278
|
-
},
|
|
279
|
-
constructorType: undefined,
|
|
280
|
-
};
|
|
281
|
-
}
|
|
282
218
|
function buildInputField(varDecl, inputAnnotationIdx, config) {
|
|
283
219
|
const namedVar = varDecl.variables[0].element;
|
|
284
220
|
const inputCall = buildInputCall(varDecl.typeExpression, namedVar.initializer, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-input-to-signal.js","sourceRoot":"","sources":["../../src/migration/migrate-input-to-signal.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAAyH;AACzH,gEAAyG;AACzG,oDAA8F;AAC9F,uCAAgC;
|
|
1
|
+
{"version":3,"file":"migrate-input-to-signal.js","sourceRoot":"","sources":["../../src/migration/migrate-input-to-signal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecutionContext, Recipe, TreeVisitor } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class MigrateModelWithOutput extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.migration.migrate-model-with-output";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
editor(): Promise<TreeVisitor<any, ExecutionContext>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=migrate-model-with-output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-model-with-output.d.ts","sourceRoot":"","sources":["../../src/migration/migrate-model-with-output.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,gBAAgB,EAAkC,MAAM,EAAE,WAAW,EAAC,MAAM,sBAAsB,CAAC;AAMzH,qBAAa,sBAAuB,SAAQ,MAAM;IAC9C,QAAQ,CAAC,IAAI,iEAAiE;IAC9E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA2D;IACvF,QAAQ,CAAC,WAAW,EAAE,MAAM,CAE8E;IAEpG,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;CA6C9D"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026 the original author or authors.
|
|
4
|
+
*
|
|
5
|
+
* Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.MigrateModelWithOutput = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
20
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
21
|
+
const mutative_1 = require("mutative");
|
|
22
|
+
const js_support_1 = require("./js-support");
|
|
23
|
+
class MigrateModelWithOutput extends rewrite_1.Recipe {
|
|
24
|
+
constructor() {
|
|
25
|
+
super(...arguments);
|
|
26
|
+
this.name = "org.openrewrite.angular.migration.migrate-model-with-output";
|
|
27
|
+
this.displayName = "Split a `model()` that has a matching explicit output";
|
|
28
|
+
this.description = "Rewrites `foo = model()` to `fooInput = input({alias: 'foo'})` plus " +
|
|
29
|
+
"`foo = linkedSignal(this.fooInput)` when the same class also declares a `fooChange` output. " +
|
|
30
|
+
"`model()` already contributes a `fooChange` output, and Angular 22 rejects the resulting duplicate.";
|
|
31
|
+
}
|
|
32
|
+
editor() {
|
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
35
|
+
visitClassDeclaration(classDecl, p) {
|
|
36
|
+
const _super = Object.create(null, {
|
|
37
|
+
visitClassDeclaration: { get: () => super.visitClassDeclaration }
|
|
38
|
+
});
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const c = yield _super.visitClassDeclaration.call(this, classDecl, p);
|
|
41
|
+
if (!c)
|
|
42
|
+
return c;
|
|
43
|
+
const outputs = new Set();
|
|
44
|
+
for (const stmt of c.body.statements) {
|
|
45
|
+
const name = declaredName(stmt.element);
|
|
46
|
+
if (name && declaresOutput(stmt.element))
|
|
47
|
+
outputs.add(name);
|
|
48
|
+
}
|
|
49
|
+
if (outputs.size === 0)
|
|
50
|
+
return c;
|
|
51
|
+
let changed = false;
|
|
52
|
+
const newStatements = c.body.statements.flatMap(stmt => {
|
|
53
|
+
const name = declaredName(stmt.element);
|
|
54
|
+
if (!name || !outputs.has(`${name}Change`))
|
|
55
|
+
return [stmt];
|
|
56
|
+
const varDecl = stmt.element;
|
|
57
|
+
const modelCall = modelInvocation(varDecl);
|
|
58
|
+
if (!modelCall)
|
|
59
|
+
return [stmt];
|
|
60
|
+
const inputCall = toInputCall(modelCall, name);
|
|
61
|
+
if (!inputCall)
|
|
62
|
+
return [stmt];
|
|
63
|
+
changed = true;
|
|
64
|
+
const semicolon = (0, rewrite_1.markers)({ kind: 'org.openrewrite.java.marker.Semicolon', id: (0, rewrite_1.randomId)() });
|
|
65
|
+
return [
|
|
66
|
+
Object.assign(Object.assign({}, stmt), { element: withNameAndInitializer(varDecl, `${name}Input`, inputCall), markers: semicolon }),
|
|
67
|
+
Object.assign(Object.assign({}, stmt), { element: withNameAndInitializer(varDecl, name, linkedSignalCall(`${name}Input`)), markers: semicolon }),
|
|
68
|
+
];
|
|
69
|
+
});
|
|
70
|
+
if (!changed)
|
|
71
|
+
return c;
|
|
72
|
+
(0, javascript_1.maybeAddImport)(this, { module: '@angular/core', member: 'input' });
|
|
73
|
+
(0, javascript_1.maybeAddImport)(this, { module: '@angular/core', member: 'linkedSignal' });
|
|
74
|
+
(0, javascript_1.maybeRemoveImport)(this, '@angular/core', 'model');
|
|
75
|
+
return (0, mutative_1.create)(c, (draft) => {
|
|
76
|
+
draft.body.statements = newStatements;
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.MigrateModelWithOutput = MigrateModelWithOutput;
|
|
85
|
+
function declaredName(statement) {
|
|
86
|
+
if (statement.kind !== java_1.J.Kind.VariableDeclarations)
|
|
87
|
+
return undefined;
|
|
88
|
+
const variables = statement.variables;
|
|
89
|
+
if (variables.length !== 1)
|
|
90
|
+
return undefined;
|
|
91
|
+
const name = variables[0].element.name;
|
|
92
|
+
return (0, java_1.isIdentifier)(name) ? name.simpleName : undefined;
|
|
93
|
+
}
|
|
94
|
+
function declaresOutput(statement) {
|
|
95
|
+
if (statement.kind !== java_1.J.Kind.VariableDeclarations)
|
|
96
|
+
return false;
|
|
97
|
+
const varDecl = statement;
|
|
98
|
+
if (varDecl.leadingAnnotations.some(a => (0, java_1.isIdentifier)(a.annotationType)
|
|
99
|
+
&& a.annotationType.simpleName === 'Output')) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return !!factoryInvocation(varDecl, 'output');
|
|
103
|
+
}
|
|
104
|
+
function modelInvocation(varDecl) {
|
|
105
|
+
return factoryInvocation(varDecl, 'model');
|
|
106
|
+
}
|
|
107
|
+
/** Matches `factory(...)` and `factory.required(...)` initializers. */
|
|
108
|
+
function factoryInvocation(varDecl, factory) {
|
|
109
|
+
var _a, _b;
|
|
110
|
+
const initializer = (_b = (_a = varDecl.variables[0]) === null || _a === void 0 ? void 0 : _a.element.initializer) === null || _b === void 0 ? void 0 : _b.element;
|
|
111
|
+
if (!initializer || initializer.kind !== java_1.J.Kind.MethodInvocation)
|
|
112
|
+
return undefined;
|
|
113
|
+
const call = initializer;
|
|
114
|
+
if (!(0, java_1.isIdentifier)(call.name))
|
|
115
|
+
return undefined;
|
|
116
|
+
if (!call.select) {
|
|
117
|
+
return call.name.simpleName === factory ? call : undefined;
|
|
118
|
+
}
|
|
119
|
+
const select = call.select.element;
|
|
120
|
+
return call.name.simpleName === 'required' && (0, java_1.isIdentifier)(select) && select.simpleName === factory ? call : undefined;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Turns the `model()` call into the matching `input()` call, aliased back to the original
|
|
124
|
+
* property name so templates keep binding to it. Returns undefined when the options argument
|
|
125
|
+
* is something other than an object literal, which we cannot merge an alias into.
|
|
126
|
+
*/
|
|
127
|
+
function toInputCall(modelCall, name) {
|
|
128
|
+
var _a, _b, _c;
|
|
129
|
+
const required = !!modelCall.select;
|
|
130
|
+
const args = ((_b = (_a = modelCall.arguments) === null || _a === void 0 ? void 0 : _a.elements) !== null && _b !== void 0 ? _b : []).filter(rp => rp.element.kind !== java_1.J.Kind.Empty);
|
|
131
|
+
const optionsIndex = required ? 0 : 1;
|
|
132
|
+
const options = (_c = args[optionsIndex]) === null || _c === void 0 ? void 0 : _c.element;
|
|
133
|
+
let newArgs;
|
|
134
|
+
if (!options) {
|
|
135
|
+
newArgs = [...args, (0, js_support_1.rightPadded)(Object.assign(Object.assign({}, (0, js_support_1.buildOptionsObject)([(0, js_support_1.buildPropertyAssignment)('alias', name)])), { prefix: args.length > 0 ? java_1.singleSpace : java_1.emptySpace }))];
|
|
136
|
+
}
|
|
137
|
+
else if (options.kind === java_1.J.Kind.NewClass && options.body) {
|
|
138
|
+
const body = options.body;
|
|
139
|
+
const properties = body.statements.filter(rp => rp.element.kind !== java_1.J.Kind.Empty);
|
|
140
|
+
const hasAlias = properties.some(rp => {
|
|
141
|
+
const element = rp.element;
|
|
142
|
+
if (element.kind !== javascript_1.JS.Kind.PropertyAssignment)
|
|
143
|
+
return false;
|
|
144
|
+
const propName = element.name.element;
|
|
145
|
+
return (0, java_1.isIdentifier)(propName) && propName.simpleName === 'alias';
|
|
146
|
+
});
|
|
147
|
+
if (hasAlias) {
|
|
148
|
+
newArgs = args;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const withAlias = Object.assign(Object.assign({}, options), { body: Object.assign(Object.assign({}, body), { statements: [(0, js_support_1.rightPadded)((0, js_support_1.buildPropertyAssignment)('alias', name)), ...properties] }) });
|
|
152
|
+
newArgs = [...args];
|
|
153
|
+
newArgs[optionsIndex] = Object.assign(Object.assign({}, args[optionsIndex]), { element: withAlias });
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
return Object.assign(Object.assign({}, modelCall), { select: required ? Object.assign(Object.assign({}, modelCall.select), { element: (0, js_support_1.identifier)('input') }) : undefined, name: required ? modelCall.name : (0, js_support_1.identifier)('input'), arguments: Object.assign(Object.assign({}, modelCall.arguments), { elements: newArgs }), methodType: undefined });
|
|
160
|
+
}
|
|
161
|
+
function linkedSignalCall(inputName) {
|
|
162
|
+
const thisAccess = {
|
|
163
|
+
kind: java_1.J.Kind.FieldAccess,
|
|
164
|
+
id: (0, rewrite_1.randomId)(),
|
|
165
|
+
prefix: java_1.emptySpace,
|
|
166
|
+
markers: rewrite_1.emptyMarkers,
|
|
167
|
+
target: (0, js_support_1.identifier)('this'),
|
|
168
|
+
name: { kind: java_1.J.Kind.LeftPadded, before: java_1.emptySpace, element: (0, js_support_1.identifier)(inputName), markers: rewrite_1.emptyMarkers },
|
|
169
|
+
type: undefined,
|
|
170
|
+
};
|
|
171
|
+
return {
|
|
172
|
+
kind: java_1.J.Kind.MethodInvocation,
|
|
173
|
+
id: (0, rewrite_1.randomId)(),
|
|
174
|
+
prefix: java_1.singleSpace,
|
|
175
|
+
markers: rewrite_1.emptyMarkers,
|
|
176
|
+
select: undefined,
|
|
177
|
+
typeParameters: undefined,
|
|
178
|
+
name: (0, js_support_1.identifier)('linkedSignal'),
|
|
179
|
+
arguments: {
|
|
180
|
+
kind: 'org.openrewrite.java.tree.JContainer',
|
|
181
|
+
before: java_1.emptySpace,
|
|
182
|
+
markers: rewrite_1.emptyMarkers,
|
|
183
|
+
elements: [(0, js_support_1.rightPadded)(thisAccess)],
|
|
184
|
+
},
|
|
185
|
+
methodType: undefined,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
function withNameAndInitializer(varDecl, name, call) {
|
|
189
|
+
const namedVar = varDecl.variables[0].element;
|
|
190
|
+
return Object.assign(Object.assign({}, varDecl), { id: (0, rewrite_1.randomId)(), typeExpression: undefined, variables: [Object.assign(Object.assign({}, varDecl.variables[0]), { element: Object.assign(Object.assign({}, namedVar), { id: (0, rewrite_1.randomId)(), name: (0, js_support_1.identifier)(name, namedVar.name.prefix), dimensionsAfterName: [], initializer: { before: java_1.singleSpace, element: call, markers: rewrite_1.emptyMarkers } }) })] });
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=migrate-model-with-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-model-with-output.js","sourceRoot":"","sources":["../../src/migration/migrate-model-with-output.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ class SuppressSafeNavigationDiagnostics extends rewrite_1.Recipe {
|
|
|
33
33
|
return new class extends json_1.JsonVisitor {
|
|
34
34
|
visitDocument(doc, p) {
|
|
35
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
if (!doc.sourcePath
|
|
36
|
+
if (!(0, json_support_1.isRootTsconfig)(doc.sourcePath) && !(0, json_support_1.declaresAngularCompilerOptions)(doc))
|
|
37
37
|
return doc;
|
|
38
38
|
const root = doc.value;
|
|
39
39
|
if (!(0, json_1.isObject)(root))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suppress-safe-navigation-diagnostics.js","sourceRoot":"","sources":["../../src/migration/suppress-safe-navigation-diagnostics.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,oDAAoF;AACpF,
|
|
1
|
+
{"version":3,"file":"suppress-safe-navigation-diagnostics.js","sourceRoot":"","sources":["../../src/migration/suppress-safe-navigation-diagnostics.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA2E;AAC3E,oDAAoF;AACpF,iDAAoH;AAEpH,MAAM,iBAAiB,GAAG,CAAC,8BAA8B,EAAE,0BAA0B,CAAC,CAAC;AAEvF,MAAa,iCAAkC,SAAQ,gBAAM;IAA7D;;QACa,SAAI,GAAG,wEAAwE,CAAC;QAChF,gBAAW,GAAW,mDAAmD,CAAC;QAC1E,gBAAW,GAAW,iGAAiG;YAC5H,iHAAiH;YACjH,mHAAmH,CAAC;IAwB5H,CAAC;IAtBS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,kBAA6B;gBAClC,aAAa,CAAC,GAAkB,EAAE,CAAmB;;wBACjE,IAAI,CAAC,IAAA,6BAAc,EAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAA,6CAA8B,EAAC,GAAG,CAAC;4BAAE,OAAO,GAAG,CAAC;wBAExF,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;wBACvB,IAAI,CAAC,IAAA,eAAQ,EAAC,IAAI,CAAC;4BAAE,OAAO,GAAG,CAAC;wBAEhC,MAAM,UAAU,GAAG,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;wBACrC,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;wBAE9C,IAAI,KAAK,GAAG,IAAI,CAAC;wBACjB,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;4BACpC,KAAK,GAAG,IAAA,4BAAa,EAAC,KAAK,EACvB,CAAC,wBAAwB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,KAAK,CAAC,EAClE,IAAA,sBAAO,EAAC,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;wBAC/D,CAAC;wBAED,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gCAAI,GAAG,KAAE,KAAK,GAAkB,CAAC;oBACnE,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AA7BD,8EA6BC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-to-angular-22.d.ts","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-22.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade-to-angular-22.d.ts","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-22.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAqB5C,qBAAa,6BAA8B,SAAQ,MAAM;IACrD,QAAQ,CAAC,IAAI,2DAA2D;IACxE,QAAQ,CAAC,WAAW,0CAA0C;IAC9D,QAAQ,CAAC,WAAW,SACkE;IAEhF,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CA6BxC;AAED,qBAAa,kBAAmB,SAAQ,MAAM;IAC1C,QAAQ,CAAC,IAAI,gDAAgD;IAC7D,QAAQ,CAAC,WAAW,2BAA2B;IAC/C,QAAQ,CAAC,WAAW,SAIiB;IAE/B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAgBxC"}
|
|
@@ -29,6 +29,10 @@ const add_no_incremental_hydration_1 = require("./add-no-incremental-hydration")
|
|
|
29
29
|
const add_strict_templates_false_1 = require("./add-strict-templates-false");
|
|
30
30
|
const suppress_safe_navigation_diagnostics_1 = require("./suppress-safe-navigation-diagnostics");
|
|
31
31
|
const add_with_xhr_1 = require("./add-with-xhr");
|
|
32
|
+
const add_trust_proxy_headers_1 = require("./add-trust-proxy-headers");
|
|
33
|
+
const add_istanbul_instrumenter_1 = require("./add-istanbul-instrumenter");
|
|
34
|
+
const migrate_model_with_output_1 = require("./migrate-model-with-output");
|
|
35
|
+
const find_template_safe_navigation_1 = require("../search/find-template-safe-navigation");
|
|
32
36
|
const replace_create_ng_module_ref_1 = require("./replace-create-ng-module-ref");
|
|
33
37
|
const rename_angular_js_globals_1 = require("./rename-angular-js-globals");
|
|
34
38
|
class UpgradeToAngular22CodeChanges extends rewrite_1.Recipe {
|
|
@@ -49,6 +53,7 @@ class UpgradeToAngular22CodeChanges extends rewrite_1.Recipe {
|
|
|
49
53
|
new find_can_match_usage_1.FindCanMatchUsage(),
|
|
50
54
|
new find_http_xhr_backend_usage_1.FindHttpXhrBackendUsage(),
|
|
51
55
|
new find_implicit_params_inheritance_1.FindImplicitParamsInheritance(),
|
|
56
|
+
new find_template_safe_navigation_1.FindTemplateSafeNavigation(),
|
|
52
57
|
// Change detection defaults
|
|
53
58
|
new add_eager_change_detection_1.AddEagerChangeDetection(),
|
|
54
59
|
new rename_default_change_detection_1.RenameDefaultChangeDetection(),
|
|
@@ -59,7 +64,11 @@ class UpgradeToAngular22CodeChanges extends rewrite_1.Recipe {
|
|
|
59
64
|
new add_no_incremental_hydration_1.AddNoIncrementalHydration(),
|
|
60
65
|
new add_strict_templates_false_1.AddStrictTemplatesFalse(),
|
|
61
66
|
new suppress_safe_navigation_diagnostics_1.SuppressSafeNavigationDiagnostics(),
|
|
67
|
+
// Server rendering and test tooling
|
|
68
|
+
new add_trust_proxy_headers_1.AddTrustProxyHeaders(),
|
|
69
|
+
new add_istanbul_instrumenter_1.AddIstanbulInstrumenter(),
|
|
62
70
|
// Removed and deprecated APIs
|
|
71
|
+
new migrate_model_with_output_1.MigrateModelWithOutput(),
|
|
63
72
|
new replace_create_ng_module_ref_1.ReplaceCreateNgModuleRef(),
|
|
64
73
|
new rename_angular_js_globals_1.RenameAngularJsGlobals(),
|
|
65
74
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade-to-angular-22.js","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-22.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA4C;AAC5C,gEAAyE;AACzE,mEAAsE;AACtE,mFAA2E;AAC3E,uFAA8E;AAC9E,yEAAiE;AACjE,uFAA8E;AAC9E,iGAAyF;AACzF,6EAAqE;AACrE,uFAA+E;AAC/E,iFAAyE;AACzE,6EAAqE;AACrE,iGAAyF;AACzF,iDAA0C;AAC1C,iFAAwE;AACxE,2EAAmE;AAEnE,MAAa,6BAA8B,SAAQ,gBAAM;IAAzD;;QACa,SAAI,GAAG,uDAAuD,CAAC;QAC/D,gBAAW,GAAG,sCAAsC,CAAC;QACrD,gBAAW,GAAG,wFAAwF;YAC3G,iFAAiF,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade-to-angular-22.js","sourceRoot":"","sources":["../../src/migration/upgrade-to-angular-22.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA4C;AAC5C,gEAAyE;AACzE,mEAAsE;AACtE,mFAA2E;AAC3E,uFAA8E;AAC9E,yEAAiE;AACjE,uFAA8E;AAC9E,iGAAyF;AACzF,6EAAqE;AACrE,uFAA+E;AAC/E,iFAAyE;AACzE,6EAAqE;AACrE,iGAAyF;AACzF,iDAA0C;AAC1C,uEAA+D;AAC/D,2EAAoE;AACpE,2EAAmE;AACnE,2FAAmF;AACnF,iFAAwE;AACxE,2EAAmE;AAEnE,MAAa,6BAA8B,SAAQ,gBAAM;IAAzD;;QACa,SAAI,GAAG,uDAAuD,CAAC;QAC/D,gBAAW,GAAG,sCAAsC,CAAC;QACrD,gBAAW,GAAG,wFAAwF;YAC3G,iFAAiF,CAAC;IA+B1F,CAAC;IA7BS,UAAU;;YACZ,OAAO;gBACH,IAAI,qDAA6B,EAAE;gBACnC,+DAA+D;gBAC/D,IAAI,kDAAsB,EAAE;gBAC5B,IAAI,qDAAuB,EAAE;gBAC7B,IAAI,wCAAiB,EAAE;gBACvB,IAAI,qDAAuB,EAAE;gBAC7B,IAAI,gEAA6B,EAAE;gBACnC,IAAI,0DAA0B,EAAE;gBAChC,4BAA4B;gBAC5B,IAAI,oDAAuB,EAAE;gBAC7B,IAAI,8DAA4B,EAAE;gBAClC,2FAA2F;gBAC3F,sFAAsF;gBACtF,IAAI,yBAAU,EAAE;gBAChB,gDAAgD;gBAChD,IAAI,wDAAyB,EAAE;gBAC/B,IAAI,oDAAuB,EAAE;gBAC7B,IAAI,wEAAiC,EAAE;gBACvC,oCAAoC;gBACpC,IAAI,8CAAoB,EAAE;gBAC1B,IAAI,mDAAuB,EAAE;gBAC7B,8BAA8B;gBAC9B,IAAI,kDAAsB,EAAE;gBAC5B,IAAI,uDAAwB,EAAE;gBAC9B,IAAI,kDAAsB,EAAE;aAC/B,CAAC;QACN,CAAC;KAAA;CACJ;AAnCD,sEAmCC;AAED,MAAa,kBAAmB,SAAQ,gBAAM;IAA9C;;QACa,SAAI,GAAG,4CAA4C,CAAC;QACpD,gBAAW,GAAG,uBAAuB,CAAC;QACtC,gBAAW,GAAG,oDAAoD;YACvE,kGAAkG;YAClG,wGAAwG;YACxG,uGAAuG;YACvG,gCAAgC,CAAC;IAkBzC,CAAC;IAhBS,UAAU;;YACZ,OAAO;gBACH,IAAI,6BAA6B,EAAE;gBACnC,wBAAwB;gBACxB,MAAM,IAAA,qCAAwB,EAAC,EAAC,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;gBAClF,yFAAyF;gBACzF,MAAM,IAAA,qCAAwB,EAAC,EAAC,WAAW,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;gBACzF,MAAM,IAAA,qCAAwB,EAAC,EAAC,cAAc,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;gBAC1F,MAAM,IAAA,qCAAwB,EAAC,EAAC,WAAW,EAAE,+BAA+B,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;gBAClG,MAAM,IAAA,qCAAwB,EAAC,EAAC,cAAc,EAAE,4BAA4B,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC;gBACtG,MAAM,IAAA,qCAAwB,EAAC,EAAC,WAAW,EAAE,+BAA+B,EAAE,UAAU,EAAE,UAAU,EAAC,CAAC;gBACtG,MAAM,IAAA,qCAAwB,EAAC,EAAC,WAAW,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,EAAC,CAAC;gBACxF,aAAa;gBACb,MAAM,IAAA,qCAAwB,EAAC,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAC,CAAC;aACnF,CAAC;QACN,CAAC;KAAA;CACJ;AAzBD,gDAyBC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Recipe } from "@openrewrite/rewrite";
|
|
2
|
+
export declare class FindTemplateSafeNavigation extends Recipe {
|
|
3
|
+
readonly name = "org.openrewrite.angular.search.find-template-safe-navigation";
|
|
4
|
+
readonly displayName: string;
|
|
5
|
+
readonly description: string;
|
|
6
|
+
recipeList(): Promise<Recipe[]>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=find-template-safe-navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-template-safe-navigation.d.ts","sourceRoot":"","sources":["../../src/search/find-template-safe-navigation.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsC,MAAM,EAAc,MAAM,sBAAsB,CAAC;AAY9F,qBAAa,0BAA2B,SAAQ,MAAM;IAClD,QAAQ,CAAC,IAAI,kEAAkE;IAC/E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAA+C;IAC3E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAGiB;IAEvC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAGxC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026 the original author or authors.
|
|
4
|
+
*
|
|
5
|
+
* Moderne Proprietary. Only for use by Moderne customers under the terms of a commercial contract.
|
|
6
|
+
*/
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.FindTemplateSafeNavigation = void 0;
|
|
18
|
+
const rewrite_1 = require("@openrewrite/rewrite");
|
|
19
|
+
const text_1 = require("@openrewrite/rewrite/text");
|
|
20
|
+
const javascript_1 = require("@openrewrite/rewrite/javascript");
|
|
21
|
+
const java_1 = require("@openrewrite/rewrite/java");
|
|
22
|
+
const MESSAGE = "Safe navigation in an Angular template returns undefined rather than null as of Angular 22. " +
|
|
23
|
+
"Review bindings that distinguish the two, such as comparisons against null and pipes that treat null and " +
|
|
24
|
+
"undefined differently. See https://angular.dev/errors/safe-navigation-undefined";
|
|
25
|
+
/** `{{ a?.b }}`, `[x]="a?.b"`, and `@if (a?.b)`, but not `a ?? b` or the `?.` of a TypeScript expression. */
|
|
26
|
+
const SAFE_NAVIGATION = /\?\.(?![.\d])/;
|
|
27
|
+
class FindTemplateSafeNavigation extends rewrite_1.Recipe {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.name = "org.openrewrite.angular.search.find-template-safe-navigation";
|
|
31
|
+
this.displayName = "Find safe navigation in Angular templates";
|
|
32
|
+
this.description = "Finds `?.` in HTML templates and in inline `template` metadata. Angular 22 changed " +
|
|
33
|
+
"safe navigation in templates to return `undefined` instead of `null`, which changes bindings that tell the two " +
|
|
34
|
+
"apart. Angular ships a `$safeNavigationMigration()` wrapper for this; this recipe reports the templates to review " +
|
|
35
|
+
"rather than rewriting the expressions.";
|
|
36
|
+
}
|
|
37
|
+
recipeList() {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return [new FindHtmlSafeNavigation(), new FindInlineTemplateSafeNavigation()];
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.FindTemplateSafeNavigation = FindTemplateSafeNavigation;
|
|
44
|
+
class FindHtmlSafeNavigation extends rewrite_1.Recipe {
|
|
45
|
+
constructor() {
|
|
46
|
+
super(...arguments);
|
|
47
|
+
this.name = "org.openrewrite.angular.search.find-template-safe-navigation.html";
|
|
48
|
+
this.displayName = "Find safe navigation in HTML templates";
|
|
49
|
+
this.description = "Finds `?.` in `.html` templates.";
|
|
50
|
+
}
|
|
51
|
+
editor() {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
return new class extends text_1.PlainTextVisitor {
|
|
54
|
+
visitText(text, p) {
|
|
55
|
+
const _super = Object.create(null, {
|
|
56
|
+
visitText: { get: () => super.visitText }
|
|
57
|
+
});
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
const t = yield _super.visitText.call(this, text, p);
|
|
60
|
+
if (!t || !t.sourcePath.endsWith('.html'))
|
|
61
|
+
return t;
|
|
62
|
+
if (!SAFE_NAVIGATION.test(t.text))
|
|
63
|
+
return t;
|
|
64
|
+
return (0, rewrite_1.foundSearchResult)(t, MESSAGE);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
class FindInlineTemplateSafeNavigation extends rewrite_1.Recipe {
|
|
72
|
+
constructor() {
|
|
73
|
+
super(...arguments);
|
|
74
|
+
this.name = "org.openrewrite.angular.search.find-template-safe-navigation.inline";
|
|
75
|
+
this.displayName = "Find safe navigation in inline templates";
|
|
76
|
+
this.description = "Finds `?.` in inline `template` metadata of `@Component` decorators.";
|
|
77
|
+
}
|
|
78
|
+
editor() {
|
|
79
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
80
|
+
return new class extends javascript_1.JavaScriptVisitor {
|
|
81
|
+
visitPropertyAssignment(property, p) {
|
|
82
|
+
const _super = Object.create(null, {
|
|
83
|
+
visitPropertyAssignment: { get: () => super.visitPropertyAssignment }
|
|
84
|
+
});
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
const prop = yield _super.visitPropertyAssignment.call(this, property, p);
|
|
88
|
+
if (!prop)
|
|
89
|
+
return prop;
|
|
90
|
+
const name = (_a = prop.name) === null || _a === void 0 ? void 0 : _a.element;
|
|
91
|
+
if (!(0, java_1.isIdentifier)(name) || name.simpleName !== 'template')
|
|
92
|
+
return prop;
|
|
93
|
+
const initializer = prop.initializer;
|
|
94
|
+
if (!initializer || !(0, java_1.isLiteral)(initializer))
|
|
95
|
+
return prop;
|
|
96
|
+
if (!SAFE_NAVIGATION.test((_b = initializer.valueSource) !== null && _b !== void 0 ? _b : ''))
|
|
97
|
+
return prop;
|
|
98
|
+
return (0, rewrite_1.foundSearchResult)(prop, MESSAGE);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}();
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=find-template-safe-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-template-safe-navigation.js","sourceRoot":"","sources":["../../src/search/find-template-safe-navigation.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;AAEH,kDAA8F;AAC9F,oDAAsE;AACtE,gEAAkE;AAClE,oDAAqE;AAErE,MAAM,OAAO,GAAG,8FAA8F;IAC1G,2GAA2G;IAC3G,iFAAiF,CAAC;AAEtF,6GAA6G;AAC7G,MAAM,eAAe,GAAG,eAAe,CAAC;AAExC,MAAa,0BAA2B,SAAQ,gBAAM;IAAtD;;QACa,SAAI,GAAG,8DAA8D,CAAC;QACtE,gBAAW,GAAW,2CAA2C,CAAC;QAClE,gBAAW,GAAW,qFAAqF;YAChH,iHAAiH;YACjH,oHAAoH;YACpH,wCAAwC,CAAC;IAKjD,CAAC;IAHS,UAAU;;YACZ,OAAO,CAAC,IAAI,sBAAsB,EAAE,EAAE,IAAI,gCAAgC,EAAE,CAAC,CAAC;QAClF,CAAC;KAAA;CACJ;AAXD,gEAWC;AAED,MAAM,sBAAuB,SAAQ,gBAAM;IAA3C;;QACa,SAAI,GAAG,mEAAmE,CAAC;QAC3E,gBAAW,GAAW,wCAAwC,CAAC;QAC/D,gBAAW,GAAW,kCAAkC,CAAC;IAatE,CAAC;IAXS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,uBAAkC;gBACxC,SAAS,CAAC,IAAe,EAAE,CAAmB;;;;;wBACzD,MAAM,CAAC,GAAG,MAAM,OAAM,SAAS,YAAC,IAAI,EAAE,CAAC,CAAc,CAAC;wBACtD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAAE,OAAO,CAAC,CAAC;wBACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;4BAAE,OAAO,CAAC,CAAC;wBAE5C,OAAO,IAAA,2BAAiB,EAAC,CAAC,EAAE,OAAO,CAAC,CAAC;oBACzC,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ;AAED,MAAM,gCAAiC,SAAQ,gBAAM;IAArD;;QACa,SAAI,GAAG,qEAAqE,CAAC;QAC7E,gBAAW,GAAW,0CAA0C,CAAC;QACjE,gBAAW,GAAW,sEAAsE,CAAC;IAmB1G,CAAC;IAjBS,MAAM;;YACR,OAAO,IAAI,KAAM,SAAQ,8BAAmC;gBACxC,uBAAuB,CAAC,QAAa,EAAE,CAAmB;;;;;;wBACtE,MAAM,IAAI,GAAG,MAAM,OAAM,uBAAuB,YAAC,QAAQ,EAAE,CAAC,CAAQ,CAAC;wBACrE,IAAI,CAAC,IAAI;4BAAE,OAAO,IAAI,CAAC;wBAEvB,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,OAAO,CAAC;wBAChC,IAAI,CAAC,IAAA,mBAAY,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU;4BAAE,OAAO,IAAI,CAAC;wBAEvE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;wBACrC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAA,gBAAS,EAAC,WAAW,CAAC;4BAAE,OAAO,IAAI,CAAC;wBACzD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAA,WAAW,CAAC,WAAW,mCAAI,EAAE,CAAC;4BAAE,OAAO,IAAI,CAAC;wBAEtE,OAAO,IAAA,2BAAiB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC5C,CAAC;iBAAA;aACJ,EAAE,CAAC;QACR,CAAC;KAAA;CACJ"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -120,6 +120,10 @@ import {AddStrictTemplatesFalse} from './migration/add-strict-templates-false';
|
|
|
120
120
|
import {SuppressSafeNavigationDiagnostics} from './migration/suppress-safe-navigation-diagnostics';
|
|
121
121
|
import {RemoveWithFetch} from './migration/remove-with-fetch';
|
|
122
122
|
import {AddWithXhr} from './migration/add-with-xhr';
|
|
123
|
+
import {AddTrustProxyHeaders} from './migration/add-trust-proxy-headers';
|
|
124
|
+
import {AddIstanbulInstrumenter} from './migration/add-istanbul-instrumenter';
|
|
125
|
+
import {MigrateModelWithOutput} from './migration/migrate-model-with-output';
|
|
126
|
+
import {FindTemplateSafeNavigation} from './search/find-template-safe-navigation';
|
|
123
127
|
import {ReplaceCreateNgModuleRef} from './migration/replace-create-ng-module-ref';
|
|
124
128
|
import {RenameAngularJsGlobals} from './migration/rename-angular-js-globals';
|
|
125
129
|
import {UpgradeToPrimeNG18} from './libraries/primeng/18/upgrade-to-primeng-18';
|
|
@@ -265,6 +269,10 @@ export async function activate(marketplace: RecipeMarketplace) {
|
|
|
265
269
|
await marketplace.install(SuppressSafeNavigationDiagnostics, AngularMigration);
|
|
266
270
|
await marketplace.install(RemoveWithFetch, AngularMigration);
|
|
267
271
|
await marketplace.install(AddWithXhr, AngularMigration);
|
|
272
|
+
await marketplace.install(AddTrustProxyHeaders, AngularMigration);
|
|
273
|
+
await marketplace.install(AddIstanbulInstrumenter, AngularMigration);
|
|
274
|
+
await marketplace.install(MigrateModelWithOutput, AngularMigration);
|
|
275
|
+
await marketplace.install(FindTemplateSafeNavigation, AngularSearch);
|
|
268
276
|
await marketplace.install(ReplaceCreateNgModuleRef, AngularMigration);
|
|
269
277
|
await marketplace.install(RenameAngularJsGlobals, AngularMigration);
|
|
270
278
|
// PrimeNG
|
|
@@ -405,6 +413,10 @@ export {AddStrictTemplatesFalse} from './migration/add-strict-templates-false';
|
|
|
405
413
|
export {SuppressSafeNavigationDiagnostics} from './migration/suppress-safe-navigation-diagnostics';
|
|
406
414
|
export {RemoveWithFetch} from './migration/remove-with-fetch';
|
|
407
415
|
export {AddWithXhr} from './migration/add-with-xhr';
|
|
416
|
+
export {AddTrustProxyHeaders} from './migration/add-trust-proxy-headers';
|
|
417
|
+
export {AddIstanbulInstrumenter} from './migration/add-istanbul-instrumenter';
|
|
418
|
+
export {MigrateModelWithOutput} from './migration/migrate-model-with-output';
|
|
419
|
+
export {FindTemplateSafeNavigation} from './search/find-template-safe-navigation';
|
|
408
420
|
export {ReplaceCreateNgModuleRef} from './migration/replace-create-ng-module-ref';
|
|
409
421
|
export {RenameAngularJsGlobals} from './migration/rename-angular-js-globals';
|
|
410
422
|
// PrimeNG
|