@angular/common 20.0.0-next.1 → 20.0.0-next.2

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.
package/fesm2022/http.mjs CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @license Angular v20.0.0-next.1
2
+ * @license Angular v20.0.0-next.2
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
6
6
 
7
7
  import * as i0 from '@angular/core';
8
- import { ɵRuntimeError, Injectable, InjectionToken, inject, NgZone, runInInjectionContext, ɵPendingTasksInternal, PLATFORM_ID, ɵConsole, ɵformatRuntimeError, Inject, makeEnvironmentProviders, NgModule, assertInInjectionContext, Injector, ɵResourceImpl, linkedSignal, computed, ResourceStatus, signal, TransferState, makeStateKey, ɵperformanceMarkFeature, APP_BOOTSTRAP_LISTENER, ApplicationRef, ɵtruncateMiddle } from '@angular/core';
8
+ import { ɵRuntimeError as _RuntimeError, Injectable, inject, NgZone, InjectionToken, ɵPendingTasksInternal as _PendingTasksInternal, PLATFORM_ID, ɵConsole as _Console, ɵformatRuntimeError as _formatRuntimeError, runInInjectionContext, Inject, makeEnvironmentProviders, NgModule, assertInInjectionContext, Injector, ɵResourceImpl as _ResourceImpl, linkedSignal, computed, ResourceStatus, signal, APP_BOOTSTRAP_LISTENER, ɵperformanceMarkFeature as _performanceMarkFeature, ApplicationRef, TransferState, makeStateKey, ɵtruncateMiddle as _truncateMiddle } from '@angular/core';
9
9
  import { of, Observable, from } from 'rxjs';
10
10
  import { concatMap, filter, map, finalize, switchMap, tap } from 'rxjs/operators';
11
11
  import * as i1 from '@angular/common';
12
- import { isPlatformServer, DOCUMENT, ɵparseCookieValue } from '@angular/common';
12
+ import { isPlatformServer, DOCUMENT, ɵparseCookieValue as _parseCookieValue } from '@angular/common';
13
13
 
14
14
  /**
15
15
  * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a
@@ -390,7 +390,7 @@ class HttpParams {
390
390
  this.encoder = options.encoder || new HttpUrlEncodingCodec();
391
391
  if (options.fromString) {
392
392
  if (options.fromObject) {
393
- throw new ɵRuntimeError(2805 /* RuntimeErrorCode.CANNOT_SPECIFY_BOTH_FROM_STRING_AND_FROM_OBJECT */, ngDevMode && 'Cannot specify both fromString and fromObject.');
393
+ throw new _RuntimeError(2805 /* RuntimeErrorCode.CANNOT_SPECIFY_BOTH_FROM_STRING_AND_FROM_OBJECT */, ngDevMode && 'Cannot specify both fromString and fromObject.');
394
394
  }
395
395
  this.map = paramParser(options.fromString, this.encoder);
396
396
  }
