@angular/core 17.0.0-next.3 → 17.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 (54) hide show
  1. package/esm2022/src/core.mjs +2 -2
  2. package/esm2022/src/core_private_export.mjs +3 -1
  3. package/esm2022/src/core_reactivity_export_internal.mjs +3 -3
  4. package/esm2022/src/core_render3_private_export.mjs +3 -2
  5. package/esm2022/src/di/initializer_token.mjs +1 -1
  6. package/esm2022/src/di/internal_tokens.mjs +1 -1
  7. package/esm2022/src/di/r3_injector.mjs +3 -4
  8. package/esm2022/src/errors.mjs +1 -1
  9. package/esm2022/src/metadata/directives.mjs +1 -1
  10. package/esm2022/src/metadata/ng_module_def.mjs +1 -1
  11. package/esm2022/src/metadata/resource_loading.mjs +27 -14
  12. package/esm2022/src/render3/after_render_hooks.mjs +123 -30
  13. package/esm2022/src/render3/component_ref.mjs +3 -4
  14. package/esm2022/src/render3/deps_tracker/api.mjs +1 -1
  15. package/esm2022/src/render3/deps_tracker/deps_tracker.mjs +13 -3
  16. package/esm2022/src/render3/index.mjs +2 -2
  17. package/esm2022/src/render3/instructions/change_detection.mjs +3 -3
  18. package/esm2022/src/render3/instructions/defer.mjs +121 -40
  19. package/esm2022/src/render3/interfaces/defer.mjs +66 -1
  20. package/esm2022/src/render3/interfaces/definition.mjs +1 -1
  21. package/esm2022/src/render3/interfaces/view.mjs +1 -1
  22. package/esm2022/src/render3/jit/directive.mjs +6 -2
  23. package/esm2022/src/render3/local_compilation.mjs +8 -2
  24. package/esm2022/src/render3/pipe.mjs +2 -1
  25. package/esm2022/src/render3/reactive_lview_consumer.mjs +1 -1
  26. package/esm2022/src/render3/reactivity/effect.mjs +134 -43
  27. package/esm2022/src/render3/scope.mjs +10 -4
  28. package/esm2022/src/signals/index.mjs +2 -2
  29. package/esm2022/src/signals/src/api.mjs +2 -2
  30. package/esm2022/src/signals/src/computed.mjs +50 -45
  31. package/esm2022/src/signals/src/graph.mjs +10 -2
  32. package/esm2022/src/signals/src/signal.mjs +11 -6
  33. package/esm2022/src/signals/src/watch.mjs +40 -12
  34. package/esm2022/src/version.mjs +1 -1
  35. package/esm2022/testing/src/component_fixture.mjs +20 -3
  36. package/esm2022/testing/src/defer.mjs +84 -0
  37. package/esm2022/testing/src/logger.mjs +3 -3
  38. package/esm2022/testing/src/test_bed.mjs +24 -3
  39. package/esm2022/testing/src/test_bed_common.mjs +1 -1
  40. package/esm2022/testing/src/test_bed_compiler.mjs +7 -4
  41. package/esm2022/testing/src/testing.mjs +3 -1
  42. package/fesm2022/core.mjs +694 -285
  43. package/fesm2022/core.mjs.map +1 -1
  44. package/fesm2022/rxjs-interop.mjs +1 -1
  45. package/fesm2022/testing.mjs +124 -7
  46. package/fesm2022/testing.mjs.map +1 -1
  47. package/index.d.ts +260 -25
  48. package/package.json +3 -3
  49. package/rxjs-interop/index.d.ts +1 -1
  50. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +13 -13
  51. package/schematics/migrations/remove-module-id/bundle.js +14 -14
  52. package/schematics/ng-generate/standalone-migration/bundle.js +1962 -1303
  53. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  54. package/testing/index.d.ts +50 -2
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.3
2
+ * @license Angular v17.0.0-next.5
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -81,6 +81,13 @@ export declare interface AfterContentInit {
81
81
  * Register a callback to be invoked the next time the application
82
82
  * finishes rendering.
83
83
  *
84
+ * <div class="alert is-critical">
85
+ *
86
+ * You should always explicitly specify a non-default [phase](api/core/AfterRenderPhase), or you
87
+ * risk significant performance degradation.
88
+ *
89
+ * </div>
90
+ *
84
91
  * Note that the callback will run
85
92
  * - in the order it was registered
86
93
  * - on browser platforms only
@@ -112,7 +119,7 @@ export declare interface AfterContentInit {
112
119
  * constructor() {
113
120
  * afterNextRender(() => {
114
121
  * this.chart = new MyChart(this.chartRef.nativeElement);
115
- * });
122
+ * }, {phase: AfterRenderPhase.Write});
116
123
  * }
