@angular/core 20.0.0-next.9 → 20.0.0-rc.1

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 (72) hide show
  1. package/{api.d-B58KU5QT.d.ts → api.d-BcbEQ58q.d.ts} +4 -4
  2. package/{chrome_dev_tools_performance.d-qv7drdAl.d.ts → chrome_dev_tools_performance.d-CARNn07P.d.ts} +11 -29
  3. package/{discovery.d-BCmtv8-u.d.ts → discovery.d-MmZhhuxb.d.ts} +13 -2
  4. package/{event_dispatcher.d-DlbccpYq.d.ts → event_dispatcher.d-BReQpZfC.d.ts} +27 -1
  5. package/fesm2022/attribute-BWp59EjE.mjs +1 -1
  6. package/fesm2022/core.mjs +37 -23
  7. package/fesm2022/core.mjs.map +1 -1
  8. package/fesm2022/{debug_node-sP8Ihhla.mjs → debug_node-BTSSF0Vj.mjs} +95 -66
  9. package/fesm2022/debug_node-BTSSF0Vj.mjs.map +1 -0
  10. package/fesm2022/primitives/di.mjs +1 -1
  11. package/fesm2022/primitives/event-dispatch.mjs +3 -2
  12. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  13. package/fesm2022/primitives/signals.mjs +7 -5
  14. package/fesm2022/primitives/signals.mjs.map +1 -1
  15. package/fesm2022/{resource-aJC_NNLX.mjs → resource-DdxAP6ca.mjs} +7 -5
  16. package/fesm2022/resource-DdxAP6ca.mjs.map +1 -0
  17. package/fesm2022/{root_effect_scheduler-C95A9imp.mjs → root_effect_scheduler-CX0Q-uCT.mjs} +17 -10
  18. package/fesm2022/root_effect_scheduler-CX0Q-uCT.mjs.map +1 -0
  19. package/fesm2022/rxjs-interop.mjs +10 -10
  20. package/fesm2022/rxjs-interop.mjs.map +1 -1
  21. package/fesm2022/{signal-CVVPheSN.mjs → signal-ePSl6jXn.mjs} +3 -3
  22. package/fesm2022/signal-ePSl6jXn.mjs.map +1 -0
  23. package/fesm2022/testing.mjs +75 -93
  24. package/fesm2022/testing.mjs.map +1 -1
  25. package/fesm2022/{untracked-BLZYODu2.mjs → untracked-2ouAFbCz.mjs} +4 -4
  26. package/fesm2022/untracked-2ouAFbCz.mjs.map +1 -0
  27. package/fesm2022/weak_ref-BaIq-pgY.mjs +1 -1
  28. package/fesm2022/weak_ref-BaIq-pgY.mjs.map +1 -1
  29. package/graph.d-BcIOep_B.d.ts +1 -1
  30. package/index.d.ts +29 -43
  31. package/package.json +3 -3
  32. package/primitives/di/index.d.ts +1 -1
  33. package/primitives/event-dispatch/index.d.ts +3 -3
  34. package/primitives/signals/index.d.ts +1 -1
  35. package/rxjs-interop/index.d.ts +11 -11
  36. package/schematics/bundles/{apply_import_manager-CxaTw_Wy.js → apply_import_manager-BdH8vaIZ.js} +3 -3
  37. package/schematics/bundles/{change_tracker-CkPYZ_km.js → change_tracker-C_neAOvN.js} +3 -3
  38. package/schematics/bundles/{checker-Crz1jSZM.js → checker-DqG0JVTu.js} +3 -3
  39. package/schematics/bundles/cleanup-unused-imports.js +11 -14
  40. package/schematics/bundles/{compiler-B4MK7BP9.js → compiler-CWuG67kz.js} +61 -22
  41. package/schematics/bundles/compiler_host-CAfDJO3W.js +1 -1
  42. package/schematics/bundles/control-flow-migration.js +2 -2
  43. package/schematics/bundles/document-core.js +7 -7
  44. package/schematics/bundles/imports-CIX-JgAN.js +1 -1
  45. package/schematics/bundles/{index-Bk_3geTg.js → index-CGYcUmPq.js} +34 -16
  46. package/schematics/bundles/{index-BbZ6cSR1.js → index-DWcLBEg_.js} +5 -5
  47. package/schematics/bundles/inject-flags.js +7 -7
  48. package/schematics/bundles/inject-migration.js +4 -4
  49. package/schematics/bundles/leading_space-D9nQ8UQC.js +1 -1
  50. package/schematics/bundles/{migrate_ts_type_references-D6T3FlkH.js → migrate_ts_type_references-DAudyiEk.js} +6 -6
  51. package/schematics/bundles/ng_decorators-DznZ5jMl.js +1 -1
  52. package/schematics/bundles/nodes-B16H9JUd.js +1 -1
  53. package/schematics/bundles/output-migration.js +13 -16
  54. package/schematics/bundles/{project_paths-CQ4-VKlW.js → project_paths-B3YG5aUz.js} +4 -4
  55. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.js +1 -1
  56. package/schematics/bundles/property_name-BBwFuqMe.js +1 -1
  57. package/schematics/bundles/route-lazy-loading.js +4 -4
  58. package/schematics/bundles/self-closing-tags-migration.js +10 -13
  59. package/schematics/bundles/signal-input-migration.js +16 -19
  60. package/schematics/bundles/signal-queries-migration.js +16 -19
  61. package/schematics/bundles/signals.js +8 -8
  62. package/schematics/bundles/standalone-migration.js +5 -5
  63. package/schematics/bundles/symbol-VPWguRxr.js +1 -1
  64. package/schematics/bundles/test-bed-get.js +6 -6
  65. package/signal.d-D6VJ67xi.d.ts +1 -1
  66. package/testing/index.d.ts +10 -19
  67. package/weak_ref.d-eGOEP9S1.d.ts +1 -1
  68. package/fesm2022/debug_node-sP8Ihhla.mjs.map +0 -1
  69. package/fesm2022/resource-aJC_NNLX.mjs.map +0 -1
  70. package/fesm2022/root_effect_scheduler-C95A9imp.mjs.map +0 -1
  71. package/fesm2022/signal-CVVPheSN.mjs.map +0 -1
  72. package/fesm2022/untracked-BLZYODu2.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,14 +8,14 @@
