@ethlete/query 6.0.0-next.21 → 6.0.0-next.22
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 +12 -0
- package/fesm2022/ethlete-query.mjs +155 -2
- package/fesm2022/ethlete-query.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ethlete-query.d.ts +50 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @ethlete/query
|
|
2
2
|
|
|
3
|
+
## 6.0.0-next.22
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`dcd8585`](https://github.com/ethlete-io/ethdk/commit/dcd8585423c4d0a66d968016a6e88b03c87b168a) Thanks [@github-actions](https://github.com/apps/github-actions)! - Error normalization: reduce an HTML error page (a proxy's `502`, a maintenance page) to its heading and message text instead of using the raw markup as the message. Exposes `isHtmlErrorPayload`, `htmlErrorPayload` and `extractHtmlErrorMessage`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#3040](https://github.com/ethlete-io/ethdk/pull/3040) [`bc8aca7`](https://github.com/ethlete-io/ethdk/commit/bc8aca76900a47a3faed4ad2be2ce2ab7b70b27d) Thanks [@github-actions](https://github.com/apps/github-actions)! - Filter overlay: new `provideFilterOverlay` / `injectFilterOverlay` — a filter panel that drafts the page's query
|
|
12
|
+
form, reports how many results the draft would return on its submit button, and applies on submit or discards on
|
|
13
|
+
dismiss. Replaces cdk's `FilterOverlayService`, rebuilt on signal forms and the current query client.
|
|
14
|
+
|
|
3
15
|
## 6.0.0-next.21
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -1679,6 +1679,149 @@ const buildQueryCacheKey = (route, args) => {
|
|
|
1679
1679
|
return hash.toString();
|
|
1680
1680
|
};
|
|
1681
1681
|
|
|
1682
|
+
/**
|
|
1683
|
+
* An error body can be an HTML page instead of JSON: a proxy's 502, a load balancer's maintenance page, a
|
|
1684
|
+
* platform's "service temporarily unavailable". The markup is never worth showing, but the sentence inside it
|
|
1685
|
+
* usually is — this file pulls that sentence out.
|
|
1686
|
+
*
|
|
1687
|
+
* Parsing is done with string matching rather than `DOMParser` on purpose: it must work during SSR, and the
|
|
1688
|
+
* markup must never reach a DOM. What comes back is plain text, so a template can bind it as text like any
|
|
1689
|
+
* other error message.
|
|
1690
|
+
*/
|
|
1691
|
+
/** A full document, however sloppily written. */
|
|
1692
|
+
const HTML_DOCUMENT_PATTERN = /<!doctype\s+html|<html[\s>]|<head[\s>]|<body[\s>]/i;
|
|
1693
|
+
/** A fragment — matched only as a balanced pair, so a message that merely mentions `<p>` is not markup. */
|
|
1694
|
+
const HTML_ELEMENT_PATTERN = /<(h[1-6]|p|div|title|pre)\b[^>]*>[\s\S]*<\/\1>/i;
|
|
1695
|
+
/** Carries no readable text, and `<style>` in particular would otherwise flood the fallback. */
|
|
1696
|
+
const HTML_NOISE_PATTERN = /<(script|style|noscript|svg|iframe|template)\b[^>]*>[\s\S]*?<\/\1>/gi;
|
|
1697
|
+
const HTML_COMMENT_PATTERN = /<!--[\s\S]*?-->/g;
|
|
1698
|
+
const HTML_TAG_PATTERN = /<[^>]*>/g;
|
|
1699
|
+
const HTML_ENTITY_PATTERN = /&(#x[0-9a-f]+|#[0-9]+|[a-z][a-z0-9]*);/gi;
|
|
1700
|
+
const HTML_BODY_PATTERN = /<body\b[^>]*>([\s\S]*?)<\/body>/i;
|
|
1701
|
+
const HTML_HEADING_PATTERN = /<h([1-6])\b[^>]*>([\s\S]*?)<\/h\1>/i;
|
|
1702
|
+
const HTML_TITLE_PATTERN = /<title\b[^>]*>([\s\S]*?)<\/title>/i;
|
|
1703
|
+
const HTML_PARAGRAPH_PATTERN = /<p\b[^>]*>([\s\S]*?)<\/p>/gi;
|
|
1704
|
+
/**
|
|
1705
|
+
* The entities an error page actually uses. A complete table would be kilobytes for no gain — anything missing
|
|
1706
|
+
* is left as written, which is still readable.
|
|
1707
|
+
*/
|
|
1708
|
+
const HTML_ENTITIES = {
|
|
1709
|
+
amp: '&',
|
|
1710
|
+
lt: '<',
|
|
1711
|
+
gt: '>',
|
|
1712
|
+
quot: '"',
|
|
1713
|
+
apos: "'",
|
|
1714
|
+
nbsp: ' ',
|
|
1715
|
+
ensp: ' ',
|
|
1716
|
+
emsp: ' ',
|
|
1717
|
+
thinsp: ' ',
|
|
1718
|
+
shy: '',
|
|
1719
|
+
ndash: '–',
|
|
1720
|
+
mdash: '—',
|
|
1721
|
+
hellip: '…',
|
|
1722
|
+
lsquo: '‘',
|
|
1723
|
+
rsquo: '’',
|
|
1724
|
+
ldquo: '“',
|
|
1725
|
+
rdquo: '”',
|
|
1726
|
+
laquo: '«',
|
|
1727
|
+
raquo: '»',
|
|
1728
|
+
bull: '•',
|
|
1729
|
+
middot: '·',
|
|
1730
|
+
deg: '°',
|
|
1731
|
+
copy: '©',
|
|
1732
|
+
reg: '®',
|
|
1733
|
+
trade: '™',
|
|
1734
|
+
euro: '€',
|
|
1735
|
+
pound: '£',
|
|
1736
|
+
auml: 'ä',
|
|
1737
|
+
ouml: 'ö',
|
|
1738
|
+
uuml: 'ü',
|
|
1739
|
+
Auml: 'Ä',
|
|
1740
|
+
Ouml: 'Ö',
|
|
1741
|
+
Uuml: 'Ü',
|
|
1742
|
+
szlig: 'ß',
|
|
1743
|
+
};
|
|
1744
|
+
/** Long enough for a real explanation, short enough that a dumped stack trace can't become the message. */
|
|
1745
|
+
const MAX_MESSAGE_LENGTH = 300;
|
|
1746
|
+
const MAX_CODE_POINT = 0x10ffff;
|
|
1747
|
+
const decodeHtmlEntities = (value) => value.replace(HTML_ENTITY_PATTERN, (match, entity) => {
|
|
1748
|
+
if (entity.startsWith('#')) {
|
|
1749
|
+
const isHex = entity[1] === 'x' || entity[1] === 'X';
|
|
1750
|
+
const codePoint = Number.parseInt(isHex ? entity.slice(2) : entity.slice(1), isHex ? 16 : 10);
|
|
1751
|
+
// `String.fromCodePoint` throws on anything out of range, and a malformed page is exactly where that shows up.
|
|
1752
|
+
return Number.isInteger(codePoint) && codePoint > 0 && codePoint <= MAX_CODE_POINT
|
|
1753
|
+
? String.fromCodePoint(codePoint)
|
|
1754
|
+
: match;
|
|
1755
|
+
}
|
|
1756
|
+
return HTML_ENTITIES[entity] ?? HTML_ENTITIES[entity.toLowerCase()] ?? match;
|
|
1757
|
+
});
|
|
1758
|
+
/**
|
|
1759
|
+
* Tags are dropped before entities are decoded, so an escaped `<script>` in the page's text can never
|
|
1760
|
+
* turn back into markup on the way out.
|
|
1761
|
+
*/
|
|
1762
|
+
const toPlainText = (html) => decodeHtmlEntities(html.replace(HTML_TAG_PATTERN, ' ')).replace(/\s+/g, ' ').trim();
|
|
1763
|
+
const truncate = (value) => value.length <= MAX_MESSAGE_LENGTH ? value : `${value.slice(0, MAX_MESSAGE_LENGTH - 1).trimEnd()}…`;
|
|
1764
|
+
const matchText = (html, pattern, group) => {
|
|
1765
|
+
const text = pattern.exec(html)?.[group];
|
|
1766
|
+
return text ? toPlainText(text) || null : null;
|
|
1767
|
+
};
|
|
1768
|
+
const paragraphTexts = (html) => {
|
|
1769
|
+
const texts = [];
|
|
1770
|
+
for (const match of html.matchAll(HTML_PARAGRAPH_PATTERN)) {
|
|
1771
|
+
const text = toPlainText(match[1] ?? '');
|
|
1772
|
+
if (text)
|
|
1773
|
+
texts.push(text);
|
|
1774
|
+
}
|
|
1775
|
+
return texts;
|
|
1776
|
+
};
|
|
1777
|
+
/**
|
|
1778
|
+
* Whether a value is an HTML error page rather than a message meant to be read as-is.
|
|
1779
|
+
*
|
|
1780
|
+
* Deliberately strict: a document marker, or a balanced element pair. A message containing a stray `<` or a
|
|
1781
|
+
* lone `<br>` stays a message.
|
|
1782
|
+
*/
|
|
1783
|
+
const isHtmlErrorPayload = (value) => typeof value === 'string' && (HTML_DOCUMENT_PATTERN.test(value) || HTML_ELEMENT_PATTERN.test(value));
|
|
1784
|
+
/**
|
|
1785
|
+
* The HTML of an error body, or `null` when the body isn't an error page.
|
|
1786
|
+
*
|
|
1787
|
+
* Two shapes carry one: the raw string body of any failed response, and the `{ error, text }` wrapper
|
|
1788
|
+
* Angular's XHR backend produces when a `200` response fails to parse as JSON — which is how a proxy handing
|
|
1789
|
+
* back an HTML page with a success status arrives.
|
|
1790
|
+
*/
|
|
1791
|
+
const htmlErrorPayload = (body) => {
|
|
1792
|
+
if (isHtmlErrorPayload(body))
|
|
1793
|
+
return body;
|
|
1794
|
+
if (typeof body === 'object' && !!body && 'text' in body && isHtmlErrorPayload(body.text)) {
|
|
1795
|
+
return body.text;
|
|
1796
|
+
}
|
|
1797
|
+
return null;
|
|
1798
|
+
};
|
|
1799
|
+
/**
|
|
1800
|
+
* The readable message inside an HTML error page, or `null` when it has none.
|
|
1801
|
+
*
|
|
1802
|
+
* Prefers what a page puts its message in: the first heading (or the `<title>` when there is no heading),
|
|
1803
|
+
* followed by the first paragraph that says something new. Falls back to the page's flattened text, so an
|
|
1804
|
+
* unusually structured page still yields something. The result is always plain text, and always short enough
|
|
1805
|
+
* to sit in a toast.
|
|
1806
|
+
*
|
|
1807
|
+
* @example
|
|
1808
|
+
* extractHtmlErrorMessage('<h1>Service Unavailable</h1><p>The server is restarting.</p>');
|
|
1809
|
+
* // 'Service Unavailable: The server is restarting.'
|
|
1810
|
+
*/
|
|
1811
|
+
const extractHtmlErrorMessage = (html) => {
|
|
1812
|
+
const document = html.replace(HTML_COMMENT_PATTERN, ' ').replace(HTML_NOISE_PATTERN, ' ');
|
|
1813
|
+
const body = HTML_BODY_PATTERN.exec(document)?.[1] ?? document;
|
|
1814
|
+
const headline = matchText(body, HTML_HEADING_PATTERN, 2) ?? matchText(document, HTML_TITLE_PATTERN, 1);
|
|
1815
|
+
const detail = paragraphTexts(body).find((text) => text !== headline) ?? null;
|
|
1816
|
+
if (headline && detail) {
|
|
1817
|
+
// A headline that already ends in punctuation is a sentence, not a label.
|
|
1818
|
+
const separator = /[.!?:]$/.test(headline) ? ' ' : ': ';
|
|
1819
|
+
return truncate(`${headline}${separator}${detail}`);
|
|
1820
|
+
}
|
|
1821
|
+
const message = headline ?? detail ?? toPlainText(body);
|
|
1822
|
+
return message ? truncate(message) : null;
|
|
1823
|
+
};
|
|
1824
|
+
|
|
1682
1825
|
const shouldRetryRequest = (options) => {
|
|
1683
1826
|
const normalizedOptions = options instanceof HttpErrorResponse ? { retryCount: 0, error: options } : options;
|
|
1684
1827
|
const { retryCount, error } = normalizedOptions;
|
|
@@ -1762,7 +1905,17 @@ const createQueryErrorResponse = (error) => {
|
|
|
1762
1905
|
const retryState = shouldRetryRequest(err);
|
|
1763
1906
|
const detail = err.error;
|
|
1764
1907
|
const errorList = [];
|
|
1765
|
-
|
|
1908
|
+
const html = htmlErrorPayload(detail);
|
|
1909
|
+
if (html) {
|
|
1910
|
+
// An HTML error page (a proxy's 502, a maintenance page) is never shown as-is: keep the sentence inside it
|
|
1911
|
+
// and drop the markup. A page with no readable text leaves the list empty, which falls back to the
|
|
1912
|
+
// HttpErrorResponse's own message below — still better than a wall of tags.
|
|
1913
|
+
const message = extractHtmlErrorMessage(html);
|
|
1914
|
+
if (message) {
|
|
1915
|
+
errorList.push({ message });
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1918
|
+
else if (isClassValidatorError(detail)) {
|
|
1766
1919
|
for (const error of detail.message) {
|
|
1767
1920
|
errorList.push({ message: error });
|
|
1768
1921
|
}
|
|
@@ -8925,5 +9078,5 @@ const createWebSocketClient = (options) => {
|
|
|
8925
9078
|
* Generated bundle index. Do not edit.
|
|
8926
9079
|
*/
|
|
8927
9080
|
|
|
8928
|
-
export { BasicAuthProvider, BearerAuthFeatureType, BooleanArrayQueryField, CLEAR_QUERY_ARGS, CustomHeaderAuthProvider, DEFAULT_KEEP_UNUSED_FOR, DateArrayQueryField, DateQueryField, EntityStore, IGNORED_FILTER_COUNT_FIELDS, INFINITY_QUERY_TOKEN, InfinityQuery, InfinityQueryDirective, InfinityQueryTriggerDirective, LegacyQuery, LegacyQueryCreator, MAX_UNUSED_ENTRIES, NumberArrayQueryField, ParseHttpErrorCodeToMessageDePipe, ParseHttpErrorCodeToMessageEnPipe, ParseHttpErrorCodeToTitleDePipe, ParseHttpErrorCodeToTitleEnPipe, QUERY_CLIENT_DEVTOOLS_TOKEN, QueryDevtoolsComponent, QueryDirective, QueryError, QueryFeatureType, QueryField, QueryForm, QueryFormSignals, QueryRuntimeErrorCode, QueryShortNamePipe, QueryStore, SERVER_ERROR_KIND, SERVER_VIOLATION_ERROR_KIND, SPEED_BUFFER_TIME_IN_MS, SearchQueryField, SortQueryField, StringArrayQueryField, V2BearerAuthProvider, V2Query, V2QueryClient, V2QueryCreator, addQueryContainerHandling, applyQueryFeatures, authExtractTokensResponseMissingAccessToken, authExtractTokensResponseMissingRefreshToken, authExtractTokensResponseNotObject, authProviderFeatureUsedMultipleTimes, booleanArrayQueryField, buildErrorMessage, buildQueryCacheKey, buildQueryString, buildRoute, buildTimestampFromSeconds, castQueryCreatorTypes, circularQueryDependency, circularQueryDependencyChecker, computeQueryAuthHeader, computeQueryBody, computeQueryHeaders, computeQueryMethod, computeQueryQueryParams, consumeSuppressQueryStackDevtools, contentfulGqlLikePaginationAdapter, createBaseQuery, createBaseQueryCreator, createBearerAuthProvider, createDeleteQuery, createExecuteFn, createGetQuery, createGqlExecuteFn, createGqlMutationViaGet, createGqlMutationViaPost, createGqlQuery, createGqlQueryCreator, createGqlQueryViaGet, createGqlQueryViaPost, createHttpRequest, createInfinityQueryConfig, createLegacyQueryCreator, createPagedQueryStack, createPatchQuery, createPersistentAuthFeature, createPostQuery, createPutQuery, createQuery, createQueryClient, createQueryCollection, createQueryCollectionSignal, createQueryCollectionSubject, createQueryContext, createQueryCreator, createQueryErrorResponse, createQueryFeature, createQueryForm, createQueryObject, createQueryRepository, createQuerySnapshotFn, createQueryStack, createSecureDeleteQuery, createSecureExecuteFactory, createSecureExecuteFn, createSecureGetQuery, createSecureGqlExecuteFn, createSecureGqlMutationViaGet, createSecureGqlMutationViaPost, createSecureGqlQuery, createSecureGqlQueryCreator, createSecureGqlQueryViaGet, createSecureGqlQueryViaPost, createSecurePatchQuery, createSecurePostQuery, createSecurePutQuery, createSecureQuery, createSecureQueryCreator, createTrackingFeature, createWebSocketClient, dateArrayQueryField, dateQueryField, decryptBearer, deepFreeze, def, detectContentTypeHeader, dynLikePaginationAdapter, effectComputed, emptyQueryArgs, ethletePaginationAdapter, executeUntilSettled, extractExpiresInSeconds, extractFormViolations, extractQuery, fakePaginationAdapter, filterFailure, filterNull, filterQueryStates, filterSuccess, forEachHeader, getDefaultHeaders, getQueryClientName, getQueryFeatureUsage, getResponseUrl, ggLikePaginationAdapter, gql, gqlDataPropertyMissingInResponse, hasHeader, ignoreAutoRefresh, injectInfinityQueryResponseDelay, injectQueryContext, insertFrom, invalidBaseRouteError, invalidBodyError, invalidRouteError, invalidStateInsideSecureExecuteFactory, isAutoRefresh, isBasicAuthProvider, isBearerAuthProvider, isClassValidatorError, isCreateGqlQueryOptions, isCustomHeaderAuthProvider, isEmptyString, isGqlQueryConfig, isLegacyQuery, isNaN$1 as isNaN, isPageOutOfRangeError, isQuery, isQueryCollection, isQueryDevtoolsEnabled, isQueryErrorResponse, isQueryStateCancelled, isQueryStateFailure, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, isRequestError, isSymfonyError, isSymfonyFormViolationListError, isSymfonyListError, isSymfonyPagerfantaOutOfRangeError, legacyPrepareWithoutInjectionContext, mapToPaginated, mapViolationsToFormErrors, maybeExecute, mergeHeaders, nestedEffect, numberArrayQueryField, pagedQueryStackNextPageCalledWithoutPreviousPage, pagedQueryStackPageBiggerThanTotalPages, pagedQueryStackPreviousPageCalledButAlreadyAtFirstPage, paginatedEntityValueUpdater, parseAllXhrResponseHeaders, parseHttpErrorCodeToMessageDe, parseHttpErrorCodeToMessageEn, parseHttpErrorCodeToTitleDe, parseHttpErrorCodeToTitleEn, pathParamsMissingInRouteFunctionError, provideInfinityQueryResponseDelay, provideQueryClientForDevtools, provideQueryDevtools, queryArrayComputed, queryComputed, queryComputedTillTruthy, queryDevtoolsEntries, queryErrorMessage, queryErrorMessages, queryExecute, queryFeatureUsedMultipleTimes, queryField, querySequence, querySequenceAlreadyRunning, queryStackTotalQueriesAndExpectedQueriesMismatch, queryStackWithArgsUsed, queryStackWithResponseUpdateUsed, queryStateAlreadyHasKeyError, queryStateCannotTransformError, queryStateDoesNotContainKeyError, queryStateErrorSignal, queryStateLoadingSignal, queryStateResponseSignal, queryStateSignal, registerQueryDevtoolsEntry, removeFrom, request, resetExecuteState, resetPageOnError, searchQueryField, serializeBody, setupQueryDependencies, setupQueryExecuteState, setupQueryState, shouldAutoExecuteGqlQuery, shouldAutoExecuteQuery, shouldCacheQuery, shouldRetryRequest, silenceMissingWithArgsFeatureErrorUsedButWithArgsPresent, skipPaginationPageParamCalculator, sortQueryField, splitQueryConfig, stringArrayQueryField, stringifyQueryRoute, suppressNextQueryStackDevtools, switchQueryCollectionState, switchQueryState, takeUntilResponse, toQuerySignal, toQuerySubject, tokensNotAvailableInsideAuthAndExec, transformArrayResponse, transformExecStateToQueryState, transformGql, transformMethod, transformPaginatedResponse, transformToBoolean, transformToBooleanArray, transformToDate, transformToDateArray, transformToNumber, transformToNumberArray, transformToSort, transformToSortQueryParam, transformToString, transformToStringArray, uncacheableRequestHasAllowCacheParam, uncacheableRequestHasCacheKeyParam, v2BuildQueryCacheKey, v2ExtractExpiresInSeconds, v2ShouldCacheQuery, v2ShouldRetryRequest, validateWithQuery, validateWithV2Query, withArgs, withArgsQueryFeatureMissingButRouteIsFunction, withAuthenticationQuery, withAutoRefresh, withAutoRefreshUsedInManualQuery, withAutoRefreshUsedOnUnsupportedHttpMethod, withErrorHandling, withInactivityLogout, withLogging, withPageResetOnError, withPersistentAuth, withPolling, withPollingUsedOnUnsupportedHttpMethod, withRefreshQuery, withResponseUpdate, withSuccessHandling, withTokenExpirationWarning, withTokenRevocation, withTracking, wrapAsObservableSignal };
|
|
9081
|
+
export { BasicAuthProvider, BearerAuthFeatureType, BooleanArrayQueryField, CLEAR_QUERY_ARGS, CustomHeaderAuthProvider, DEFAULT_KEEP_UNUSED_FOR, DateArrayQueryField, DateQueryField, EntityStore, IGNORED_FILTER_COUNT_FIELDS, INFINITY_QUERY_TOKEN, InfinityQuery, InfinityQueryDirective, InfinityQueryTriggerDirective, LegacyQuery, LegacyQueryCreator, MAX_UNUSED_ENTRIES, NumberArrayQueryField, ParseHttpErrorCodeToMessageDePipe, ParseHttpErrorCodeToMessageEnPipe, ParseHttpErrorCodeToTitleDePipe, ParseHttpErrorCodeToTitleEnPipe, QUERY_CLIENT_DEVTOOLS_TOKEN, QueryDevtoolsComponent, QueryDirective, QueryError, QueryFeatureType, QueryField, QueryForm, QueryFormSignals, QueryRuntimeErrorCode, QueryShortNamePipe, QueryStore, SERVER_ERROR_KIND, SERVER_VIOLATION_ERROR_KIND, SPEED_BUFFER_TIME_IN_MS, SearchQueryField, SortQueryField, StringArrayQueryField, V2BearerAuthProvider, V2Query, V2QueryClient, V2QueryCreator, addQueryContainerHandling, applyQueryFeatures, authExtractTokensResponseMissingAccessToken, authExtractTokensResponseMissingRefreshToken, authExtractTokensResponseNotObject, authProviderFeatureUsedMultipleTimes, booleanArrayQueryField, buildErrorMessage, buildQueryCacheKey, buildQueryString, buildRoute, buildTimestampFromSeconds, castQueryCreatorTypes, circularQueryDependency, circularQueryDependencyChecker, computeQueryAuthHeader, computeQueryBody, computeQueryHeaders, computeQueryMethod, computeQueryQueryParams, consumeSuppressQueryStackDevtools, contentfulGqlLikePaginationAdapter, createBaseQuery, createBaseQueryCreator, createBearerAuthProvider, createDeleteQuery, createExecuteFn, createGetQuery, createGqlExecuteFn, createGqlMutationViaGet, createGqlMutationViaPost, createGqlQuery, createGqlQueryCreator, createGqlQueryViaGet, createGqlQueryViaPost, createHttpRequest, createInfinityQueryConfig, createLegacyQueryCreator, createPagedQueryStack, createPatchQuery, createPersistentAuthFeature, createPostQuery, createPutQuery, createQuery, createQueryClient, createQueryCollection, createQueryCollectionSignal, createQueryCollectionSubject, createQueryContext, createQueryCreator, createQueryErrorResponse, createQueryFeature, createQueryForm, createQueryObject, createQueryRepository, createQuerySnapshotFn, createQueryStack, createSecureDeleteQuery, createSecureExecuteFactory, createSecureExecuteFn, createSecureGetQuery, createSecureGqlExecuteFn, createSecureGqlMutationViaGet, createSecureGqlMutationViaPost, createSecureGqlQuery, createSecureGqlQueryCreator, createSecureGqlQueryViaGet, createSecureGqlQueryViaPost, createSecurePatchQuery, createSecurePostQuery, createSecurePutQuery, createSecureQuery, createSecureQueryCreator, createTrackingFeature, createWebSocketClient, dateArrayQueryField, dateQueryField, decryptBearer, deepFreeze, def, detectContentTypeHeader, dynLikePaginationAdapter, effectComputed, emptyQueryArgs, ethletePaginationAdapter, executeUntilSettled, extractExpiresInSeconds, extractFormViolations, extractHtmlErrorMessage, extractQuery, fakePaginationAdapter, filterFailure, filterNull, filterQueryStates, filterSuccess, forEachHeader, getDefaultHeaders, getQueryClientName, getQueryFeatureUsage, getResponseUrl, ggLikePaginationAdapter, gql, gqlDataPropertyMissingInResponse, hasHeader, htmlErrorPayload, ignoreAutoRefresh, injectInfinityQueryResponseDelay, injectQueryContext, insertFrom, invalidBaseRouteError, invalidBodyError, invalidRouteError, invalidStateInsideSecureExecuteFactory, isAutoRefresh, isBasicAuthProvider, isBearerAuthProvider, isClassValidatorError, isCreateGqlQueryOptions, isCustomHeaderAuthProvider, isEmptyString, isGqlQueryConfig, isHtmlErrorPayload, isLegacyQuery, isNaN$1 as isNaN, isPageOutOfRangeError, isQuery, isQueryCollection, isQueryDevtoolsEnabled, isQueryErrorResponse, isQueryStateCancelled, isQueryStateFailure, isQueryStateLoading, isQueryStatePrepared, isQueryStateSuccess, isRequestError, isSymfonyError, isSymfonyFormViolationListError, isSymfonyListError, isSymfonyPagerfantaOutOfRangeError, legacyPrepareWithoutInjectionContext, mapToPaginated, mapViolationsToFormErrors, maybeExecute, mergeHeaders, nestedEffect, numberArrayQueryField, pagedQueryStackNextPageCalledWithoutPreviousPage, pagedQueryStackPageBiggerThanTotalPages, pagedQueryStackPreviousPageCalledButAlreadyAtFirstPage, paginatedEntityValueUpdater, parseAllXhrResponseHeaders, parseHttpErrorCodeToMessageDe, parseHttpErrorCodeToMessageEn, parseHttpErrorCodeToTitleDe, parseHttpErrorCodeToTitleEn, pathParamsMissingInRouteFunctionError, provideInfinityQueryResponseDelay, provideQueryClientForDevtools, provideQueryDevtools, queryArrayComputed, queryComputed, queryComputedTillTruthy, queryDevtoolsEntries, queryErrorMessage, queryErrorMessages, queryExecute, queryFeatureUsedMultipleTimes, queryField, querySequence, querySequenceAlreadyRunning, queryStackTotalQueriesAndExpectedQueriesMismatch, queryStackWithArgsUsed, queryStackWithResponseUpdateUsed, queryStateAlreadyHasKeyError, queryStateCannotTransformError, queryStateDoesNotContainKeyError, queryStateErrorSignal, queryStateLoadingSignal, queryStateResponseSignal, queryStateSignal, registerQueryDevtoolsEntry, removeFrom, request, resetExecuteState, resetPageOnError, searchQueryField, serializeBody, setupQueryDependencies, setupQueryExecuteState, setupQueryState, shouldAutoExecuteGqlQuery, shouldAutoExecuteQuery, shouldCacheQuery, shouldRetryRequest, silenceMissingWithArgsFeatureErrorUsedButWithArgsPresent, skipPaginationPageParamCalculator, sortQueryField, splitQueryConfig, stringArrayQueryField, stringifyQueryRoute, suppressNextQueryStackDevtools, switchQueryCollectionState, switchQueryState, takeUntilResponse, toQuerySignal, toQuerySubject, tokensNotAvailableInsideAuthAndExec, transformArrayResponse, transformExecStateToQueryState, transformGql, transformMethod, transformPaginatedResponse, transformToBoolean, transformToBooleanArray, transformToDate, transformToDateArray, transformToNumber, transformToNumberArray, transformToSort, transformToSortQueryParam, transformToString, transformToStringArray, uncacheableRequestHasAllowCacheParam, uncacheableRequestHasCacheKeyParam, v2BuildQueryCacheKey, v2ExtractExpiresInSeconds, v2ShouldCacheQuery, v2ShouldRetryRequest, validateWithQuery, validateWithV2Query, withArgs, withArgsQueryFeatureMissingButRouteIsFunction, withAuthenticationQuery, withAutoRefresh, withAutoRefreshUsedInManualQuery, withAutoRefreshUsedOnUnsupportedHttpMethod, withErrorHandling, withInactivityLogout, withLogging, withPageResetOnError, withPersistentAuth, withPolling, withPollingUsedOnUnsupportedHttpMethod, withRefreshQuery, withResponseUpdate, withSuccessHandling, withTokenExpirationWarning, withTokenRevocation, withTracking, wrapAsObservableSignal };
|
|
8929
9082
|
//# sourceMappingURL=ethlete-query.mjs.map
|