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

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 (69) hide show
  1. package/{api.d-mxcXqDpA.d.ts → api.d-KjtSQajV.d.ts} +4 -4
  2. package/{ng_i18n_closure_mode.d-DLxSUiDr.d.ts → chrome_dev_tools_performance.d-qv7drdAl.d.ts} +20 -5
  3. package/{discovery.d-CyYpOJ7j.d.ts → discovery.d-D6xf1HH-.d.ts} +8 -79
  4. package/{event_dispatcher.d-PWnbqZDx.d.ts → event_dispatcher.d-DlbccpYq.d.ts} +3 -3
  5. package/fesm2022/{attribute-B17mgaqe.mjs → attribute-BWp59EjE.mjs} +3 -3
  6. package/fesm2022/{attribute-B17mgaqe.mjs.map → attribute-BWp59EjE.mjs.map} +1 -1
  7. package/fesm2022/core.mjs +22 -31
  8. package/fesm2022/core.mjs.map +1 -1
  9. package/fesm2022/{debug_node-xKpCIZm-.mjs → debug_node-B3CixwNH.mjs} +218 -141
  10. package/fesm2022/debug_node-B3CixwNH.mjs.map +1 -0
  11. package/fesm2022/primitives/di.mjs +1 -1
  12. package/fesm2022/primitives/event-dispatch.mjs +2 -2
  13. package/fesm2022/primitives/signals.mjs +5 -5
  14. package/fesm2022/{resource-BPpYEDic.mjs → resource-DtpS_sTw.mjs} +6 -8
  15. package/fesm2022/resource-DtpS_sTw.mjs.map +1 -0
  16. package/fesm2022/{root_effect_scheduler-D0_b1cf_.mjs → root_effect_scheduler-BK3l7wIO.mjs} +144 -68
  17. package/fesm2022/root_effect_scheduler-BK3l7wIO.mjs.map +1 -0
  18. package/fesm2022/rxjs-interop.mjs +7 -84
  19. package/fesm2022/rxjs-interop.mjs.map +1 -1
  20. package/fesm2022/{signal-DhRAAi7R.mjs → signal-B6pMq7KS.mjs} +3 -3
  21. package/fesm2022/{signal-DhRAAi7R.mjs.map → signal-B6pMq7KS.mjs.map} +1 -1
  22. package/fesm2022/testing.mjs +167 -103
  23. package/fesm2022/testing.mjs.map +1 -1
  24. package/fesm2022/{untracked-DaaW3JJm.mjs → untracked-Bz5WMeU1.mjs} +4 -4
  25. package/fesm2022/{untracked-DaaW3JJm.mjs.map → untracked-Bz5WMeU1.mjs.map} +1 -1
  26. package/fesm2022/{weak_ref-DrMdAIDh.mjs → weak_ref-BaIq-pgY.mjs} +3 -3
  27. package/fesm2022/{weak_ref-DrMdAIDh.mjs.map → weak_ref-BaIq-pgY.mjs.map} +1 -1
  28. package/{graph.d-StYigYp1.d.ts → graph.d-BcIOep_B.d.ts} +3 -3
  29. package/index.d.ts +34 -41
  30. package/package.json +2 -2
  31. package/primitives/di/index.d.ts +1 -1
  32. package/primitives/event-dispatch/index.d.ts +3 -3
  33. package/primitives/signals/index.d.ts +6 -6
  34. package/rxjs-interop/index.d.ts +8 -17
  35. package/schematics/bundles/{apply_import_manager-C-ysxahq.js → apply_import_manager-DczRKpTm.js} +6 -6
  36. package/schematics/bundles/{change_tracker-0Ktek5Xl.js → change_tracker-CWLh-wes.js} +3 -3
  37. package/schematics/bundles/{checker-DqUKCGda.js → checker-_f5wM7PH.js} +20 -3
  38. package/schematics/bundles/cleanup-unused-imports.js +25 -20
  39. package/schematics/bundles/{compiler-CuoiHqkc.js → compiler-BaCbbux6.js} +964 -298
  40. package/schematics/bundles/compiler_host-CAfDJO3W.js +1 -1
  41. package/schematics/bundles/control-flow-migration.js +2 -2
  42. package/schematics/bundles/document-core.js +12 -12
  43. package/schematics/bundles/imports-CIX-JgAN.js +1 -1
  44. package/schematics/bundles/{index-CwFQSYXZ.js → index--W6S49uu.js} +10 -10
  45. package/schematics/bundles/{index-WFXCe5Q0.js → index-rsJ8I_hu.js} +131 -64
  46. package/schematics/bundles/inject-flags.js +14 -14
  47. package/schematics/bundles/inject-migration.js +108 -19
  48. package/schematics/bundles/leading_space-D9nQ8UQC.js +1 -1
  49. package/schematics/bundles/{migrate_ts_type_references-BNuHufqZ.js → migrate_ts_type_references-C4D_SzJk.js} +21 -21
  50. package/schematics/bundles/ng_decorators-DznZ5jMl.js +1 -1
  51. package/schematics/bundles/nodes-B16H9JUd.js +1 -1
  52. package/schematics/bundles/output-migration.js +80 -22
  53. package/schematics/bundles/{run_in_devkit-CmHxABFr.js → project_paths-Ce0O2u-M.js} +254 -244
  54. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.js +1 -1
  55. package/schematics/bundles/property_name-BBwFuqMe.js +1 -1
  56. package/schematics/bundles/route-lazy-loading.js +4 -4
  57. package/schematics/bundles/self-closing-tags-migration.js +20 -15
  58. package/schematics/bundles/signal-input-migration.js +26 -21
  59. package/schematics/bundles/signal-queries-migration.js +32 -27
  60. package/schematics/bundles/signals.js +8 -8
  61. package/schematics/bundles/standalone-migration.js +5 -5
  62. package/schematics/bundles/symbol-VPWguRxr.js +1 -1
  63. package/schematics/bundles/test-bed-get.js +13 -13
  64. package/{signal.d-BeaTIeOE.d.ts → signal.d-E0e5nW1p.d.ts} +4 -4
  65. package/testing/index.d.ts +9 -25
  66. package/{weak_ref.d-ttyj86RV.d.ts → weak_ref.d-eGOEP9S1.d.ts} +2 -2
  67. package/fesm2022/debug_node-xKpCIZm-.mjs.map +0 -1
  68. package/fesm2022/resource-BPpYEDic.mjs.map +0 -1
  69. package/fesm2022/root_effect_scheduler-D0_b1cf_.mjs.map +0 -1
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.5
3
+ * @license Angular v20.0.0-next.7
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var compiler = require('./compiler-CuoiHqkc.js');
9
+ var compiler = require('./compiler-BaCbbux6.js');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
12
  var fs$1 = require('fs');
