@angular/core 19.0.5 → 19.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/LICENSE +1 -1
  2. package/fesm2022/core.mjs +62 -51
  3. package/fesm2022/core.mjs.map +1 -1
  4. package/fesm2022/primitives/event-dispatch.mjs +1 -24
  5. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  6. package/fesm2022/primitives/signals.mjs +1 -1
  7. package/fesm2022/rxjs-interop.mjs +1 -1
  8. package/fesm2022/testing.mjs +4 -4
  9. package/index.d.ts +40 -35
  10. package/package.json +1 -1
  11. package/primitives/event-dispatch/index.d.ts +1 -1
  12. package/primitives/signals/index.d.ts +1 -1
  13. package/rxjs-interop/index.d.ts +1 -1
  14. package/schematics/bundles/{checker-eced36c5.js → checker-a3b46ff3.js} +41 -25
  15. package/schematics/bundles/{combine_units-438d7a79.js → combine_units-e4fe9a1e.js} +3 -3
  16. package/schematics/bundles/{compiler_host-82c877de.js → compiler_host-00ae769f.js} +2 -2
  17. package/schematics/bundles/control-flow-migration.js +3 -3
  18. package/schematics/bundles/explicit-standalone-flag.js +5 -5
  19. package/schematics/bundles/{imports-abe29092.js → imports-31a38653.js} +1 -1
  20. package/schematics/bundles/inject-migration.js +6 -6
  21. package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
  22. package/schematics/bundles/{migrate_ts_type_references-7e102890.js → migrate_ts_type_references-c5fea22f.js} +5 -5
  23. package/schematics/bundles/{nodes-a9f0b985.js → nodes-88c2157f.js} +2 -2
  24. package/schematics/bundles/output-migration.js +5 -5
  25. package/schematics/bundles/pending-tasks.js +5 -5
  26. package/schematics/bundles/{program-c49e652e.js → program-857d3416.js} +89 -33
  27. package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
  28. package/schematics/bundles/provide-initializer.js +5 -5
  29. package/schematics/bundles/route-lazy-loading.js +4 -4
  30. package/schematics/bundles/signal-input-migration.js +7 -7
  31. package/schematics/bundles/signal-queries-migration.js +13 -7
  32. package/schematics/bundles/signals.js +7 -7
  33. package/schematics/bundles/standalone-migration.js +8 -8
  34. package/testing/index.d.ts +1 -1
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License
2
2
 
3
- Copyright (c) 2010-2024 Google LLC. https://angular.dev/license
3
+ Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/fesm2022/core.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.5
2
+ * @license Angular v19.0.7
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1707,8 +1707,7 @@ function getPipeDef$1(type) {
1707
1707
  */
1708
1708
  function isStandalone(type) {
1709
1709
  const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);
1710
- // TODO: standalone as default value (invert the condition)
1711
- return def !== null ? def.standalone : false;
1710
+ return def !== null && def.standalone;
1712
1711
  }
1713
1712
 
