@angular/core 21.0.0-next.6 → 21.0.0-next.8

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 (77) hide show
  1. package/fesm2022/_attribute-chunk.mjs +2 -2
  2. package/fesm2022/_attribute-chunk.mjs.map +1 -1
  3. package/fesm2022/_debug_node-chunk.mjs +755 -141
  4. package/fesm2022/_debug_node-chunk.mjs.map +1 -1
  5. package/fesm2022/_effect-chunk.mjs +2 -2
  6. package/fesm2022/_effect-chunk.mjs.map +1 -1
  7. package/fesm2022/_not_found-chunk.mjs +2 -2
  8. package/fesm2022/_not_found-chunk.mjs.map +1 -1
  9. package/fesm2022/_resource-chunk.mjs +2 -2
  10. package/fesm2022/_resource-chunk.mjs.map +1 -1
  11. package/fesm2022/_root_effect_scheduler-chunk.mjs +8 -3
  12. package/fesm2022/_root_effect_scheduler-chunk.mjs.map +1 -1
  13. package/fesm2022/_signal-chunk.mjs +2 -2
  14. package/fesm2022/_signal-chunk.mjs.map +1 -1
  15. package/fesm2022/_weak_ref-chunk.mjs +2 -2
  16. package/fesm2022/_weak_ref-chunk.mjs.map +1 -1
  17. package/fesm2022/core.mjs +9 -13
  18. package/fesm2022/core.mjs.map +1 -1
  19. package/fesm2022/primitives-di.mjs +2 -2
  20. package/fesm2022/primitives-di.mjs.map +1 -1
  21. package/fesm2022/primitives-event-dispatch.mjs +2 -2
  22. package/fesm2022/primitives-event-dispatch.mjs.map +1 -1
  23. package/fesm2022/primitives-signals.mjs +2 -2
  24. package/fesm2022/primitives-signals.mjs.map +1 -1
  25. package/fesm2022/rxjs-interop.mjs +2 -2
  26. package/fesm2022/rxjs-interop.mjs.map +1 -1
  27. package/fesm2022/testing.mjs +2 -2
  28. package/fesm2022/testing.mjs.map +1 -1
  29. package/package.json +2 -2
  30. package/schematics/bundles/add-bootstrap-context-to-server-main.cjs +5 -5
  31. package/schematics/bundles/application-config-core.cjs +5 -5
  32. package/schematics/bundles/{apply_import_manager-pLtndDki.cjs → apply_import_manager-CBLmogDD.cjs} +3 -3
  33. package/schematics/bundles/bootstrap-options-migration.cjs +5 -5
  34. package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
  35. package/schematics/bundles/{compiler_host-BJEh7-L1.cjs → compiler_host-T6xncpiw.cjs} +2 -2
  36. package/schematics/bundles/control-flow-migration.cjs +22 -21
  37. package/schematics/bundles/imports-DwPXlGFl.cjs +1 -1
  38. package/schematics/bundles/{index-DCfgOEYE.cjs → index-BnmACOsq.cjs} +237 -98
  39. package/schematics/bundles/{index-bqpULzLD.cjs → index-DWSaRJdz.cjs} +4 -4
  40. package/schematics/bundles/inject-migration.cjs +3 -3
  41. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  42. package/schematics/bundles/{migrate_ts_type_references-COE6BA7E.cjs → migrate_ts_type_references-Cu-FR4L5.cjs} +47 -5
  43. package/schematics/bundles/{ng_component_template-pDoKlgPP.cjs → ng_component_template-BkWiUuGG.cjs} +2 -2
  44. package/schematics/bundles/ng_decorators-BI0uV7KI.cjs +1 -1
  45. package/schematics/bundles/ngclass-to-class-migration.cjs +7 -7
  46. package/schematics/bundles/ngstyle-to-style-migration.cjs +7 -7
  47. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  48. package/schematics/bundles/output-migration.cjs +6 -6
  49. package/schematics/bundles/{parse_html-B6fblY_V.cjs → parse_html-C97tKKp3.cjs} +2 -2
  50. package/schematics/bundles/{project_paths-i0Wjiiq1.cjs → project_paths-C6g3lqjX.cjs} +3 -3
  51. package/schematics/bundles/{project_tsconfig_paths-sFatqIE5.cjs → project_tsconfig_paths-CdhVNYMk.cjs} +401 -41
  52. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  53. package/schematics/bundles/route-lazy-loading.cjs +3 -3
  54. package/schematics/bundles/router-current-navigation.cjs +4 -4
  55. package/schematics/bundles/router-last-successful-navigation.cjs +4 -4
  56. package/schematics/bundles/router-testing-module-migration.cjs +513 -0
  57. package/schematics/bundles/self-closing-tags-migration.cjs +6 -6
  58. package/schematics/bundles/signal-input-migration.cjs +7 -7
  59. package/schematics/bundles/signal-queries-migration.cjs +7 -7
  60. package/schematics/bundles/signals.cjs +7 -7
  61. package/schematics/bundles/standalone-migration.cjs +50 -10
  62. package/schematics/bundles/symbol-BObKoqes.cjs +1 -1
  63. package/schematics/collection.json +5 -0
  64. package/schematics/migrations/router-testing-module-migration/schema.json +14 -0
  65. package/types/_api-chunk.d.ts +2 -2
  66. package/types/_chrome_dev_tools_performance-chunk.d.ts +4 -2
  67. package/types/_discovery-chunk.d.ts +61 -12
  68. package/types/_effect-chunk.d.ts +2 -2
  69. package/types/_event_dispatcher-chunk.d.ts +2 -2
  70. package/types/_formatter-chunk.d.ts +2 -2
  71. package/types/_weak_ref-chunk.d.ts +2 -2
  72. package/types/core.d.ts +135 -11
  73. package/types/primitives-di.d.ts +2 -2
  74. package/types/primitives-event-dispatch.d.ts +2 -2
  75. package/types/primitives-signals.d.ts +2 -2
  76. package/types/rxjs-interop.d.ts +2 -2
  77. package/types/testing.d.ts +2 -2
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.6
3
+ * @license Angular v21.0.0-next.8
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,7 +10,7 @@ var schematics = require('@angular-devkit/schematics');
10
10
  var signalQueriesMigration = require('./signal-queries-migration.cjs');