@@ -1445,7 +1445,7 @@ class HttpClient {
1445
1445
  return res$.pipe(map((res) => {
1446
1446
  // Validate that the body is an ArrayBuffer.
1447
1447
  if (res.body !== null && !(res.body instanceof ArrayBuffer)) {
1448
- throw new ɵRuntimeError(2806 /* RuntimeErrorCode.RESPONSE_IS_NOT_AN_ARRAY_BUFFER */, ngDevMode && 'Response is not an ArrayBuffer.');
1448
+ throw new _RuntimeError(2806 /* RuntimeErrorCode.RESPONSE_IS_NOT_AN_ARRAY_BUFFER */, ngDevMode && 'Response is not an ArrayBuffer.');
1449
1449
  }
1450
1450
  return res.body;
1451
1451
  }));
@@ -1453,7 +1453,7 @@ class HttpClient {
1453
1453
  return res$.pipe(map((res) => {
1454
1454
  // Validate that the body is a Blob.
1455
1455
  if (res.body !== null && !(res.body instanceof Blob)) {
1456
- throw new ɵRuntimeError(2807 /* RuntimeErrorCode.RESPONSE_IS_NOT_A_BLOB */, ngDevMode && 'Response is not a Blob.');
1456
+ throw new _RuntimeError(2807 /* RuntimeErrorCode.RESPONSE_IS_NOT_A_BLOB */, ngDevMode && 'Response is not a Blob.');
1457
1457
  }
1458
1458
  return res.body;
1459
1459
  }));
@@ -1461,7 +1461,7 @@ class HttpClient {
1461
1461
  return res$.pipe(map((res) => {
1462
1462
  // Validate that the body is a string.
1463
1463
  if (res.body !== null && typeof res.body !== 'string') {
1464
- throw new ɵRuntimeError(2808 /* RuntimeErrorCode.RESPONSE_IS_NOT_A_STRING */, ngDevMode && 'Response is not a string.');
1464
+ throw new _RuntimeError(2808 /* RuntimeErrorCode.RESPONSE_IS_NOT_A_STRING */, ngDevMode && 'Response is not a string.');
1465
1465
  }
1466
1466
  return res.body;
1467
1467
  }));
@@ -1475,7 +1475,7 @@ class HttpClient {
1475
1475
  return res$;
1476
1476
  default:
1477
1477
  // Guard against new future observe types being added.
1478
- throw new ɵRuntimeError(2809 /* RuntimeErrorCode.UNHANDLED_OBSERVE_TYPE */, ngDevMode && `Unreachable: unhandled observe type ${options.observe}}`);
1478
+ throw new _RuntimeError(2809 /* RuntimeErrorCode.UNHANDLED_OBSERVE_TYPE */, ngDevMode && `Unreachable: unhandled observe type ${options.observe}}`);
1479
1479
  }
1480
1480
  }
1481
1481
  /**
@@ -1569,10 +1569,10 @@ class HttpClient {
1569
1569
  put(url, body, options = {}) {
1570
1570
  return this.request('PUT', url, addBody(options, body));
1571
1571
  }
1572
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });
1573
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClient });
1572
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });
1573
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClient });
1574
1574
  }
1575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClient, decorators: [{
1575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClient, decorators: [{
1576
1576
  type: Injectable
1577
1577
  }], ctorParameters: () => [{ type: HttpHandler }] });
1578
1578
 
@@ -1787,10 +1787,10 @@ class FetchBackend {
1787
1787
  }
1788
1788
  return chunksAll;
1789
1789
  }
1790
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FetchBackend, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1791
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FetchBackend });
1790
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: FetchBackend, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1791
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: FetchBackend });
1792
1792
  }
1793
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: FetchBackend, decorators: [{
1793
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: FetchBackend, decorators: [{
1794
1794
  type: Injectable
1795
1795
  }] });
1796
1796
  /**
@@ -1862,7 +1862,7 @@ function legacyInterceptorFnFactory() {
1862
1862
  // out.
1863
1863
  chain = interceptors.reduceRight(adaptLegacyInterceptorToChain, interceptorChainEndFn);
1864
1864
  }
1865
- const pendingTasks = inject(ɵPendingTasksInternal);
1865
+ const pendingTasks = inject(_PendingTasksInternal);
1866
1866
  const contributeToStability = inject(REQUESTS_CONTRIBUTE_TO_STABILITY);
1867
1867
  if (contributeToStability) {
1868
1868
  const taskId = pendingTasks.add();
@@ -1874,15 +1874,11 @@ function legacyInterceptorFnFactory() {
1874
1874
  };
1875
1875
  }
1876
1876
  let fetchBackendWarningDisplayed = false;
1877
- /** Internal function to reset the flag in tests */
1878
- function resetFetchBackendWarningFlag() {
1879
- fetchBackendWarningDisplayed = false;
1880
- }
1881
1877
  class HttpInterceptorHandler extends HttpHandler {
1882
1878
  backend;
1883
1879
  injector;
1884
1880
  chain = null;
1885
- pendingTasks = inject(ɵPendingTasksInternal);
1881
+ pendingTasks = inject(_PendingTasksInternal);
1886
1882
  contributeToStability = inject(REQUESTS_CONTRIBUTE_TO_STABILITY);
1887
1883
  constructor(backend, injector) {
1888
1884
  super();
@@ -1901,8 +1897,8 @@ class HttpInterceptorHandler extends HttpHandler {
1901
1897
  if (isServer && !(this.backend instanceof FetchBackend) && !isTestingBackend) {
1902
1898
  fetchBackendWarningDisplayed = true;
1903
1899
  injector
1904
- .get(ɵConsole)
1905
- .warn(ɵformatRuntimeError(2801 /* RuntimeErrorCode.NOT_USING_FETCH_BACKEND_IN_SSR */, 'Angular detected that `HttpClient` is not configured ' +
1900
+ .get(_Console)
1901
+ .warn(_formatRuntimeError(2801 /* RuntimeErrorCode.NOT_USING_FETCH_BACKEND_IN_SSR */, 'Angular detected that `HttpClient` is not configured ' +
1906
1902
  "to use `fetch` APIs. It's strongly recommended to " +
1907
1903
  'enable `fetch` for applications that use Server-Side Rendering ' +
1908
1904
  'for better performance and compatibility. ' +
@@ -1931,10 +1927,10 @@ class HttpInterceptorHandler extends HttpHandler {
1931
1927
  return this.chain(initialRequest, (downstreamRequest) => this.backend.handle(downstreamRequest));
1932
1928
  }
1933
1929
  }
1934
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpInterceptorHandler, deps: [{ token: HttpBackend }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
1935
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpInterceptorHandler });
1930
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpInterceptorHandler, deps: [{ token: HttpBackend }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
1931
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpInterceptorHandler });
1936
1932
  }
1937
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpInterceptorHandler, decorators: [{
1933
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpInterceptorHandler, decorators: [{
1938
1934
  type: Injectable
1939
1935
  }], ctorParameters: () => [{ type: HttpBackend }, { type: i0.EnvironmentInjector }] });
1940
1936
 
@@ -2016,15 +2012,15 @@ class JsonpClientBackend {
2016
2012
  // Firstly, check both the method and response type. If either doesn't match
2017
2013
  // then the request was improperly routed here and cannot be handled.
2018
2014
  if (req.method !== 'JSONP') {
2019
- throw new Error(JSONP_ERR_WRONG_METHOD);
2015
+ throw new _RuntimeError(2810 /* RuntimeErrorCode.JSONP_WRONG_METHOD */, ngDevMode && JSONP_ERR_WRONG_METHOD);
2020
2016
  }
2021
2017
  else if (req.responseType !== 'json') {
2022
- throw new Error(JSONP_ERR_WRONG_RESPONSE_TYPE);
2018
+ throw new _RuntimeError(2811 /* RuntimeErrorCode.JSONP_WRONG_RESPONSE_TYPE */, ngDevMode && JSONP_ERR_WRONG_RESPONSE_TYPE);
2023
2019
  }
2024
2020
  // Check the request headers. JSONP doesn't support headers and
2025
2021
  // cannot set any that were supplied.
2026
2022
  if (req.headers.keys().length > 0) {
2027
- throw new Error(JSONP_ERR_HEADERS_NOT_SUPPORTED);
2023
+ throw new _RuntimeError(2812 /* RuntimeErrorCode.JSONP_HEADERS_NOT_SUPPORTED */, ngDevMode && JSONP_ERR_HEADERS_NOT_SUPPORTED);
2028
2024
  }
2029
2025
  // Everything else happens inside the Observable boundary.
2030
2026
  return new Observable((observer) => {
@@ -2068,7 +2064,7 @@ class JsonpClientBackend {
2068
2064
  // if the JSONP script loads successfully. The event itself is unimportant.
2069
2065
  // If something went wrong, onLoad() may run without the response callback
2070
2066
  // having been invoked.
2071
- const onLoad = (event) => {
2067
+ const onLoad = () => {
2072
2068
  // We wrap it in an extra Promise, to ensure the microtask
2073
2069
  // is scheduled after the loaded endpoint has executed any potential microtask itself,
2074
2070
  // which is not guaranteed in Internet Explorer and EdgeHTML. See issue #39496
@@ -2136,10 +2132,10 @@ class JsonpClientBackend {
2136
2132
  foreignDocument ??= this.document.implementation.createHTMLDocument();
2137
2133
  foreignDocument.adoptNode(script);
2138
2134
  }
2139
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: JsonpClientBackend, deps: [{ token: JsonpCallbackContext }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
2140
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: JsonpClientBackend });
2135
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: JsonpClientBackend, deps: [{ token: JsonpCallbackContext }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
2136
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: JsonpClientBackend });
2141
2137
  }
2142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: JsonpClientBackend, decorators: [{
2138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: JsonpClientBackend, decorators: [{
2143
2139
  type: Injectable
2144
2140
  }], ctorParameters: () => [{ type: JsonpCallbackContext }, { type: undefined, decorators: [{
2145
2141
  type: Inject,
@@ -2178,10 +2174,10 @@ class JsonpInterceptor {
2178
2174
  intercept(initialRequest, next) {
2179
2175
  return runInInjectionContext(this.injector, () => jsonpInterceptorFn(initialRequest, (downstreamRequest) => next.handle(downstreamRequest)));
2180
2176
  }
2181
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: JsonpInterceptor, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2182
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: JsonpInterceptor });
2177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: JsonpInterceptor, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2178
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: JsonpInterceptor });
2183
2179
  }
2184
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: JsonpInterceptor, decorators: [{
2180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: JsonpInterceptor, decorators: [{
2185
2181
  type: Injectable
2186
2182
  }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
2187
2183
 
@@ -2221,7 +2217,7 @@ class HttpXhrBackend {
2221
2217
  // Quick check to give a better error message when a user attempts to use
2222
2218
  // HttpClient.jsonp() without installing the HttpClientJsonpModule
2223
2219
  if (req.method === 'JSONP') {
2224
- throw new ɵRuntimeError(-2800 /* RuntimeErrorCode.MISSING_JSONP_MODULE */, (typeof ngDevMode === 'undefined' || ngDevMode) &&
2220
+ throw new _RuntimeError(-2800 /* RuntimeErrorCode.MISSING_JSONP_MODULE */, (typeof ngDevMode === 'undefined' || ngDevMode) &&
2225
2221
  `Cannot make a JSONP request without JSONP support. To fix the problem, either add the \`withJsonpSupport()\` call (if \`provideHttpClient()\` is used) or import the \`HttpClientJsonpModule\` in the root NgModule.`);
2226
2222
  }
2227
2223
  // Check whether this factory has a special function to load an XHR implementation
@@ -2463,10 +2459,10 @@ class HttpXhrBackend {
2463
2459
  });
2464
2460
  }));
2465
2461
  }
2466
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXhrBackend, deps: [{ token: i1.XhrFactory }], target: i0.ɵɵFactoryTarget.Injectable });
2467
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXhrBackend });
2462
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXhrBackend, deps: [{ token: i1.XhrFactory }], target: i0.ɵɵFactoryTarget.Injectable });
2463
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXhrBackend });
2468
2464
  }
2469
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXhrBackend, decorators: [{
2465
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXhrBackend, decorators: [{
2470
2466
  type: Injectable
2471
2467
  }], ctorParameters: () => [{ type: i1.XhrFactory }] });
2472
2468
 
@@ -2513,15 +2509,15 @@ class HttpXsrfCookieExtractor {
2513
2509
  const cookieString = this.doc.cookie || '';
2514
2510
  if (cookieString !== this.lastCookieString) {
2515
2511
  this.parseCount++;
2516
- this.lastToken = ɵparseCookieValue(cookieString, this.cookieName);
2512
+ this.lastToken = _parseCookieValue(cookieString, this.cookieName);
2517
2513
  this.lastCookieString = cookieString;
2518
2514
  }
2519
2515
  return this.lastToken;
2520
2516
  }
2521
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXsrfCookieExtractor, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: XSRF_COOKIE_NAME }], target: i0.ɵɵFactoryTarget.Injectable });
2522
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXsrfCookieExtractor });
2517
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXsrfCookieExtractor, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: XSRF_COOKIE_NAME }], target: i0.ɵɵFactoryTarget.Injectable });
2518
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXsrfCookieExtractor });
2523
2519
  }