1714
1713
  /**
@@ -4402,7 +4401,7 @@ class NodeInjectorFactory {
4402
4401
  * Example:
4403
4402
  *
4404
4403
  * If we have a component and directive active an a single element as declared here
4405
- * ```
4404
+ * ```ts
4406
4405
  * component:
4407
4406
  * providers: [ {provide: String, useValue: 'component', multi: true} ],
4408
4407
  * viewProviders: [ {provide: String, useValue: 'componentView', multi: true} ],
@@ -4413,7 +4412,7 @@ class NodeInjectorFactory {
4413
4412
  *
4414
4413
  * Then the expected results are:
4415
4414
  *
4416
- * ```
4415
+ * ```ts
4417
4416
  * providers: ['component', 'directive']
4418
4417
  * viewProviders: ['component', 'componentView', 'directive']
4419
4418
  * ```
@@ -4436,7 +4435,7 @@ class NodeInjectorFactory {
4436
4435
  * Example:
4437
4436
  *
4438
4437
  * Given:
4439
- * ```
4438
+ * ```ts
4440
4439
  * providers: [ {provide: String, useValue: 'all', multi: true} ],
4441
4440
  * viewProviders: [ {provide: String, useValue: 'viewOnly', multi: true} ],
4442
4441
  * ```
@@ -6138,7 +6137,7 @@ class PendingTasks {
6138
6137
  /**
6139
6138
  * Runs an asynchronous function and blocks the application's stability until the function completes.
6140
6139
  *
6141
- * ```
6140
+ * ```ts
6142
6141
  * pendingTasks.run(async () => {
6143
6142
  * const userData = await fetch('/api/user');
6144
6143
  * this.userData.set(userData);
@@ -6148,7 +6147,7 @@ class PendingTasks {
6148
6147
  * Application stability is at least delayed until the next tick after the `run` method resolves
6149
6148
  * so it is safe to make additional updates to application state that would require UI synchronization:
6150
6149
  *
6151
- * ```
6150
+ * ```ts
6152
6151
  * const userData = await pendingTasks.run(() => fetch('/api/user'));
6153
6152
  * this.userData.set(userData);
6154
6153
  * ```
@@ -6173,7 +6172,8 @@ class PendingTasks {
6173
6172
  }
6174
6173
 
6175
6174
  class EventEmitter_ extends Subject {
6176
- __isAsync; // tslint:disable-line
6175
+ // tslint:disable-next-line:require-internal-with-underscore
6176
+ __isAsync;
6177
6177
  destroyRef = undefined;
6178
6178
  pendingTasks = undefined;
6179
6179
  constructor(isAsync = false) {
@@ -16206,7 +16206,7 @@ function loadIcuContainerVisitor() {
16206
16206
  * to determine which root belong to the ICU.
16207
16207
  *
16208
16208
  * Example of usage.
16209
- * ```
16209
+ * ```ts
16210
16210
  * const nextRNode = icuContainerIteratorStart(tIcuContainerNode, lView);
16211
16211
  * let rNode: RNode|null;
16212
16212
  * while(rNode = nextRNode()) {
@@ -18088,7 +18088,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
18088
18088
  function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
18089
18089
  if (rootSelectorOrNode) {
18090
18090
  // The placeholder will be replaced with the actual version at build time.
18091
- setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.5']);
18091
+ setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.7']);
18092
18092
  }
18093
18093
  else {
18094
18094
  // If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
@@ -19687,7 +19687,6 @@ class NgModuleRef extends NgModuleRef$1 {
19687
19687
  _parent;
19688
19688
  // tslint:disable-next-line:require-internal-with-underscore
19689
19689
  _bootstrapComponents = [];
19690
- // tslint:disable-next-line:require-internal-with-underscore
19691
19690
  _r3Injector;
19692
19691
  instance;
19693
19692
  destroyCbs = [];
@@ -21175,7 +21174,8 @@ class CachedInjectorService {
21175
21174
  *
21176
21175
  * This token is only injected in devMode
21177
21176
  */
21178
- const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR = new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
21177
+ const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR =
21178
+ /* @__PURE__ */ new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
21179
21179
  /**
21180
21180
  * **INTERNAL**, token used for configuring defer block behavior.
21181
21181
  */
@@ -21567,7 +21567,6 @@ class Console {
21567
21567
  }
21568
21568
  // Note: for reporting errors use `DOM.logError()` as it is platform specific
21569
21569
  warn(message) {
21570
- // tslint:disable-next-line:no-console
21571
21570
  console.warn(message);
21572
21571
  }
21573
21572
  static ɵfac = function Console_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Console)(); };