11
11
  var signalInputMigration = require('./signal-input-migration.cjs');
12
12
  var outputMigration = require('./output-migration.cjs');
13
- require('./project_tsconfig_paths-sFatqIE5.cjs');
13
+ require('./project_tsconfig_paths-CdhVNYMk.cjs');
14
14
  require('typescript');
15
15
  require('os');
16
16
  require('fs');
@@ -18,14 +18,14 @@ require('module');
18
18
  require('path');
19
19
  require('url');
20
20
  require('@angular-devkit/core');
21
- require('./index-DCfgOEYE.cjs');
21
+ require('./index-BnmACOsq.cjs');
22
22
  require('node:path');
23
- require('./project_paths-i0Wjiiq1.cjs');
23
+ require('./project_paths-C6g3lqjX.cjs');
24
24
  require('node:path/posix');
25
- require('./apply_import_manager-pLtndDki.cjs');
26
- require('./migrate_ts_type_references-COE6BA7E.cjs');
25
+ require('./apply_import_manager-CBLmogDD.cjs');
26
+ require('./migrate_ts_type_references-Cu-FR4L5.cjs');
27
27
  require('assert');
28
- require('./index-bqpULzLD.cjs');
28
+ require('./index-DWSaRJdz.cjs');
29
29
  require('./leading_space-D9nQ8UQC.cjs');
30
30
 
31
31
  function migrate(options) {
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.6
3
+ * @license Angular v21.0.0-next.8
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-DCfgOEYE.cjs');
10
+ var index = require('./index-BnmACOsq.cjs');
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-BJEh7-L1.cjs');
15
- var project_tsconfig_paths = require('./project_tsconfig_paths-sFatqIE5.cjs');
14
+ var compiler_host = require('./compiler_host-T6xncpiw.cjs');
15
+ var project_tsconfig_paths = require('./project_tsconfig_paths-CdhVNYMk.cjs');
16
16
  var ng_decorators = require('./ng_decorators-BI0uV7KI.cjs');
17
17
  var nodes = require('./nodes-B16H9JUd.cjs');
18
18
  var symbol = require('./symbol-BObKoqes.cjs');
@@ -971,7 +971,7 @@ function pruneNgModules(program, host, basePath, rootFileNames, sourceFiles, pri
971
971
  }
972
972
  node.forEachChild(walk);
973
973
  });
