@angular/core 20.0.0-next.4 → 20.0.0-next.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/api.d-mxcXqDpA.d.ts +297 -0
  2. package/discovery.d-CyYpOJ7j.d.ts +7393 -0
  3. package/{event_dispatcher.d-pVP0-wST.d.ts → event_dispatcher.d-PWnbqZDx.d.ts} +3 -2
  4. package/fesm2022/attribute-B17mgaqe.mjs +24 -0
  5. package/fesm2022/attribute-B17mgaqe.mjs.map +1 -0
  6. package/fesm2022/core.mjs +580 -36869
  7. package/fesm2022/core.mjs.map +1 -1
  8. package/fesm2022/debug_node-xKpCIZm-.mjs +32070 -0
  9. package/fesm2022/debug_node-xKpCIZm-.mjs.map +1 -0
  10. package/fesm2022/primitives/di.mjs +18 -4
  11. package/fesm2022/primitives/di.mjs.map +1 -1
  12. package/fesm2022/primitives/event-dispatch.mjs +2 -16
  13. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  14. package/fesm2022/primitives/signals.mjs +5 -3
  15. package/fesm2022/primitives/signals.mjs.map +1 -1
  16. package/fesm2022/resource-BPpYEDic.mjs +621 -0
  17. package/fesm2022/resource-BPpYEDic.mjs.map +1 -0
  18. package/fesm2022/root_effect_scheduler-D0_b1cf_.mjs +3816 -0
  19. package/fesm2022/root_effect_scheduler-D0_b1cf_.mjs.map +1 -0
  20. package/fesm2022/rxjs-interop.mjs +91 -7
  21. package/fesm2022/rxjs-interop.mjs.map +1 -1
  22. package/fesm2022/{untracked-DkcXpNb_.mjs → signal-DhRAAi7R.mjs} +16 -114
  23. package/fesm2022/signal-DhRAAi7R.mjs.map +1 -0
  24. package/fesm2022/testing.mjs +105 -103
  25. package/fesm2022/testing.mjs.map +1 -1
  26. package/fesm2022/untracked-DaaW3JJm.mjs +117 -0
  27. package/fesm2022/untracked-DaaW3JJm.mjs.map +1 -0
  28. package/fesm2022/weak_ref-DrMdAIDh.mjs +12 -0
  29. package/fesm2022/weak_ref-DrMdAIDh.mjs.map +1 -0
  30. package/{weak_ref.d-BZ7gyRag.d.ts → graph.d-StYigYp1.d.ts} +3 -24
  31. package/index.d.ts +2520 -10803
  32. package/ng_i18n_closure_mode.d-DLxSUiDr.d.ts +832 -0
  33. package/package.json +3 -3
  34. package/primitives/di/index.d.ts +3 -2
  35. package/primitives/event-dispatch/index.d.ts +3 -3
  36. package/primitives/signals/index.d.ts +8 -4
  37. package/rxjs-interop/index.d.ts +16 -4
  38. package/schematics/bundles/{apply_import_manager-CeNv8GIG.js → apply_import_manager-C-ysxahq.js} +3 -3
  39. package/schematics/bundles/{compiler_host-DwM3ugW3.js → change_tracker-0Ktek5Xl.js} +3 -121
  40. package/schematics/bundles/checker-DqUKCGda.js +17702 -0
  41. package/schematics/bundles/cleanup-unused-imports.js +6 -5
  42. package/schematics/bundles/{checker-k591b6WQ.js → compiler-CuoiHqkc.js} +366 -17992
  43. package/schematics/bundles/compiler_host-CAfDJO3W.js +129 -0
  44. package/schematics/bundles/control-flow-migration.js +28 -40
  45. package/schematics/bundles/document-core.js +96 -0
  46. package/schematics/bundles/imports-CIX-JgAN.js +1 -1
  47. package/schematics/bundles/{index-BhELUmYx.js → index-CwFQSYXZ.js} +30 -29
  48. package/schematics/bundles/{index-B4OAlHh8.js → index-WFXCe5Q0.js} +527 -524
  49. package/schematics/bundles/inject-flags.js +6 -5
  50. package/schematics/bundles/inject-migration.js +29 -10
  51. package/schematics/bundles/leading_space-D9nQ8UQC.js +1 -1
  52. package/schematics/bundles/{migrate_ts_type_references-Be0TNYen.js → migrate_ts_type_references-BNuHufqZ.js} +6 -5
  53. package/schematics/bundles/ng_decorators-DznZ5jMl.js +1 -1
  54. package/schematics/bundles/nodes-B16H9JUd.js +1 -1
  55. package/schematics/bundles/output-migration.js +15 -10
  56. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.js +1 -1
  57. package/schematics/bundles/property_name-BBwFuqMe.js +1 -1
  58. package/schematics/bundles/route-lazy-loading.js +7 -5
  59. package/schematics/bundles/{run_in_devkit-CkvEksWP.js → run_in_devkit-CmHxABFr.js} +4 -3
  60. package/schematics/bundles/self-closing-tags-migration.js +10 -9
  61. package/schematics/bundles/signal-input-migration.js +8 -7
  62. package/schematics/bundles/signal-queries-migration.js +27 -14
  63. package/schematics/bundles/signals.js +8 -7
  64. package/schematics/bundles/standalone-migration.js +11 -9
  65. package/schematics/bundles/symbol-VPWguRxr.js +1 -1
  66. package/schematics/bundles/test-bed-get.js +5 -4
  67. package/schematics/collection.json +0 -6
  68. package/schematics/migrations.json +11 -0
  69. package/signal.d-BeaTIeOE.d.ts +31 -0
  70. package/testing/index.d.ts +13 -9
  71. package/weak_ref.d-ttyj86RV.d.ts +9 -0
  72. package/fesm2022/injector-BlLwZ2sr.mjs +0 -24
  73. package/fesm2022/injector-BlLwZ2sr.mjs.map +0 -1
  74. package/fesm2022/untracked-DkcXpNb_.mjs.map +0 -1
  75. package/navigation_types.d-DgDrF5rp.d.ts +0 -121
  76. package/schematics/ng-generate/control-flow-migration/schema.json +0 -20
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,11 +8,12 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-k591b6WQ.js');
12
- require('./index-B4OAlHh8.js');
11
+ var checker = require('./checker-DqUKCGda.js');
12
+ require('./compiler-CuoiHqkc.js');
13
+ require('./index-WFXCe5Q0.js');
13
14
  require('path');