@@ -23004,6 +23003,15 @@ class ZoneAwareEffectScheduler {
23004
23003
  schedule(handle) {
23005
23004
  this.enqueue(handle);
23006
23005
  }
23006
+ remove(handle) {
23007
+ const zone = handle.zone;
23008
+ const queue = this.queues.get(zone);
23009
+ if (!queue.has(handle)) {
23010
+ return;
23011
+ }
23012
+ queue.delete(handle);
23013
+ this.queuedEffectCount--;
23014
+ }
23007
23015
  enqueue(handle) {
23008
23016
  const zone = handle.zone;
23009
23017
  if (!this.queues.has(zone)) {
@@ -23332,7 +23340,7 @@ class ApplicationRef {
23332
23340
  * {@example core/ts/platform/platform.ts region='domNode'}
23333
23341
  */
23334
23342
  bootstrap(componentOrFactory, rootSelectorOrNode) {
23335
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23343
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23336
23344
  const isComponentFactory = componentOrFactory instanceof ComponentFactory$1;
23337
23345
  const initStatus = this._injector.get(ApplicationInitStatus);
23338
23346
  if (!initStatus.done) {
@@ -23402,7 +23410,7 @@ class ApplicationRef {
23402
23410
  snapshot.dispose();
23403
23411
  return;
23404
23412
  }
23405
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23413
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23406
23414
  if (this._runningTick) {
23407
23415
  throw new RuntimeError(101 /* RuntimeErrorCode.RECURSIVE_APPLICATION_REF_TICK */, ngDevMode && 'ApplicationRef.tick is called recursively');
23408
23416
  }
@@ -23533,7 +23541,7 @@ class ApplicationRef {
23533
23541
  * This will throw if the view is already attached to a ViewContainer.
23534
23542
  */
23535
23543
  attachView(viewRef) {
23536
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23544
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23537
23545
  const view = viewRef;
23538
23546
  this._views.push(view);
23539
23547
  view.attachToAppRef(this);
@@ -23542,7 +23550,7 @@ class ApplicationRef {
23542
23550
  * Detaches a view from dirty checking again.
23543
23551
  */
23544
23552
  detachView(viewRef) {
23545
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23553
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23546
23554
  const view = viewRef;
23547
23555
  remove(this._views, view);
23548
23556
  view.detachFromAppRef();
@@ -23586,7 +23594,7 @@ class ApplicationRef {
23586
23594
  * @returns A function which unregisters a listener.
23587
23595
  */
23588
23596
  onDestroy(callback) {
23589
- (typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
23597
+ (typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
23590
23598
  this._destroyListeners.push(callback);
23591
23599
  return () => remove(this._destroyListeners, callback);
23592
23600
  }
@@ -23613,11 +23621,6 @@ class ApplicationRef {
23613
23621
  get viewCount() {
23614
23622
  return this._views.length;
23615
23623
  }
23616
- warnIfDestroyed() {
23617
- if ((typeof ngDevMode === 'undefined' || ngDevMode) && this._destroyed) {
23618
- console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
23619
- }
23620
- }
23621
23624
  static ɵfac = function ApplicationRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ApplicationRef)(); };
23622
23625
  static ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' });
23623
23626
  }
@@ -23625,6 +23628,11 @@ class ApplicationRef {
23625
23628
  type: Injectable,
23626
23629
  args: [{ providedIn: 'root' }]
23627
23630
  }], () => [], null); })();
23631
+ function warnIfDestroyed(destroyed) {
23632
+ if (destroyed) {
23633
+ console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
23634
+ }
23635
+ }
23628
23636
  function remove(list, el) {
23629
23637
  const index = list.indexOf(el);
23630
23638
  if (index > -1) {
@@ -23785,7 +23793,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
23785
23793
  tDetails.loadingState = DeferDependenciesLoadingState.FAILED;
23786
23794
  if (tDetails.errorTmplIndex === null) {
23787
23795
  const templateLocation = ngDevMode ? getTemplateLocationDetails(lView) : '';
23788
- const error = new RuntimeError(750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
23796
+ const error = new RuntimeError(-750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
23789
23797
  'Loading dependencies for `@defer` block failed, ' +
23790
23798
  `but no \`@error\` block was configured${templateLocation}. ` +
23791
23799
  'Consider using the `@error` block to render an error state.');
@@ -27304,7 +27312,6 @@ function reconcile(liveCollection, newCollection, trackByFn) {
27304
27312
  'Duplicated keys were: \n' +
27305
27313
  duplicatedKeysMsg.join(', \n') +
27306
27314
  '.');
27307
- // tslint:disable-next-line:no-console
27308
27315
  console.warn(message);
27309
27316
  }
27310
27317
  }
@@ -28132,10 +28139,8 @@ if (typeof ngI18nClosureMode === 'undefined') {
28132
28139
  // Make sure to refer to ngI18nClosureMode as ['ngI18nClosureMode'] for closure.
28133
28140
  // NOTE: we need to have it in IIFE so that the tree-shaker is happy.
28134
28141
  (function () {
28135
- // tslint:disable-next-line:no-toplevel-property-access
28136
28142
  _global['ngI18nClosureMode'] =
28137
28143
  // TODO(FW-1250): validate that this actually, you know, works.
28138
- // tslint:disable-next-line:no-toplevel-property-access
28139
28144
  typeof goog !== 'undefined' && typeof goog.getMsg === 'function';
28140
28145
  })();
28141
28146
  }
@@ -33066,29 +33071,29 @@ function ɵɵreplaceMetadata(type, applyMetadata, namespaces, locals) {
33066
33071
  }
33067
33072
  /**
33068
33073
  * Finds all LViews matching a specific component definition and recreates them.
33069
- * @param def Component definition to search for.
33074
+ * @param oldDef Component definition to search for.
33070
33075
  * @param rootLView View from which to start the search.
33071
33076
  */
33072
- function recreateMatchingLViews(def, rootLView) {
33077
+ function recreateMatchingLViews(oldDef, rootLView) {
33073
33078
  ngDevMode &&
33074
- assertDefined(def.tView, 'Expected a component definition that has been instantiated at least once');
33079
+ assertDefined(oldDef.tView, 'Expected a component definition that has been instantiated at least once');
33075
33080
  const tView = rootLView[TVIEW];
33076
33081
  // Use `tView` to match the LView since `instanceof` can
33077
33082
  // produce false positives when using inheritance.
33078
- if (tView === def.tView) {
33079
- ngDevMode && assertComponentDef(def.type);
33080
- recreateLView(getComponentDef(def.type), rootLView);
33083
+ if (tView === oldDef.tView) {
33084
+ ngDevMode && assertComponentDef(oldDef.type);
33085
+ recreateLView(getComponentDef(oldDef.type), oldDef, rootLView);
33081
33086
  return;
33082
33087
  }
33083
33088
  for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
33084
33089
  const current = rootLView[i];
33085
33090
  if (isLContainer(current)) {
33086
33091
  for (let i = CONTAINER_HEADER_OFFSET; i < current.length; i++) {
33087
- recreateMatchingLViews(def, current[i]);
33092
+ recreateMatchingLViews(oldDef, current[i]);
33088
33093
  }
33089
33094
  }
33090
33095
  else if (isLView(current)) {
33091
- recreateMatchingLViews(def, current);
33096
+ recreateMatchingLViews(oldDef, current);
33092
33097
  }
33093
33098
  }
33094
33099
  }
@@ -33101,15 +33106,17 @@ function recreateMatchingLViews(def, rootLView) {
33101
33106
  */
33102
33107
  function clearRendererCache(factory, def) {
33103
33108
  // Cast to read a private field.
33104
- // NOTE: This must be kept synchronized with the renderer factory implementation in platform-browser.
33105
- factory.rendererByCompId?.delete(def.id);
33109
+ // NOTE: This must be kept synchronized with the renderer factory implementation in
33110
+ // platform-browser and platform-browser/animations.
33111
+ factory.componentReplaced?.(def.id);
33106
33112
  }
33107
33113
  /**
33108
33114
  * Recreates an LView in-place from a new component definition.
33109
- * @param def Definition from which to recreate the view.
33115
+ * @param newDef Definition from which to recreate the view.
33116
+ * @param oldDef Previous component definition being swapped out.
33110
33117
  * @param lView View to be recreated.
33111
33118
  */
33112
- function recreateLView(def, lView) {
33119
+ function recreateLView(newDef, oldDef, lView) {
33113
33120
  const instance = lView[CONTEXT];
33114
33121
  const host = lView[HOST];
33115
33122
  // In theory the parent can also be an LContainer, but it appears like that's
@@ -33118,14 +33125,15 @@ function recreateLView(def, lView) {
33118
33125
  ngDevMode && assertLView(parentLView);
33119
33126
  const tNode = lView[T_HOST];
33120
33127
  ngDevMode && assertTNodeType(tNode, 2 /* TNodeType.Element */);
33128
+ ngDevMode && assertNotEqual(newDef, oldDef, 'Expected different component definition');
33121
33129
  // Recreate the TView since the template might've changed.
33122
- const newTView = getOrCreateComponentTView(def);
33130
+ const newTView = getOrCreateComponentTView(newDef);
33123
33131
  // Always force the creation of a new renderer to ensure state captured during construction
33124
33132
  // stays consistent with the new component definition by clearing any old cached factories.
33125
33133
  const rendererFactory = lView[ENVIRONMENT].rendererFactory;
33126
- clearRendererCache(rendererFactory, def);
33134
+ clearRendererCache(rendererFactory, oldDef);
33127
33135
  // Create a new LView from the new TView, but reusing the existing TNode and DOM node.
33128
- const newLView = createLView(parentLView, newTView, instance, getInitialLViewFlagsFromDef(def), host, tNode, null, rendererFactory.createRenderer(host, def), null, null, null);
33136
+ const newLView = createLView(parentLView, newTView, instance, getInitialLViewFlagsFromDef(newDef), host, tNode, null, rendererFactory.createRenderer(host, newDef), null, null, null);
33129
33137
  // Detach the LView from its current place in the tree so we don't
33130
33138
  // start traversing any siblings and modifying their structure.
33131
33139
  replaceLViewInTree(parentLView, lView, newLView, tNode.index);
@@ -34567,7 +34575,7 @@ class Version {
34567
34575
  /**
34568
34576
  * @publicApi
34569
34577
  */
34570
- const VERSION = new Version('19.0.5');
34578
+ const VERSION = new Version('19.0.7');
34571
34579
 
34572
34580
  /**
34573
34581
  * Combination of NgModuleFactory and ComponentFactories.
@@ -37840,7 +37848,7 @@ class IterableDiffers {
37840
37848
  * which will only be applied to the injector for this component and its children.
37841
37849
  * This step is all that's required to make a new {@link IterableDiffer} available.
37842
37850
  *
37843
- * ```
37851
+ * ```ts
37844
37852
  * @Component({
37845
37853
  * viewProviders: [
37846
37854
  * IterableDiffers.extend([new ImmutableListDiffer()])
@@ -37914,7 +37922,7 @@ class KeyValueDiffers {
37914
37922
  * which will only be applied to the injector for this component and its children.
37915
37923
  * This step is all that's required to make a new {@link KeyValueDiffer} available.
37916
37924
  *
37917
- * ```
37925
+ * ```ts
37918
37926
  * @Component({
37919
37927
  * viewProviders: [
37920
37928
  * KeyValueDiffers.extend([new ImmutableMapDiffer()])
@@ -39069,7 +39077,6 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
39069
39077
  collectNativeNodesInLContainer(lContainer, rootNodes);
39070
39078
  // Add defer block into info context.deferBlocks
39071
39079
  const deferBlockInfo = {
39072
- [DEFER_PARENT_BLOCK_ID]: parentDeferBlockId,
39073
39080
  [NUM_ROOT_NODES]: rootNodes.length,
39074
39081
  [DEFER_BLOCK_STATE$1]: lDetails[DEFER_BLOCK_STATE],
39075
39082
  };
@@ -39077,6 +39084,10 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
39077
39084
  if (serializedTriggers.length > 0) {
39078
39085
  deferBlockInfo[DEFER_HYDRATE_TRIGGERS] = serializedTriggers;
39079
39086
  }
39087
+ if (parentDeferBlockId !== null) {
39088
+ // Serialize parent id only when it's present.
39089
+ deferBlockInfo[DEFER_PARENT_BLOCK_ID] = parentDeferBlockId;
39090
+ }
39080
39091
  context.deferBlocks.set(deferBlockId, deferBlockInfo);
39081
39092
  const node = unwrapRNode(lContainer);
39082
39093
  if (node !== undefined) {
@@ -39651,7 +39662,6 @@ function withDomHydration() {
39651
39662
  'thus hydration was not enabled. ' +
39652
39663
  'Make sure the `provideClientHydration()` is included into the list ' +
39653
39664
  'of providers in the server part of the application configuration.');
39654
- // tslint:disable-next-line:no-console
39655
39665
  console.warn(message);
39656
39666
  }
39657
39667
  },
@@ -40503,6 +40513,7 @@ const ROOT_EFFECT_NODE =
40503
40513
  consumerDestroy$1(this);
40504
40514
  this.onDestroyFn();
40505
40515
  this.maybeCleanup();
40516
+ this.scheduler.remove(this);
40506
40517
  },
40507
40518
  }))();
40508
40519
  const VIEW_EFFECT_NODE =
@@ -41107,7 +41118,7 @@ function mergeApplicationConfig(...configs) {
41107
41118
  *
41108
41119
  * @developerPreview
41109
41120
  */
41110
- const REQUEST = new InjectionToken('REQUEST', {
41121
+ const REQUEST = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'REQUEST' : '', {
41111
41122
  providedIn: 'platform',
41112
41123
  factory: () => null,
41113
41124
  });
@@ -41129,7 +41140,7 @@ const REQUEST = new InjectionToken('REQUEST', {
41129
41140
  *
41130
41141
  * @developerPreview
41131
41142
  */
41132
- const RESPONSE_INIT = new InjectionToken('RESPONSE_INIT', {
41143
+ const RESPONSE_INIT = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'RESPONSE_INIT' : '', {
41133
41144
  providedIn: 'platform',
41134
41145
  factory: () => null,
41135
41146
  });
@@ -41143,7 +41154,7 @@ const RESPONSE_INIT = new InjectionToken('RESPONSE_INIT', {
41143
41154
  *
41144
41155
  * @developerPreview
41145
41156
  */
41146
- const REQUEST_CONTEXT = new InjectionToken('REQUEST_CONTEXT', {
41157
+ const REQUEST_CONTEXT = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'REQUEST_CONTEXT' : '', {
41147
41158
  providedIn: 'platform',
41148
41159
  factory: () => null,
41149
41160
  });