974
- replaceInComponentImportsArray(componentImportArrays, classesToRemove, tracker, typeChecker, templateTypeChecker, declarationImportRemapper);
974
+ replaceInComponentImportsArray(componentImportArrays, classesToRemove, removalLocations, tracker, typeChecker, templateTypeChecker, declarationImportRemapper);
975
975
  replaceInTestImportsArray(testArrays, removalLocations, classesToRemove, tracker, typeChecker, templateTypeChecker, declarationImportRemapper);
976
976
  // We collect all the places where we need to remove references first before generating the
977
977
  // removal instructions since we may have to remove multiple references from one node.
@@ -1077,12 +1077,13 @@ function collectChangeLocations(ngModule, removalLocations, componentImportArray
1077
1077
  * Replaces all the leftover modules in component `imports` arrays with their exports.
1078
1078
  * @param componentImportArrays All the imports arrays and their nodes that represent NgModules.
1079
1079
  * @param classesToRemove Set of classes that were marked for removal.
1080
+ * @param removalLocations Tracks the different places from which imports should be removed.
1080
1081
  * @param tracker
1081
1082
  * @param typeChecker
1082
1083
  * @param templateTypeChecker
1083
1084
  * @param importRemapper
1084
1085
  */
1085
- function replaceInComponentImportsArray(componentImportArrays, classesToRemove, tracker, typeChecker, templateTypeChecker, importRemapper) {
1086
+ function replaceInComponentImportsArray(componentImportArrays, classesToRemove, removalLocations, tracker, typeChecker, templateTypeChecker, importRemapper) {
1086
1087
  for (const [array, toReplace] of componentImportArrays.getEntries()) {
1087
1088
  const closestClass = nodes.closestNode(array, ts.isClassDeclaration);
1088
1089
  if (!closestClass) {
@@ -1090,16 +1091,35 @@ function replaceInComponentImportsArray(componentImportArrays, classesToRemove,
1090
1091
  }
1091
1092
  const replacements = new UniqueItemTracker();
1092
1093
  const usedImports = new Set(findTemplateDependencies(closestClass, templateTypeChecker).map((ref) => ref.node));
1094
+ const nodesToRemove = new Set();
1093
1095
  for (const node of toReplace) {
1094
1096
  const moduleDecl = findClassDeclaration(node, typeChecker);
1095
1097
  if (moduleDecl) {
1096
1098
  const moduleMeta = templateTypeChecker.getNgModuleMetadata(moduleDecl);
1097
1099
  if (moduleMeta) {
1100
+ let hasUsedExports = false;
1098
1101
  moduleMeta.exports.forEach((exp) => {
1099
1102
  if (usedImports.has(exp.node)) {
1100
1103
  replacements.track(node, exp);
1104
+ hasUsedExports = true;
1101
1105
  }
1102
1106
  });
1107
+ // If none of the module's exports are used, track the node for removal
1108
+ if (!hasUsedExports) {
1109
+ nodesToRemove.add(node);
1110
+ }
1111
+ else if (ts.isIdentifier(node)) {
1112
+ // Track the import statement for removal when replacing with exports
1113
+ const symbol = typeChecker.getSymbolAtLocation(node);
1114
+ const declarations = symbol?.declarations;
1115
+ if (declarations) {
1116
+ for (const declaration of declarations) {
1117
+ if (ts.isImportSpecifier(declaration)) {
1118
+ removalLocations.imports.track(declaration.parent, declaration);
1119
+ }
1120
+ }
1121
+ }
1122
+ }
1103
1123
  }
1104
1124
  else {
1105
1125
  // It's unlikely not to have module metadata at this point, but just in
@@ -1108,12 +1128,13 @@ function replaceInComponentImportsArray(componentImportArrays, classesToRemove,
1108
1128
  }
1109
1129
  }
1110
1130
  }
1111
- replaceModulesInImportsArray(array, replacements, tracker, templateTypeChecker, importRemapper);
1131
+ replaceModulesInImportsArray(array, replacements, nodesToRemove, tracker, templateTypeChecker, importRemapper);
1112
1132
  }
1113
1133
  }
1114
1134
  /**
1115
1135
  * Replaces all the leftover modules in testing `imports` arrays with their exports.
1116
1136
  * @param testImportArrays All test `imports` arrays and their nodes that represent modules.
1137
+ * @param removalLocations Tracks the different places from which imports should be removed.
1117
1138
  * @param classesToRemove Classes marked for removal by the migration.
1118
1139
  * @param tracker
1119
1140
  * @param typeChecker
@@ -1123,6 +1144,7 @@ function replaceInComponentImportsArray(componentImportArrays, classesToRemove,
1123
1144
  function replaceInTestImportsArray(testImportArrays, removalLocations, classesToRemove, tracker, typeChecker, templateTypeChecker, importRemapper) {
1124
1145
  for (const [array, toReplace] of testImportArrays.getEntries()) {
1125
1146
  const replacements = new UniqueItemTracker();
1147
+ const nodesToRemove = new Set();
1126
1148
  for (const node of toReplace) {
1127
1149
  const moduleDecl = findClassDeclaration(node, typeChecker);
1128
1150
  if (moduleDecl) {
@@ -1133,6 +1155,18 @@ function replaceInTestImportsArray(testImportArrays, removalLocations, classesTo
1133
1155
  const exports = moduleMeta.exports.filter((exp) => !classesToRemove.has(exp.node));
1134
1156
  if (exports.length > 0) {
1135
1157
  exports.forEach((exp) => replacements.track(node, exp));
1158
+ // Track the import statement for removal when replacing with exports
1159
+ if (ts.isIdentifier(node)) {
1160
+ const symbol = typeChecker.getSymbolAtLocation(node);
1161
+ const declarations = symbol?.declarations;
1162
+ if (declarations) {
1163
+ for (const declaration of declarations) {
1164
+ if (ts.isImportSpecifier(declaration)) {
1165
+ removalLocations.imports.track(declaration.parent, declaration);
1166
+ }
1167
+ }
1168
+ }
1169
+ }
1136
1170
  }
1137
1171
  else {
1138
1172
  removalLocations.arrays.track(array, node);
@@ -1145,19 +1179,21 @@ function replaceInTestImportsArray(testImportArrays, removalLocations, classesTo
1145
1179
  }
1146
1180
  }
1147
1181
  }
1148
- replaceModulesInImportsArray(array, replacements, tracker, templateTypeChecker, importRemapper);
1182
+ replaceModulesInImportsArray(array, replacements, nodesToRemove, tracker, templateTypeChecker, importRemapper);
1149
1183
  }
1150
1184
  }
1151
1185
  /**
1152
1186
  * Replaces any leftover modules in an `imports` arrays with a set of specified exports
1153
1187
  * @param array Imports array which is being migrated.
1154
1188
  * @param replacements Map of NgModule references to their exports.
1189
+ * @param nodesToRemove Set of nodes that should be removed without replacement (unused modules).
1155
1190
  * @param tracker
1191
+ * @param typeChecker
1156
1192
  * @param templateTypeChecker
1157
1193
  * @param importRemapper
1158
1194
  */
1159
- function replaceModulesInImportsArray(array, replacements, tracker, templateTypeChecker, importRemapper) {
1160
- if (replacements.isEmpty()) {
1195
+ function replaceModulesInImportsArray(array, replacements, nodesToRemove, tracker, templateTypeChecker, importRemapper) {
1196
+ if (replacements.isEmpty() && nodesToRemove.size === 0) {
1161
1197
  return;
1162
1198
  }
1163
1199
  const newElements = [];
@@ -1168,6 +1204,10 @@ function replaceModulesInImportsArray(array, replacements, tracker, templateType
1168
1204
  }
1169
1205
  }
1170
1206
  for (const element of array.elements) {
1207
+ // Check if this element should be removed entirely (unused module)
1208
+ if (nodesToRemove.has(element)) {
1209
+ continue;
1210
+ }
1171
1211
  const replacementRefs = replacements.get(element);
1172
1212
  if (!replacementRefs) {
1173
1213
  newElements.push(element);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.6
3
+ * @license Angular v21.0.0-next.8
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -69,6 +69,11 @@
69
69
  "factory": "./bundles/ngstyle-to-style-migration.cjs#migrate",
70
70
  "schema": "./migrations/ngstyle-to-style-migration/schema.json",
71
71
  "aliases": ["ngstyle-to-style"]
72
+ },
73
+ "router-testing-module-migration": {
74
+ "description": "Replaces deprecated RouterTestingModule with provideRouter() as recommended in the deprecation note",
75
+ "factory": "./bundles/router-testing-module-migration.cjs#migrate",
76
+ "schema": "./migrations/router-testing-module-migration/schema.json"
72
77
  }
73
78
  }
74
79
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "$id": "AngularRouterTestingToProvideRouterMigration",
4
+ "title": "Angular RouterTestingModule to provideRouter Migration Schema",
5
+ "type": "object",
6
+ "properties": {
7
+ "path": {
8
+ "type": "string",
9
+ "description": "Path to the directory where all tests should be migrated.",
10
+ "x-prompt": "Which directory do you want to migrate?",
11
+ "default": "./"
12
+ }
13
+ }
14
+ }
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -28,6 +28,8 @@ type Signal<T> = (() => T) & {
28
28
  declare function isSignal(value: unknown): value is Signal<unknown>;
29
29
  /**
30
30
  * A comparison function which can determine if two values are equal.
31
+ *
32
+ * @publicApi 17.0
31
33
  */
32
34
  type ValueEqualityFn<T> = (a: T, b: T) => boolean;
33
35
 
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -67,9 +67,13 @@ declare const MAX_ANIMATION_TIMEOUT: InjectionToken<number>;
67
67
  * @publicApi 20.2
68
68
  */
69
69
  type AnimationFunction = (event: AnimationCallbackEvent) => void;
70
+ interface NodeAnimations {
71
+ animateFns: Function[];
72
+ resolvers?: VoidFunction[];
73
+ }
70
74
  interface AnimationLViewData {
71
- enter?: Function[];
72
- leave?: (() => Promise<void>)[];
75
+ enter?: Map<number, NodeAnimations>;
76
+ leave?: Map<number, NodeAnimations>;
73
77
  running?: Promise<unknown>;
74
78
  skipLeaveAnimations?: boolean;
75
79
  }
@@ -1143,7 +1147,38 @@ declare const enum TNodeFlags {
1143
1147
  /**
1144
1148
  * Bit #10 - This bit is set if the node is within a set of control flow blocks.
1145
1149
  */
1146
- isInControlFlow = 512
1150
+ isInControlFlow = 512,
1151
+ /**
1152
+ * Bit #11 - This bit is set if the node represents a form control.
1153
+ *
1154
+ * True when the node has an input binding to a `ɵControl` directive (but not also to a custom
1155
+ * component).
1156
+ */
1157
+ isFormControl = 1024,
1158
+ /**
1159
+ * Bit #12 - This bit is set if the node hosts a custom control component.
1160
+ *
1161
+ * A custom control component's model property is named `value`.
1162
+ */
1163
+ isFormValueControl = 2048,
1164
+ /**
1165
+ * Bit #13 - This bit is set if the node hosts a custom checkbox component.
1166
+ *
1167
+ * A custom checkbox component's model property is named `checked`.
1168
+ */
1169
+ isFormCheckboxControl = 4096,
1170
+ /**
1171
+ * Bit #14 - This bit is set if the node is a native control with a numeric type.
1172
+ *
1173
+ * This is used to determine whether the control supports the `min` and `max` properties.
1174
+ */
1175
+ isNativeNumericControl = 8192,
1176
+ /**
1177
+ * Bit #15 - This bit is set if the node is a native text control.
1178
+ *
1179
+ * This is used to determine whether control supports the `minLength` and `maxLength` properties.
1180
+ */
1181
+ isNativeTextControl = 16384
1147
1182
  }
1148
1183
  /**
1149
1184
  * Corresponds to the TNode.providerIndexes property.
@@ -2845,12 +2880,18 @@ declare const enum DeferBlockTrigger {
2845
2880
  When = 6,
2846
2881
  Never = 7
2847
2882
  }
2848
- /** * Describes specified delay (in ms) in the `hydrate on timer()` trigger. */
2883
+ /** Describes specified delay (in ms) in the `hydrate on timer()` trigger. */
2849
2884
  interface HydrateTimerTriggerDetails {
2850
- delay: number;
2885
+ type: DeferBlockTrigger.Timer;
2886
+ delay?: number;
2887
+ }
2888
+ /** Describes the config for a `hydrate on viewport` trigger. */
2889
+ interface HydrateViewportTriggerDetails {
2890
+ type: DeferBlockTrigger.Viewport;
2891
+ intersectionObserverOptions?: IntersectionObserverInit;
2851
2892
  }
2852
2893
  /** * Describes all possible hydration trigger details specified in a template. */
2853
- type HydrateTriggerDetails = HydrateTimerTriggerDetails;
2894
+ type HydrateTriggerDetails = HydrateTimerTriggerDetails | HydrateViewportTriggerDetails;
2854
2895
  /**
2855
2896
  * Internal structure used for configuration of defer block behavior.
2856
2897
  * */
@@ -5428,6 +5469,9 @@ interface HostBindingDecorator {
5428
5469
  *
5429
5470
  * @usageNotes
5430
5471
  *
5472
+ * NOTE: **Always** prefer using the `host` property over `@HostBinding`.
5473
+ * This decorator exist exclusively for backwards compatibility.
5474
+ *
5431
5475
  * The following example creates a directive that sets the `valid` and `invalid`
5432
5476
  * class, a style color, and an id on the DOM element that has an `ngModel` directive on it.
5433
5477
  *
@@ -7033,7 +7077,6 @@ declare abstract class CompilerFactory {
7033
7077
  abstract createCompiler(options?: CompilerOptions[]): Compiler;
7034
7078
  }
7035
7079
 
7036
- declare function setZoneProvidersForNextBootstrap(): void;
7037
7080
  /**
7038
7081
  * The Angular platform is the entry point for Angular on a web page.
7039
7082
  * Each page has exactly one platform. Services (such as reflection) which are common
@@ -7054,7 +7097,9 @@ declare class PlatformRef {
7054
7097
  * @deprecated Passing NgModule factories as the `PlatformRef.bootstrapModuleFactory` function
7055
7098
  * argument is deprecated. Use the `PlatformRef.bootstrapModule` API instead.
7056
7099
  */
7057
- bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>, options?: BootstrapOptions): Promise<NgModuleRef<M>>;
7100
+ bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>, options?: BootstrapOptions & {
7101
+ applicationProviders?: Array<Provider | EnvironmentProviders>;
7102
+ }): Promise<NgModuleRef<M>>;
7058
7103
  /**
7059
7104
  * Creates an instance of an `@NgModule` for a given platform.
7060
7105
  *
@@ -7071,7 +7116,11 @@ declare class PlatformRef {
7071
7116
  * ```
7072
7117
  *
7073
7118
  */
7074
- bootstrapModule<M>(moduleType: Type<M>, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array<CompilerOptions & BootstrapOptions>): Promise<NgModuleRef<M>>;
7119
+ bootstrapModule<M>(moduleType: Type<M>, compilerOptions?: (CompilerOptions & BootstrapOptions & {
7120
+ applicationProviders?: Array<Provider | EnvironmentProviders>;
7121
+ }) | Array<CompilerOptions & BootstrapOptions & {
7122
+ applicationProviders?: Array<Provider | EnvironmentProviders>;
7123
+ }>): Promise<NgModuleRef<M>>;
7075
7124
  /**
7076
7125
  * Registers a listener to be called when the platform is destroyed.
7077
7126
  */
@@ -7388,5 +7437,5 @@ interface DeferBlockDetails extends DehydratedDeferBlock {
7388
7437
  */
7389
7438
  declare function getDeferBlocks(lView: LView, deferBlocks: DeferBlockDetails[]): void;
7390
7439
 
7391
- export { ANIMATIONS_DISABLED, APP_BOOTSTRAP_LISTENER, AfterRenderManager, AnimationRendererType, ApplicationRef, AttributeMarker, COMPILER_OPTIONS, CONTAINER_HEADER_OFFSET, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionScheduler, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, DebugElement, DebugEventListener, DebugNode, DeferBlockBehavior, DeferBlockState, Directive, EffectScheduler, ElementRef, EmbeddedViewRef, EnvironmentInjector, EventEmitter, HostBinding, HostListener, INJECTOR_SCOPE, Input, InputFlags, MAX_ANIMATION_TIMEOUT, ModuleWithComponentFactories, NG_INJ_DEF, NG_PROV_DEF, NO_ERRORS_SCHEMA, NavigateEvent, Navigation, NavigationCurrentEntryChangeEvent, NavigationDestination, NavigationHistoryEntry, NavigationTransition, NgModule, NgModuleFactory, NgModuleRef, NgZone, NoopNgZone, NotificationSource, Output, PROVIDED_ZONELESS, Pipe, PlatformRef, QueryFlags, QueryList, R3Injector, RenderFlags, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, TDeferDetailsFlags, TracingAction, TracingService, ViewEncapsulation, ViewRef, ZONELESS_ENABLED, asNativeElements, effect, getDebugNode, getDeferBlocks, getInjectableDef, injectChangeDetectorRef, inputBinding, isBoundToModule, isInjectable, outputBinding, setZoneProvidersForNextBootstrap, twoWayBinding, ɵɵdefineInjectable, ɵɵdefineInjector };
7440
+ export { ANIMATIONS_DISABLED, APP_BOOTSTRAP_LISTENER, AfterRenderManager, AnimationRendererType, ApplicationRef, AttributeMarker, COMPILER_OPTIONS, CONTAINER_HEADER_OFFSET, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionScheduler, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, DebugElement, DebugEventListener, DebugNode, DeferBlockBehavior, DeferBlockState, Directive, EffectScheduler, ElementRef, EmbeddedViewRef, EnvironmentInjector, EventEmitter, HostBinding, HostListener, INJECTOR_SCOPE, Input, InputFlags, MAX_ANIMATION_TIMEOUT, ModuleWithComponentFactories, NG_INJ_DEF, NG_PROV_DEF, NO_ERRORS_SCHEMA, NavigateEvent, Navigation, NavigationCurrentEntryChangeEvent, NavigationDestination, NavigationHistoryEntry, NavigationTransition, NgModule, NgModuleFactory, NgModuleRef, NgZone, NoopNgZone, NotificationSource, Output, PROVIDED_ZONELESS, Pipe, PlatformRef, QueryFlags, QueryList, R3Injector, RenderFlags, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, TDeferDetailsFlags, TracingAction, TracingService, ViewEncapsulation, ViewRef, ZONELESS_ENABLED, asNativeElements, effect, getDebugNode, getDeferBlocks, getInjectableDef, injectChangeDetectorRef, inputBinding, isBoundToModule, isInjectable, outputBinding, twoWayBinding, ɵɵdefineInjectable, ɵɵdefineInjector };
7392
7441
  export type { AfterRenderRef, AnimationCallbackEvent, AnimationFunction, Binding, BootstrapOptions, ClassDebugInfo, CompilerOptions, ComponentDecorator, ComponentDef, ComponentDefFeature, ComponentTemplate, ComponentType, ContentQueriesFunction, CreateEffectOptions, CssSelectorList, DeferBlockConfig, DeferBlockDependencyInterceptor, DeferBlockDetails, DehydratedDeferBlock, DependencyResolverFn, DependencyTypeList, DirectiveDecorator, DirectiveDef, DirectiveDefFeature, DirectiveType, DirectiveWithBindings, EffectCleanupFn, EffectCleanupRegisterFn, EffectRef, GlobalTargetResolver, HostBindingDecorator, HostBindingsFunction, HostDirectiveConfig, HostListenerDecorator, InjectableType, InjectorType, InputDecorator, InputSignalNode, InputTransformFunction, InternalNgModuleRef, LContainer, LView, ListenerOptions, LocalRefExtractor, NavigationInterceptOptions, NavigationNavigateOptions, NavigationOptions, NavigationReloadOptions, NavigationResult, NavigationTypeString, NavigationUpdateCurrentEntryOptions, NgModuleDecorator, NgModuleScopeInfoFromDecorator, OpaqueViewState, OutputDecorator, PipeDecorator, PipeDef, PipeType, Predicate, ProjectionSlots, RElement, RNode, RawScopeInfoFromDecorator, RendererType2, SanitizerFn, SchemaMetadata, TAttributes, TConstantsOrFactory, TDeferBlockDetails, TNode, TView, TracingSnapshot, TrustedHTML, TrustedScript, TrustedScriptURL, TypeDecorator, TypeOrFactory, ViewQueriesFunction, ɵɵComponentDeclaration, ɵɵDirectiveDeclaration, ɵɵFactoryDeclaration, ɵɵInjectableDeclaration, ɵɵInjectorDeclaration, ɵɵInjectorDef, ɵɵNgModuleDeclaration, ɵɵPipeDeclaration };
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @license Angular v21.0.0-next.6
3
- * (c) 2010-2025 Google LLC. https://angular.io/
2
+ * @license Angular v21.0.0-next.8
3
+ * (c) 2010-2025 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
6
6