2524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXsrfCookieExtractor, decorators: [{
2520
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXsrfCookieExtractor, decorators: [{
2525
2521
  type: Injectable
2526
2522
  }], ctorParameters: () => [{ type: undefined, decorators: [{
2527
2523
  type: Inject,
@@ -2565,10 +2561,10 @@ class HttpXsrfInterceptor {
2565
2561
  intercept(initialRequest, next) {
2566
2562
  return runInInjectionContext(this.injector, () => xsrfInterceptorFn(initialRequest, (downstreamRequest) => next.handle(downstreamRequest)));
2567
2563
  }
2568
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXsrfInterceptor, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2569
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXsrfInterceptor });
2564
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXsrfInterceptor, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });
2565
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXsrfInterceptor });
2570
2566
  }
2571
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpXsrfInterceptor, decorators: [{
2567
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpXsrfInterceptor, decorators: [{
2572
2568
  type: Injectable
2573
2569
  }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
2574
2570
 
@@ -2834,9 +2830,9 @@ class HttpClientXsrfModule {
2834
2830
  providers: withXsrfConfiguration(options).ɵproviders,
2835
2831
  };
2836
2832
  }
2837
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientXsrfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2838
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientXsrfModule });
2839
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientXsrfModule, providers: [
2833
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientXsrfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2834
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientXsrfModule });
2835
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientXsrfModule, providers: [
2840
2836
  HttpXsrfInterceptor,
2841
2837
  { provide: HTTP_INTERCEPTORS, useExisting: HttpXsrfInterceptor, multi: true },
2842
2838
  { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },
@@ -2847,7 +2843,7 @@ class HttpClientXsrfModule {
2847
2843
  { provide: XSRF_ENABLED, useValue: true },
2848
2844
  ] });