8
8
 
9
9
  require('@angular-devkit/core');
10
10
  require('node:path/posix');
11
- var project_paths = require('./project_paths-CQ4-VKlW.js');
11
+ var project_paths = require('./project_paths-B3YG5aUz.js');
12
12
  var ts = require('typescript');
13
13
  require('os');
14
- var checker = require('./checker-Crz1jSZM.js');
15
- require('./compiler-B4MK7BP9.js');
16
- var index = require('./index-Bk_3geTg.js');
14
+ var checker = require('./checker-DqG0JVTu.js');
15
+ require('./compiler-CWuG67kz.js');
16
+ var index = require('./index-CGYcUmPq.js');
17
17
  require('path');
18
- var apply_import_manager = require('./apply_import_manager-CxaTw_Wy.js');
18
+ var apply_import_manager = require('./apply_import_manager-BdH8vaIZ.js');
19
19
  require('@angular-devkit/schematics');
20
20
  require('./project_tsconfig_paths-CDVxT6Ov.js');
21
21
  require('fs');
@@ -99,12 +99,10 @@ class UnusedImportsMigration extends project_paths.TsurgeFunnelMigration {
99
99
  return project_paths.confirmAsSerializable(combinedData);
100
100
  }
101
101
  async stats(globalMetadata) {
102
- return {
103
- counters: {
104
- removedImports: globalMetadata.removedIdentifiers.length,
105
- changedFiles: globalMetadata.changedFiles,
106
- },
107
- };
102
+ return project_paths.confirmAsSerializable({
103
+ removedImports: globalMetadata.removedIdentifiers.length,
104
+ changedFiles: globalMetadata.changedFiles,
105
+ });
108
106
  }