117
124
  * }
118
125
  * ```
@@ -125,6 +132,13 @@ export declare function afterNextRender(callback: VoidFunction, options?: AfterR
125
132
  * Register a callback to be invoked each time the application
126
133
  * finishes rendering.
127
134
  *
135
+ * <div class="alert is-critical">
136
+ *
137
+ * You should always explicitly specify a non-default [phase](api/core/AfterRenderPhase), or you
138
+ * risk significant performance degradation.
139
+ *
140
+ * </div>
141
+ *
128
142
  * Note that the callback will run
129
143
  * - in the order it was registered
130
144
  * - once per render
@@ -155,7 +169,7 @@ export declare function afterNextRender(callback: VoidFunction, options?: AfterR
155
169
  * constructor() {
156
170
  * afterRender(() => {
157
171
  * console.log('content height: ' + this.contentRef.nativeElement.scrollHeight);
158
- * });
172
+ * }, {phase: AfterRenderPhase.Read});
159
173
  * }
160
174
  * }
161
175
  * ```
@@ -176,6 +190,77 @@ export declare interface AfterRenderOptions {
176
190
  * If this is not provided, the current injection context will be used instead (via `inject`).
177
191
  */
178
192
  injector?: Injector;
193
+ /**
194
+ * The phase the callback should be invoked in.
195
+ *
196
+ * <div class="alert is-critical">
197
+ *
198
+ * Defaults to `AfterRenderPhase.MixedReadWrite`. You should choose a more specific
199
+ * phase instead. See `AfterRenderPhase` for more information.
200
+ *
201
+ * </div>
202
+ */
203
+ phase?: AfterRenderPhase;
204
+ }
205
+
206
+ /**
207
+ * The phase to run an `afterRender` or `afterNextRender` callback in.
208
+ *
209
+ * Callbacks in the same phase run in the order they are registered. Phases run in the
210
+ * following order after each render:
211
+ *
212
+ * 1. `AfterRenderPhase.EarlyRead`
213
+ * 2. `AfterRenderPhase.Write`
214
+ * 3. `AfterRenderPhase.MixedReadWrite`
215
+ * 4. `AfterRenderPhase.Read`
216
+ *
217
+ * Angular is unable to verify or enforce that phases are used correctly, and instead
218
+ * relies on each developer to follow the guidelines documented for each value and
219
+ * carefully choose the appropriate one, refactoring their code if necessary. By doing
220
+ * so, Angular is better able to minimize the performance degradation associated with
221
+ * manual DOM access, ensuring the best experience for the end users of your application
222
+ * or library.
223
+ *
224
+ * @developerPreview
225
+ */
226
+ export declare enum AfterRenderPhase {
227
+ /**
228
+ * Use `AfterRenderPhase.EarlyRead` for callbacks that only need to **read** from the
229
+ * DOM before a subsequent `AfterRenderPhase.Write` callback, for example to perform
230
+ * custom layout that the browser doesn't natively support. **Never** use this phase
231
+ * for callbacks that can write to the DOM or when `AfterRenderPhase.Read` is adequate.
232
+ *
233
+ * <div class="alert is-important">
234
+ *
235
+ * Using this value can degrade performance.
236
+ * Instead, prefer using built-in browser functionality when possible.
237
+ *
238
+ * </div>
239
+ */
240
+ EarlyRead = 0,
241
+ /**
242
+ * Use `AfterRenderPhase.Write` for callbacks that only **write** to the DOM. **Never**
243
+ * use this phase for callbacks that can read from the DOM.
244
+ */
245
+ Write = 1,
246
+ /**
247
+ * Use `AfterRenderPhase.MixedReadWrite` for callbacks that read from or write to the
248
+ * DOM, that haven't been refactored to use a different phase. **Never** use this phase
249
+ * for callbacks that can use a different phase instead.
250
+ *
251
+ * <div class="alert is-critical">
252
+ *
253
+ * Using this value can **significantly** degrade performance.
254
+ * Instead, prefer refactoring into multiple callbacks using a more specific phase.
255
+ *
256
+ * </div>
257
+ */
258
+ MixedReadWrite = 2,
259
+ /**
260
+ * Use `AfterRenderPhase.Read` for callbacks that only **read** from the DOM. **Never**
261
+ * use this phase for callbacks that can write to the DOM.
262
+ */
263
+ Read = 3
179
264
  }