2849
2845
  }
2850
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientXsrfModule, decorators: [{
2846
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientXsrfModule, decorators: [{
2851
2847
  type: NgModule,
2852
2848
  args: [{
2853
2849
  providers: [
@@ -2873,11 +2869,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
2873
2869
  * @deprecated use `provideHttpClient(withInterceptorsFromDi())` as providers instead
2874
2870
  */
2875
2871
  class HttpClientModule {
2876
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2877
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientModule });
2878
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientModule, providers: [provideHttpClient(withInterceptorsFromDi())] });
2872
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2873
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientModule });
2874
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientModule, providers: [provideHttpClient(withInterceptorsFromDi())] });
2879
2875
  }
2880
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientModule, decorators: [{
2876
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientModule, decorators: [{
2881
2877
  type: NgModule,
2882
2878
  args: [{
2883
2879
  /**
@@ -2897,11 +2893,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1",
2897
2893
  * @deprecated `withJsonpSupport()` as providers instead
2898
2894
  */
2899
2895
  class HttpClientJsonpModule {
2900
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientJsonpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2901
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientJsonpModule });
2902
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientJsonpModule, providers: [withJsonpSupport().ɵproviders] });
2896
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientJsonpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2897
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientJsonpModule });
2898
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientJsonpModule, providers: [withJsonpSupport().ɵproviders] });
2903
2899
  }