@@ -479,6 +479,22 @@ exports.ErrorCode = void 0;
479
479
  * An expression mixes nullish coalescing and logical and/or without parentheses.
480
480
  */
481
481
  ErrorCode[ErrorCode["UNPARENTHESIZED_NULLISH_COALESCING"] = 8114] = "UNPARENTHESIZED_NULLISH_COALESCING";
482
+ /**
483
+ * The function passed to `@for` track is not invoked.
484
+ *
485
+ * For example:
486
+ * ```angular-html
487
+ * @for (item of items; track trackByName) {}
488
+ * ```
489
+ *
490
+ * For the track function to work properly, it must be invoked.
491
+ *
492
+ * For example:
493
+ * ```angular-html
494
+ * @for (item of items; track trackByName(item)) {}
495
+ * ```
496
+ */
497
+ ErrorCode[ErrorCode["UNINVOKED_TRACK_FUNCTION"] = 8115] = "UNINVOKED_TRACK_FUNCTION";
482
498
  /**
483
499
  * The template type-checking engine would need to generate an inline type check block for a
484
500
  * component, but the current type-checking environment doesn't support it.
@@ -636,6 +652,7 @@ exports.ExtendedTemplateDiagnosticName = void 0;
636
652
  ExtendedTemplateDiagnosticName["INTERPOLATED_SIGNAL_NOT_INVOKED"] = "interpolatedSignalNotInvoked";
637
653
  ExtendedTemplateDiagnosticName["CONTROL_FLOW_PREVENTING_CONTENT_PROJECTION"] = "controlFlowPreventingContentProjection";
638
654
  ExtendedTemplateDiagnosticName["UNUSED_LET_DECLARATION"] = "unusedLetDeclaration";
655
+ ExtendedTemplateDiagnosticName["UNINVOKED_TRACK_FUNCTION"] = "uninvokedTrackFunction";
639
656
  ExtendedTemplateDiagnosticName["UNUSED_STANDALONE_IMPORTS"] = "unusedStandaloneImports";
640
657
  ExtendedTemplateDiagnosticName["UNPARENTHESIZED_NULLISH_COALESCING"] = "unparenthesizedNullishCoalescing";
641
658
  })(exports.ExtendedTemplateDiagnosticName || (exports.ExtendedTemplateDiagnosticName = {}));
@@ -964,7 +981,7 @@ class NodeJSPathManipulation {
964
981
  // G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
965
982
  // CommonJS/ESM interop for determining the current file name and containing dir.
966
983
  const isCommonJS = typeof __filename !== 'undefined';
967
- const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('checker-DqUKCGda.js', document.baseURI).href));
984
+ const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('checker-_f5wM7PH.js', document.baseURI).href));
968
985
  const currentFileName = isCommonJS ? __filename : url.fileURLToPath(currentFileUrl);
969
986
  /**
970
987
  * A wrapper around the Node.js file-system that supports readonly operations and path manipulation.
@@ -1,29 +1,29 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.5
3
+ * @license Angular v20.0.0-next.7
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
+ require('@angular-devkit/core');
10
+ require('node:path/posix');
11
+ var project_paths = require('./project_paths-Ce0O2u-M.js');
9
12
  var ts = require('typescript');
10
13
  require('os');
11
- var checker = require('./checker-DqUKCGda.js');
12
- require('./compiler-CuoiHqkc.js');
13
- var index = require('./index-WFXCe5Q0.js');
14
+ var checker = require('./checker-_f5wM7PH.js');
15
+ require('./compiler-BaCbbux6.js');
16
+ var index = require('./index-rsJ8I_hu.js');
14
17
  require('path');
15
- var run_in_devkit = require('./run_in_devkit-CmHxABFr.js');
16
- var apply_import_manager = require('./apply_import_manager-C-ysxahq.js');
17
- require('@angular-devkit/core');
18
- require('node:path/posix');
18
+ var apply_import_manager = require('./apply_import_manager-DczRKpTm.js');
19
+ require('@angular-devkit/schematics');
20
+ require('./project_tsconfig_paths-CDVxT6Ov.js');
19
21
  require('fs');
20
22
  require('module');
21
23
  require('url');
22
- require('@angular-devkit/schematics');
23
- require('./project_tsconfig_paths-CDVxT6Ov.js');
24
24
 
25
25
  /** Migration that cleans up unused imports from a project. */