109
107
  /** Gets an ID that can be used to look up a node based on its location. */
110
108
  getNodeID(start, length) {
@@ -281,8 +279,7 @@ function migrate() {
281
279
  afterAnalysisFailure: () => {
282
280
  context.logger.error('Schematic failed unexpectedly with no analysis data');
283
281
  },
284
- whenDone: (stats) => {
285
- const { removedImports, changedFiles } = stats.counters;
282
+ whenDone: ({ removedImports, changedFiles }) => {
286
283
  let statsMessage;
287
284
  if (removedImports === 0) {
288
285
  statsMessage = 'Schematic could not find unused imports in the project';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -3065,28 +3065,26 @@ function stringify(token) {
3065
3065
  return token;
3066
3066
  }
3067
3067
  if (Array.isArray(token)) {
3068
- return '[' + token.map(stringify).join(', ') + ']';
3068
+ return `[${token.map(stringify).join(', ')}]`;
3069
3069
  }
3070
3070
  if (token == null) {
3071
3071
  return '' + token;
3072
3072
  }
3073
- if (token.overriddenName) {
3074
- return `${token.overriddenName}`;
3075
- }
3076
- if (token.name) {
3077
- return `${token.name}`;
3073
+ const name = token.overriddenName || token.name;
3074
+ if (name) {
3075
+ return `${name}`;
3078
3076
  }
3079
3077
  if (!token.toString) {
3080
3078
  return 'object';
3081
3079
  }
3082
3080
  // WARNING: do not try to `JSON.stringify(token)` here
3083
3081
  // see https://github.com/angular/angular/issues/23440
3084
- const res = token.toString();
3085
- if (res == null) {
3086
- return '' + res;
3082
+ const result = token.toString();
3083
+ if (result == null) {
3084
+ return '' + result;
3087
3085
  }
3088
- const newLineIndex = res.indexOf('\n');
3089
- return newLineIndex === -1 ? res : res.substring(0, newLineIndex);
3086
+ const newLineIndex = result.indexOf('\n');
3087
+ return newLineIndex >= 0 ? result.slice(0, newLineIndex) : result;
3090
3088
  }
3091
3089
  class Version {
3092
3090
  full;
@@ -11603,7 +11601,23 @@ function assignI18nSlotDependencies(job) {
11603
11601
  i18nExpressionsInProgress.push(opToRemove);
11604
11602
  continue;
11605
11603
  }
11604
+ let hasDifferentTarget = false;
11606
11605
  if (hasDependsOnSlotContextTrait(updateOp) && updateOp.target !== createOp.xref) {
11606
+ hasDifferentTarget = true;
11607
+ }
11608
+ else if (
11609
+ // Some expressions may consume slots as well (e.g. `storeLet`).
11610
+ updateOp.kind === OpKind.Statement ||
11611
+ updateOp.kind === OpKind.Variable) {
11612
+ visitExpressionsInOp(updateOp, (expr) => {
11613
+ if (!hasDifferentTarget &&
11614
+ hasDependsOnSlotContextTrait(expr) &&
11615
+ expr.target !== createOp.xref) {
11616
+ hasDifferentTarget = true;
11617
+ }
11618
+ });
11619
+ }
11620
+ if (hasDifferentTarget) {
11607
11621
  break;
11608
11622
  }
11609
11623
  updateOp = updateOp.next;
@@ -25059,11 +25073,16 @@ function allocateSlots(job) {
25059
25073
  */
25060
25074
  function optimizeStoreLet(job) {
25061
25075
  const letUsedExternally = new Set();
25076
+ const declareLetOps = new Map();
25062
25077
  // Since `@let` declarations can be referenced in child views, both in
25063
25078
  // the creation block (via listeners) and in the update block, we have
25064
25079
  // to look through all the ops to find the references.
25065
25080
  for (const unit of job.units) {
25066
25081
  for (const op of unit.ops()) {
25082
+ // Take advantage that we're already looking through all the ops and track some more info.
25083
+ if (op.kind === OpKind.DeclareLet) {
25084
+ declareLetOps.set(op.xref, op);
25085
+ }
25067
25086
  visitExpressionsInOp(op, (expr) => {
25068
25087
  if (expr instanceof ContextLetReferenceExpr) {
25069
25088
  letUsedExternally.add(expr.target);
@@ -25071,15 +25090,35 @@ function optimizeStoreLet(job) {
25071
25090
  });
25072
25091
  }
25073
25092
  }
25074
- // TODO(crisbeto): potentially remove the unused calls completely, pending discussion.
25075
25093
  for (const unit of job.units) {
25076
25094
  for (const op of unit.update) {
25077
- transformExpressionsInOp(op, (expression) => expression instanceof StoreLetExpr && !letUsedExternally.has(expression.target)
25078
- ? expression.value
25079
- : expression, VisitorContextFlag.None);
25095
+ transformExpressionsInOp(op, (expr) => {
25096
+ // If a @let isn't used in other views, we don't have to store its value.
25097
+ if (expr instanceof StoreLetExpr && !letUsedExternally.has(expr.target)) {
25098
+ // Furthermore, if the @let isn't using pipes, we can also drop its declareLet op.
25099
+ // We need to keep the declareLet if there are pipes, because they can use DI which
25100
+ // requires the TNode created by declareLet.
25101
+ if (!hasPipe(expr)) {
25102
+ OpList.remove(declareLetOps.get(expr.target));
25103
+ }
25104
+ return expr.value;
25105
+ }
25106
+ return expr;
25107
+ }, VisitorContextFlag.None);
25080
25108
  }
25081
25109
  }
25082
25110
  }
25111
+ /** Determines if a `storeLet` expression contains a pipe. */
25112
+ function hasPipe(root) {
25113
+ let result = false;
25114
+ transformExpressionsInExpression(root, (expr) => {
25115
+ if (expr instanceof PipeBindingExpr || expr instanceof PipeBindingVariadicExpr) {
25116
+ result = true;
25117
+ }
25118
+ return expr;
25119
+ }, VisitorContextFlag.None);
25120
+ return result;
25121
+ }
25083
25122
 
25084
25123
  /**
25085
25124
  * In most cases we can drop user added parentheses from expressions. However, in some cases
@@ -26038,11 +26077,6 @@ const phases = [
26038
26077
  { kind: CompilationJobKind.Tmpl, fn: generateConditionalExpressions },
26039
26078
  { kind: CompilationJobKind.Tmpl, fn: createPipes },
26040
26079
  { kind: CompilationJobKind.Tmpl, fn: configureDeferInstructions },
26041
- { kind: CompilationJobKind.Tmpl, fn: convertI18nText },
26042
- { kind: CompilationJobKind.Tmpl, fn: convertI18nBindings },
26043
- { kind: CompilationJobKind.Tmpl, fn: removeUnusedI18nAttributesOps },
26044
- { kind: CompilationJobKind.Tmpl, fn: assignI18nSlotDependencies },
26045
- { kind: CompilationJobKind.Tmpl, fn: applyI18nExpressions },
26046
26080
  { kind: CompilationJobKind.Tmpl, fn: createVariadicPipes },
26047
26081
  { kind: CompilationJobKind.Both, fn: generatePureLiteralStructures },
26048
26082
  { kind: CompilationJobKind.Tmpl, fn: generateProjectionDefs },
@@ -26065,6 +26099,11 @@ const phases = [
26065
26099
  { kind: CompilationJobKind.Both, fn: generateTemporaryVariables },
26066
26100
  { kind: CompilationJobKind.Both, fn: optimizeVariables },
26067
26101
  { kind: CompilationJobKind.Both, fn: optimizeStoreLet },
26102
+ { kind: CompilationJobKind.Tmpl, fn: convertI18nText },
26103
+ { kind: CompilationJobKind.Tmpl, fn: convertI18nBindings },
26104
+ { kind: CompilationJobKind.Tmpl, fn: removeUnusedI18nAttributesOps },
26105
+ { kind: CompilationJobKind.Tmpl, fn: assignI18nSlotDependencies },
26106
+ { kind: CompilationJobKind.Tmpl, fn: applyI18nExpressions },
26068
26107
  { kind: CompilationJobKind.Tmpl, fn: allocateSlots },
26069
26108
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nElementPlaceholders },
26070
26109
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nExpressionPlaceholders },
@@ -32366,7 +32405,7 @@ var FactoryTarget;
32366
32405
  * @description
32367
32406
  * Entry point for all public APIs of the compiler package.
32368
32407
  */
32369
- new Version('20.0.0-next.9');
32408
+ new Version('20.0.0-rc.1');
32370
32409
 
32371
32410
  //////////////////////////////////////
32372
32411
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
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.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -9,7 +9,7 @@
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var p = require('path');
11
11
  var compiler_host = require('./compiler_host-CAfDJO3W.js');
12
- var compiler = require('./compiler-B4MK7BP9.js');
12
+ var compiler = require('./compiler-CWuG67kz.js');
13
13
  var ts = require('typescript');
14
14
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.js');
15
15
  require('@angular-devkit/core');
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- require('./compiler-B4MK7BP9.js');
9
+ require('./compiler-CWuG67kz.js');
10
10
  require('typescript');
11
- var checker = require('./checker-Crz1jSZM.js');
11
+ var checker = require('./checker-DqG0JVTu.js');
12
12
  require('os');
13
- var apply_import_manager = require('./apply_import_manager-CxaTw_Wy.js');
14
- require('./index-Bk_3geTg.js');
13
+ var apply_import_manager = require('./apply_import_manager-BdH8vaIZ.js');
14
+ require('./index-CGYcUmPq.js');
15
15
  require('path');
16
- var project_paths = require('./project_paths-CQ4-VKlW.js');
16
+ var project_paths = require('./project_paths-B3YG5aUz.js');
17
17
  var imports = require('./imports-CIX-JgAN.js');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
@@ -73,7 +73,7 @@ class DocumentCoreMigration extends project_paths.TsurgeFunnelMigration {
73
73
  return project_paths.confirmAsSerializable(combinedData);
74
74
  }
75
75
  async stats() {
76
- return { counters: {} };
76
+ return project_paths.confirmAsSerializable({});
77
77
  }
78
78
  }
79
79
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
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-B4MK7BP9.js');
9
+ var compiler = require('./compiler-CWuG67kz.js');
10
10
  var ts = require('typescript');
11
11
  var p = require('path');
12
- var checker = require('./checker-Crz1jSZM.js');
12
+ var checker = require('./checker-DqG0JVTu.js');
13
13
  require('os');
14
14
 
15
15
  function _interopNamespaceDefault(e) {
@@ -892,7 +892,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
892
892
  function compileDeclareClassMetadata(metadata) {
893
893
  const definitionMap = new compiler.DefinitionMap();
894
894
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
895
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
895
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
896
896
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
897
897
  definitionMap.set('type', metadata.type);
898
898
  definitionMap.set('decorators', metadata.decorators);
@@ -910,7 +910,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
910
910
  callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? compiler.literal(null));
911
911
  callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? compiler.literal(null));
912
912
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
913
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
913
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
914
914
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
915
915
  definitionMap.set('type', metadata.type);
916
916
  definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
@@ -1005,7 +1005,7 @@ function createDirectiveDefinitionMap(meta) {
1005
1005
  const definitionMap = new compiler.DefinitionMap();
1006
1006
  const minVersion = getMinimumVersionForPartialOutput(meta);
1007
1007
  definitionMap.set('minVersion', compiler.literal(minVersion));
1008
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
1008
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
1009
1009
  // e.g. `type: MyDirective`
1010
1010
  definitionMap.set('type', meta.type.value);
1011
1011
  if (meta.isStandalone !== undefined) {
@@ -1421,7 +1421,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
1421
1421
  function compileDeclareFactoryFunction(meta) {
1422
1422
  const definitionMap = new compiler.DefinitionMap();
1423
1423
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
1424
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
1424
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
1425
1425
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
1426
1426
  definitionMap.set('type', meta.type.value);
1427
1427
  definitionMap.set('deps', compileDependencies(meta.deps));
@@ -1456,7 +1456,7 @@ function compileDeclareInjectableFromMetadata(meta) {
1456
1456
  function createInjectableDefinitionMap(meta) {
1457
1457
  const definitionMap = new compiler.DefinitionMap();
1458
1458
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
1459
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
1459
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
1460
1460
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
1461
1461
  definitionMap.set('type', meta.type.value);
1462
1462
  // Only generate providedIn property if it has a non-null value
@@ -1507,7 +1507,7 @@ function compileDeclareInjectorFromMetadata(meta) {
1507
1507
  function createInjectorDefinitionMap(meta) {
1508
1508
  const definitionMap = new compiler.DefinitionMap();
1509
1509
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
1510
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
1510
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
1511
1511
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
1512
1512
  definitionMap.set('type', meta.type.value);
1513
1513
  definitionMap.set('providers', meta.providers);
@@ -1540,7 +1540,7 @@ function createNgModuleDefinitionMap(meta) {
1540
1540
  throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
1541
1541
  }
1542
1542
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
1543
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
1543
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
1544
1544
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
1545
1545
  definitionMap.set('type', meta.type.value);
1546
1546
  // We only generate the keys in the metadata if the arrays contain values.
@@ -1591,7 +1591,7 @@ function compileDeclarePipeFromMetadata(meta) {
1591
1591
  function createPipeDefinitionMap(meta) {
1592
1592
  const definitionMap = new compiler.DefinitionMap();
1593
1593
  definitionMap.set('minVersion', compiler.literal(MINIMUM_PARTIAL_LINKER_VERSION));
1594
- definitionMap.set('version', compiler.literal('20.0.0-next.9'));
1594
+ definitionMap.set('version', compiler.literal('20.0.0-rc.1'));
1595
1595
  definitionMap.set('ngImport', compiler.importExpr(compiler.Identifiers.core));
1596
1596
  // e.g. `type: MyPipe`
1597
1597
  definitionMap.set('type', meta.type.value);
@@ -7192,9 +7192,27 @@ class NgModuleDecoratorHandler {
7192
7192
  }
7193
7193
  }
7194
7194
  }
7195
- const schemas = this.compilationMode !== checker.CompilationMode.LOCAL && ngModule.has('schemas')
7196
- ? extractSchemas(ngModule.get('schemas'), this.evaluator, 'NgModule')
7197
- : [];
7195
+ let schemas;
7196
+ try {
7197
+ schemas =
7198
+ this.compilationMode !== checker.CompilationMode.LOCAL && ngModule.has('schemas')
7199
+ ? extractSchemas(ngModule.get('schemas'), this.evaluator, 'NgModule')
7200
+ : [];
7201
+ }
7202
+ catch (e) {
7203
+ if (e instanceof checker.FatalDiagnosticError) {
7204
+ diagnostics.push(e.toDiagnostic());
7205
+ // Use an empty schema array if schema extract fails.
7206
+ // A build will still fail in this case. However, for the language service,
7207
+ // this allows the module to exist in the compiler registry and prevents
7208
+ // cascading diagnostics within an IDE due to "missing" components. The
7209
+ // originating schema related errors will still be reported in the IDE.
7210
+ schemas = [];
7211
+ }
7212
+ else {
7213
+ throw e;
7214
+ }
7215
+ }
7198
7216
  let id = null;
7199
7217
  if (ngModule.has('id')) {
7200
7218
  const idExpr = ngModule.get('id');
@@ -10918,7 +10936,7 @@ class PipeDecoratorHandler {
10918
10936
  * @description
10919
10937
  * Entry point for all public APIs of the compiler-cli package.
10920
10938
  */
10921
- new compiler.Version('20.0.0-next.9');
10939
+ new compiler.Version('20.0.0-rc.1');
10922
10940
 
10923
10941
  /**
10924
10942
  * Whether a given decorator should be treated as an Angular decorator.
@@ -18913,7 +18931,7 @@ var semver = /*@__PURE__*/getDefaultExportFromCjs(semverExports);
18913
18931
  * @param minVersion Minimum required version for the feature.
18914
18932
  */
18915
18933
  function coreVersionSupportsFeature(coreVersion, minVersion) {
18916
- // A version of `20.0.0-next.9` usually means that core is at head so it supports
18934
+ // A version of `20.0.0-rc.1` usually means that core is at head so it supports
18917
18935
  // all features. Use string interpolation prevent the placeholder from being replaced
18918
18936
  // with the current version during build time.
18919
18937
  if (coreVersion === `0.0.0-${'PLACEHOLDER'}`) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,11 +8,11 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-Crz1jSZM.js');
12
- var compiler = require('./compiler-B4MK7BP9.js');
13
- var index = require('./index-Bk_3geTg.js');
11
+ var checker = require('./checker-DqG0JVTu.js');
12
+ var compiler = require('./compiler-CWuG67kz.js');
13
+ var index = require('./index-CGYcUmPq.js');
14
14
  require('path');
15
- var project_paths = require('./project_paths-CQ4-VKlW.js');
15
+ var project_paths = require('./project_paths-B3YG5aUz.js');
16
16
 
17
17
  function getMemberName(member) {
18
18
  if (member.name === undefined) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,12 +8,12 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-Crz1jSZM.js');
12
- require('./compiler-B4MK7BP9.js');
13
- require('./index-Bk_3geTg.js');
11
+ var checker = require('./checker-DqG0JVTu.js');
12
+ require('./compiler-CWuG67kz.js');
13
+ require('./index-CGYcUmPq.js');
14
14
  require('path');
15
- var project_paths = require('./project_paths-CQ4-VKlW.js');
16
- var apply_import_manager = require('./apply_import_manager-CxaTw_Wy.js');
15
+ var project_paths = require('./project_paths-B3YG5aUz.js');
16
+ var apply_import_manager = require('./apply_import_manager-BdH8vaIZ.js');
17
17
  var imports = require('./imports-CIX-JgAN.js');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
@@ -104,7 +104,7 @@ class InjectFlagsMigration extends project_paths.TsurgeFunnelMigration {
104
104
  return project_paths.confirmAsSerializable(combinedData);
105
105
  }
106
106
  async stats() {
107
- return { counters: {} };
107
+ return project_paths.confirmAsSerializable({});
108
108
  }
109
109
  }
110
110
  /** Gets an ID that can be used to look up a node based on its location. */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,15 +8,15 @@
8
8
 
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var p = require('path');
11
- var change_tracker = require('./change_tracker-CkPYZ_km.js');
11
+ var change_tracker = require('./change_tracker-C_neAOvN.js');
12
12
  var compiler_host = require('./compiler_host-CAfDJO3W.js');
13
13
  var ts = require('typescript');
14
14
  var ng_decorators = require('./ng_decorators-DznZ5jMl.js');
15
15
  var imports = require('./imports-CIX-JgAN.js');
16
16
  var nodes = require('./nodes-B16H9JUd.js');
17
17
  var leading_space = require('./leading_space-D9nQ8UQC.js');
18
- require('./compiler-B4MK7BP9.js');
19
- require('./checker-Crz1jSZM.js');
18
+ require('./compiler-CWuG67kz.js');
19
+ require('./checker-DqG0JVTu.js');
20
20
  require('os');
21
21
  require('fs');
22
22
  require('module');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- require('./compiler-B4MK7BP9.js');
9
+ require('./compiler-CWuG67kz.js');
10
10
  var ts = require('typescript');
11
- var checker = require('./checker-Crz1jSZM.js');
11
+ var checker = require('./checker-DqG0JVTu.js');
12
12
  require('os');
13
13
  var assert = require('assert');
14
- var index = require('./index-BbZ6cSR1.js');
15
- var project_paths = require('./project_paths-CQ4-VKlW.js');
14
+ var index = require('./index-DWcLBEg_.js');
15
+ var project_paths = require('./project_paths-B3YG5aUz.js');
16
16
  var leading_space = require('./leading_space-D9nQ8UQC.js');
17
- require('./index-Bk_3geTg.js');
17
+ require('./index-CGYcUmPq.js');
18
18
  require('path');
19
19
 
20
20
  /**
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
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.9
3
+ * @license Angular v20.0.0-rc.1
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.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,13 +8,13 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-Crz1jSZM.js');
12
- var compiler = require('./compiler-B4MK7BP9.js');
13
- var index$1 = require('./index-Bk_3geTg.js');
11
+ var checker = require('./checker-DqG0JVTu.js');
12
+ var compiler = require('./compiler-CWuG67kz.js');
13
+ var index$1 = require('./index-CGYcUmPq.js');
14
14
  require('path');
15
- var project_paths = require('./project_paths-CQ4-VKlW.js');
16
- var apply_import_manager = require('./apply_import_manager-CxaTw_Wy.js');
17
- var index = require('./index-BbZ6cSR1.js');
15
+ var project_paths = require('./project_paths-B3YG5aUz.js');
16
+ var apply_import_manager = require('./apply_import_manager-BdH8vaIZ.js');
17
+ var index = require('./index-DWcLBEg_.js');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
20
20
  require('fs');
@@ -456,13 +456,11 @@ class OutputMigration extends project_paths.TsurgeFunnelMigration {
456
456
  const problematicOutputs = new Set(Object.keys(globalMetadata.problematicUsages)).size +
457
457
  globalMetadata.problematicDeclarationCount;
458
458
  const successRate = detectedOutputs > 0 ? (detectedOutputs - problematicOutputs) / detectedOutputs : 1;
459
- return {
460
- counters: {
461
- detectedOutputs,
462
- problematicOutputs,
463
- successRate,
464
- },
465
- };
459
+ return project_paths.confirmAsSerializable({
460
+ detectedOutputs,
461
+ problematicOutputs,
462
+ successRate,
463
+ });
466
464
  }
467
465
  async migrate(globalData) {
468
466
  const migratedFiles = new Set();
@@ -594,8 +592,7 @@ function migrate(options) {
594
592
  afterAnalysisFailure: () => {
595
593
  context.logger.error('Migration failed unexpectedly with no analysis data');
596
594
  },
597
- whenDone: ({ counters }) => {
598
- const { detectedOutputs, problematicOutputs, successRate } = counters;
595
+ whenDone: ({ detectedOutputs, problematicOutputs, successRate }) => {
599
596
  const migratedOutputs = detectedOutputs - problematicOutputs;
600
597
  const successRatePercent = (successRate * 100).toFixed(2);
601
598
  context.logger.info('');
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var index = require('./index-Bk_3geTg.js');
9
+ var index = require('./index-CGYcUmPq.js');
10
10
  var schematics = require('@angular-devkit/schematics');
11
11
  var core = require('@angular-devkit/core');
12
12
  var posixPath = require('node:path/posix');
13
13
  var os = require('os');
14
14
  var ts = require('typescript');
15
- var checker = require('./checker-Crz1jSZM.js');
16
- require('./compiler-B4MK7BP9.js');
15
+ var checker = require('./checker-DqG0JVTu.js');
16
+ require('./compiler-CWuG67kz.js');
17
17
  require('path');
18
18
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.js');
19
19
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-next.9
3
+ * @license Angular v20.0.0-rc.1
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */