@ethlete/query 5.28.1 → 5.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @ethlete/query
2
2
 
3
+ ## 5.29.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`e30dff4`](https://github.com/ethlete-io/ethdk/commit/e30dff42ce2d5c5f2a976888b8aad112814c710e) Thanks [@TomTomB](https://github.com/TomTomB)! - Add missing export for query error response
8
+
9
+ ## 5.29.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`089ce09`](https://github.com/ethlete-io/ethdk/commit/089ce09cb72b4420a49d6f165776fe3f391dc2fe) Thanks [@TomTomB](https://github.com/TomTomB)! - Add query error response parsing to query 3
14
+
15
+ - [`089ce09`](https://github.com/ethlete-io/ethdk/commit/089ce09cb72b4420a49d6f165776fe3f391dc2fe) Thanks [@TomTomB](https://github.com/TomTomB)! - Add pipes for parsing http status codes
16
+
3
17
  ## 5.28.1
4
18
 
5
19
  ### Patch Changes
@@ -1,13 +1,13 @@
1
1
  import * as i1 from '@ethlete/core';
2
2
  import { createDestroy, computedTillTruthy, syncSignal, getCookie, setCookie, deleteCookie, DelayableDirective, nextFrame, RuntimeError, isObject, injectRoute, getDomain, previousSignalValue, injectQueryParamChanges, injectQueryParams, clone, equal, ET_PROPERTY_REMOVED } from '@ethlete/core';
3
3
  import { Observable, takeUntil, startWith, pairwise, tap, switchMap, of, BehaviorSubject, Subject, fromEvent, timer, take, filter, takeWhile, map, shareReplay, ReplaySubject, combineLatest, interval, skip, withLatestFrom, debounceTime, Subscription, retry, throwError, catchError, merge } from 'rxjs';
4
+ import { HttpStatusCode, HttpErrorResponse, HttpEventType, HttpClient, HttpHeaders } from '@angular/common/http';
4
5
  import * as i0 from '@angular/core';
5
6
  import { assertInInjectionContext, inject, Injector, computed, signal, isDevMode, untracked, TemplateRef, ViewContainerRef, ErrorHandler, ChangeDetectorRef, Directive, Input, InjectionToken, ElementRef, Pipe, effect, Component, ChangeDetectionStrategy, ViewEncapsulation, runInInjectionContext, EnvironmentInjector, createEnvironmentInjector, DestroyRef, NgZone } from '@angular/core';
6
7
  import { toSignal, toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
7
8
  import { AsyncPipe, JsonPipe, NgClass } from '@angular/common';
8
9
  import * as i1$1 from '@angular/forms';
9
10
  import { FormControl, ReactiveFormsModule, FormGroup } from '@angular/forms';
10
- import { HttpErrorResponse, HttpStatusCode, HttpEventType, HttpClient, HttpHeaders } from '@angular/common/http';
11
11
  import { getActiveConsumer, setActiveConsumer } from '@angular/core/primitives/signals';
12
12
  import { io } from 'socket.io-client';
13
13
  import { Router, ActivatedRoute } from '@angular/router';
@@ -313,11 +313,11 @@ const shouldRetryRequest$1 = (config) => {
313
313
  return { retry: true, delay: defaultRetryDelay };
314
314
  }
315
315
  // Retry on 408 or 425 errors
316
- if (status === 408 /* HttpStatusCode.RequestTimeout */ || status === 425 /* HttpStatusCode.TooEarly */) {
316
+ if (status === HttpStatusCode.RequestTimeout || status === HttpStatusCode.TooEarly) {
317
317
  return { retry: true, delay: defaultRetryDelay };
318
318
  }
319
319
  // Retry on 429 errors
320
- if (status === 429 /* HttpStatusCode.TooManyRequests */) {
320
+ if (status === HttpStatusCode.TooManyRequests) {
321
321
  const retryAfter = config.headers['retry-after'] ||
322
322
  config.headers['Retry-After'] ||
323
323
  config.headers['x-retry-after'] ||
@@ -394,11 +394,11 @@ const request = (config) => {
394
394
  const { headers, statusText, url } = partialFromXhr();
395
395
  let { status } = partialFromXhr();
396
396
  let body = null;
397
- if (status !== 204 /* HttpStatusCode.NoContent */) {
397
+ if (status !== HttpStatusCode.NoContent) {
398
398
  body = typeof xhr.response === 'undefined' ? xhr.responseText : xhr.response;
399
399
  }
400
400
  if (status === 0) {
401
- status = body ? 200 /* HttpStatusCode.Ok */ : 0;
401
+ status = body ? HttpStatusCode.Ok : 0;
402
402
  }
403
403
  let ok = status >= 200 && status < 300;
404
404
  if (responseType === 'json' && typeof body === 'string') {
@@ -1069,11 +1069,11 @@ const resetPageOnError = (config) => (source) => {
1069
1069
  }
1070
1070
  switch (state.error.status) {
1071
1071
  // The page is invalid (in prod mode, code is 416)
1072
- case 416 /* HttpStatusCode.RangeNotSatisfiable */:
1072
+ case HttpStatusCode.RangeNotSatisfiable:
1073
1073
  queryForm.form.controls[pageControlKey]?.patchValue(1);
1074
1074
  break;
1075
1075
  // The page might be invalid (in dev mode, code is 500)
1076
- case 500 /* HttpStatusCode.InternalServerError */:
1076
+ case HttpStatusCode.InternalServerError:
1077
1077
  if (isSymfonyPagerfantaOutOfRangeError(state.error.detail)) {
1078
1078
  queryForm.form.controls[pageControlKey].patchValue(1);
1079
1079
  }
@@ -1548,7 +1548,7 @@ class Query {
1548
1548
  const bearerAuthProvider = this._getBearerAuthProvider();
1549
1549
  if (!bearerAuthProvider ||
1550
1550
  options?._isUnauthorizedRetry ||
1551
- error.status !== 401 /* HttpStatusCode.Unauthorized */ ||
1551
+ error.status !== HttpStatusCode.Unauthorized ||
1552
1552
  !bearerAuthProvider.shouldRefreshOnUnauthorizedResponse) {
1553
1553
  return failure();
1554
1554
  }
@@ -3012,7 +3012,7 @@ const createBearerAuthProvider = (options) => {
3012
3012
  const isCookieEnabled = cookieEnabled();
3013
3013
  const res = latestExecutedQuery();
3014
3014
  const error = res?.query?.query.error();
3015
- if (!isCookieEnabled || (error && error.status === 401)) {
3015
+ if (!isCookieEnabled || (error && error.raw.status === 401)) {
3016
3016
  deleteCookie$1();
3017
3017
  return;
3018
3018
  }
@@ -3445,6 +3445,69 @@ const buildQueryCacheKey = (route, args) => {
3445
3445
  return hash.toString();
3446
3446
  };
3447
3447
 
3448
+ const createQueryErrorResponse = (error) => {
3449
+ let err = error instanceof HttpErrorResponse ? error : null;
3450
+ if (!err) {
3451
+ err = new HttpErrorResponse({
3452
+ error: error,
3453
+ status: 0,
3454
+ statusText: 'Unknown Error',
3455
+ });
3456
+ }
3457
+ const retryState = shouldRetryRequest(err);
3458
+ const detail = err.error;
3459
+ const errorList = [];
3460
+ if (isClassValidatorError(detail)) {
3461
+ for (const error of detail.message) {
3462
+ errorList.push({ message: error });
3463
+ }
3464
+ }
3465
+ else if (isSymfonyFormViolationListError(detail)) {
3466
+ for (const violation of detail.violations) {
3467
+ errorList.push({ message: violation.message });
3468
+ }
3469
+ }
3470
+ else if (isSymfonyListError(detail)) {
3471
+ for (const error of detail) {
3472
+ errorList.push({ message: error.message });
3473
+ }
3474
+ }
3475
+ else if (typeof detail === 'object' && !!detail && 'message' in detail && typeof detail.message === 'string') {
3476
+ errorList.push({ message: detail.message });
3477
+ }
3478
+ else if (typeof detail === 'object' && !!detail && 'detail' in detail && typeof detail.detail === 'string') {
3479
+ // Symfony error response (during development)
3480
+ errorList.push({ message: detail.detail });
3481
+ }
3482
+ else if (typeof detail === 'string') {
3483
+ errorList.push({ message: detail });
3484
+ }
3485
+ else if (Array.isArray(detail) && detail.length > 0 && typeof detail[0] === 'string') {
3486
+ for (const error of detail) {
3487
+ errorList.push({ message: error });
3488
+ }
3489
+ }
3490
+ if (errorList.length > 0) {
3491
+ return {
3492
+ isList: true,
3493
+ errors: errorList,
3494
+ raw: err,
3495
+ retryState,
3496
+ code: err.status,
3497
+ };
3498
+ }
3499
+ else {
3500
+ const singleError = errorList[0] ?? { message: err.message };
3501
+ return {
3502
+ isList: false,
3503
+ error: singleError,
3504
+ raw: err,
3505
+ retryState,
3506
+ code: err.status,
3507
+ };
3508
+ }
3509
+ };
3510
+
3448
3511
  const SPEED_BUFFER_TIME_IN_MS = 2000;
3449
3512
  const createHttpRequest = (options) => {
3450
3513
  let currentStreamSubscription = Subscription.EMPTY;
@@ -3539,17 +3602,10 @@ const createHttpRequest = (options) => {
3539
3602
  }
3540
3603
  };
3541
3604
  const updateErrorState = (errorResponse) => {
3542
- let err = errorResponse instanceof HttpErrorResponse ? errorResponse : null;
3543
- if (!err) {
3544
- err = new HttpErrorResponse({
3545
- error: errorResponse,
3546
- status: 0,
3547
- statusText: 'Unknown Error',
3548
- });
3549
- }
3550
- error.set(err);
3605
+ const errorRes = createQueryErrorResponse(errorResponse);
3606
+ error.set(errorRes);
3551
3607
  loading.set(null);
3552
- currentEvent.set({ type: 'error', error: err });
3608
+ currentEvent.set({ type: 'error', error: errorRes });
3553
3609
  };
3554
3610
  const updateLoadingState = (event) => {
3555
3611
  if (event.total === undefined) {
@@ -3759,6 +3815,7 @@ const withResponseUpdate = (options) => {
3759
3815
  });
3760
3816
  };
3761
3817
 
3818
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3762
3819
  /** Transforms an array of arrays into a single array and filters out `null` values. */
3763
3820
  const transformArrayResponse = (responses) => responses.filter((r) => !!r).flatMap((r) => r);
3764
3821
  /** Transforms an array of paginated responses into a single array and filters out `null` values. */
@@ -3841,6 +3898,7 @@ const createQueryStack = (options) => {
3841
3898
  return stack;
3842
3899
  };
3843
3900
 
3901
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3844
3902
  const ethletePaginationAdapter = (response) => {
3845
3903
  const pagination = {
3846
3904
  items: response.items,
@@ -4005,7 +4063,7 @@ const createPagedQueryStack = (options) => {
4005
4063
  for (const [index, query] of stack.queries().entries()) {
4006
4064
  const res = query.response();
4007
4065
  const err = query.error();
4008
- const isErroredAndCanBeRetried = err && shouldRetryRequest(err);
4066
+ const isErroredAndCanBeRetried = err && shouldRetryRequest(err.raw);
4009
4067
  if (isErroredAndCanBeRetried) {
4010
4068
  queriesToExecute.add(query);
4011
4069
  }
@@ -4580,6 +4638,410 @@ const createGqlMutationViaPost = (client) => {
4580
4638
  return (query, creatorOptions) => createGqlQueryCreator(creatorOptions, { method: 'MUTATE', client, transport: 'POST', query });
4581
4639
  };
4582
4640
 
4641
+ const parseHttpErrorCodeToTitleDe = (statusCode) => {
4642
+ switch (statusCode) {
4643
+ case HttpStatusCode.BadRequest:
4644
+ return 'Ungültige Anfrage';
4645
+ case HttpStatusCode.Unauthorized:
4646
+ return 'Nicht autorisiert';
4647
+ case HttpStatusCode.PaymentRequired:
4648
+ return 'Zahlung erforderlich';
4649
+ case HttpStatusCode.Forbidden:
4650
+ return 'Verboten';
4651
+ case HttpStatusCode.NotFound:
4652
+ return 'Nicht gefunden';
4653
+ case HttpStatusCode.MethodNotAllowed:
4654
+ return 'Methode nicht erlaubt';
4655
+ case HttpStatusCode.NotAcceptable:
4656
+ return 'Nicht akzeptabel';
4657
+ case HttpStatusCode.ProxyAuthenticationRequired:
4658
+ return 'Proxy-Authentifizierung erforderlich';
4659
+ case HttpStatusCode.RequestTimeout:
4660
+ return 'Anforderungszeitüberschreitung';
4661
+ case HttpStatusCode.Conflict:
4662
+ return 'Konflikt';
4663
+ case HttpStatusCode.Gone:
4664
+ return 'Weg';
4665
+ case HttpStatusCode.LengthRequired:
4666
+ return 'Länge erforderlich';
4667
+ case HttpStatusCode.PreconditionFailed:
4668
+ return 'Vorbedingung fehlgeschlagen';
4669
+ case HttpStatusCode.PayloadTooLarge:
4670
+ return 'Nutzlast zu groß';
4671
+ case HttpStatusCode.UriTooLong:
4672
+ return 'URI zu lang';
4673
+ case HttpStatusCode.UnsupportedMediaType:
4674
+ return 'Nicht unterstützter Medientyp';
4675
+ case HttpStatusCode.RangeNotSatisfiable:
4676
+ return 'Bereich nicht zufriedenstellend';
4677
+ case HttpStatusCode.ExpectationFailed:
4678
+ return 'Erwartung fehlgeschlagen';
4679
+ case HttpStatusCode.ImATeapot:
4680
+ return 'Ich bin eine Teekanne';
4681
+ case HttpStatusCode.MisdirectedRequest:
4682
+ return 'Fehlgeleitete Anfrage';
4683
+ case HttpStatusCode.UnprocessableEntity:
4684
+ return 'Unverarbeitbare Entität';
4685
+ case HttpStatusCode.Locked:
4686
+ return 'Gesperrt';
4687
+ case HttpStatusCode.FailedDependency:
4688
+ return 'Fehlgeschlagene Abhängigkeit';
4689
+ case HttpStatusCode.TooEarly:
4690
+ return 'Zu früh';
4691
+ case HttpStatusCode.UpgradeRequired:
4692
+ return 'Upgrade erforderlich';
4693
+ case HttpStatusCode.PreconditionRequired:
4694
+ return 'Vorbedingung erforderlich';
4695
+ case HttpStatusCode.TooManyRequests:
4696
+ return 'Zu viele Anfragen';
4697
+ case HttpStatusCode.RequestHeaderFieldsTooLarge:
4698
+ return 'Anforderungskopffelder zu groß';
4699
+ case HttpStatusCode.UnavailableForLegalReasons:
4700
+ return 'Aus rechtlichen Gründen nicht verfügbar';
4701
+ case HttpStatusCode.InternalServerError:
4702
+ return 'Interner Serverfehler';
4703
+ case HttpStatusCode.NotImplemented:
4704
+ return 'Nicht implementiert';
4705
+ case HttpStatusCode.BadGateway:
4706
+ return 'Schlechtes Gateway';
4707
+ case HttpStatusCode.ServiceUnavailable:
4708
+ return 'Dienst nicht verfügbar';
4709
+ case HttpStatusCode.GatewayTimeout:
4710
+ return 'Gateway-Zeitüberschreitung';
4711
+ case HttpStatusCode.HttpVersionNotSupported:
4712
+ return 'HTTP-Version nicht unterstützt';
4713
+ case HttpStatusCode.VariantAlsoNegotiates:
4714
+ return 'Variante verhandelt auch';
4715
+ case HttpStatusCode.InsufficientStorage:
4716
+ return 'Unzureichender Speicher';
4717
+ case HttpStatusCode.LoopDetected:
4718
+ return 'Schleifenerkennung';
4719
+ case HttpStatusCode.NotExtended:
4720
+ return 'Nicht erweitert';
4721
+ case HttpStatusCode.NetworkAuthenticationRequired:
4722
+ return 'Netzwerkauthentifizierung erforderlich';
4723
+ default:
4724
+ return 'Etwas ist schief gelaufen';
4725
+ }
4726
+ };
4727
+ const parseHttpErrorCodeToMessageDe = (statusCode) => {
4728
+ switch (statusCode) {
4729
+ case HttpStatusCode.BadRequest:
4730
+ return 'Entschuldigung, wir konnten Ihre Anfrage nicht bearbeiten. Bitte versuchen Sie es später erneut.';
4731
+ case HttpStatusCode.Unauthorized:
4732
+ return 'Sie sind nicht berechtigt, diese Aktion auszuführen. Bitte melden Sie sich an, um fortzufahren.';
4733
+ case HttpStatusCode.PaymentRequired:
4734
+ return 'Zur Ausführung dieser Aktion ist eine Zahlung erforderlich.';
4735
+ case HttpStatusCode.Forbidden:
4736
+ return 'Sie haben keine Berechtigung, diese Aktion auszuführen.';
4737
+ case HttpStatusCode.NotFound:
4738
+ return 'Die angeforderte Ressource wurde nicht gefunden.';
4739
+ case HttpStatusCode.MethodNotAllowed:
4740
+ return 'Die angeforderte Methode ist für diese Ressource nicht zulässig.';
4741
+ case HttpStatusCode.NotAcceptable:
4742
+ return 'Die angeforderte Ressource ist nicht in der Lage, eine Antwort zu generieren, die der Liste der akzeptablen Werte entspricht.';
4743
+ case HttpStatusCode.ProxyAuthenticationRequired:
4744
+ return 'Zur Ausführung dieser Aktion ist eine Proxy-Authentifizierung erforderlich.';
4745
+ case HttpStatusCode.RequestTimeout:
4746
+ return 'Der Server hat auf die Anforderung gewartet.';
4747
+ case HttpStatusCode.Conflict:
4748
+ return 'Die Anforderung steht im Widerspruch zum aktuellen Zustand der Ressource.';
4749
+ case HttpStatusCode.Gone:
4750
+ return 'Die angeforderte Ressource ist nicht mehr verfügbar und wird auch nicht mehr verfügbar sein.';
4751
+ case HttpStatusCode.LengthRequired:
4752
+ return 'Die Anforderung hat die Länge ihres Inhalts nicht angegeben, die von der angeforderten Ressource benötigt wird.';
4753
+ case HttpStatusCode.PreconditionFailed:
4754
+ return 'Der Server erfüllt eine der Voraussetzungen nicht, die der Anforderer an die Anforderung gestellt hat.';
4755
+ case HttpStatusCode.PayloadTooLarge:
4756
+ return 'Die Anforderung ist größer als der Server bereit oder in der Lage ist, zu verarbeiten.';
4757
+ case HttpStatusCode.UriTooLong:
4758
+ return 'Die bereitgestellte URL war für den Server zu lang, um sie zu verarbeiten.';
4759
+ case HttpStatusCode.UnsupportedMediaType:
4760
+ return 'Die Anforderungseinheit hat einen Medientyp, den der Server oder die Ressource nicht unterstützt.';
4761
+ case HttpStatusCode.RangeNotSatisfiable:
4762
+ return 'Der Client hat einen Teil der Datei angefordert, aber der Server kann diesen Teil nicht liefern.';
4763
+ case HttpStatusCode.ExpectationFailed:
4764
+ return 'Der Server kann die Anforderungen des Erwartung-Anforderungskopffelds nicht erfüllen.';
4765
+ case HttpStatusCode.ImATeapot:
4766
+ return 'Ich bin eine Teekanne.';
4767
+ case HttpStatusCode.MisdirectedRequest:
4768
+ return 'Die Anforderung wurde an einen Server gerichtet, der nicht in der Lage ist, eine Antwort zu generieren.';
4769
+ case HttpStatusCode.UnprocessableEntity:
4770
+ return 'Die Anforderung war gut formuliert, konnte aber aufgrund semantischer Fehler nicht befolgt werden.';
4771
+ case HttpStatusCode.Locked:
4772
+ return 'Die Ressource, auf die zugegriffen wird, ist gesperrt.';
4773
+ case HttpStatusCode.FailedDependency:
4774
+ return 'Die Anforderung ist aufgrund eines Fehlers einer vorherigen Anforderung fehlgeschlagen.';
4775
+ case HttpStatusCode.TooEarly:
4776
+ return 'Der Server ist nicht bereit, die Anforderung zu verarbeiten, weil der Benutzer nicht authentifiziert wurde.';
4777
+ case HttpStatusCode.UpgradeRequired:
4778
+ return 'Der Client sollte zu einem anderen Protokoll wie TLS/1.0 wechseln, das im Upgrade-Anforderungskopffeld angegeben ist.';
4779
+ case HttpStatusCode.PreconditionRequired:
4780
+ return 'Der Ursprungsserver erfordert, dass die Anforderung bedingt ist.';
4781
+ case HttpStatusCode.TooManyRequests:
4782
+ return 'Sie haben in einer bestimmten Zeit zu viele Anfragen gesendet. Bitte versuchen Sie es später erneut.';
4783
+ case HttpStatusCode.RequestHeaderFieldsTooLarge:
4784
+ return 'Der Server ist nicht bereit, die Anforderung zu verarbeiten, weil seine Kopffelder zu groß sind.';
4785
+ case HttpStatusCode.UnavailableForLegalReasons:
4786
+ return 'Die Ressource ist aufgrund einer rechtlichen Forderung nicht verfügbar.';
4787
+ case HttpStatusCode.InternalServerError:
4788
+ return 'Etwas ist schief gelaufen. Bitte versuchen Sie es später erneut.';
4789
+ case HttpStatusCode.NotImplemented:
4790
+ return 'Der Server unterstützt die zur Erfüllung der Anforderung erforderliche Funktionalität nicht.';
4791
+ case HttpStatusCode.BadGateway:
4792
+ return 'Etwas ist schief gelaufen. Bitte versuchen Sie es später erneut.';
4793
+ case HttpStatusCode.ServiceUnavailable:
4794
+ return 'Der Server kann die Anforderung derzeit nicht bearbeiten, da er vorübergehend überlastet oder gewartet wird.';
4795
+ case HttpStatusCode.GatewayTimeout:
4796
+ return 'Der Server hat beim Versuch, die Anforderung abzuschließen, keine rechtzeitige Antwort vom Server erhalten.';
4797
+ case HttpStatusCode.HttpVersionNotSupported:
4798
+ return 'Der Server unterstützt die in der Anforderung verwendete HTTP-Protokollversion nicht.';
4799
+ case HttpStatusCode.VariantAlsoNegotiates:
4800
+ return 'Der Server hat einen internen Konfigurationsfehler: Die ausgewählte Variantenressource ist so konfiguriert, dass sie sich selbst in die transparente Inhaltsverhandlung einbindet, und ist daher kein geeigneter Endpunkt im Verhandlungsprozess.';
4801
+ case HttpStatusCode.InsufficientStorage:
4802
+ return 'Die Methode konnte auf die Ressource nicht angewendet werden, weil der Server nicht in der Lage ist, die für die erfolgreiche Ausführung der Anforderung erforderliche Darstellung zu speichern.';
4803
+ case HttpStatusCode.LoopDetected:
4804
+ return 'Der Server hat eine Endlosschleife erkannt, während er die Anforderung verarbeitet.';
4805
+ case HttpStatusCode.NotExtended:
4806
+ return 'Weitere Erweiterungen der Anforderung sind erforderlich, damit der Server sie erfüllen kann.';
4807
+ case HttpStatusCode.NetworkAuthenticationRequired:
4808
+ return 'Sie müssen sich authentifizieren, um Zugang zum Netzwerk zu erhalten.';
4809
+ default:
4810
+ return 'Etwas ist schief gelaufen. Überprüfen Sie Ihre Internetverbindung und versuchen Sie es später erneut.';
4811
+ }
4812
+ };
4813
+
4814
+ class ParseHttpErrorCodeToTitleDePipe {
4815
+ constructor() {
4816
+ this.transform = parseHttpErrorCodeToTitleDe;
4817
+ }
4818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToTitleDePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4819
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToTitleDePipe, isStandalone: true, name: "parseHttpErrorCodeToTitleDe" }); }
4820
+ }
4821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToTitleDePipe, decorators: [{
4822
+ type: Pipe,
4823
+ args: [{
4824
+ name: 'parseHttpErrorCodeToTitleDe',
4825
+ standalone: true,
4826
+ }]
4827
+ }] });
4828
+ class ParseHttpErrorCodeToMessageDePipe {
4829
+ constructor() {
4830
+ this.transform = parseHttpErrorCodeToMessageDe;
4831
+ }
4832
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToMessageDePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4833
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToMessageDePipe, isStandalone: true, name: "parseHttpErrorCodeToMessageDe" }); }
4834
+ }
4835
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToMessageDePipe, decorators: [{
4836
+ type: Pipe,
4837
+ args: [{
4838
+ name: 'parseHttpErrorCodeToMessageDe',
4839
+ standalone: true,
4840
+ }]
4841
+ }] });
4842
+
4843
+ const parseHttpErrorCodeToTitleEn = (statusCode) => {
4844
+ switch (statusCode) {
4845
+ case HttpStatusCode.BadRequest:
4846
+ return 'Bad request';
4847
+ case HttpStatusCode.Unauthorized:
4848
+ return 'Unauthorized';
4849
+ case HttpStatusCode.PaymentRequired:
4850
+ return 'Payment required';
4851
+ case HttpStatusCode.Forbidden:
4852
+ return 'Forbidden';
4853
+ case HttpStatusCode.NotFound:
4854
+ return 'Not found';
4855
+ case HttpStatusCode.MethodNotAllowed:
4856
+ return 'Method not allowed';
4857
+ case HttpStatusCode.NotAcceptable:
4858
+ return 'Not acceptable';
4859
+ case HttpStatusCode.ProxyAuthenticationRequired:
4860
+ return 'Proxy authentication required';
4861
+ case HttpStatusCode.RequestTimeout:
4862
+ return 'Request timeout';
4863
+ case HttpStatusCode.Conflict:
4864
+ return 'Conflict';
4865
+ case HttpStatusCode.Gone:
4866
+ return 'Gone';
4867
+ case HttpStatusCode.LengthRequired:
4868
+ return 'Length required';
4869
+ case HttpStatusCode.PreconditionFailed:
4870
+ return 'Precondition failed';
4871
+ case HttpStatusCode.PayloadTooLarge:
4872
+ return 'Payload too large';
4873
+ case HttpStatusCode.UriTooLong:
4874
+ return 'URI too long';
4875
+ case HttpStatusCode.UnsupportedMediaType:
4876
+ return 'Unsupported media type';
4877
+ case HttpStatusCode.RangeNotSatisfiable:
4878
+ return 'Range not satisfiable';
4879
+ case HttpStatusCode.ExpectationFailed:
4880
+ return 'Expectation failed';
4881
+ case HttpStatusCode.ImATeapot:
4882
+ return 'I am a teapot';
4883
+ case HttpStatusCode.MisdirectedRequest:
4884
+ return 'Misdirected request';
4885
+ case HttpStatusCode.UnprocessableEntity:
4886
+ return 'Unprocessable entity';
4887
+ case HttpStatusCode.Locked:
4888
+ return 'Locked';
4889
+ case HttpStatusCode.FailedDependency:
4890
+ return 'Failed dependency';
4891
+ case HttpStatusCode.TooEarly:
4892
+ return 'Too early';
4893
+ case HttpStatusCode.UpgradeRequired:
4894
+ return 'Upgrade required';
4895
+ case HttpStatusCode.PreconditionRequired:
4896
+ return 'Precondition required';
4897
+ case HttpStatusCode.TooManyRequests:
4898
+ return 'Too many requests';
4899
+ case HttpStatusCode.RequestHeaderFieldsTooLarge:
4900
+ return 'Request header fields too large';
4901
+ case HttpStatusCode.UnavailableForLegalReasons:
4902
+ return 'Unavailable for legal reasons';
4903
+ case HttpStatusCode.InternalServerError:
4904
+ return 'Internal server error';
4905
+ case HttpStatusCode.NotImplemented:
4906
+ return 'Not implemented';
4907
+ case HttpStatusCode.BadGateway:
4908
+ return 'Bad gateway';
4909
+ case HttpStatusCode.ServiceUnavailable:
4910
+ return 'Service unavailable';
4911
+ case HttpStatusCode.GatewayTimeout:
4912
+ return 'Gateway timeout';
4913
+ case HttpStatusCode.HttpVersionNotSupported:
4914
+ return 'HTTP version not supported';
4915
+ case HttpStatusCode.VariantAlsoNegotiates:
4916
+ return 'Variant also negotiates';
4917
+ case HttpStatusCode.InsufficientStorage:
4918
+ return 'Insufficient storage';
4919
+ case HttpStatusCode.LoopDetected:
4920
+ return 'Loop detected';
4921
+ case HttpStatusCode.NotExtended:
4922
+ return 'Not extended';
4923
+ case HttpStatusCode.NetworkAuthenticationRequired:
4924
+ return 'Network authentication required';
4925
+ default:
4926
+ return 'Something went wrong';
4927
+ }
4928
+ };
4929
+ const parseHttpErrorCodeToMessageEn = (statusCode) => {
4930
+ switch (statusCode) {
4931
+ case HttpStatusCode.BadRequest:
4932
+ return 'Sorry, we could not process your request. Please try again later.';
4933
+ case HttpStatusCode.Unauthorized:
4934
+ return 'You are not authorized to perform this action. Please log in to continue.';
4935
+ case HttpStatusCode.PaymentRequired:
4936
+ return 'Payment is required to complete this action.';
4937
+ case HttpStatusCode.Forbidden:
4938
+ return 'You do not have permission to perform this action.';
4939
+ case HttpStatusCode.NotFound:
4940
+ return 'The requested resource was not found.';
4941
+ case HttpStatusCode.MethodNotAllowed:
4942
+ return 'The requested method is not allowed for this resource.';
4943
+ case HttpStatusCode.NotAcceptable:
4944
+ return 'The requested resource is not capable of generating a response matching the list of acceptable values.';
4945
+ case HttpStatusCode.ProxyAuthenticationRequired:
4946
+ return 'Proxy authentication is required to complete this action.';
4947
+ case HttpStatusCode.RequestTimeout:
4948
+ return 'The server timed out waiting for the request.';
4949
+ case HttpStatusCode.Conflict:
4950
+ return 'The request conflicts with the current state of the resource.';
4951
+ case HttpStatusCode.Gone:
4952
+ return 'The requested resource is no longer available and will not be available again.';
4953
+ case HttpStatusCode.LengthRequired:
4954
+ return 'The request did not specify the length of its content, which is required by the requested resource.';
4955
+ case HttpStatusCode.PreconditionFailed:
4956
+ return 'The server does not meet one of the preconditions that the requester put on the request.';
4957
+ case HttpStatusCode.PayloadTooLarge:
4958
+ return 'The request is larger than the server is willing or able to process.';
4959
+ case HttpStatusCode.UriTooLong:
4960
+ return 'The URL provided was too long for the server to process.';
4961
+ case HttpStatusCode.UnsupportedMediaType:
4962
+ return 'The request entity has a media type which the server or resource does not support.';
4963
+ case HttpStatusCode.RangeNotSatisfiable:
4964
+ return 'The client has asked for a portion of the file, but the server cannot supply that portion.';
4965
+ case HttpStatusCode.ExpectationFailed:
4966
+ return 'The server cannot meet the requirements of the Expect request-header field.';
4967
+ case HttpStatusCode.ImATeapot:
4968
+ return 'I am a teapot.';
4969
+ case HttpStatusCode.MisdirectedRequest:
4970
+ return 'The request was directed at a server that is not able to produce a response.';
4971
+ case HttpStatusCode.UnprocessableEntity:
4972
+ return 'The request was well-formed but was unable to be followed due to semantic errors.';
4973
+ case HttpStatusCode.Locked:
4974
+ return 'The resource that is being accessed is locked.';
4975
+ case HttpStatusCode.FailedDependency:
4976
+ return 'The request failed due to failure of a previous request.';
4977
+ case HttpStatusCode.TooEarly:
4978
+ return 'The server is unwilling to process the request because the user has not been authenticated.';
4979
+ case HttpStatusCode.UpgradeRequired:
4980
+ return 'The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.';
4981
+ case HttpStatusCode.PreconditionRequired:
4982
+ return 'The origin server requires the request to be conditional.';
4983
+ case HttpStatusCode.TooManyRequests:
4984
+ return 'You have sent too many requests in a given amount of time. Please try again later.';
4985
+ case HttpStatusCode.RequestHeaderFieldsTooLarge:
4986
+ return 'The server is unwilling to process the request because its header fields are too large.';
4987
+ case HttpStatusCode.UnavailableForLegalReasons:
4988
+ return 'The resource is unavailable due to a legal demand.';
4989
+ case HttpStatusCode.InternalServerError:
4990
+ return 'Something went wrong on our end. Please try again later.';
4991
+ case HttpStatusCode.NotImplemented:
4992
+ return 'The server does not support the functionality required to fulfill the request.';
4993
+ case HttpStatusCode.BadGateway:
4994
+ return 'Something went wrong on our end. Please try again later.';
4995
+ case HttpStatusCode.ServiceUnavailable:
4996
+ return 'The server is currently unable to handle the request due to a temporary overload or maintenance of the server.';
4997
+ case HttpStatusCode.GatewayTimeout:
4998
+ return 'The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URL or some other auxiliary server it needed to access in attempting to complete the request.';
4999
+ case HttpStatusCode.HttpVersionNotSupported:
5000
+ return 'The server does not support the HTTP protocol version used in the request.';
5001
+ case HttpStatusCode.VariantAlsoNegotiates:
5002
+ return 'The server has an internal configuration error: the chosen variant resource is configured to engage in transparent content negotiation itself, and is therefore not a proper end point in the negotiation process.';
5003
+ case HttpStatusCode.InsufficientStorage:
5004
+ return 'The method could not be performed on the resource because the server is unable to store the representation needed to successfully complete the request.';
5005
+ case HttpStatusCode.LoopDetected:
5006
+ return 'The server detected an infinite loop while processing the request.';
5007
+ case HttpStatusCode.NotExtended:
5008
+ return 'Further extensions to the request are required for the server to fulfill it.';
5009
+ case HttpStatusCode.NetworkAuthenticationRequired:
5010
+ return 'You need to authenticate to gain network access.';
5011
+ default:
5012
+ return 'Something went wrong. Check your internet connection and try again later.';
5013
+ }
5014
+ };
5015
+
5016
+ class ParseHttpErrorCodeToTitleEnPipe {
5017
+ constructor() {
5018
+ this.transform = parseHttpErrorCodeToTitleEn;
5019
+ }
5020
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToTitleEnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
5021
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToTitleEnPipe, isStandalone: true, name: "parseHttpErrorCodeToTitleEn" }); }
5022
+ }
5023
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToTitleEnPipe, decorators: [{
5024
+ type: Pipe,
5025
+ args: [{
5026
+ name: 'parseHttpErrorCodeToTitleEn',
5027
+ standalone: true,
5028
+ }]
5029
+ }] });
5030
+ class ParseHttpErrorCodeToMessageEnPipe {
5031
+ constructor() {
5032
+ this.transform = parseHttpErrorCodeToMessageEn;
5033
+ }
5034
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToMessageEnPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
5035
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToMessageEnPipe, isStandalone: true, name: "parseHttpErrorCodeToMessageEn" }); }
5036
+ }
5037
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: ParseHttpErrorCodeToMessageEnPipe, decorators: [{
5038
+ type: Pipe,
5039
+ args: [{
5040
+ name: 'parseHttpErrorCodeToMessageEn',
5041
+ standalone: true,
5042
+ }]
5043
+ }] });
5044
+
4583
5045
  const roomNotJoined = (room) => {
4584
5046
  return new RuntimeError(1000 /* WebSocketRuntimeErrorCode.ROOM_NOT_JOINED */, `Tried leaving the room "${room}" but it has not been joined.`);
4585
5047
  };