14
- var run_in_devkit = require('./run_in_devkit-CkvEksWP.js');
15
- var apply_import_manager = require('./apply_import_manager-CeNv8GIG.js');
15
+ var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
16
+ var apply_import_manager = require('./apply_import_manager-C-ysxahq.js');
16
17
  var imports = require('./imports-CIX-JgAN.js');
17
18
  require('@angular-devkit/core');
18
19
  require('node:path/posix');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,13 +8,15 @@
8
8
 
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var p = require('path');
11
- var compiler_host = require('./compiler_host-DwM3ugW3.js');
11
+ var change_tracker = require('./change_tracker-0Ktek5Xl.js');
12
+ var compiler_host = require('./compiler_host-CAfDJO3W.js');
12
13
  var ts = require('typescript');
13
14
  var ng_decorators = require('./ng_decorators-DznZ5jMl.js');
14
15
  var imports = require('./imports-CIX-JgAN.js');
15
16
  var nodes = require('./nodes-B16H9JUd.js');
16
17
  var leading_space = require('./leading_space-D9nQ8UQC.js');
17
- require('./checker-k591b6WQ.js');
18
+ require('./compiler-CuoiHqkc.js');
19
+ require('./checker-DqUKCGda.js');
18
20
  require('os');
19
21
  require('fs');
20
22
  require('module');
@@ -235,9 +237,20 @@ function getSuperParameters(declaration, superCall, localTypeChecker) {
235
237
  if (ts.isParameter(decl) && topLevelParameters.has(decl)) {
236
238
  usedParams.add(decl);
237
239
  }
240
+ else if (ts.isShorthandPropertyAssignment(decl) &&
241
+ topLevelParameterNames.has(decl.name.text)) {
242
+ for (const param of topLevelParameters) {
243
+ if (ts.isIdentifier(param.name) && decl.name.text === param.name.text) {
244
+ usedParams.add(param);
245
+ break;
246
+ }
247
+ }
248
+ }
238
249
  });
250
+ // Parameters referenced inside callbacks can be used directly
251
+ // within `super` so don't descend into inline functions.
239
252
  }
240
- else {
253
+ else if (!isInlineFunction(node)) {
241
254
  node.forEachChild(walk);
242
255
  }
243
256
  });