180
265
 
181
266
  /**
@@ -1113,15 +1198,19 @@ export declare interface Component extends Directive {
1113
1198
  */
1114
1199
  template?: string;
1115
1200
  /**
1116
- * One or more relative paths or absolute URLs for files containing CSS stylesheets to use
1201
+ * One relative paths or an absolute URL for files containing CSS stylesheet to use
1117
1202
  * in this component.
1118
1203
  */
1204
+ styleUrl?: string;
1205
+ /**
1206
+ * Relative paths or absolute URLs for files containing CSS stylesheets to use in this component.
1207
+ */
1119
1208
  styleUrls?: string[];
1120
1209
  /**
1121
1210
  * One or more inline CSS stylesheets to use
1122
1211
  * in this component.
1123
1212
  */
1124
- styles?: string[];
1213
+ styles?: string | string[];
1125
1214
  /**
1126
1215
  * One or more animation `trigger()` calls, containing
1127
1216
  * [`state()`](api/animations/state) and `transition()` definitions.
@@ -2400,7 +2489,7 @@ export declare class DefaultIterableDiffer<V> implements IterableDiffer<V>, Iter
2400
2489
  /**
2401
2490
  * Describes the state of defer block dependency loading.
2402
2491
  */
2403
- declare const enum DeferDependenciesLoadingState {
2492
+ declare enum DeferDependenciesLoadingState {
2404
2493
  /** Initial state, dependency loading is not yet triggered */
2405
2494
  NOT_STARTED = 0,
2406
2495
  /** Dependency loading was scheduled (e.g. `on idle`), but has not started yet */
@@ -3237,19 +3326,6 @@ export declare type EffectCleanupFn = () => void;
3237
3326
  */
3238
3327
  declare type EffectCleanupRegisterFn = (cleanupFn: EffectCleanupFn) => void;
3239
3328
 
3240
- /**
3241
- * Tracks all effects registered within a given application and runs them via `flush`.
3242
- */
3243
- declare class EffectManager {
3244
- private all;
3245
- private queue;
3246
- create(effectFn: (onCleanup: (cleanupFn: EffectCleanupFn) => void) => void, destroyRef: DestroyRef | null, allowSignalWrites: boolean): EffectRef;
3247
- flush(): void;
3248
- get isQueueEmpty(): boolean;
3249
- /** @nocollapse */
3250
- static ɵprov: unknown;
3251
- }
3252
-
3253
3329
  /**
3254
3330
  * A global reactive effect, which can be manually destroyed.
3255
3331
  *
@@ -3396,7 +3472,7 @@ declare const ENVIRONMENT = 10;
3396
3472
  *
3397
3473
  * @publicApi
3398
3474
  */
3399
- export declare const ENVIRONMENT_INITIALIZER: InjectionToken<() => void>;
3475
+ export declare const ENVIRONMENT_INITIALIZER: InjectionToken<readonly (() => void)[]>;
3400
3476
 
3401
3477
  /**
3402
3478
  * An `Injector` that's part of the environment injector hierarchy, which exists outside of the
@@ -5773,7 +5849,7 @@ declare interface LViewEnvironment {
5773
5849
  /** An optional custom sanitizer. */
5774
5850
  sanitizer: Sanitizer | null;
5775
5851
  /** Container for reactivity system `effect`s. */
5776
- effectManager: EffectManager | null;
5852
+ inlineEffectRunner: ɵFlushableEffectRunner | null;
5777
5853
  /** Container for after render hooks */
5778
5854
  afterRenderEventManager: ɵAfterRenderEventManager | null;
5779
5855
  }
@@ -6211,6 +6287,12 @@ declare interface NgModuleScopeInfoFromDecorator {
6211
6287
  * module.
6212
6288
  */
6213
6289
  exports?: Type<any>[] | (() => Type<any>[]) | RawScopeInfoFromDecorator[];
6290
+ /**
6291
+ * The set of components that are bootstrapped when this module is bootstrapped. This field is
6292
+ * only available in local compilation mode. In full compilation mode bootstrap info is passed
6293
+ * directly to the module def runtime after statically analyzed and resolved.
6294
+ */
6295
+ bootstrap?: Type<any>[] | (() => Type<any>[]) | RawScopeInfoFromDecorator[];
6214
6296
  }
6215
6297
 
6216
6298
  /**
@@ -7348,7 +7430,7 @@ declare class R3Injector extends EnvironmentInjector {
7348
7430
  * - NgModule's annotation imports/exports/declarations fields
7349
7431
  * - standalone component annotation imports field
7350
7432
  */
7351
- declare type RawScopeInfoFromDecorator = Type<any> | ModuleWithProviders<any> | (() => Type<any>) | (() => ModuleWithProviders<any>);
7433
+ declare type RawScopeInfoFromDecorator = Type<any> | ModuleWithProviders<any> | (() => Type<any>) | (() => ModuleWithProviders<any>) | any[];
7352
7434
 
7353
7435
  declare interface RComment extends RNode {
7354
7436
  textContent: string | null;
@@ -7906,6 +7988,11 @@ export declare abstract class Sanitizer {
7906
7988
  */
7907
7989
  declare type SanitizerFn = (value: any, tagName?: string, propName?: string) => string | TrustedHTML | TrustedScript | TrustedScriptURL;
7908
7990
 
7991
+ declare interface SchedulableEffect {
7992
+ run(): void;
7993
+ creationZone: unknown;
7994
+ }
7995
+
7909
7996
 
7910
7997
  /**
7911
7998
  * A schema definition associated with an NgModule.
@@ -8215,7 +8302,15 @@ export declare interface SkipSelfDecorator {
8215
8302
  * Represents scope data for standalone component as calculated during runtime by the deps tracker.
8216
8303
  */
8217
8304
  declare interface StandaloneComponentScope {
8218
- compilation: ScopeData;
8305
+ compilation: StandaloneCompScopeData;
8306
+ }
8307
+
8308
+ /**
8309
+ * Represents scope data for standalone components as calculated during runtime by the deps
8310
+ * tracker.
8311
+ */
8312
+ declare interface StandaloneCompScopeData extends ScopeData {
8313
+ ngModules: Set<ɵNgModuleType<any>>;
8219
8314
  }
8220
8315
 
8221
8316
 
@@ -10893,6 +10988,7 @@ export declare interface ɵComponentDef<T> extends ɵDirectiveDef<T> {
10893
10988
  */
10894
10989
  readonly data: {
10895
10990
  [kind: string]: any;
10991
+ animation?: any[];
10896
10992
  };
10897
10993
  /** Whether or not this component's ChangeDetectionStrategy is OnPush */
10898
10994
  readonly onPush: boolean;
@@ -10952,6 +11048,14 @@ export declare class ɵConsole {
10952
11048
  static ɵprov: i0.ɵɵInjectableDeclaration<ɵConsole>;
10953
11049
  }
10954
11050
 
11051
+ /**
11052
+ * Size of LContainer's header. Represents the index after which all views in the
11053
+ * container will be inserted. We need to keep a record of current views so we know
11054
+ * which views are already in the DOM (and don't need to be re-added) and so we can
11055
+ * remove views from the DOM when they are no longer required.
11056
+ */
11057
+ export declare const ɵCONTAINER_HEADER_OFFSET = 11;
11058
+
10955
11059
  export declare function ɵconvertToBitFlags(flags: InjectOptions | InjectFlags | undefined): InjectFlags | undefined;
10956
11060
 
10957
11061
  /**
@@ -10988,6 +11092,11 @@ export declare const ɵdefaultIterableDiffers: IterableDiffers;
10988
11092
 
10989
11093
  export declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;
10990
11094
 
11095
+ /**
11096
+ * Internal token used for configuring defer block behavior.
11097
+ */
11098
+ export declare const ɵDEFER_BLOCK_CONFIG: InjectionToken<ɵDeferBlockConfig>;
11099
+
10991
11100
  /**
10992
11101
  * **INTERNAL**, avoid referencing it in application code.
10993
11102
  *
@@ -10996,6 +11105,30 @@ export declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;
10996
11105
  */
10997
11106
  export declare const ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR: InjectionToken<ɵDeferBlockDependencyInterceptor>;
10998
11107
 
11108
+ /**
11109
+ * Options for configuring defer blocks behavior.
11110
+ * @publicApi
11111
+ * @developerPreview
11112
+ */
11113
+ export declare enum ɵDeferBlockBehavior {
11114
+ /**
11115
+ * Manual triggering mode for defer blocks. Provides control over when defer blocks render
11116
+ * and which state they render. This is the default behavior in test environments.
11117
+ */
11118
+ Manual = 0,
11119
+ /**
11120
+ * Playthrough mode for defer blocks. This mode behaves like defer blocks would in a browser.
11121
+ */
11122
+ Playthrough = 1
11123
+ }
11124
+
11125
+ /**
11126
+ * Internal structure used for configuration of defer block behavior.
11127
+ * */
11128
+ export declare interface ɵDeferBlockConfig {
11129
+ behavior: ɵDeferBlockBehavior;
11130
+ }
11131
+
10999
11132
  /**
11000
11133
  * **INTERNAL**, avoid referencing it in application code.
11001
11134
  *
@@ -11015,6 +11148,33 @@ export declare interface ɵDeferBlockDependencyInterceptor {
11015
11148
  setInterceptor(interceptorFn: (current: DependencyResolverFn) => DependencyResolverFn): void;
11016
11149
  }
11017
11150
 
11151
+ /**
11152
+ * Defer block instance for testing.
11153
+ */
11154
+ export declare interface ɵDeferBlockDetails {
11155
+ lContainer: LContainer;
11156
+ lView: LView;
11157
+ tNode: TNode;
11158
+ tDetails: TDeferBlockDetails;
11159
+ }
11160
+
11161
+ /**
11162
+ * Describes the current state of this {#defer} block instance.
11163
+ *
11164
+ * @publicApi
11165
+ * @developerPreview
11166
+ */
11167
+ export declare enum ɵDeferBlockState {
11168
+ /** The {:placeholder} block content is rendered */
11169
+ Placeholder = 0,
11170
+ /** The {:loading} block content is rendered */
11171
+ Loading = 1,
11172
+ /** The main content block content is rendered */
11173
+ Complete = 2,
11174
+ /** The {:error} block content is rendered */
11175
+ Error = 3
11176
+ }
11177
+
11018
11178
  /** The deps tracker to be used in the current Angular app in dev mode. */
11019
11179
  export declare const ɵdepsTracker: DepsTracker;
11020
11180
 
@@ -11186,6 +11346,20 @@ export declare interface ɵDirectiveType<T> extends Type<T> {
11186
11346
  ɵfac: unknown;
11187
11347
  }
11188
11348
 
11349
+ /**
11350
+ * A scheduler which manages the execution of effects.
11351
+ */
11352
+ export declare abstract class ɵEffectScheduler {
11353
+ /**
11354
+ * Schedule the given effect to be executed at a later time.
11355
+ *
11356
+ * It is an error to attempt to execute any effects synchronously during a scheduling operation.
11357
+ */
11358
+ abstract scheduleEffect(e: SchedulableEffect): void;
11359
+ /** @nocollapse */
11360
+ static ɵprov: unknown;
11361
+ }
11362
+
11189
11363
  /**
11190
11364
  * Internal token to collect all SSR-related features enabled for this application.
11191
11365
  *
@@ -11212,6 +11386,16 @@ export declare const enum ɵExtraLocaleDataIndex {
11212
11386
  */
11213
11387
  export declare function ɵfindLocaleData(locale: string): any;
11214
11388
 
11389
+ /**
11390
+ * Interface to an `EffectScheduler` capable of running scheduled effects synchronously.
11391
+ */
11392
+ export declare interface ɵFlushableEffectRunner {
11393
+ /**
11394
+ * Run any scheduled effects.
11395
+ */
11396
+ flush(): void;
11397
+ }
11398
+
11215
11399
  /**
11216
11400
  * Loops over queued module definitions, if a given module definition has all of its
11217
11401
  * declarations resolved, it dequeues that module definition and sets the scope on
@@ -11233,6 +11417,14 @@ export declare function ɵgenerateStandaloneInDeclarationsError(type: Type<any>,
11233
11417
  */
11234
11418
  export declare function ɵgetAsyncClassMetadata(type: Type<unknown>): Promise<Array<Type<unknown>>> | null;
11235
11419
 
11420
+ /**
11421
+ * Retrieves all defer blocks in a given LView.
11422
+ *
11423
+ * @param lView lView with defer blocks
11424
+ * @param deferBlocks defer block aggregator array
11425
+ */
11426
+ export declare function ɵgetDeferBlocks(lView: LView, deferBlocks: ɵDeferBlockDetails[]): void;
11427
+
11236
11428
  /**
11237
11429
  * Retrieves directive instances associated with a given DOM node. Does not include
11238
11430
  * component instances.
@@ -11573,7 +11765,11 @@ export declare const ɵNG_PROV_DEF: string;
11573
11765
  export declare interface ɵNgModuleDef<T> {
11574
11766
  /** Token representing the module. Used by DI. */
11575
11767
  type: T;
11576
- /** List of components to bootstrap. */
11768
+ /**
11769
+ * List of components to bootstrap.
11770
+ *
11771
+ * @see {NgModuleScopeInfoFromDecorator} This field is only used in global compilation mode. In local compilation mode the bootstrap info is computed and added in runtime.
11772
+ */
11577
11773
  bootstrap: Type<any>[] | (() => Type<any>[]);
11578
11774
  /** List of components, directives, and pipes declared by this module. */
11579
11775
  declarations: Type<any>[] | (() => Type<any>[]);
@@ -11874,6 +12070,16 @@ export declare class ɵRender3NgModuleRef<T> extends NgModuleRef<T> implements I
11874
12070
  onDestroy(callback: () => void): void;
11875
12071
  }
11876
12072
 
12073
+ /**
12074
+ * Transitions a defer block to the new state. Updates the necessary
12075
+ * data structures and renders corresponding block.
12076
+ *
12077
+ * @param newState New state that should be applied to the defer block.
12078
+ * @param tNode TNode that represents a defer block.
12079
+ * @param lContainer Represents an instance of a defer block.
12080
+ */
12081
+ export declare function ɵrenderDeferBlockState(newState: ɵDeferBlockState, tNode: TNode, lContainer: LContainer): void;
12082
+
11877
12083
  /**
11878
12084
  * Flags passed into template functions to determine which blocks (i.e. creation, update)
11879
12085
  * should be executed.
@@ -12031,7 +12237,8 @@ export declare const enum ɵRuntimeErrorCode {
12031
12237
  UNSAFE_IFRAME_ATTRS = -910,
12032
12238
  VIEW_ALREADY_DESTROYED = 911,
12033
12239
  COMPONENT_ID_COLLISION = -912,
12034
- RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000
12240
+ RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000,
12241
+ RUNTIME_DEPS_ORPHAN_COMPONENT = 1001
12035
12242
  }
12036
12243
 
12037
12244
  /**
@@ -12188,6 +12395,14 @@ export declare const ɵTESTABILITY_GETTER: InjectionToken<GetTestability>;
12188
12395
  */
12189
12396
  export declare function ɵtransitiveScopesFor<T>(type: Type<T>): ɵNgModuleTransitiveScopes;
12190
12397
 
12398
+ /**
12399
+ * Trigger loading of defer block dependencies if the process hasn't started yet.
12400
+ *
12401
+ * @param tDetails Static information about this defer block.
12402
+ * @param lView LView of a host view.
12403
+ */
12404
+ export declare function ɵtriggerResourceLoading(tDetails: TDeferBlockDetails, lView: LView): void;
12405
+
12191
12406
  /**
12192
12407
  * Helper function to remove all the locale data from `LOCALE_DATA`.
12193
12408
  */
@@ -12436,6 +12651,26 @@ export declare function ɵwithDomHydration(): EnvironmentProviders;
12436
12651
  */
12437
12652
  export declare const ɵXSS_SECURITY_URL = "https://g.co/ng/security#xss";
12438
12653
 
12654
+ /**
12655
+ * An `EffectScheduler` which is capable of queueing scheduled effects per-zone, and flushing them
12656
+ * as an explicit operation.
12657
+ */
12658
+ export declare class ɵZoneAwareQueueingScheduler implements ɵEffectScheduler, ɵFlushableEffectRunner {
12659
+ private queuedEffectCount;
12660
+ private queues;
12661
+ scheduleEffect(handle: SchedulableEffect): void;
12662
+ /**
12663
+ * Run all scheduled effects.
12664
+ *
12665
+ * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
12666
+ * ordering guarantee between effects scheduled in different zones.
12667
+ */
12668
+ flush(): void;
12669
+ private flushQueue;
12670
+ /** @nocollapse */
12671
+ static ɵprov: unknown;
12672
+ }
12673
+
12439
12674
  /**
12440
12675
  * Advances to an element for later binding instructions.
12441
12676
  *
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "17.0.0-next.3",
3
+ "version": "17.0.0-next.5",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
7
7
  "engines": {
8
- "node": "^16.14.0 || >=18.10.0"
8
+ "node": ">=18.13.0"
9
9
  },
10
10
  "exports": {
11
11
  "./schematics/*": {
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "peerDependencies": {
40
40
  "rxjs": "^6.5.3 || ^7.4.0",
41
- "zone.js": "~0.13.0"
41
+ "zone.js": "~0.14.0"
42
42
  },
43
43
  "repository": {
44
44
  "type": "git",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.3
2
+ * @license Angular v17.0.0-next.5
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -60,7 +60,7 @@ var __async = (__this, __arguments, generator) => {
60
60
  });
61
61
  };
62
62
 
63
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/index.mjs
63
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/index.mjs
64
64
  var guard_and_resolve_interfaces_exports = {};
65
65
  __export(guard_and_resolve_interfaces_exports, {
66
66
  default: () => guard_and_resolve_interfaces_default
@@ -69,7 +69,7 @@ module.exports = __toCommonJS(guard_and_resolve_interfaces_exports);
69
69
  var import_schematics = require("@angular-devkit/schematics");
70
70
  var import_path3 = require("path");
71
71
 
72
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
72
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
73
73
  var import_core = require("@angular-devkit/core");
74
74
  function getProjectTsConfigPaths(tree) {
75
75
  return __async(this, null, function* () {
@@ -149,11 +149,11 @@ function getWorkspace(tree) {
149
149
  });
150
150
  }
151
151
 
152
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
152
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
153
153
  var import_path = require("path");
154
154
  var import_typescript2 = __toESM(require("typescript"), 1);
155
155
 
156
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
156
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
157
157
  var path = __toESM(require("path"), 1);
158
158
  var import_typescript = __toESM(require("typescript"), 1);
159
159
  function parseTsconfigFile(tsconfigPath, basePath) {
@@ -170,7 +170,7 @@ function parseTsconfigFile(tsconfigPath, basePath) {
170
170
  return import_typescript.default.parseJsonConfigFileContent(config, parseConfigHost, basePath, {});
171
171
  }
172
172
 
173
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
173
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
174
174
  function createMigrationProgram(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles) {
175
175
  const { rootNames, options, host } = createProgramOptions(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles);
176
176
  return import_typescript2.default.createProgram(rootNames, options, host);
@@ -203,13 +203,13 @@ function canMigrateFile(basePath, sourceFile, program) {
203
203
  return !(0, import_path.relative)(basePath, sourceFile.fileName).startsWith("..");
204
204
  }
205
205
 
206
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/util.mjs
206
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/util.mjs
207
207
  var import_typescript7 = __toESM(require("typescript"), 1);
208
208
 
209
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/change_tracker.mjs
209
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/change_tracker.mjs
210
210
  var import_typescript4 = __toESM(require("typescript"), 1);
211
211
 
212
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/import_manager.mjs
212
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/import_manager.mjs
213
213
  var import_path2 = require("path");
214
214
  var import_typescript3 = __toESM(require("typescript"), 1);
215
215
  var ImportManager = class {
@@ -393,7 +393,7 @@ ${text}`;
393
393
  }
394
394
  };
395
395
 
396
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/change_tracker.mjs
396
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/change_tracker.mjs
397
397
  var ChangeTracker = class {
398
398
  constructor(_printer, _importRemapper) {
399
399
  __publicField(this, "_printer");
@@ -449,7 +449,7 @@ function normalizePath(path2) {
449
449
  return path2.replace(/\\/g, "/");
450
450
  }
451
451
 
452
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/imports.mjs
452
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/imports.mjs
453
453
  var import_typescript5 = __toESM(require("typescript"), 1);
454
454
  function getImportOfIdentifier(typeChecker, node) {
455
455
  const symbol = typeChecker.getSymbolAtLocation(node);
@@ -521,7 +521,7 @@ function findImportSpecifier(nodes, specifierName) {
521
521
  });
522
522
  }
523
523
 
524
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/nodes.mjs
524
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/nodes.mjs
525
525
  var import_typescript6 = __toESM(require("typescript"), 1);
526
526
  function closestNode(node, predicate) {
527
527
  let current = node.parent;
@@ -534,7 +534,7 @@ function closestNode(node, predicate) {
534
534
  return null;
535
535
  }
536
536
 
537
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/util.mjs
537
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/util.mjs
538
538
  var deprecatedInterfaces = /* @__PURE__ */ new Set(["CanLoad", "CanMatch", "CanActivate", "CanDeactivate", "CanActivateChild", "Resolve"]);
539
539
  var routerModule = "@angular/router";
540
540
  function migrateFile(sourceFile, typeChecker, rewriteFn) {
@@ -647,7 +647,7 @@ function visitTypeReference(typeReference, typeChecker, changeTracker, sourceFil
647
647
  import_typescript7.default.forEachChild(typeReference, visitTypeReferenceChildren);
648
648
  }
649
649
 
650
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/index.mjs
650
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/guard-and-resolve-interfaces/index.mjs
651
651
  function guard_and_resolve_interfaces_default() {
652
652
  return (tree) => __async(this, null, function* () {
653
653
  const { buildPaths, testPaths } = yield getProjectTsConfigPaths(tree);