@@ -4702,6 +5164,10 @@ const createWebSocketClientConfig = (options) => {
4702
5164
  var index = /*#__PURE__*/Object.freeze({
4703
5165
  __proto__: null,
4704
5166
  CLEAR_QUERY_ARGS: CLEAR_QUERY_ARGS,
5167
+ ParseHttpErrorCodeToMessageDePipe: ParseHttpErrorCodeToMessageDePipe,
5168
+ ParseHttpErrorCodeToMessageEnPipe: ParseHttpErrorCodeToMessageEnPipe,
5169
+ ParseHttpErrorCodeToTitleDePipe: ParseHttpErrorCodeToTitleDePipe,
5170
+ ParseHttpErrorCodeToTitleEnPipe: ParseHttpErrorCodeToTitleEnPipe,
4705
5171
  QUERY_EFFECT_ERROR_MESSAGE: QUERY_EFFECT_ERROR_MESSAGE,
4706
5172
  SPEED_BUFFER_TIME_IN_MS: SPEED_BUFFER_TIME_IN_MS,
4707
5173
  applyQueryFeatures: applyQueryFeatures,
@@ -4731,6 +5197,7 @@ var index = /*#__PURE__*/Object.freeze({
4731
5197
  createQueryClient: createQueryClient,
4732
5198
  createQueryClientConfig: createQueryClientConfig,
4733
5199
  createQueryCreator: createQueryCreator,
5200
+ createQueryErrorResponse: createQueryErrorResponse,
4734
5201
  createQueryObject: createQueryObject,
4735
5202
  createQueryRepository: createQueryRepository,
4736
5203
  createQuerySnapshotFn: createQuerySnapshotFn,
@@ -4764,6 +5231,10 @@ var index = /*#__PURE__*/Object.freeze({
4764
5231
  pagedQueryStackNextPageCalledWithoutPreviousPage: pagedQueryStackNextPageCalledWithoutPreviousPage,
4765
5232
  pagedQueryStackPageBiggerThanTotalPages: pagedQueryStackPageBiggerThanTotalPages,
4766
5233
  pagedQueryStackPreviousPageCalledButAlreadyAtFirstPage: pagedQueryStackPreviousPageCalledButAlreadyAtFirstPage,
5234
+ parseHttpErrorCodeToMessageDe: parseHttpErrorCodeToMessageDe,
5235
+ parseHttpErrorCodeToMessageEn: parseHttpErrorCodeToMessageEn,
5236
+ parseHttpErrorCodeToTitleDe: parseHttpErrorCodeToTitleDe,
5237
+ parseHttpErrorCodeToTitleEn: parseHttpErrorCodeToTitleEn,
4767
5238
  provideBearerAuthProvider: provideBearerAuthProvider,
4768
5239
  provideQueryClient: provideQueryClient,
4769
5240
  provideWebSocketClient: provideWebSocketClient,
@@ -5309,5 +5780,5 @@ class QueryForm {
5309
5780
  * Generated bundle index. Do not edit.
5310
5781
  */
5311
5782
 
5312
- export { BasicAuthProvider, BearerAuthProvider, CustomHeaderAuthProvider, EntityStore, index as ExperimentalQuery, INFINITY_QUERY_TOKEN, InfinityQuery, InfinityQueryDirective, InfinityQueryTriggerDirective, QUERY_CLIENT_DEVTOOLS_TOKEN, Query, QueryClient, QueryCreator, QueryDevtoolsComponent, QueryDirective, QueryError, QueryField, QueryForm, QueryShortNamePipe, QueryStore, addQueryContainerHandling, buildErrorMessage, buildQueryCacheKey$1 as buildQueryCacheKey, buildQueryString, buildRoute, buildTimestampFromSeconds, castQueryCreatorTypes, computeQueryAuthHeader, computeQueryBody, computeQueryHeaders, computeQueryMethod, computeQueryQueryParams, createInfinityQueryConfig, createQueryCollection, createQueryCollectionSignal, createQueryCollectionSubject, decryptBearer, deepFreeze, def, detectContentTypeHeader, extractExpiresInSeconds$1 as extractExpiresInSeconds, extractQuery, filterFailure, filterNull, filterQueryStates, filterSuccess, forEachHeader, getDefaultHeaders, getResponseUrl, gql, hasHeader, ignoreAutoRefresh, insertFrom, invalidBaseRouteError, invalidBodyError, invalidRouteError, isAutoRefresh, isBasicAuthProvider, isBearerAuthProvider, isClassValidatorError, isCustomHeaderAuthProvider, isEmptyString, isGqlQueryConfig, isNaN$1 as isNaN, isQuery, isQueryCollection, isQueryStateCancelled, isQueryStateFailure, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, isRequestError, isSymfonyError, isSymfonyFormViolationListError, isSymfonyListError, isSymfonyPagerfantaOutOfRangeError, mapToPaginated, mergeHeaders, paginatedEntityValueUpdater, parseAllXhrResponseHeaders, pathParamsMissingInRouteFunctionError, provideQueryClientForDevtools, queryArrayComputed, queryComputed, queryComputedTillTruthy, queryStateAlreadyHasKeyError, queryStateCannotTransformError, queryStateDoesNotContainKeyError, queryStateErrorSignal, queryStateLoadingSignal, queryStateResponseSignal, queryStateSignal, removeFrom, request, resetPageOnError, serializeBody, shouldCacheQuery$1 as shouldCacheQuery, shouldRetryRequest$1 as shouldRetryRequest, skipPaginationPageParamCalculator, switchQueryCollectionState, switchQueryState, takeUntilResponse, toQuerySignal, toQuerySubject, transformGql, transformMethod, transformToBoolean, transformToBooleanArray, transformToDate, transformToDateArray, transformToNumber, transformToNumberArray, transformToSort, transformToSortQueryParam, transformToString, transformToStringArray };
5783
+ export { BasicAuthProvider, BearerAuthProvider, CustomHeaderAuthProvider, EntityStore, index as ExperimentalQuery, INFINITY_QUERY_TOKEN, InfinityQuery, InfinityQueryDirective, InfinityQueryTriggerDirective, ParseHttpErrorCodeToMessageDePipe, ParseHttpErrorCodeToMessageEnPipe, ParseHttpErrorCodeToTitleDePipe, ParseHttpErrorCodeToTitleEnPipe, QUERY_CLIENT_DEVTOOLS_TOKEN, Query, QueryClient, QueryCreator, QueryDevtoolsComponent, QueryDirective, QueryError, QueryField, QueryForm, QueryShortNamePipe, QueryStore, addQueryContainerHandling, buildErrorMessage, buildQueryCacheKey$1 as buildQueryCacheKey, buildQueryString, buildRoute, buildTimestampFromSeconds, castQueryCreatorTypes, computeQueryAuthHeader, computeQueryBody, computeQueryHeaders, computeQueryMethod, computeQueryQueryParams, createInfinityQueryConfig, createQueryCollection, createQueryCollectionSignal, createQueryCollectionSubject, decryptBearer, deepFreeze, def, detectContentTypeHeader, extractExpiresInSeconds$1 as extractExpiresInSeconds, extractQuery, filterFailure, filterNull, filterQueryStates, filterSuccess, forEachHeader, getDefaultHeaders, getResponseUrl, gql, hasHeader, ignoreAutoRefresh, insertFrom, invalidBaseRouteError, invalidBodyError, invalidRouteError, isAutoRefresh, isBasicAuthProvider, isBearerAuthProvider, isClassValidatorError, isCustomHeaderAuthProvider, isEmptyString, isGqlQueryConfig, isNaN$1 as isNaN, isQuery, isQueryCollection, isQueryStateCancelled, isQueryStateFailure, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, isRequestError, isSymfonyError, isSymfonyFormViolationListError, isSymfonyListError, isSymfonyPagerfantaOutOfRangeError, mapToPaginated, mergeHeaders, paginatedEntityValueUpdater, parseAllXhrResponseHeaders, parseHttpErrorCodeToMessageDe, parseHttpErrorCodeToMessageEn, parseHttpErrorCodeToTitleDe, parseHttpErrorCodeToTitleEn, pathParamsMissingInRouteFunctionError, provideQueryClientForDevtools, queryArrayComputed, queryComputed, queryComputedTillTruthy, queryStateAlreadyHasKeyError, queryStateCannotTransformError, queryStateDoesNotContainKeyError, queryStateErrorSignal, queryStateLoadingSignal, queryStateResponseSignal, queryStateSignal, removeFrom, request, resetPageOnError, serializeBody, shouldCacheQuery$1 as shouldCacheQuery, shouldRetryRequest$1 as shouldRetryRequest, skipPaginationPageParamCalculator, switchQueryCollectionState, switchQueryState, takeUntilResponse, toQuerySignal, toQuerySubject, transformGql, transformMethod, transformToBoolean, transformToBooleanArray, transformToDate, transformToDateArray, transformToNumber, transformToNumberArray, transformToSort, transformToSortQueryParam, transformToString, transformToStringArray };
5313
5784
  //# sourceMappingURL=ethlete-query.mjs.map