26
- class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
26
+ class UnusedImportsMigration extends project_paths.TsurgeFunnelMigration {
27
27
  printer = ts.createPrinter();
28
28
  createProgram(tsconfigAbsPath, fs) {
29
29
  return super.createProgram(tsconfigAbsPath, fs, {
@@ -62,10 +62,10 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
62
62
  }
63
63
  this.generateReplacements(sourceFile, resolvedLocations, usageAnalysis, info, replacements);
64
64
  });
65
- return run_in_devkit.confirmAsSerializable({ replacements, removedIdentifiers, changedFiles });
65
+ return project_paths.confirmAsSerializable({ replacements, removedIdentifiers, changedFiles });
66
66
  }
67
67
  async migrate(globalData) {
68
- return run_in_devkit.confirmAsSerializable(globalData);
68
+ return project_paths.confirmAsSerializable(globalData);
69
69
  }
70
70
  async combine(unitA, unitB) {
71
71
  const combinedReplacements = [];
@@ -89,14 +89,14 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
89
89
  }
90
90
  }
91
91
  });
92
- return run_in_devkit.confirmAsSerializable({
92
+ return project_paths.confirmAsSerializable({
93
93
  replacements: combinedReplacements,
94
94
  removedIdentifiers: combinedRemovedIdentifiers,
95
95
  changedFiles: changedFileIds.size,
96
96
  });
97
97
  }
98
98
  async globalMeta(combinedData) {
99
- return run_in_devkit.confirmAsSerializable(combinedData);
99
+ return project_paths.confirmAsSerializable(combinedData);
100
100
  }
101
101
  async stats(globalMetadata) {
102
102
  return {
@@ -223,7 +223,7 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
223
223
  const importManager = new checker.ImportManager();
224
224
  // Replace full arrays with empty ones. This allows preserves more of the user's formatting.
225
225
  fullRemovals.forEach((node) => {
226
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(sourceFile, info), new run_in_devkit.TextUpdate({
226
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(sourceFile, info), new project_paths.TextUpdate({
227
227
  position: node.getStart(),
228
228
  end: node.getEnd(),
229
229
  toInsert: '[]',
@@ -232,7 +232,7 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
232
232
  // Filter out the unused identifiers from an array.
233
233
  partialRemovals.forEach((toRemove, node) => {
234
234
  const newNode = ts.factory.updateArrayLiteralExpression(node, node.elements.filter((el) => !toRemove.has(el)));
235
- replacements.push(new run_in_devkit.Replacement(run_in_devkit.projectFile(sourceFile, info), new run_in_devkit.TextUpdate({
235
+ replacements.push(new project_paths.Replacement(project_paths.projectFile(sourceFile, info), new project_paths.TextUpdate({
236
236
  position: node.getStart(),
237
237
  end: node.getEnd(),
238
238
  toInsert: this.printer.printNode(ts.EmitHint.Unspecified, newNode, sourceFile),
@@ -264,11 +264,16 @@ class UnusedImportsMigration extends run_in_devkit.TsurgeFunnelMigration {
264
264
 
265
265
  function migrate() {
266
266
  return async (tree, context) => {
267
- await run_in_devkit.runMigrationInDevkit({
267
+ await project_paths.runMigrationInDevkit({
268
268
  getMigration: () => new UnusedImportsMigration(),
269
269
  tree,
270
- beforeProgramCreation: (tsconfigPath) => {
271
- context.logger.info(`Preparing analysis for ${tsconfigPath}`);
270
+ beforeProgramCreation: (tsconfigPath, stage) => {
271
+ if (stage === project_paths.MigrationStage.Analysis) {
272
+ context.logger.info(`Preparing analysis for: ${tsconfigPath}...`);
273
+ }
274
+ else {
275
+ context.logger.info(`Running migration for: ${tsconfigPath}...`);
276
+ }
272
277
  },
273
278
  beforeUnitAnalysis: (tsconfigPath) => {
274
279
  context.logger.info(`Scanning for unused imports using ${tsconfigPath}`);