@@ -329,6 +342,10 @@ function findSuperCall(root) {
329
342
  });
330
343
  return result;
331
344
  }
345
+ /** Checks whether a node is an inline function. */
346
+ function isInlineFunction(node) {
347
+ return (ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) || ts.isArrowFunction(node));
348
+ }
332
349
 
333
350
  /*!
334
351
  * @license
@@ -573,9 +590,7 @@ function isInsideInlineFunction(startNode, boundary) {
573
590
  if (current === boundary) {
574
591
  return false;
575
592
  }
576
- if (ts.isFunctionDeclaration(current) ||
577
- ts.isFunctionExpression(current) ||
578
- ts.isArrowFunction(current)) {
593
+ if (isInlineFunction(current)) {
579
594
  return true;
580
595
  }
581
596
  current = current.parent;
@@ -605,7 +620,7 @@ function migrateFile(sourceFile, options) {
605
620
  return [];
606
621
  }
607
622
  const printer = ts.createPrinter();
608
- const tracker = new compiler_host.ChangeTracker(printer);
623
+ const tracker = new change_tracker.ChangeTracker(printer);
609
624
  analysis.classes.forEach(({ node, constructor, superCall }) => {
610
625
  const memberIndentation = leading_space.getLeadingLineWhitespaceOfNode(node.members[0]);
611
626
  const prependToClass = [];
@@ -1098,16 +1113,20 @@ function applyInternalOnlyChanges(node, constructor, localTypeChecker, tracker,
1098
1113
  }
1099
1114
  result.toCombine.forEach(({ declaration, initializer }) => {
1100
1115
  const initializerStatement = nodes.closestNode(initializer, ts.isStatement);
1101
- const newProperty = ts.factory.createPropertyDeclaration(cloneModifiers(declaration.modifiers), cloneName(declaration.name), declaration.questionToken, declaration.type, initializer);
1102
1116
  // If the initialization order is being preserved, we have to remove the original
1103
1117
  // declaration and re-declare it. Otherwise we can do the replacement in-place.
1104
1118
  if (preserveInitOrder) {
1119
+ // Preserve comment in the new property since we are removing the entire node.
1120
+ const newProperty = ts.factory.createPropertyDeclaration(declaration.modifiers, declaration.name, declaration.questionToken, declaration.type, initializer);
1105
1121
  tracker.removeNode(declaration, true);
1106
1122
  removedMembers.add(declaration);
1107
1123
  afterInjectCalls.push(memberIndentation +
1108
1124
  printer.printNode(ts.EmitHint.Unspecified, newProperty, declaration.getSourceFile()));
1109
1125
  }
1110
1126
  else {
1127
+ // Strip comments from the declaration since we are replacing just
1128
+ // the node, not the leading comment.
1129
+ const newProperty = ts.factory.createPropertyDeclaration(cloneModifiers(declaration.modifiers), cloneName(declaration.name), declaration.questionToken, declaration.type, initializer);
1111
1130
  tracker.replaceNode(declaration, newProperty);
1112
1131
  }
1113
1132
  // This should always be defined, but null check it just in case.
@@ -1130,7 +1149,7 @@ function applyInternalOnlyChanges(node, constructor, localTypeChecker, tracker,
1130
1149
  function migrate(options) {
1131
1150
  return async (tree) => {
1132
1151
  const basePath = process.cwd();
1133
- const pathToMigrate = compiler_host.normalizePath(p.join(basePath, options.path));
1152
+ const pathToMigrate = change_tracker.normalizePath(p.join(basePath, options.path));
1134
1153
  let allPaths = [];
1135
1154
  if (pathToMigrate.trim() !== '') {
1136
1155
  allPaths.push(pathToMigrate);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,19 +1,20 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var checker = require('./checker-k591b6WQ.js');
9
+ require('./compiler-CuoiHqkc.js');
10
10
  var ts = require('typescript');
11
+ var checker = require('./checker-DqUKCGda.js');
11
12
  require('os');
12
13
  var assert = require('assert');
13
- var index = require('./index-BhELUmYx.js');
14
- var run_in_devkit = require('./run_in_devkit-CkvEksWP.js');
14
+ var index = require('./index-CwFQSYXZ.js');
15
+ var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
15
16
  var leading_space = require('./leading_space-D9nQ8UQC.js');
16
- require('./index-B4OAlHh8.js');
17
+ require('./index-WFXCe5Q0.js');
17
18
  require('path');
18
19
 
19
20
  /**
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,12 +8,13 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-k591b6WQ.js');
12
- var index$1 = require('./index-B4OAlHh8.js');
11
+ var checker = require('./checker-DqUKCGda.js');
12
+ var compiler = require('./compiler-CuoiHqkc.js');
13
+ var index$1 = require('./index-WFXCe5Q0.js');
13
14
  require('path');
14
- var run_in_devkit = require('./run_in_devkit-CkvEksWP.js');
15
- var apply_import_manager = require('./apply_import_manager-CeNv8GIG.js');
16
- var index = require('./index-BhELUmYx.js');
15
+ var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
16
+ var apply_import_manager = require('./apply_import_manager-C-ysxahq.js');
17
+ var index = require('./index-CwFQSYXZ.js');
17
18
  require('@angular-devkit/core');
18
19
  require('node:path/posix');
19
20
  require('fs');
@@ -114,7 +115,7 @@ function checkNonTsReferenceAccessesField(ref, fieldName) {
114
115
  if (ref.from.read !== readFromPath) {
115
116
  return null;
116
117
  }
117
- if (!(parentRead instanceof checker.PropertyRead) || parentRead.name !== fieldName) {
118
+ if (!(parentRead instanceof compiler.PropertyRead) || parentRead.name !== fieldName) {
118
119
  return null;
119
120
  }
120
121
  return parentRead;
@@ -144,9 +145,13 @@ function checkNonTsReferenceCallsField(ref, fieldName) {
144
145
  const printer = ts.createPrinter();
145
146
  function calculateDeclarationReplacement(info, node, aliasParam) {
146
147
  const sf = node.getSourceFile();
147
- const payloadTypes = node.initializer !== undefined && ts.isNewExpression(node.initializer)
148
- ? node.initializer?.typeArguments
149
- : undefined;
148
+ let payloadTypes;
149
+ if (node.initializer && ts.isNewExpression(node.initializer) && node.initializer.typeArguments) {
150
+ payloadTypes = node.initializer.typeArguments;
151
+ }
152
+ else if (node.type && ts.isTypeReferenceNode(node.type) && node.type.typeArguments) {
153
+ payloadTypes = ts.factory.createNodeArray(node.type.typeArguments);
154
+ }
150
155
  const outputCall = ts.factory.createCallExpression(ts.factory.createIdentifier('output'), payloadTypes, aliasParam !== undefined
151
156
  ? [
152
157
  ts.factory.createObjectLiteralExpression([
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -9,11 +9,13 @@
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var fs = require('fs');
11
11
  var p = require('path');
12
- var compiler_host = require('./compiler_host-DwM3ugW3.js');
12
+ var change_tracker = require('./change_tracker-0Ktek5Xl.js');
13
13
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.js');
14
+ var compiler_host = require('./compiler_host-CAfDJO3W.js');
14
15
  var ts = require('typescript');
15
- var checker = require('./checker-k591b6WQ.js');
16
+ var checker = require('./checker-DqUKCGda.js');
16
17
  var property_name = require('./property_name-BBwFuqMe.js');
18
+ require('./compiler-CuoiHqkc.js');
17
19
  require('os');
18
20
  require('@angular-devkit/core');
19
21
  require('module');
@@ -156,7 +158,7 @@ function migrateFileToLazyRoutes(sourceFile, program) {
156
158
  const typeChecker = program.getTypeChecker();
157
159
  const reflector = new checker.TypeScriptReflectionHost(typeChecker);
158
160
  const printer = ts.createPrinter();
159
- const tracker = new compiler_host.ChangeTracker(printer);
161
+ const tracker = new change_tracker.ChangeTracker(printer);
160
162
  const routeArraysToMigrate = findRoutesArrayToMigrate(sourceFile, typeChecker);
161
163
  if (routeArraysToMigrate.length === 0) {
162
164
  return { pendingChanges: [], skippedRoutes: [], migratedRoutes: [] };
@@ -347,7 +349,7 @@ function migrate(options) {
347
349
  const basePath = process.cwd();
348
350
  // TS and Schematic use paths in POSIX format even on Windows. This is needed as otherwise
349
351
  // string matching such as `sourceFile.fileName.startsWith(pathToMigrate)` might not work.
350
- const pathToMigrate = compiler_host.normalizePath(p.join(basePath, options.path));
352
+ const pathToMigrate = change_tracker.normalizePath(p.join(basePath, options.path));
351
353
  if (!buildPaths.length) {
352
354
  throw new schematics.SchematicsException('Could not find any tsconfig file. Cannot run the route lazy loading migration.');
353
355
  }
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,11 +8,12 @@
8
8
 
9
9
  var os = require('os');
10
10
  var ts = require('typescript');
11
- var checker = require('./checker-k591b6WQ.js');
12
- var index = require('./index-B4OAlHh8.js');
11
+ var checker = require('./checker-DqUKCGda.js');
12
+ var index = require('./index-WFXCe5Q0.js');
13
13
  var schematics = require('@angular-devkit/schematics');
14
14
  var core = require('@angular-devkit/core');
15
15
  var posixPath = require('node:path/posix');
16
+ require('./compiler-CuoiHqkc.js');
16
17
  require('path');
17
18
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.js');
18
19
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,10 +8,11 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-k591b6WQ.js');
12
- require('./index-B4OAlHh8.js');
11
+ var checker = require('./checker-DqUKCGda.js');
12
+ var compiler = require('./compiler-CuoiHqkc.js');
13
+ require('./index-WFXCe5Q0.js');
13
14
  require('path');
14
- var run_in_devkit = require('./run_in_devkit-CkvEksWP.js');
15
+ var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
15
16
  var ng_decorators = require('./ng_decorators-DznZ5jMl.js');
16
17
  var property_name = require('./property_name-BBwFuqMe.js');
17
18
  require('@angular-devkit/core');
@@ -202,7 +203,7 @@ function parseTemplate(template) {
202
203
  // interpolated text as text nodes containing a mixture of interpolation tokens and text tokens,
203
204
  // rather than turning them into `BoundText` nodes like the Ivy AST does. This allows us to
204
205
  // easily get the text-only ranges without having to reconstruct the original text.
205
- parsed = new checker.HtmlParser().parse(template, '', {
206
+ parsed = new compiler.HtmlParser().parse(template, '', {
206
207
  // Allows for ICUs to be parsed.
207
208
  tokenizeExpansionForms: true,
208
209
  // Explicitly disable blocks so that their characters are treated as plain text.
@@ -227,7 +228,7 @@ function migrateTemplateToSelfClosingTags(template) {
227
228
  return { migrated: template, changed: false, replacementCount: 0 };
228
229
  }
229
230
  const visitor = new AngularElementCollector();
230
- checker.visitAll(visitor, parsed.tree.rootNodes);
231
+ compiler.visitAll$1(visitor, parsed.tree.rootNodes);
231
232
  let newTemplate = template;
232
233
  let changedOffset = 0;
233
234
  let replacementCount = 0;
@@ -255,8 +256,8 @@ function replaceWithSelfClosingTag(html, tagName) {
255
256
  function replaceTemplate(template, replaceValue, start, end, offset) {
256
257
  return template.slice(0, start + offset) + replaceValue + template.slice(end + offset);
257
258
  }
258
- const ALL_HTML_TAGS = new checker.DomElementSchemaRegistry().allKnownElementNames();
259
- class AngularElementCollector extends checker.RecursiveVisitor {
259
+ const ALL_HTML_TAGS = new compiler.DomElementSchemaRegistry().allKnownElementNames();
260
+ class AngularElementCollector extends compiler.RecursiveVisitor$1 {
260
261
  elements = [];
261
262
  constructor() {
262
263
  super();
@@ -283,7 +284,7 @@ class AngularElementCollector extends checker.RecursiveVisitor {
283
284
  }
284
285
  if (element.children.length === 1) {
285
286
  const child = element.children[0];
286
- return child instanceof checker.Text && /^\s*$/.test(child.value);
287
+ return child instanceof compiler.Text && /^\s*$/.test(child.value);
287
288
  }
288
289
  return false;
289
290
  }
@@ -1,21 +1,22 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var migrate_ts_type_references = require('./migrate_ts_type_references-Be0TNYen.js');
9
+ var migrate_ts_type_references = require('./migrate_ts_type_references-BNuHufqZ.js');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
- var checker = require('./checker-k591b6WQ.js');
13
- var index$1 = require('./index-B4OAlHh8.js');
12
+ var checker = require('./checker-DqUKCGda.js');
13
+ require('./compiler-CuoiHqkc.js');
14
+ var index$1 = require('./index-WFXCe5Q0.js');
14
15
  require('path');
15
- var run_in_devkit = require('./run_in_devkit-CkvEksWP.js');
16
- var index = require('./index-BhELUmYx.js');
16
+ var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
17
+ var index = require('./index-CwFQSYXZ.js');
17
18
  var assert = require('assert');
18
- var apply_import_manager = require('./apply_import_manager-CeNv8GIG.js');
19
+ var apply_import_manager = require('./apply_import_manager-C-ysxahq.js');
19
20
  require('@angular-devkit/core');
20
21
  require('node:path/posix');
21
22
  require('./leading_space-D9nQ8UQC.js');
@@ -1,21 +1,22 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var checker = require('./checker-k591b6WQ.js');
9
+ var compiler = require('./compiler-CuoiHqkc.js');
10
10
  var ts = require('typescript');
11
+ var checker = require('./checker-DqUKCGda.js');
11
12
  require('os');
12
- var index$1 = require('./index-B4OAlHh8.js');
13
+ var index$1 = require('./index-WFXCe5Q0.js');
13
14
  require('path');
14
- var run_in_devkit = require('./run_in_devkit-CkvEksWP.js');
15
- var apply_import_manager = require('./apply_import_manager-CeNv8GIG.js');
16
- var migrate_ts_type_references = require('./migrate_ts_type_references-Be0TNYen.js');
15
+ var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
16
+ var apply_import_manager = require('./apply_import_manager-C-ysxahq.js');
17
+ var migrate_ts_type_references = require('./migrate_ts_type_references-BNuHufqZ.js');
17
18
  var assert = require('assert');
18
- var index = require('./index-BhELUmYx.js');
19
+ var index = require('./index-CwFQSYXZ.js');
19
20
  require('@angular-devkit/core');
20
21
  require('node:path/posix');
21
22
  require('fs');
@@ -134,7 +135,7 @@ function extractQueryListType(node) {
134
135
  * --> read stays
135
136
  * --> emitDistinctChangesOnly is gone!
136
137
  */