2904
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.1", ngImport: i0, type: HttpClientJsonpModule, decorators: [{
2900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.0-next.2", ngImport: i0, type: HttpClientJsonpModule, decorators: [{
2905
2901
  type: NgModule,
2906
2902
  args: [{
2907
2903
  providers: [withJsonpSupport().ɵproviders],
@@ -2928,7 +2924,7 @@ function makeHttpResourceFn(responseType) {
2928
2924
  return function httpResourceRef(request, options) {
2929
2925
  options?.injector || assertInInjectionContext(httpResource);
2930
2926
  const injector = options?.injector ?? inject(Injector);
2931
- return new HttpResourceImpl(injector, () => normalizeRequest(request, responseType), options?.defaultValue, options?.parse);
2927
+ return new HttpResourceImpl(injector, () => normalizeRequest(request, responseType), options?.defaultValue, options?.parse, options?.equal);
2932
2928
  };
2933
2929
  }
2934
2930
  function normalizeRequest(request, responseType) {
@@ -2951,9 +2947,11 @@ function normalizeRequest(request, responseType) {
2951
2947
  reportProgress: unwrappedRequest.reportProgress,
2952
2948
  withCredentials: unwrappedRequest.withCredentials,
2953
2949
  responseType,
2950
+ context: unwrappedRequest.context,
2951
+ transferCache: unwrappedRequest.transferCache,
2954
2952
  });
2955
2953
  }
2956
- class HttpResourceImpl extends ɵResourceImpl {
2954
+ class HttpResourceImpl extends _ResourceImpl {
2957
2955
  client;
2958
2956
  _headers = linkedSignal({
2959
2957
  source: this.extRequest,
@@ -2972,7 +2970,7 @@ class HttpResourceImpl extends ɵResourceImpl {
2972
2970
  : undefined);
2973
2971
  progress = this._progress.asReadonly();
2974
2972
  statusCode = this._statusCode.asReadonly();
2975
- constructor(injector, request, defaultValue, parse) {
2973
+ constructor(injector, request, defaultValue, parse, equal) {
2976
2974
  super(request, ({ request, abortSignal }) => {
2977
2975
  let sub;
2978
2976
  // Track the abort listener so it can be removed if the Observable completes (as a memory
@@ -3015,53 +3013,13 @@ class HttpResourceImpl extends ɵResourceImpl {
3015
3013
  },
3016
3014
  });
3017
3015
  return promise;
3018
- }, defaultValue, undefined, injector);
3016
+ }, defaultValue, equal, injector);
3019
3017
  this.client = injector.get(HttpClient);
3020
3018
  }
3021
3019
  hasValue() {
3022
3020
  return super.hasValue();
3023
3021
  }
3024
3022
  }
3025
- /**
3026
- * A `Resource` of the `HttpResponse` meant for use in `HttpResource` if we decide to go this route.
3027
- *
3028
- * TODO(alxhub): delete this if we decide we don't want it.
3029
- */
3030
- class HttpResponseResource {
3031
- parent;
3032
- status;
3033
- value;
3034
- error;
3035
- isLoading;
3036
- constructor(parent, request) {
3037
- this.parent = parent;
3038
- this.status = computed(() => {
3039
- // There are two kinds of errors which can occur in an HTTP request: HTTP errors or normal JS
3040
- // errors. Since we have a response for HTTP errors, we report `Resolved` status even if the
3041
- // overall request is considered to be in an Error state.
3042
- if (parent.status() === ResourceStatus.Error) {
3043
- return this.value() !== undefined ? ResourceStatus.Resolved : ResourceStatus.Error;
3044
- }
3045
- return parent.status();
3046
- });
3047
- this.error = computed(() => {
3048
- // Filter out HTTP errors.
3049
- return this.value() === undefined ? parent.error() : undefined;
3050
- });
3051
- this.value = linkedSignal({
3052
- source: request,
3053
- computation: () => undefined,
3054
- });
3055
- this.isLoading = parent.isLoading;
3056
- }
3057
- hasValue() {
3058
- return this.value() !== undefined;
3059
- }
3060
- reload() {
3061
- // TODO: should you be able to reload this way?
3062
- return this.parent.reload();
3063
- }
3064
- }
3065
3023
 
3066
3024
  /**
3067
3025
  * If your application uses different HTTP origins to make API calls (via `HttpClient`) on the server and
@@ -3123,7 +3081,7 @@ function transferCacheInterceptorFn(req, next) {
3123
3081
  optional: true,
3124
3082
  });
3125
3083
  if (typeof ngServerMode !== 'undefined' && !ngServerMode && originMap) {
3126
- throw new ɵRuntimeError(2803 /* RuntimeErrorCode.HTTP_ORIGIN_MAP_USED_IN_CLIENT */, ngDevMode &&
3084
+ throw new _RuntimeError(2803 /* RuntimeErrorCode.HTTP_ORIGIN_MAP_USED_IN_CLIENT */, ngDevMode &&
3127
3085
  'Angular detected that the `HTTP_TRANSFER_CACHE_ORIGIN_MAP` token is configured and ' +
3128
3086
  'present in the client side code. Please ensure that this token is only provided in the ' +
3129
3087
  'server code of the application.');
@@ -3252,7 +3210,7 @@ function withHttpTransferCache(cacheOptions) {
3252
3210
  {
3253
3211
  provide: CACHE_OPTIONS,
3254
3212
  useFactory: () => {
3255
- ɵperformanceMarkFeature('NgHttpTransferCache');
3213
+ _performanceMarkFeature('NgHttpTransferCache');
3256
3214
  return { isCacheActive: true, ...cacheOptions };
3257
3215
  },
3258
3216
  },
@@ -3294,9 +3252,9 @@ function appendMissingHeadersDetection(url, headers, headersToInclude) {
3294
3252
  const key = (prop + ':' + headerName).toLowerCase(); // e.g. `get:cache-control`
3295
3253
  if (!headersToInclude.includes(headerName) && !warningProduced.has(key)) {
3296
3254
  warningProduced.add(key);
3297
- const truncatedUrl = ɵtruncateMiddle(url);
3255
+ const truncatedUrl = _truncateMiddle(url);
3298
3256
  // TODO: create Error guide for this warning
3299
- console.warn(ɵformatRuntimeError(2802 /* RuntimeErrorCode.HEADERS_ALTERED_BY_TRANSFER_CACHE */, `Angular detected that the \`${headerName}\` header is accessed, but the value of the header ` +
3257
+ console.warn(_formatRuntimeError(2802 /* RuntimeErrorCode.HEADERS_ALTERED_BY_TRANSFER_CACHE */, `Angular detected that the \`${headerName}\` header is accessed, but the value of the header ` +
3300
3258
  `was not transferred from the server to the client by the HttpTransferCache. ` +
3301
3259
  `To include the value of the \`${headerName}\` header for the \`${truncatedUrl}\` request, ` +
3302
3260
  `use the \`includeHeaders\` list. The \`includeHeaders\` can be defined either ` +
@@ -3323,17 +3281,11 @@ function mapRequestOriginUrl(url, originMap) {
3323
3281
  }
3324
3282
  function verifyMappedOrigin(url) {
3325
3283
  if (new URL(url, 'resolve://').pathname !== '/') {
3326
- throw new ɵRuntimeError(2804 /* RuntimeErrorCode.HTTP_ORIGIN_MAP_CONTAINS_PATH */, 'Angular detected a URL with a path segment in the value provided for the ' +
3284
+ throw new _RuntimeError(2804 /* RuntimeErrorCode.HTTP_ORIGIN_MAP_CONTAINS_PATH */, 'Angular detected a URL with a path segment in the value provided for the ' +
3327
3285
  `\`HTTP_TRANSFER_CACHE_ORIGIN_MAP\` token: ${url}. The map should only contain origins ` +
3328
3286
  'without any other segments.');
3329
3287
  }
3330
3288
  }
3331
3289
 
3332
- // This file is not used to build this module. It is only used during editing
3333
-
3334
- /**
3335
- * Generated bundle index. Do not edit.
3336
- */
3337
-
3338
3290
  export { FetchBackend, HTTP_INTERCEPTORS, HTTP_TRANSFER_CACHE_ORIGIN_MAP, HttpBackend, HttpClient, HttpClientJsonpModule, HttpClientModule, HttpClientXsrfModule, HttpContext, HttpContextToken, HttpErrorResponse, HttpEventType, HttpFeatureKind, HttpHandler, HttpHeaderResponse, HttpHeaders, HttpParams, HttpRequest, HttpResponse, HttpResponseBase, HttpStatusCode, HttpUrlEncodingCodec, HttpXhrBackend, HttpXsrfTokenExtractor, JsonpClientBackend, JsonpInterceptor, httpResource, provideHttpClient, withFetch, withInterceptors, withInterceptorsFromDi, withJsonpSupport, withNoXsrfProtection, withRequestsMadeViaParent, withXsrfConfiguration, HTTP_ROOT_INTERCEPTOR_FNS as ɵHTTP_ROOT_INTERCEPTOR_FNS, HttpInterceptorHandler as ɵHttpInterceptingHandler, HttpInterceptorHandler as ɵHttpInterceptorHandler, REQUESTS_CONTRIBUTE_TO_STABILITY as ɵREQUESTS_CONTRIBUTE_TO_STABILITY, withHttpTransferCache as ɵwithHttpTransferCache };
3339
3291
  //# sourceMappingURL=http.mjs.map