137
- function computeReplacementsToMigrateQuery(node, metadata, importManager, info, printer, options, checker$1) {
138
+ function computeReplacementsToMigrateQuery(node, metadata, importManager, info, printer, options, checker) {
138
139
  const sf = node.getSourceFile();
139
140
  let newQueryFn = importManager.addImport({
140
141
  requestedFile: sf,
@@ -159,7 +160,7 @@ function computeReplacementsToMigrateQuery(node, metadata, importManager, info,
159
160
  }
160
161
  }
161
162
  if (metadata.queryInfo.read !== null) {
162
- assert(metadata.queryInfo.read instanceof checker.WrappedNodeExpr);
163
+ assert(metadata.queryInfo.read instanceof compiler.WrappedNodeExpr);
163
164
  optionProperties.push(ts.factory.createPropertyAssignment('read', metadata.queryInfo.read.node));
164
165
  }
165
166
  if (metadata.queryInfo.descendants !== defaultDescendants) {
@@ -183,7 +184,7 @@ function computeReplacementsToMigrateQuery(node, metadata, importManager, info,
183
184
  node.initializer === undefined &&
184
185
  node.questionToken === undefined &&
185
186
  type !== undefined &&
186
- !checker$1.isTypeAssignableTo(checker$1.getUndefinedType(), checker$1.getTypeFromTypeNode(type))) {
187
+ !checker.isTypeAssignableTo(checker.getUndefinedType(), checker.getTypeFromTypeNode(type))) {
187
188
  isRequired = true;
188
189
  }
189
190
  if (isRequired && metadata.queryInfo.first) {
@@ -203,7 +204,7 @@ function computeReplacementsToMigrateQuery(node, metadata, importManager, info,
203
204
  // If the original property type and the read type are matching, we can rely
204
205
  // on the TS inference, instead of repeating types, like in `viewChild<Button>(Button)`.
205
206
  if (type !== undefined &&
206
- resolvedReadType instanceof checker.WrappedNodeExpr &&
207
+ resolvedReadType instanceof compiler.WrappedNodeExpr &&
207
208
  ts.isIdentifier(resolvedReadType.node) &&
208
209
  ts.isTypeReferenceNode(type) &&
209
210
  ts.isIdentifier(type.typeName) &&
@@ -215,7 +216,14 @@ function computeReplacementsToMigrateQuery(node, metadata, importManager, info,
215
216
  // original type explicitly as generic. Otherwise, query API is smart
216
217
  // enough to always infer.
217
218
  resolvedReadType === null && type !== undefined ? [type] : undefined, args);
218
- const updated = ts.factory.createPropertyDeclaration([ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword)], node.name, undefined, undefined, call);
219
+ const accessibilityModifier = getAccessibilityModifier(node);
220
+ let modifiers = [
221
+ ts.factory.createModifier(ts.SyntaxKind.ReadonlyKeyword),
222
+ ];
223
+ if (accessibilityModifier) {
224
+ modifiers = [accessibilityModifier, ...modifiers];
225
+ }
226
+ const updated = ts.factory.createPropertyDeclaration(modifiers, node.name, undefined, undefined, call);
219
227
  return [
220
228
  new run_in_devkit.Replacement(run_in_devkit.projectFile(node.getSourceFile(), info), new run_in_devkit.TextUpdate({
221
229
  position: node.getStart(),
@@ -224,6 +232,11 @@ function computeReplacementsToMigrateQuery(node, metadata, importManager, info,
224
232
  })),
225
233
  ];
226
234
  }
235
+ function getAccessibilityModifier(node) {
236
+ return node.modifiers?.find((mod) => mod.kind === ts.SyntaxKind.PublicKeyword ||
237
+ mod.kind === ts.SyntaxKind.PrivateKeyword ||
238
+ mod.kind === ts.SyntaxKind.ProtectedKeyword);
239
+ }
227
240
 
228
241
  /**
229
242
  * Attempts to get a class field descriptor if the given symbol
@@ -520,7 +533,7 @@ function checkNonTsReferenceAccessesField(ref, fieldName) {
520
533
  if (ref.from.read !== readFromPath) {
521
534
  return null;
522
535
  }
523
- if (!(parentRead instanceof checker.PropertyRead) || parentRead.name !== fieldName) {
536
+ if (!(parentRead instanceof compiler.PropertyRead) || parentRead.name !== fieldName) {
524
537
  return null;
525
538
  }
526
539
  return parentRead;
@@ -558,7 +571,7 @@ function checkNonTsReferenceCallsField(ref, fieldName) {
558
571
  return null;
559
572
  }
560
573
  const potentialCall = ref.from.readAstPath[accessIdx - 1];
561
- if (potentialCall === undefined || !(potentialCall instanceof checker.Call)) {
574
+ if (potentialCall === undefined || !(potentialCall instanceof compiler.Call)) {
562
575
  return null;
563
576
  }
564
577
  return potentialCall;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,22 +10,23 @@ var schematics = require('@angular-devkit/schematics');
10
10
  var signalQueriesMigration = require('./signal-queries-migration.js');
11
11
  var signalInputMigration = require('./signal-input-migration.js');
12
12
  var outputMigration = require('./output-migration.js');
13
- require('./checker-k591b6WQ.js');
13
+ require('./compiler-CuoiHqkc.js');
14
14
  require('typescript');
15
+ require('./checker-DqUKCGda.js');
15
16
  require('os');
16
17
  require('fs');
17
18
  require('module');
18
19
  require('path');
19
20
  require('url');
20
- require('./index-B4OAlHh8.js');
21
- require('./run_in_devkit-CkvEksWP.js');
21
+ require('./index-WFXCe5Q0.js');
22
+ require('./run_in_devkit-CmHxABFr.js');
22
23
  require('@angular-devkit/core');
23
24
  require('node:path/posix');
24
25
  require('./project_tsconfig_paths-CDVxT6Ov.js');
25
- require('./apply_import_manager-CeNv8GIG.js');
26
- require('./migrate_ts_type_references-Be0TNYen.js');
26
+ require('./apply_import_manager-C-ysxahq.js');
27
+ require('./migrate_ts_type_references-BNuHufqZ.js');
27
28
  require('assert');
28
- require('./index-BhELUmYx.js');
29
+ require('./index-CwFQSYXZ.js');
29
30
  require('./leading_space-D9nQ8UQC.js');
30
31
 
31
32
  function migrate(options) {
@@ -1,23 +1,25 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
9
  var schematics = require('@angular-devkit/schematics');
10
- var index = require('./index-B4OAlHh8.js');
10
+ var index = require('./index-WFXCe5Q0.js');
11
11
  var fs = require('fs');
12
12
  var p = require('path');
13
13
  var ts = require('typescript');
14
- var compiler_host = require('./compiler_host-DwM3ugW3.js');
14
+ var change_tracker = require('./change_tracker-0Ktek5Xl.js');
15
15
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.js');
16
+ var compiler_host = require('./compiler_host-CAfDJO3W.js');
16
17
  var ng_decorators = require('./ng_decorators-DznZ5jMl.js');
17
18
  var nodes = require('./nodes-B16H9JUd.js');
18
19
  var symbol = require('./symbol-VPWguRxr.js');
19
20
  var imports = require('./imports-CIX-JgAN.js');
20
- var checker = require('./checker-k591b6WQ.js');
21
+ require('./compiler-CuoiHqkc.js');
22
+ var checker = require('./checker-DqUKCGda.js');
21
23
  require('os');
22
24
  require('@angular-devkit/core');
23
25
  require('module');
@@ -234,7 +236,7 @@ function getRelativeImportPath(fromFile, toFile) {
234
236
  path = './' + path;
235
237
  }
236
238
  // Using the Node utilities can yield paths with forward slashes on Windows.
237
- return compiler_host.normalizePath(path);
239
+ return change_tracker.normalizePath(path);
238
240
  }
239
241
  /** Function used to remap the generated `imports` for a component to known shorter aliases. */
240
242
  function knownInternalAliasRemapper(imports) {
@@ -331,7 +333,7 @@ function toStandalone(sourceFiles, program, printer, fileImportRemapper, declara
331
333
  const modulesToMigrate = new Set();
332
334
  const testObjectsToMigrate = new Set();
333
335
  const declarations = new Set();
334
- const tracker = new compiler_host.ChangeTracker(printer, fileImportRemapper);
336
+ const tracker = new change_tracker.ChangeTracker(printer, fileImportRemapper);
335
337
  for (const sourceFile of sourceFiles) {
336
338
  const modules = findNgModuleClassesToMigrate(sourceFile, typeChecker);
337
339
  const testObjects = findTestObjectsToMigrate(sourceFile, typeChecker);
@@ -910,7 +912,7 @@ function isStandaloneDeclaration(node, declarationsInMigration, templateTypeChec
910
912
  */
911
913
  function pruneNgModules(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
912
914
  const filesToRemove = new Set();
913
- const tracker = new compiler_host.ChangeTracker(printer, importRemapper);
915
+ const tracker = new change_tracker.ChangeTracker(printer, importRemapper);
914
916
  const tsProgram = program.getTsProgram();
915
917
  const typeChecker = tsProgram.getTypeChecker();
916
918
  const templateTypeChecker = program.compiler.getTemplateTypeChecker();
@@ -1394,7 +1396,7 @@ function isInImportsArray(closestAssignment, closestArray) {
1394
1396
  * found in the LICENSE file at https://angular.dev/license
1395
1397
  */
1396
1398
  function toStandaloneBootstrap(program, host, basePath, rootFileNames, sourceFiles, printer, importRemapper, referenceLookupExcludedFiles, declarationImportRemapper) {
1397
- const tracker = new compiler_host.ChangeTracker(printer, importRemapper);
1399
+ const tracker = new change_tracker.ChangeTracker(printer, importRemapper);
1398
1400
  const typeChecker = program.getTsProgram().getTypeChecker();
1399
1401
  const templateTypeChecker = program.compiler.getTemplateTypeChecker();
1400
1402
  const referenceResolver = new ReferenceResolver(program, host, rootFileNames, basePath, referenceLookupExcludedFiles);
@@ -1987,7 +1989,7 @@ function migrate(options) {
1987
1989
  const allPaths = [...buildPaths, ...testPaths];
1988
1990
  // TS and Schematic use paths in POSIX format even on Windows. This is needed as otherwise
1989
1991
  // string matching such as `sourceFile.fileName.startsWith(pathToMigrate)` might not work.
1990
- const pathToMigrate = compiler_host.normalizePath(p.join(basePath, options.path));
1992
+ const pathToMigrate = change_tracker.normalizePath(p.join(basePath, options.path));
1991
1993
  let migratedFiles = 0;
1992
1994
  if (!allPaths.length) {
1993
1995
  throw new schematics.SchematicsException('Could not find any tsconfig file. Cannot run the standalone migration.');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.4
3
+ * @license Angular v20.0.0-next.5
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */