@ethlete/query 0.1.0-next.12 → 0.1.0-next.13
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/esm2020/lib/directives/query.directive.mjs +4 -3
- package/esm2020/lib/query/query.types.mjs +1 -1
- package/esm2020/lib/query/query.utils.mjs +15 -2
- package/fesm2015/ethlete-query.mjs +16 -2
- package/fesm2015/ethlete-query.mjs.map +1 -1
- package/fesm2020/ethlete-query.mjs +16 -2
- package/fesm2020/ethlete-query.mjs.map +1 -1
- package/lib/directives/query.directive.d.ts +4 -4
- package/lib/query/query.types.d.ts +13 -1
- package/lib/query/query.utils.d.ts +8 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethlete-query.mjs","sources":["../esm2020/lib/auth/custom-header-auth-provider.mjs","../esm2020/lib/auth/basic-auth-provider.mjs","../esm2020/lib/logger/logger.mjs","../esm2020/lib/request/request.util.mjs","../esm2020/lib/request/request.mjs","../esm2020/lib/auth/auth-provider.utils.mjs","../esm2020/lib/auth/bearer-auth-provider.mjs","../esm2020/lib/gql/gql.mjs","../esm2020/lib/query/query.utils.mjs","../esm2020/lib/query/query.mjs","../esm2020/lib/directives/query.directive.mjs","../esm2020/lib/infinite-query/infinity-query.mjs","../esm2020/lib/infinite-query/infinity-query.utils.mjs","../esm2020/lib/directives/infinity-query.directive.mjs","../esm2020/lib/directives/infinity-query-trigger.directive.mjs","../esm2020/lib/query-store/query-store.mjs","../esm2020/lib/query-client/query-client.utils.mjs","../esm2020/lib/query-client/query-client.mjs","../esm2020/lib/query-form/query-form.mjs","../esm2020/lib/query-form/query-form.utils.mjs","../esm2020/lib/utils/deep-freeze.util.mjs","../esm2020/lib/utils/def.util.mjs","../esm2020/ethlete-query.mjs"],"sourcesContent":["export class CustomHeaderAuthProvider {\n get header() {\n return { [this._config.name]: this._config.value };\n }\n constructor(_config) {\n this._config = _config;\n this.queryClient = null;\n }\n cleanUp() {\n // noop\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2F1dGgvY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFJRCxZQUFvQixPQUF1QztRQUF2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQztRQUYzRCxnQkFBVyxHQUF1QixJQUFJLENBQUM7SUFFdUIsQ0FBQztJQUUvRCxPQUFPO1FBQ0wsT0FBTztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IEF1dGhQcm92aWRlciwgQXV0aFByb3ZpZGVyQ3VzdG9tSGVhZGVyQ29uZmlnIH0gZnJvbSAnLi9hdXRoLXByb3ZpZGVyLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlYWRlckF1dGhQcm92aWRlciBpbXBsZW1lbnRzIEF1dGhQcm92aWRlciB7XG4gIGdldCBoZWFkZXIoKSB7XG4gICAgcmV0dXJuIHsgW3RoaXMuX2NvbmZpZy5uYW1lXTogdGhpcy5fY29uZmlnLnZhbHVlIH07XG4gIH1cblxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWc6IEF1dGhQcm92aWRlckN1c3RvbUhlYWRlckNvbmZpZykge31cblxuICBjbGVhblVwKCk6IHZvaWQge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuIl19","export class BasicAuthProvider {\n get header() {\n return { Authorization: `Basic ${this._basicAuthString}` };\n }\n get _basicAuthString() {\n return btoa(`${this._config.username}:${this._config.password}`);\n }\n constructor(_config) {\n this._config = _config;\n this.queryClient = null;\n }\n cleanUp() {\n // noop\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtYXV0aC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLE1BQU07UUFDUixPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUlELFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBRnBELGdCQUFXLEdBQXVCLElBQUksQ0FBQztJQUVnQixDQUFDO0lBRXhELE9BQU87UUFDTCxPQUFPO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgQXV0aFByb3ZpZGVyLCBBdXRoUHJvdmlkZXJCYXNpY0NvbmZpZyB9IGZyb20gJy4vYXV0aC1wcm92aWRlci50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0F1dGhQcm92aWRlciBpbXBsZW1lbnRzIEF1dGhQcm92aWRlciB7XG4gIGdldCBoZWFkZXIoKSB7XG4gICAgcmV0dXJuIHsgQXV0aG9yaXphdGlvbjogYEJhc2ljICR7dGhpcy5fYmFzaWNBdXRoU3RyaW5nfWAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9iYXNpY0F1dGhTdHJpbmcoKSB7XG4gICAgcmV0dXJuIGJ0b2EoYCR7dGhpcy5fY29uZmlnLnVzZXJuYW1lfToke3RoaXMuX2NvbmZpZy5wYXNzd29yZH1gKTtcbiAgfVxuXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogQXV0aFByb3ZpZGVyQmFzaWNDb25maWcpIHt9XG5cbiAgY2xlYW5VcCgpOiB2b2lkIHtcbiAgICAvLyBub29wXG4gIH1cbn1cbiJdfQ==","export const buildErrorMessage = (code, message) => `[@ethlete\\\\query:${code}] ${message}`;\nexport class QueryError extends Error {\n constructor(code, message, data) {\n super(buildErrorMessage(code, message));\n this.name = 'QueryError';\n this.data = data;\n }\n}\nexport const invalidBaseRouteError = (data) => new QueryError('001', 'The baseRoute must not end with a slash', data);\nexport const invalidRouteError = (data) => new QueryError('002', 'The route must start with a slash', data);\nexport const pathParamsMissingInRouteFunctionError = (data) => new QueryError('003', 'The route is a function but pathParams are missing', data);\nexport const queryStateAlreadyHasKeyError = (data) => new QueryError('004', 'The query state already contains the provided key', data);\nexport const queryStateDoesNotContainKeyError = (data) => new QueryError('005', 'The query state does not contain the provided key', data);\nexport const queryStateCannotTransformError = (data) => new QueryError('006', 'The query state cannot be transformed because it is not loading', data);\nexport const invalidBodyError = (data) => new QueryError('007', 'The body is not valid or upsupported', data);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2xvZ2dlci9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO0FBRTNHLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQUduQyxZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsSUFBYztRQUN2RCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUNyRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUseUNBQXlDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVySCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3JFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxvREFBb0QsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVwRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzVELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ2hFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzlELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxpRUFBaUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGJ1aWxkRXJyb3JNZXNzYWdlID0gKGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiBgW0BldGhsZXRlXFxcXHF1ZXJ5OiR7Y29kZX1dICR7bWVzc2FnZX1gO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGF0YT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoY29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSB7XG4gICAgc3VwZXIoYnVpbGRFcnJvck1lc3NhZ2UoY29kZSwgbWVzc2FnZSkpO1xuICAgIHRoaXMubmFtZSA9ICdRdWVyeUVycm9yJztcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkQmFzZVJvdXRlRXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwMScsICdUaGUgYmFzZVJvdXRlIG11c3Qgbm90IGVuZCB3aXRoIGEgc2xhc2gnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRSb3V0ZUVycm9yID0gKGRhdGE6IHVua25vd24pID0+IG5ldyBRdWVyeUVycm9yKCcwMDInLCAnVGhlIHJvdXRlIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoJywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBwYXRoUGFyYW1zTWlzc2luZ0luUm91dGVGdW5jdGlvbkVycm9yID0gKGRhdGE6IHVua25vd24pID0+XG4gIG5ldyBRdWVyeUVycm9yKCcwMDMnLCAnVGhlIHJvdXRlIGlzIGEgZnVuY3Rpb24gYnV0IHBhdGhQYXJhbXMgYXJlIG1pc3NpbmcnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVBbHJlYWR5SGFzS2V5RXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwNCcsICdUaGUgcXVlcnkgc3RhdGUgYWxyZWFkeSBjb250YWlucyB0aGUgcHJvdmlkZWQga2V5JywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeVN0YXRlRG9lc05vdENvbnRhaW5LZXlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA1JywgJ1RoZSBxdWVyeSBzdGF0ZSBkb2VzIG5vdCBjb250YWluIHRoZSBwcm92aWRlZCBrZXknLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVDYW5ub3RUcmFuc2Zvcm1FcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA2JywgJ1RoZSBxdWVyeSBzdGF0ZSBjYW5ub3QgYmUgdHJhbnNmb3JtZWQgYmVjYXVzZSBpdCBpcyBub3QgbG9hZGluZycsIGRhdGEpO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZEJvZHlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PiBuZXcgUXVlcnlFcnJvcignMDA3JywgJ1RoZSBib2R5IGlzIG5vdCB2YWxpZCBvciB1cHN1cHBvcnRlZCcsIGRhdGEpO1xuIl19","import { invalidBaseRouteError, invalidBodyError, invalidRouteError, pathParamsMissingInRouteFunctionError, } from '../logger';\nexport const isRequestError = (error) => error instanceof Object && 'code' in error && 'message' in error;\nexport const isAbortRequestError = (error) => isRequestError(error) && error.code === -1;\nexport const buildRoute = (options) => {\n if (options.base.endsWith('/')) {\n throw invalidBaseRouteError(options.base);\n }\n let route = null;\n if (typeof options.route === 'function') {\n if (!options.pathParams) {\n throw pathParamsMissingInRouteFunctionError(options.route({}));\n }\n route = options.route(options.pathParams);\n }\n else {\n route = options.route ?? null;\n }\n if (route && !route.startsWith('/')) {\n throw invalidRouteError(route);\n }\n if (options.queryParams) {\n const queryString = buildQueryString(options.queryParams);\n if (queryString) {\n route = route ? `${route}?${queryString}` : `/?${queryString}`;\n }\n }\n return `${options.base}${route ?? ''}`;\n};\nexport const buildQueryString = (params) => {\n const validParams = filterInvalidParams(params);\n const queryString = Object.keys(validParams)\n .map((key) => Array.isArray(validParams[key])\n ? buildQueryArrayString(key, validParams[key])\n : `${key}=${encodeURIComponent(validParams[key])}`)\n .join('&');\n return queryString || null;\n};\nexport const buildQueryArrayString = (key, array) => {\n const uriBrackets = encodeURIComponent('[]');\n return array\n .slice()\n .map((item) => `${key}${uriBrackets}=${encodeURIComponent(item)}`)\n .join('&');\n};\nexport const isFetchResponse = (response) => typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'statusText' in response &&\n 'json' in response &&\n typeof response['json'] === 'function';\nexport const filterInvalidParams = (params) => {\n const filteredParams = Object.entries(params)\n .map(([key, value]) => {\n if (!Array.isArray(value)) {\n return [key, value];\n }\n return [key, value.filter((v) => isParamValid(v))];\n })\n .filter(([, value]) => isParamValid(value))\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n return filteredParams;\n};\nexport const isParamValid = (primitive) => {\n if (primitive === undefined || primitive === null || primitive === '') {\n return false;\n }\n if (typeof primitive === 'string' && primitive.trim() === '') {\n return false;\n }\n if (typeof primitive === 'number' && isNaN(primitive)) {\n return false;\n }\n return true;\n};\nexport const extractExpiresInSeconds = (headers) => {\n const cacheControl = headers.get('cache-control');\n const age = headers.get('age');\n const expires = headers.get('expires');\n // In seconds\n let expiresIn = null;\n let maxAge = null;\n if (cacheControl?.includes('no-cache')) {\n return null;\n }\n if (cacheControl?.includes('max-age')) {\n maxAge = parseInt(cacheControl.split('max-age=')[1]);\n }\n else if (cacheControl?.includes('s-maxage')) {\n maxAge = parseInt(cacheControl.split('s-maxage=')[1]);\n }\n if (maxAge && age) {\n const ageSeconds = parseInt(age);\n expiresIn = maxAge - ageSeconds;\n }\n else if (expires) {\n // Used by some apis to tell the response will never expire\n // In this case we let the response expire after 1 hour\n if (expires === '-1') {\n expiresIn = 3600;\n }\n else {\n const expiresDate = new Date(expires);\n // check if the date is valid\n if (expiresDate.toString() !== 'Invalid Date') {\n expiresIn = Math.floor((expiresDate.getTime() - Date.now()) / 1000);\n }\n }\n }\n return expiresIn;\n};\nexport const buildTimestampFromSeconds = (seconds) => {\n if (seconds === null) {\n return null;\n }\n return new Date(Date.now() + seconds * 1000).getTime();\n};\nexport const buildRequestError = async (error, route, requestInit) => {\n if (error instanceof DOMException && error.code === error.ABORT_ERR) {\n const err = {\n code: -1,\n message: 'Request aborted',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (error instanceof SyntaxError) {\n const err = {\n code: -3,\n message: 'Syntax error',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (error instanceof Error) {\n const err = {\n code: -2,\n message: `${error.name}: ${error.message}`,\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (isFetchResponse(error)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let detail = null;\n try {\n detail = await error.json();\n }\n catch {\n // noop\n }\n if (!detail) {\n try {\n detail = await error.text();\n }\n catch {\n // noop\n }\n }\n const err = {\n code: error.status,\n message: error.statusText,\n detail,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n const err = {\n code: 0,\n message: 'Unknown error',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n};\nexport const buildBody = (body) => {\n if (body === undefined || body === null) {\n return null;\n }\n if (typeof body === 'string') {\n return body;\n }\n if (typeof body === 'object') {\n return JSON.stringify(body);\n }\n if (body instanceof FormData) {\n return body;\n }\n throw invalidBodyError(body);\n};\nexport const transformMethod = (method) => {\n if (method === 'GQL_QUERY' || method === 'GQL_MUTATE') {\n return 'POST';\n }\n return method;\n};\nexport const guessContentType = (body) => {\n if (body === null || body === undefined) {\n return null;\n }\n if (typeof body === 'string') {\n return 'text/plain';\n }\n if (body instanceof FormData) {\n return 'multipart/form-data';\n }\n if (typeof body === 'object') {\n return 'application/json';\n }\n return null;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3JlcXVlc3QvcmVxdWVzdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixxQ0FBcUMsR0FDdEMsTUFBTSxXQUFXLENBQUM7QUFHbkIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUF5QixFQUFFLENBQ3RFLEtBQUssWUFBWSxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBYyxFQUF5QixFQUFFLENBQzNFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BSzFCLEVBQUUsRUFBRTtJQUNILElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDM0M7SUFFRCxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBRWhDLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN2QixNQUFNLHFDQUFxQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNoRTtRQUVELEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMzQztTQUFNO1FBQ0wsS0FBSyxHQUFH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SUFBSSxZQUFZLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUNoRCxJQUFJLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxLQUFLLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRTtJQUNoRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxZQUFZLENBQUM7S0FDckI7SUFFRCxJQUFJLElBQUksWUFBWSxRQUFRLEVBQUU7UUFDNUIsT0FBTyxxQkFBcUIsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sa0JBQWtCLENBQUM7S0FDM0I7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGludmFsaWRCYXNlUm91dGVFcnJvcixcbiAgaW52YWxpZEJvZHlFcnJvcixcbiAgaW52YWxpZFJvdXRlRXJyb3IsXG4gIHBhdGhQYXJhbXNNaXNzaW5nSW5Sb3V0ZUZ1bmN0aW9uRXJyb3IsXG59IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBNZXRob2QsIFBhcmFtQXJyYXksIFBhcmFtcywgUXVlcnlQYXJhbXMsIFJlcXVlc3RFcnJvciwgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlIH0gZnJvbSAnLi9yZXF1ZXN0LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzUmVxdWVzdEVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgUmVxdWVzdEVycm9yID0+XG4gIGVycm9yIGluc3RhbmNlb2YgT2JqZWN0ICYmICdjb2RlJyBpbiBlcnJvciAmJiAnbWVzc2FnZScgaW4gZXJyb3I7XG5cbmV4cG9ydCBjb25zdCBpc0Fib3J0UmVxdWVzdEVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgUmVxdWVzdEVycm9yID0+XG4gIGlzUmVxdWVzdEVycm9yKGVycm9yKSAmJiBlcnJvci5jb2RlID09PSAtMTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUm91dGUgPSAob3B0aW9uczoge1xuICBiYXNlOiBzdHJpbmc7XG4gIHJvdXRlOiAoKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBzdHJpbmcpIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF0aFBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBxdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zO1xufSkgPT4ge1xuICBpZiAob3B0aW9ucy5iYXNlLmVuZHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBpbnZhbGlkQmFzZVJvdXRlRXJyb3Iob3B0aW9ucy5iYXNlKTtcbiAgfVxuXG4gIGxldCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnJvdXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhdGhQYXJhbXMpIHtcbiAgICAgIHRocm93IHBhdGhQYXJhbXNNaXNzaW5nSW5Sb3V0ZUZ1bmN0aW9uRXJyb3Iob3B0aW9ucy5yb3V0ZSh7fSkpO1xuICAgIH1cblxuICAgIHJvdXRlID0gb3B0aW9ucy5yb3V0ZShvcHRpb25zLnBhdGhQYXJhbXMpO1xuICB9IGVsc2Uge1xuICAgIHJvdXRlID0gb3B0aW9ucy5yb3V0ZSA/PyBudWxsO1xuICB9XG5cbiAgaWYgKHJvdXRlICYmICFyb3V0ZS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBpbnZhbGlkUm91dGVFcnJvcihyb3V0ZSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5xdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYnVpbGRRdWVyeVN0cmluZyhvcHRpb25zLnF1ZXJ5UGFyYW1zKTtcblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgcm91dGUgPSByb3V0ZSA/IGAke3JvdXRlfT8ke3F1ZXJ5U3RyaW5nfWAgOiBgLz8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGAke29wdGlvbnMuYmFzZX0ke3JvdXRlID8/ICcnfWA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRRdWVyeVN0cmluZyA9IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKSA9PiB7XG4gIGNvbnN0IHZhbGlkUGFyYW1zID0gZmlsdGVySW52YWxpZFBhcmFtcyhwYXJhbXMpO1xuXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmtleXModmFsaWRQYXJhbXMpXG4gICAgLm1hcCgoa2V5KSA9PlxuICAgICAgQXJyYXkuaXNBcnJheSh2YWxpZFBhcmFtc1trZXldKVxuICAgICAgICA/IGJ1aWxkUXVlcnlBcnJheVN0cmluZyhrZXksIHZhbGlkUGFyYW1zW2tleV0gYXMgUGFyYW1BcnJheSlcbiAgICAgICAgOiBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbGlkUGFyYW1zW2tleV0gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YCxcbiAgICApXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gcXVlcnlTdHJpbmcgfHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcgPSAoa2V5OiBzdHJpbmcsIGFycmF5OiBQYXJhbUFycmF5KSA9PiB7XG4gIGNvbnN0IHVyaUJyYWNrZXRzID0gZW5jb2RlVVJJQ29tcG9uZW50KCdbXScpO1xuXG4gIHJldHVybiBhcnJheVxuICAgIC5zbGljZSgpXG4gICAgLm1hcCgoaXRlbSkgPT4gYCR7a2V5fSR7dXJpQnJhY2tldHN9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGl0ZW0gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YClcbiAgICAuam9pbignJicpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRmV0Y2hSZXNwb25zZSA9IChyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIFJlc3BvbnNlID0+XG4gIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiZcbiAgcmVzcG9uc2UgIT09IG51bGwgJiZcbiAgJ3N0YXR1cycgaW4gcmVzcG9uc2UgJiZcbiAgJ3N0YXR1c1RleHQnIGluIHJlc3BvbnNlICYmXG4gICdqc29uJyBpbiByZXNwb25zZSAmJlxuICB0eXBlb2YgKHJlc3BvbnNlIGFzIFJlc3BvbnNlKVsnanNvbiddID09PSAnZnVuY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgZmlsdGVySW52YWxpZFBhcmFtcyA9IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKSA9PiB7XG4gIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQYXJhbXMgPSBPYmplY3QuZW50cmllcyhwYXJhbXMpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBba2V5LCB2YWx1ZS5maWx0ZXIoKHYpID0+IGlzUGFyYW1WYWxpZCh2KSldO1xuICAgIH0pXG4gICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiBpc1BhcmFtVmFsaWQodmFsdWUgYXMgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlKSlcbiAgICAucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5IGFzIHN0cmluZ106IHZhbHVlIH0pLCB7fSk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkUGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGFyYW1WYWxpZCA9IChwcmltaXRpdmU6IFVuZmlsdGVyZWRQYXJhbVByaW1pdGl2ZSkgPT4ge1xuICBpZiAocHJpbWl0aXZlID09PSB1bmRlZmluZWQgfHwgcHJpbWl0aXZlID09PSBudWxsIHx8IHByaW1pdGl2ZSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ3N0cmluZycgJiYgcHJpbWl0aXZlLnRyaW0oKSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ251bWJlcicgJiYgaXNOYU4ocHJpbWl0aXZlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFeHBpcmVzSW5TZWNvbmRzID0gKGhlYWRlcnM6IEhlYWRlcnMpID0+IHtcbiAgY29uc3QgY2FjaGVDb250cm9sID0gaGVhZGVycy5nZXQoJ2NhY2hlLWNvbnRyb2wnKTtcbiAgY29uc3QgYWdlID0gaGVhZGVycy5nZXQoJ2FnZScpO1xuICBjb25zdCBleHBpcmVzID0gaGVhZGVycy5nZXQoJ2V4cGlyZXMnKTtcblxuICAvLyBJbiBzZWNvbmRzXG4gIGxldCBleHBpcmVzSW46IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4QWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygnbm8tY2FjaGUnKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ21heC1hZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgnbWF4LWFnZT0nKVsxXSk7XG4gIH0gZWxzZSBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygncy1tYXhhZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgncy1tYXhhZ2U9JylbMV0pO1xuICB9XG5cbiAgaWYgKG1heEFnZSAmJiBhZ2UpIHtcbiAgICBjb25zdCBhZ2VTZWNvbmRzID0gcGFyc2VJbnQoYWdlKTtcblxuICAgIGV4cGlyZXNJbiA9IG1heEFnZSAtIGFnZVNlY29uZHM7XG4gIH0gZWxzZSBpZiAoZXhwaXJlcykge1xuICAgIC8vIFVzZWQgYnkgc29tZSBhcGlzIHRvIHRlbGwgdGhlIHJlc3BvbnNlIHdpbGwgbmV2ZXIgZXhwaXJlXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGxldCB0aGUgcmVzcG9uc2UgZXhwaXJlIGFmdGVyIDEgaG91clxuICAgIGlmIChleHBpcmVzID09PSAnLTEnKSB7XG4gICAgICBleHBpcmVzSW4gPSAzNjAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleHBpcmVzRGF0ZSA9IG5ldyBEYXRlKGV4cGlyZXMpO1xuXG4gICAgICAvLyBjaGVjayBpZiB0aGUgZGF0ZSBpcyB2YWxpZFxuICAgICAgaWYgKGV4cGlyZXNEYXRlLnRvU3RyaW5nKCkgIT09ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgICAgIGV4cGlyZXNJbiA9IE1hdGguZmxvb3IoKGV4cGlyZXNEYXRlLmdldFRpbWUoKSAtIERhdGUubm93KCkpIC8gMTAwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4cGlyZXNJbjtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzID0gKHNlY29uZHM6IG51bWJlciB8IG51bGwpID0+IHtcbiAgaWYgKHNlY29uZHMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc2Vjb25kcyAqIDEwMDApLmdldFRpbWUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFJlcXVlc3RFcnJvciA9IGFzeW5jIDxFcnJvclJlc3BvbnNlID0gdW5rbm93bj4oXG4gIGVycm9yOiB1bmtub3duLFxuICByb3V0ZTogc3RyaW5nLFxuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0LFxuKSA9PiB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnJvci5jb2RlID09PSBlcnJvci5BQk9SVF9FUlIpIHtcbiAgICBjb25zdCBlcnI6IFJlcXVlc3RFcnJvcjxudWxsPiA9IHtcbiAgICAgIGNvZGU6IC0xLFxuICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgYWJvcnRlZCcsXG4gICAgICBkZXRhaWw6IG51bGwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgY29uc3QgZXJyOiBSZXF1ZXN0RXJyb3I8bnVsbD4gPSB7XG4gICAgICBjb2RlOiAtMyxcbiAgICAgIG1lc3NhZ2U6ICdTeW50YXggZXJyb3InLFxuICAgICAgZGV0YWlsOiBudWxsLFxuICAgICAgcmF3OiBlcnJvcixcbiAgICAgIHJvdXRlLFxuICAgICAgcmVxdWVzdEluaXQsXG4gICAgfTtcblxuICAgIHJldHVybiBlcnI7XG4gIH1cblxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIGNvbnN0IGVycjogUmVxdWVzdEVycm9yPG51bGw+ID0ge1xuICAgICAgY29kZTogLTIsXG4gICAgICBtZXNzYWdlOiBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICBkZXRhaWw6IG51bGwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGlmIChpc0ZldGNoUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBsZXQgZGV0YWlsOiBhbnkgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRldGFpbCA9IGF3YWl0IGVycm9yLmpzb24oKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICBpZiAoIWRldGFpbCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZGV0YWlsID0gYXdhaXQgZXJyb3IudGV4dCgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIG5vb3BcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlcnI6IFJlcXVlc3RFcnJvcjxFcnJvclJlc3BvbnNlPiA9IHtcbiAgICAgIGNvZGU6IGVycm9yLnN0YXR1cyxcbiAgICAgIG1lc3NhZ2U6IGVycm9yLnN0YXR1c1RleHQsXG4gICAgICBkZXRhaWwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGNvbnN0IGVycjogUmVxdWVzdEVycm9yPG51bGw+ID0ge1xuICAgIGNvZGU6IDAsXG4gICAgbWVzc2FnZTogJ1Vua25vd24gZXJyb3InLFxuICAgIGRldGFpbDogbnVsbCxcbiAgICByYXc6IGVycm9yLFxuICAgIHJvdXRlLFxuICAgIHJlcXVlc3RJbml0LFxuICB9O1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCb2R5ID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICB9XG5cbiAgaWYgKGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgdGhyb3cgaW52YWxpZEJvZHlFcnJvcihib2R5KTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZXRob2QgPSAobWV0aG9kOiBNZXRob2QpID0+IHtcbiAgaWYgKG1ldGhvZCA9PT0gJ0dRTF9RVUVSWScgfHwgbWV0aG9kID09PSAnR1FMX01VVEFURScpIHtcbiAgICByZXR1cm4gJ1BPU1QnO1xuICB9XG5cbiAgcmV0dXJuIG1ldGhvZDtcbn07XG5cbmV4cG9ydCBjb25zdCBndWVzc0NvbnRlbnRUeXBlID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuICd0ZXh0L3BsYWluJztcbiAgfVxuXG4gIGlmIChib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICByZXR1cm4gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBib2R5ID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnYXBwbGljYXRpb24vanNvbic7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG4iXX0=","import { buildRequestError, buildTimestampFromSeconds, extractExpiresInSeconds } from './request.util';\nexport const request = async (options) => {\n try {\n const response = await fetch(options.route, options.init);\n if (!response.ok) {\n throw response;\n }\n const isJsonResponse = response.headers.get('Content-Type')?.includes('application/json');\n const isTextResponse = response.headers.get('Content-Type')?.includes('text/plain');\n const data = (isJsonResponse ? await response.json() : isTextResponse ? await response.text() : null);\n const expiresInSeconds = options.cacheAdapter\n ? options.cacheAdapter(response.headers)\n : extractExpiresInSeconds(response.headers);\n const expiresInTimestamp = buildTimestampFromSeconds(expiresInSeconds);\n return { data, expiresInTimestamp };\n }\n catch (error) {\n throw await buildRequestError(error, options.route, options.init);\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9yZXF1ZXN0L3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkcsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBc0IsT0FJakQsRUFBRSxFQUFFO0lBQ0gsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sUUFBUSxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBGLE1BQU0sSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFhLENBQUM7UUFFbEgsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsWUFBWTtZQUMzQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztLQUNyQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsTUFBTSxNQUFNLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuRTtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlQWRhcHRlckZuIH0gZnJvbSAnLi9yZXF1ZXN0LnR5cGVzJztcbmltcG9ydCB7IGJ1aWxkUmVxdWVzdEVycm9yLCBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzLCBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyB9IGZyb20gJy4vcmVxdWVzdC51dGlsJztcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3QgPSBhc3luYyA8UmVzcG9uc2UgPSB1bmtub3duPihvcHRpb25zOiB7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGluaXQ/OiBSZXF1ZXN0SW5pdDtcbiAgY2FjaGVBZGFwdGVyPzogQ2FjaGVBZGFwdGVyRm47XG59KSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChvcHRpb25zLnJvdXRlLCBvcHRpb25zLmluaXQpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaXNKc29uUmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyk/LmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgY29uc3QgaXNUZXh0UmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyk/LmluY2x1ZGVzKCd0ZXh0L3BsYWluJyk7XG5cbiAgICBjb25zdCBkYXRhID0gKGlzSnNvblJlc3BvbnNlID8gYXdhaXQgcmVzcG9uc2UuanNvbigpIDogaXNUZXh0UmVzcG9uc2UgPyBhd2FpdCByZXNwb25zZS50ZXh0KCkgOiBudWxsKSBhcyBSZXNwb25zZTtcblxuICAgIGNvbnN0IGV4cGlyZXNJblNlY29uZHMgPSBvcHRpb25zLmNhY2hlQWRhcHRlclxuICAgICAgPyBvcHRpb25zLmNhY2hlQWRhcHRlcihyZXNwb25zZS5oZWFkZXJzKVxuICAgICAgOiBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyhyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgIGNvbnN0IGV4cGlyZXNJblRpbWVzdGFtcCA9IGJ1aWxkVGltZXN0YW1wRnJvbVNlY29uZHMoZXhwaXJlc0luU2Vjb25kcyk7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcmVzSW5UaW1lc3RhbXAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBhd2FpdCBidWlsZFJlcXVlc3RFcnJvcihlcnJvciwgb3B0aW9ucy5yb3V0ZSwgb3B0aW9ucy5pbml0KTtcbiAgfVxufTtcbiJdfQ==","import { BasicAuthProvider } from './basic-auth-provider';\nimport { BearerAuthProvider } from './bearer-auth-provider';\nimport { CustomHeaderAuthProvider } from './custom-header-auth-provider';\nexport const isBasicAuthProvider = (authProvider) => authProvider instanceof BasicAuthProvider;\nexport const isBearerAuthProvider = (authProvider) => authProvider instanceof BearerAuthProvider;\nexport const isCustomHeaderAuthProvider = (authProvider) => authProvider instanceof CustomHeaderAuthProvider;\nexport const decryptBearer = (token) => {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''));\n return JSON.parse(jsonPayload);\n }\n catch (error) {\n console.error(`Invalid bearer token: ${token}`, error);\n return null;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wcm92aWRlci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9hdXRoL2F1dGgtcHJvdmlkZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUEwQixFQUFxQyxFQUFFLENBQ25HLFlBQVksWUFBWSxpQkFBaUIsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFlBQTBCLEVBQXNDLEVBQUUsQ0FDckcsWUFBWSxZQUFZLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsWUFBMEIsRUFBNEMsRUFBRSxDQUNqSCxZQUFZLFlBQVksd0JBQXdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQW1DLEtBQWEsRUFBRSxFQUFFO0lBQy9FLElBQUk7UUFDRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDVCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQVcsQ0FBQztLQUMxQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gJy4vYXV0aC1wcm92aWRlci50eXBlcyc7XG5pbXBvcnQgeyBCYXNpY0F1dGhQcm92aWRlciB9IGZyb20gJy4vYmFzaWMtYXV0aC1wcm92aWRlcic7XG5pbXBvcnQgeyBCZWFyZXJBdXRoUHJvdmlkZXIgfSBmcm9tICcuL2JlYXJlci1hdXRoLXByb3ZpZGVyJztcbmltcG9ydCB7IEN1c3RvbUhlYWRlckF1dGhQcm92aWRlciB9IGZyb20gJy4vY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyJztcblxuZXhwb3J0IGNvbnN0IGlzQmFzaWNBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBhdXRoUHJvdmlkZXIgaXMgQmFzaWNBdXRoUHJvdmlkZXIgPT5cbiAgYXV0aFByb3ZpZGVyIGluc3RhbmNlb2YgQmFzaWNBdXRoUHJvdmlkZXI7XG5cbmV4cG9ydCBjb25zdCBpc0JlYXJlckF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcik6IGF1dGhQcm92aWRlciBpcyBCZWFyZXJBdXRoUHJvdmlkZXIgPT5cbiAgYXV0aFByb3ZpZGVyIGluc3RhbmNlb2YgQmVhcmVyQXV0aFByb3ZpZGVyO1xuXG5leHBvcnQgY29uc3QgaXNDdXN0b21IZWFkZXJBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBhdXRoUHJvdmlkZXIgaXMgQ3VzdG9tSGVhZGVyQXV0aFByb3ZpZGVyID0+XG4gIGF1dGhQcm92aWRlciBpbnN0YW5jZW9mIEN1c3RvbUhlYWRlckF1dGhQcm92aWRlcjtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHRCZWFyZXIgPSA8UmVzdWx0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHRva2VuOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBiYXNlNjRVcmwgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFVybC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuICAgIGNvbnN0IGpzb25QYXlsb2FkID0gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgICAgYXRvYihiYXNlNjQpXG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoYykgPT4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikpXG4gICAgICAgIC5qb2luKCcnKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblBheWxvYWQpIGFzIFJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGJlYXJlciB0b2tlbjogJHt0b2tlbn1gLCBlcnJvcik7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcbiJdfQ==","import { Subject, timer } from 'rxjs';\nimport { buildBody, buildRequestError, buildRoute, request } from '../request';\nimport { decryptBearer } from './auth-provider.utils';\nexport class BearerAuthProvider {\n get header() {\n return { Authorization: `Bearer ${this._token}` };\n }\n constructor(_config) {\n this._config = _config;\n this._refreshToken = null;\n this._refreshTimerSubscription = null;\n this._failureCount = 0;\n this.queryClient = null;\n this.onRefreshInitiation$ = new Subject();\n this.onRefreshSuccess$ = new Subject();\n this.onRefreshFailure$ = new Subject();\n this._token = _config.token;\n this._refreshToken = _config.refreshConfig?.token ?? null;\n if (this._config.refreshConfig) {\n this._setupRefresh(this._config.refreshConfig);\n }\n }\n cleanUp() {\n this._refreshTimerSubscription?.unsubscribe();\n this._refreshTimerSubscription = null;\n }\n _setupRefresh(config) {\n this.cleanUp();\n const bearer = decryptBearer(this._token);\n if (!bearer) {\n return;\n }\n const expiresInPropertyName = config.expiresInPropertyName || 'exp';\n const expiresIn = bearer[expiresInPropertyName];\n const fiveMinutes = 5 * 60 * 1000;\n const refreshBuffer = config.refreshBuffer ?? fiveMinutes;\n if (expiresIn === undefined) {\n throw new Error(`Bearer token does not contain an '${expiresInPropertyName}' property`);\n }\n const remainingTime = new Date(expiresIn * 1000).getTime() - refreshBuffer - new Date().getTime();\n const strategy = config.strategy ?? \"beforeExpiration\" /* AuthBearerRefreshStrategy.BeforeExpiration */;\n switch (strategy) {\n case \"beforeExpiration\" /* AuthBearerRefreshStrategy.BeforeExpiration */:\n this._refreshTimerSubscription = timer(remainingTime).subscribe(() => this._refresh(config));\n break;\n }\n }\n async _refresh(config) {\n if (!this._refreshToken) {\n throw new Error('No refresh token found');\n }\n if (!this.queryClient) {\n throw new Error('Query client instance is null');\n }\n const { method, route, requestAdapter, responseAdapter, paramLocation } = config;\n const data = requestAdapter?.(this._refreshToken) ?? { refreshToken: this._refreshToken };\n const fullRoute = buildRoute({\n base: this.queryClient.config.baseRoute,\n route,\n queryParams: paramLocation === 'query' ? data : undefined,\n });\n const requestInit = { body: paramLocation === 'body' ? buildBody(data) : undefined, method };\n this.onRefreshInitiation$.next();\n try {\n const result = await request({\n route: fullRoute,\n init: requestInit,\n });\n const tokens = responseAdapter ? responseAdapter(result.data) : result.data;\n if (!tokens.token) {\n throw new Error('Token not found in response');\n }\n if (!tokens.refreshToken) {\n throw new Error('Refresh token not found in response');\n }\n this._token = tokens.token;\n this._refreshToken = tokens.refreshToken;\n this.onRefreshSuccess$.next(tokens);\n this._setupRefresh(config);\n this._failureCount = 0;\n }\n catch (error) {\n if (error instanceof Error) {\n this.onRefreshFailure$.next(await buildRequestError(error, fullRoute, requestInit));\n }\n else {\n this.onRefreshFailure$.next(error);\n }\n this._failureCount++;\n if (this._failureCount <= (config.maxRefreshAttempts ?? 3)) {\n this._setupRefresh(config);\n }\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvYXV0aC9iZWFyZXItYXV0aC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQVE3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixJQUFJLE1BQU07UUFDUixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQVFELFlBQW9CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBZDdDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUNwQyw4QkFBeUIsR0FBd0IsSUFBSSxDQUFDO1FBQ3RELGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBTTFCLGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUV2Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBRzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxD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c2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgYnVpbGRCb2R5LCBidWlsZFJlcXVlc3RFcnJvciwgYnVpbGRSb3V0ZSwgcmVxdWVzdCwgUmVxdWVzdEVycm9yIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQge1xuICBBdXRoQmVhcmVyUmVmcmVzaFN0cmF0ZWd5LFxuICBBdXRoUHJvdmlkZXIsXG4gIEF1dGhQcm92aWRlckJlYXJlckNvbmZpZyxcbiAgQmVhcmVyUmVmcmVzaENvbmZpZyxcbiAgVG9rZW5SZXNwb25zZSxcbn0gZnJvbSAnLi9hdXRoLXByb3ZpZGVyLnR5cGVzJztcbmltcG9ydCB7IGRlY3J5cHRCZWFyZXIgfSBmcm9tICcuL2F1dGgtcHJvdmlkZXIudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQmVhcmVyQXV0aFByb3ZpZGVyIGltcGxlbWVudHMgQXV0aFByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZmFpbHVyZUNvdW50ID0gMDtcblxuICBnZXQgaGVhZGVyKCkge1xuICAgIHJldHVybiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLl90b2tlbn1gIH07XG4gIH1cblxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBvblJlZnJlc2hJbml0aWF0aW9uJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIG9uUmVmcmVzaFN1Y2Nlc3MkID0gbmV3IFN1YmplY3Q8VG9rZW5SZXNwb25zZT4oKTtcbiAgb25SZWZyZXNoRmFpbHVyZSQgPSBuZXcgU3ViamVjdDxSZXF1ZXN0RXJyb3I+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29uZmlnOiBBdXRoUHJvdmlkZXJCZWFyZXJDb25maWcpIHtcbiAgICB0aGlzLl90b2tlbiA9IF9jb25maWcudG9rZW47XG4gICAgdGhpcy5fcmVmcmVzaFRva2VuID0gX2NvbmZpZy5yZWZyZXNoQ29uZmlnPy50b2tlbiA/PyBudWxsO1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5yZWZyZXNoQ29uZmlnKSB7XG4gICAgICB0aGlzLl9zZXR1cFJlZnJlc2godGhpcy5fY29uZmlnLnJlZnJlc2hDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFuVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3JlZnJlc2hUaW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cFJlZnJlc2goY29uZmlnOiBCZWFyZXJSZWZyZXNoQ29uZmlnKSB7XG4gICAgdGhpcy5jbGVhblVwKCk7XG5cbiAgICBjb25zdCBiZWFyZXIgPSBkZWNyeXB0QmVhcmVyKHRoaXMuX3Rva2VuKTtcblxuICAgIGlmICghYmVhcmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhwaXJlc0luUHJvcGVydHlOYW1lID0gY29uZmlnLmV4cGlyZXNJblByb3BlcnR5TmFtZSB8fCAnZXhwJztcbiAgICBjb25zdCBleHBpcmVzSW4gPSBiZWFyZXJbZXhwaXJlc0luUHJvcGVydHlOYW1lXSBhcyBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZml2ZU1pbnV0ZXMgPSA1ICogNjAgKiAxMDAwO1xuICAgIGNvbnN0IHJlZnJlc2hCdWZmZXIgPSBjb25maWcucmVmcmVzaEJ1ZmZlciA/PyBmaXZlTWludXRlcztcblxuICAgIGlmIChleHBpcmVzSW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCZWFyZXIgdG9rZW4gZG9lcyBub3QgY29udGFpbiBhbiAnJHtleHBpcmVzSW5Qcm9wZXJ0eU5hbWV9JyBwcm9wZXJ0eWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSBuZXcgRGF0ZShleHBpcmVzSW4gKiAxMDAwKS5nZXRUaW1lKCkgLSByZWZyZXNoQnVmZmVyIC0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICBjb25zdCBzdHJhdGVneSA9IGNvbmZpZy5zdHJhdGVneSA/PyBBdXRoQmVhcmVyUmVmcmVzaFN0cmF0ZWd5LkJlZm9yZUV4cGlyYXRpb247XG5cbiAgICBzd2l0Y2ggKHN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIEF1dGhCZWFyZXJSZWZyZXNoU3RyYXRlZ3kuQmVmb3JlRXhwaXJhdGlvbjpcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uID0gdGltZXIocmVtYWluaW5nVGltZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlZnJlc2goY29uZmlnKSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3JlZnJlc2goY29uZmlnOiBCZWFyZXJSZWZyZXNoQ29uZmlnKSB7XG4gICAgaWYgKCF0aGlzLl9yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVmcmVzaCB0b2tlbiBmb3VuZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5xdWVyeUNsaWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdRdWVyeSBjbGllbnQgaW5zdGFuY2UgaXMgbnVsbCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbWV0aG9kLCByb3V0ZSwgcmVxdWVzdEFkYXB0ZXIsIHJlc3BvbnNlQWRhcHRlciwgcGFyYW1Mb2NhdGlvbiB9ID0gY29uZmlnO1xuXG4gICAgY29uc3QgZGF0YSA9IHJlcXVlc3RBZGFwdGVyPy4odGhpcy5fcmVmcmVzaFRva2VuKSA/PyB7IHJlZnJlc2hUb2tlbjogdGhpcy5fcmVmcmVzaFRva2VuIH07XG5cbiAgICBjb25zdCBmdWxsUm91dGUgPSBidWlsZFJvdXRlKHtcbiAgICAgIGJhc2U6IHRoaXMucXVlcnlDbGllbnQuY29uZmlnLmJhc2VSb3V0ZSxcbiAgICAgIHJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtTG9jYXRpb24gPT09ICdxdWVyeScgPyBkYXRhIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0ID0geyBib2R5OiBwYXJhbUxvY2F0aW9uID09PSAnYm9keScgPyBidWlsZEJvZHkoZGF0YSkgOiB1bmRlZmluZWQsIG1ldGhvZCB9O1xuXG4gICAgdGhpcy5vblJlZnJlc2hJbml0aWF0aW9uJC5uZXh0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdCh7XG4gICAgICAgIHJvdXRlOiBmdWxsUm91dGUsXG4gICAgICAgIGluaXQ6IHJlcXVlc3RJbml0LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHRva2VucyA9IHJlc3BvbnNlQWRhcHRlciA/IHJlc3BvbnNlQWRhcHRlcihyZXN1bHQuZGF0YSkgOiAocmVzdWx0LmRhdGEgYXMgVG9rZW5SZXNwb25zZSk7XG5cbiAgICAgIGlmICghdG9rZW5zLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVG9rZW4gbm90IGZvdW5kIGluIHJlc3BvbnNlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdG9rZW5zLnJlZnJlc2hUb2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZnJlc2ggdG9rZW4gbm90IGZvdW5kIGluIHJlc3BvbnNlJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Rva2VuID0gdG9rZW5zLnRva2VuO1xuICAgICAgdGhpcy5fcmVmcmVzaFRva2VuID0gdG9rZW5zLnJlZnJlc2hUb2tlbjtcblxuICAgICAgdGhpcy5vblJlZnJlc2hTdWNjZXNzJC5uZXh0KHRva2Vucyk7XG5cbiAgICAgIHRoaXMuX3NldHVwUmVmcmVzaChjb25maWcpO1xuXG4gICAgICB0aGlzLl9mYWlsdXJlQ291bnQgPSAwO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aGlzLm9uUmVmcmVzaEZhaWx1cmUkLm5leHQoYXdhaXQgYnVpbGRSZXF1ZXN0RXJyb3IoZXJyb3IsIGZ1bGxSb3V0ZSwgcmVxdWVzdEluaXQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25SZWZyZXNoRmFpbHVyZSQubmV4dChlcnJvciBhcyBSZXF1ZXN0RXJyb3IpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9mYWlsdXJlQ291bnQrKztcblxuICAgICAgaWYgKHRoaXMuX2ZhaWx1cmVDb3VudCA8PSAoY29uZmlnLm1heFJlZnJlc2hBdHRlbXB0cyA/PyAzKSkge1xuICAgICAgICB0aGlzLl9zZXR1cFJlZnJlc2goY29uZmlnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==","const getOpName = /(query|mutation) ?([\\w\\d-_]+)? ?\\(.*?\\)? \\{/;\nexport const transformGql = (str) => {\n str = Array.isArray(str) ? str.join('') : str;\n const name = getOpName.exec(str);\n return function (variables) {\n const data = { query: str };\n if (variables)\n data['variables'] = JSON.stringify(variables);\n if (name && name.length) {\n const operationName = name[2];\n if (operationName)\n data['operationName'] = name[2];\n }\n return JSON.stringify(data);\n };\n};\nexport const gql = (strings, ...values) => {\n const str = strings.reduce((acc, cur, i) => {\n return acc + cur + (values[i] || '');\n }, '');\n return str;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2dxbC9ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxTQUFTLEdBQUcsNkNBQTZDLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDMUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sVUFBVSxTQUFxRDtRQUNwRSxNQUFNLElBQUksR0FBNEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDckQsSUFBSSxTQUFTO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxhQUFhO2dCQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBNkIsRUFBRSxHQUFHLE1BQWdCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxPQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1AsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRPcE5hbWUgPSAvKHF1ZXJ5fG11dGF0aW9uKSA/KFtcXHdcXGQtX10rKT8gP1xcKC4qP1xcKT8gXFx7LztcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUdxbCA9IChzdHI6IHN0cmluZykgPT4ge1xuICBzdHIgPSBBcnJheS5pc0FycmF5KHN0cikgPyBzdHIuam9pbignJykgOiBzdHI7XG4gIGNvbnN0IG5hbWUgPSBnZXRPcE5hbWUuZXhlYyhzdHIpO1xuICByZXR1cm4gZnVuY3Rpb24gKHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IHF1ZXJ5OiBzdHIgfTtcbiAgICBpZiAodmFyaWFibGVzKSBkYXRhWyd2YXJpYWJsZXMnXSA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcyk7XG4gICAgaWYgKG5hbWUgJiYgbmFtZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBuYW1lWzJdO1xuICAgICAgaWYgKG9wZXJhdGlvbk5hbWUpIGRhdGFbJ29wZXJhdGlvbk5hbWUnXSA9IG5hbWVbMl07XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBncWwgPSAoc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLnZhbHVlczogc3RyaW5nW10pID0+IHtcbiAgY29uc3Qgc3RyID0gc3RyaW5ncy5yZWR1Y2UoKGFjYywgY3VyLCBpKSA9PiB7XG4gICAgcmV0dXJuIGFjYyArIGN1ciArICh2YWx1ZXNbaV0gfHwgJycpO1xuICB9LCAnJyk7XG4gIHJldHVybiBzdHI7XG59O1xuIl19","import { filter, of, switchMap, takeWhile } from 'rxjs';\nexport function filterSuccess() {\n return function (source) {\n return source.pipe(filter((value) => isQueryStateSuccess(value)));\n };\n}\nexport function filterFailure() {\n return function (source) {\n return source.pipe(filter((value) => isQueryStateFailure(value)));\n };\n}\nexport function filterQueryStates(allowedStates) {\n return function (source) {\n return source.pipe(filter((value) => value && allowedStates.includes(value.type)));\n };\n}\nexport function takeUntilResponse() {\n return function (source) {\n return source.pipe(takeWhile((value) => isQueryStateLoading(value), true));\n };\n}\nexport function filterNull() {\n return function (source) {\n return source.pipe(filter((value) => value !== null));\n };\n}\nexport function switchQueryState() {\n return function (source) {\n return source.pipe(switchMap((value) => value?.state$ ?? of(null)));\n };\n}\nexport const isQueryStateLoading = (state) => state?.type === \"LOADING\" /* QueryStateType.Loading */;\nexport const isQueryStateSuccess = (state) => state?.type === \"SUCCESS\" /* QueryStateType.Success */;\nexport const isQueryStateFailure = (state) => state?.type === \"FAILURE\" /* QueryStateType.Failure */;\nexport const isQueryStateCancelled = (state) => state?.type === \"CANCELLED\" /* QueryStateType.Cancelled */;\nexport const isQueryStatePrepared = (state) => state?.type === \"PREPARED\" /* QueryStateType.Prepared */;\nexport const mergeHeaders = (...headers) => {\n return headers.reduce((acc, headers) => {\n if (!headers) {\n return acc;\n }\n return {\n ...acc,\n ...headers,\n };\n }, {});\n};\nexport const isGqlQueryConfig = (config) => {\n if (!config || typeof config !== 'object' || Array.isArray(config)) {\n return false;\n }\n if (!('query' in config)) {\n return false;\n }\n return true;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQXVCcEUsTUFBTSxVQUFVLGFBQWE7SUFDM0IsT0FBTyxVQUlMLE1BQXFCO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQStDLENBQUM7SUFDbEgsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sVUFBdUMsTUFBcUI7UUFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBd0IsQ0FBQztJQUMzRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLGFBQStCO0lBQy9ELE9BQU8sVUFBdUMsTUFBcUI7UUFDakUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWtCLENBQUM7SUFDdEcsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxVQUFnQyxNQUFxQjtRQUMxRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLFVBQWEsTUFBcUI7UUFDdkMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBd0IsRUFBRSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzlFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sVUFJTCxNQUFxQjtRQUNyQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUd6RCxDQUFDO0lBQ1osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBb0MsRUFBb0IsRUFBRSxDQUM1RixLQUFLLEVBQUUsSUFBSSwyQ0FBMkIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQW9DLEVBQW9CLEVBQUUsQ0FDNUYsS0FBSyxFQUFFLElBQUksMkNBQTJCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFvQyxFQUFvQixFQUFFLENBQzVGLEtBQUssRUFBRSxJQUFJLDJDQUEyQixDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBb0MsRUFBc0IsRUFBRSxDQUNoRyxLQUFLLEVBQUUsSUFBSSwrQ0FBNkIsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQW9DLEVBQXFCLEVBQUUsQ0FDOUYsS0FBSyxFQUFFLElBQUksNkNBQTRCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBRyxPQUFpRCxFQUFFLEVBQUU7SUFDbkYsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsT0FBTztZQUNMLEdBQUcsR0FBRztZQUNOLEdBQUcsT0FBTztTQUNYLENBQUM7SUFDSixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQU05QixNQUFlLEVBQzRELEVBQUU7SUFDN0UsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNsRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlciwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQgeyBSZXF1ZXN0SGVhZGVycyB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEJhc2VBcmd1bWVudHMsXG4gIENhbmNlbGxlZCxcbiAgRmFpbHVyZSxcbiAgR3FsUXVlcnlDb25maWcsXG4gIExvYWRpbmcsXG4gIFByZXBhcmVkLFxuICBRdWVyeVJhd1Jlc3BvbnNlVHlwZSxcbiAgUXVlcnlSZXNwb25zZVR5cGUsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVEYXRhLFxuICBRdWVyeVN0YXRlUmF3RGF0YSxcbiAgUXVlcnlTdGF0ZVR5cGUsXG4gIFJvdXRlVHlwZSxcbiAgU3VjY2Vzcyxcbn0gZnJvbSAnLi9xdWVyeS50eXBlcyc7XG5cbnR5cGUgT21pdE51bGw8VD4gPSBUIGV4dGVuZHMgbnVsbCA/IG5ldmVyIDogVDtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlclN1Y2Nlc3MoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8XG4gICAgVCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsLFxuICAgIFJlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZURhdGE8T21pdE51bGw8VD4+LFxuICAgIFJhd1Jlc3BvbnNlIGV4dGVuZHMgUXVlcnlTdGF0ZVJhd0RhdGE8T21pdE51bGw8VD4+LFxuICA+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVTdWNjZXNzKHZhbHVlKSkpIGFzIE9ic2VydmFibGU8U3VjY2VzczxSZXNwb25zZSwgUmF3UmVzcG9uc2U+PjtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckZhaWx1cmUoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gaXNRdWVyeVN0YXRlRmFpbHVyZSh2YWx1ZSkpKSBhcyBPYnNlcnZhYmxlPEZhaWx1cmU+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyUXVlcnlTdGF0ZXMoYWxsb3dlZFN0YXRlczogUXVlcnlTdGF0ZVR5cGVbXSkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBRdWVyeVN0YXRlIHwgbnVsbD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcigodmFsdWUpID0+IHZhbHVlICYmIGFsbG93ZWRTdGF0ZXMuaW5jbHVkZXModmFsdWUudHlwZSkpKSBhcyBPYnNlcnZhYmxlPFQ+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFrZVVudGlsUmVzcG9uc2UoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGU+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZSh0YWtlV2hpbGUoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVMb2FkaW5nKHZhbHVlKSwgdHJ1ZSkpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyTnVsbCgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSk6IHZhbHVlIGlzIE9taXROdWxsPFQ+ID0+IHZhbHVlICE9PSBudWxsKSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzd2l0Y2hRdWVyeVN0YXRlKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFxuICAgIFQgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGwsXG4gICAgUmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJlc3BvbnNlVHlwZTxPbWl0TnVsbDxUPj4sXG4gICAgUmF3UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxPbWl0TnVsbDxUPj4sXG4gID4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHN3aXRjaE1hcCgodmFsdWUpID0+IHZhbHVlPy5zdGF0ZSQgPz8gb2YobnVsbCkpKSBhcyBPYnNlcnZhYmxlPFF1ZXJ5U3RhdGU8XG4gICAgICBPbWl0TnVsbDxSZXNwb25zZT4sXG4gICAgICBPbWl0TnVsbDxSYXdSZXNwb25zZT5cbiAgICA+IHwgbnVsbD47XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVMb2FkaW5nID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIExvYWRpbmcgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmc7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVTdWNjZXNzID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIFN1Y2Nlc3MgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3M7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVGYWlsdXJlID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIEZhaWx1cmUgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmU7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVDYW5jZWxsZWQgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgQ2FuY2VsbGVkID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5DYW5jZWxsZWQ7XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5U3RhdGVQcmVwYXJlZCA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBQcmVwYXJlZCA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuUHJlcGFyZWQ7XG5cbmV4cG9ydCBjb25zdCBtZXJnZUhlYWRlcnMgPSAoLi4uaGVhZGVyczogQXJyYXk8UmVxdWVzdEhlYWRlcnMgfCBudWxsIHwgdW5kZWZpbmVkPikgPT4ge1xuICByZXR1cm4gaGVhZGVycy5yZWR1Y2UoKGFjYywgaGVhZGVycykgPT4ge1xuICAgIGlmICghaGVhZGVycykge1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYWNjLFxuICAgICAgLi4uaGVhZGVycyxcbiAgICB9O1xuICB9LCB7fSk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNHcWxRdWVyeUNvbmZpZyA9IDxcbiAgUmVzcG9uc2UsXG4gIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4gfCB1bmRlZmluZWQsXG4gIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gfCB1bmRlZmluZWQsXG4+KFxuICBjb25maWc6IHVua25vd24sXG4pOiBjb25maWcgaXMgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+ID0+IHtcbiAgaWYgKCFjb25maWcgfHwgdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShjb25maWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3F1ZXJ5JyBpbiBjb25maWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuIl19","import { BehaviorSubject, interval, Subject, takeUntil, tap } from 'rxjs';\nimport { transformGql } from '../gql';\nimport { buildBody, guessContentType, isAbortRequestError, isRequestError, request, transformMethod, } from '../request';\nimport { filterSuccess, isGqlQueryConfig, isQueryStateLoading, isQueryStateSuccess, mergeHeaders, takeUntilResponse, } from './query.utils';\nexport class Query {\n get _nextId() {\n return ++this._currentId;\n }\n get state$() {\n return this._state$.asObservable();\n }\n get state() {\n return this._state$.value;\n }\n get isExpired() {\n if (!isQueryStateSuccess(this.state)) {\n return false;\n }\n const ts = this.state.meta.expiresAt;\n if (!ts) {\n return true;\n }\n return ts < Date.now();\n }\n constructor(_client, _queryConfig, _route, _args) {\n this._client = _client;\n this._queryConfig = _queryConfig;\n this._route = _route;\n this._args = _args;\n this._currentId = 0;\n this._abortController = new AbortController();\n this._pollingSubscription = null;\n this._onAbort$ = new Subject();\n this._state$ = new BehaviorSubject({\n type: \"PREPARED\" /* QueryStateType.Prepared */,\n meta: { id: this._currentId },\n });\n }\n clone() {\n return this._client.fetch(this._queryConfig);\n }\n execute(options) {\n if (!this.isExpired && !options?.skipCache && isQueryStateSuccess(this.state)) {\n return this;\n }\n if (this._queryConfig.secure && !this._client.authProvider) {\n throw new Error('Cannot execute secure query without auth provider');\n }\n const id = this._nextId;\n if (isQueryStateLoading(this._state$.value)) {\n this.abort();\n }\n const meta = { id };\n this._state$.next({\n type: \"LOADING\" /* QueryStateType.Loading */,\n meta,\n });\n this._updateUseResultInDependencies();\n let body = null;\n let contentType = null;\n if (isGqlQueryConfig(this._queryConfig)) {\n const queryTemplate = this._queryConfig.query;\n const query = transformGql(queryTemplate);\n contentType = 'application/json';\n body = query(this._args?.variables);\n }\n else {\n body = buildBody(this._args?.body);\n contentType = guessContentType(this._args?.body);\n }\n let authHeader = null;\n if (this._queryConfig.secure) {\n const header = this._client.authProvider?.header;\n if (header) {\n authHeader = header;\n }\n }\n else if (this._client.authProvider?.header) {\n if (this._queryConfig.secure === undefined || this._queryConfig.secure) {\n authHeader = this._client.authProvider.header;\n }\n }\n let headers = mergeHeaders(authHeader, this._args?.headers);\n if (contentType && !headers?.['Content-Type'] && !headers?.['content-type']) {\n if (headers) {\n headers['Content-Type'] = contentType;\n }\n else {\n headers = {\n 'Content-Type': contentType,\n };\n }\n }\n request({\n route: this._route,\n init: {\n method: transformMethod(this._queryConfig.method),\n signal: this._abortController.signal,\n body,\n headers: headers || undefined,\n },\n cacheAdapter: this._client.config.request?.cacheAdapter,\n })\n .then((response) => {\n const isResponseObject = typeof response === 'object';\n const isGql = isGqlQueryConfig(this._queryConfig);\n let responseData = null;\n if (isGql &&\n isResponseObject &&\n !!response.data &&\n typeof response.data === 'object' &&\n 'data' in response.data) {\n responseData = response.data['data'];\n }\n else {\n responseData = response.data;\n }\n const transformedResponse = this._queryConfig.responseTransformer\n ? this._queryConfig.responseTransformer(responseData)\n : responseData;\n this._state$.next({\n type: \"SUCCESS\" /* QueryStateType.Success */,\n response: transformedResponse,\n rawResponse: responseData,\n meta: { ...meta, expiresAt: response.expiresInTimestamp },\n });\n })\n .catch((error) => this._handleExecuteError(error, meta));\n return this;\n }\n abort() {\n this._abortController.abort();\n this._abortController = new AbortController();\n this._onAbort$.next();\n return this;\n }\n poll(config) {\n if (this._pollingSubscription) {\n return this;\n }\n this._pollingSubscription = interval(config.interval)\n .pipe(takeUntil(config.takeUntil))\n .subscribe(() => this.execute({ skipCache: true }));\n return this;\n }\n stopPolling() {\n this._pollingSubscription?.unsubscribe();\n this._pollingSubscription = null;\n return this;\n }\n _updateUseResultInDependencies() {\n if (!this._args?.useResultIn?.length) {\n return;\n }\n this.state$\n .pipe(filterSuccess(), takeUntil(this._onAbort$), takeUntilResponse(), tap((state) => {\n if (!this._args?.useResultIn) {\n return;\n }\n for (const query of this._args.useResultIn) {\n query._state$.next({\n type: \"SUCCESS\" /* QueryStateType.Success */,\n meta: { ...state.meta, id: query._nextId },\n rawResponse: state.rawResponse,\n response: state.response,\n });\n }\n }))\n .subscribe();\n }\n _handleExecuteError(error, meta) {\n if (isAbortRequestError(error)) {\n this._state$.next({\n type: \"CANCELLED\" /* QueryStateType.Cancelled */,\n meta,\n });\n }\n else if (isRequestError(error)) {\n this._state$.next({\n type: \"FAILURE\" /* QueryStateType.Failure */,\n error,\n meta,\n });\n }\n else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEMsT0FBTyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCxPQUFPLEVBQ1AsZUFBZSxHQUNoQixNQUFNLFlBQVksQ0FBQztBQWFwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsTUFBTSxPQUFPLEtBQUs7SUFjaEIsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVyQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsWUFDVSxPQUFvQixFQUNwQixZQUUyRCxFQUMzRCxNQUFhLEVBQ2IsS0FBNEI7UUFMNUIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FFK0M7UUFDM0QsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLFVBQUssR0FBTCxLQUFLLENBQXVCO1FBdkM5QixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YscUJBQWdCLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUN6Qyx5QkFBb0IsR0FBd0IsSUFBSSxDQUFDO1FBQ2pELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBc0N0QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksZUFBZSxDQUF3RDtZQUN4RixJQUFJLDBDQUF5QjtZQUM3QixJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQTBELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsT0FBTyxDQUEyRCxPQUF5QjtRQUN6RixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdFLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUV4QixJQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7UUFFRCxNQUFNLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLElBQUksd0NBQXdCO1lBQzVCLElBQUk7U0FDTCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUV0QyxJQUFJLElBQUksR0FBNkIsSUFBSSxDQUFDO1FBQzFDLElBQUksV0FBVyxHQUFrQixJQUFJLENBQUM7UUFFdEMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDOUMsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRTFDLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztZQUNqQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDckM7YUFBTTtZQUNMLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksVUFBVSxHQUFrQyxJQUFJLENBQUM7UUFFckQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtZQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUM7WUFFakQsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsVUFBVSxHQUFHLE1BQU0sQ0FBQzthQUNyQjtTQUNGO2FBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUU7WUFDNUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RFLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7YUFDL0M7U0FDRjtRQUVELElBQUksT0FBTyxHQUFHLFlBQVksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1RCxJQUFJLFdBQVcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDM0UsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUN2QztpQkFBTTtnQkFDTCxPQUFPLEdBQUc7b0JBQ1IsY0FBYyxFQUFFLFdBQVc7aUJBQzVCLENBQUM7YUFDSDtTQUNGO1FBRUQsT0FBTyxDQUFXO1lBQ2hCLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDakQsTUFBTSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNO2dCQUNwQyxJQUFJO2dCQUNKLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUzthQUM5QjtZQUNELFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsWUFBWTtTQUN4RCxDQUFDO2FBQ0MsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakIsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUM7WUFFdEQsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRWxELElBQUksWUFBWSxHQUFvQixJQUFJLENBQUM7WUFDekMsSUFDRSxLQUFLO2dCQUNMLGdCQUFnQjtnQkFDaEIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dCQUNmLE9BQU8sUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRO2dCQUNqQyxNQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFDdkI7Z0JBQ0EsWUFBWSxHQUFJLFFBQVEsQ0FBQyxJQUFnQyxDQUFDLE1BQU0sQ0FBYSxDQUFDO2FBQy9FO2lCQUFNO2dCQUNMLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBZ0IsQ0FBQzthQUMxQztZQUVELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUI7Z0JBQy9ELENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQztnQkFDckQsQ0FBQyxDQUFDLFlBQVksQ0FBQztZQUVqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSx3Q0FBd0I7Z0JBQzVCLFFBQVEsRUFBRSxtQkFBdUM7Z0JBQ2pELFdBQVcsRUFBRSxZQUF3QjtnQkFDckMsSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTthQUMxRCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUUzRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQWtCO1FBQ3JCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUVqQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyw4QkFBOEI7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtZQUNwQyxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTTthQUNSLElBQUksQ0FDSCxhQUFhLEVBQUUsRUFDZixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixpQkFBaUIsRUFBRSxFQUNuQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtnQkFDNUIsT0FBTzthQUNSO1lBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLElBQUksd0NBQXdCO29CQUM1QixJQUFJLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQzFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztvQkFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2lCQUN6QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWMsRUFBRSxJQUFvQjtRQUM5RCxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixJQUFJLDRDQUEwQjtnQkFDOUIsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLElBQUksd0NBQXdCO2dCQUM1QixLQUFLO2dCQUNMLElBQUk7YUFDTCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUM7U0FDYjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRyYW5zZm9ybUdxbCB9IGZyb20gJy4uL2dxbCc7XG5pbXBvcnQgeyBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lciwgUXVlcnlDbGllbnQsIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7XG4gIGJ1aWxkQm9keSxcbiAgZ3Vlc3NDb250ZW50VHlwZSxcbiAgaXNBYm9ydFJlcXVlc3RFcnJvcixcbiAgaXNSZXF1ZXN0RXJyb3IsXG4gIE1ldGhvZCBhcyBNZXRob2RUeXBlLFxuICByZXF1ZXN0LFxuICB0cmFuc2Zvcm1NZXRob2QsXG59IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQmFzZUFyZ3VtZW50cyxcbiAgR3FsUXVlcnlDb25maWcsXG4gIFBvbGxDb25maWcsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVNZXRhLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG4gIFJ1blF1ZXJ5T3B0aW9ucyxcbiAgV2l0aFVzZVJlc3VsdEluLFxufSBmcm9tICcuL3F1ZXJ5LnR5cGVzJztcbmltcG9ydCB7XG4gIGZpbHRlclN1Y2Nlc3MsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIGlzUXVlcnlTdGF0ZUxvYWRpbmcsXG4gIGlzUXVlcnlTdGF0ZVN1Y2Nlc3MsXG4gIG1lcmdlSGVhZGVycyxcbiAgdGFrZVVudGlsUmVzcG9uc2UsXG59IGZyb20gJy4vcXVlcnkudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnk8XG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyAoQmFzZUFyZ3VtZW50cyAmIFdpdGhVc2VSZXN1bHRJbjxSZXNwb25zZSwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4pIHwgdW5kZWZpbmVkLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBNZXRob2QgZXh0ZW5kcyBNZXRob2RUeXBlLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuPiB7XG4gIHByaXZhdGUgX2N1cnJlbnRJZCA9IDA7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgcHJpdmF0ZSBfcG9sbGluZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uQWJvcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeVN0YXRlPFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4sIFJlc3BvbnNlPj47XG5cbiAgcHJpdmF0ZSBnZXQgX25leHRJZCgpIHtcbiAgICByZXR1cm4gKyt0aGlzLl9jdXJyZW50SWQ7XG4gIH1cblxuICBnZXQgc3RhdGUkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBpc0V4cGlyZWQoKSB7XG4gICAgaWYgKCFpc1F1ZXJ5U3RhdGVTdWNjZXNzKHRoaXMuc3RhdGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdHMgPSB0aGlzLnN0YXRlLm1ldGEuZXhwaXJlc0F0O1xuXG4gICAgaWYgKCF0cykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRzIDwgRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NsaWVudDogUXVlcnlDbGllbnQsXG4gICAgcHJpdmF0ZSBfcXVlcnlDb25maWc6XG4gICAgICB8IFJlc3RRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICAgIHByaXZhdGUgX3JvdXRlOiBSb3V0ZSxcbiAgICBwcml2YXRlIF9hcmdzOiBBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHRoaXMuX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnlTdGF0ZTxSZXR1cm5UeXBlPFJlc3BvbnNlVHJhbnNmb3JtZXI+LCBSZXNwb25zZT4+KHtcbiAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlByZXBhcmVkLFxuICAgICAgbWV0YTogeyBpZDogdGhpcy5fY3VycmVudElkIH0sXG4gICAgfSk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBNZXRob2QsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHRoaXMuX3F1ZXJ5Q29uZmlnKTtcbiAgfVxuXG4gIGV4ZWN1dGU8Q29tcHV0ZWRSZXNwb25zZSBleHRlbmRzIFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4+KG9wdGlvbnM/OiBSdW5RdWVyeU9wdGlvbnMpIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBpcmVkICYmICFvcHRpb25zPy5za2lwQ2FjaGUgJiYgaXNRdWVyeVN0YXRlU3VjY2Vzcyh0aGlzLnN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSAmJiAhdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZXhlY3V0ZSBzZWN1cmUgcXVlcnkgd2l0aG91dCBhdXRoIHByb3ZpZGVyJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSB0aGlzLl9uZXh0SWQ7XG5cbiAgICBpZiAoaXNRdWVyeVN0YXRlTG9hZGluZyh0aGlzLl9zdGF0ZSQudmFsdWUpKSB7XG4gICAgICB0aGlzLmFib3J0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YSA9IHsgaWQgfTtcblxuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHtcbiAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmcsXG4gICAgICBtZXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVXNlUmVzdWx0SW5EZXBlbmRlbmNpZXMoKTtcblxuICAgIGxldCBib2R5OiBzdHJpbmcgfCBGb3JtRGF0YSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZykpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5VGVtcGxhdGUgPSB0aGlzLl9xdWVyeUNvbmZpZy5xdWVyeTtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdHJhbnNmb3JtR3FsKHF1ZXJ5VGVtcGxhdGUpO1xuXG4gICAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgIGJvZHkgPSBxdWVyeSh0aGlzLl9hcmdzPy52YXJpYWJsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBib2R5ID0gYnVpbGRCb2R5KHRoaXMuX2FyZ3M/LmJvZHkpO1xuICAgICAgY29udGVudFR5cGUgPSBndWVzc0NvbnRlbnRUeXBlKHRoaXMuX2FyZ3M/LmJvZHkpO1xuICAgIH1cblxuICAgIGxldCBhdXRoSGVhZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5fcXVlcnlDb25maWcuc2VjdXJlKSB7XG4gICAgICBjb25zdCBoZWFkZXIgPSB0aGlzLl9jbGllbnQuYXV0aFByb3ZpZGVyPy5oZWFkZXI7XG5cbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgYXV0aEhlYWRlciA9IGhlYWRlcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuX2NsaWVudC5hdXRoUHJvdmlkZXI/LmhlYWRlcikge1xuICAgICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSkge1xuICAgICAgICBhdXRoSGVhZGVyID0gdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlci5oZWFkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGhlYWRlcnMgPSBtZXJnZUhlYWRlcnMoYXV0aEhlYWRlciwgdGhpcy5fYXJncz8uaGVhZGVycyk7XG5cbiAgICBpZiAoY29udGVudFR5cGUgJiYgIWhlYWRlcnM/LlsnQ29udGVudC1UeXBlJ10gJiYgIWhlYWRlcnM/LlsnY29udGVudC10eXBlJ10pIHtcbiAgICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29udGVudFR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1ZXN0PFJlc3BvbnNlPih7XG4gICAgICByb3V0ZTogdGhpcy5fcm91dGUsXG4gICAgICBpbml0OiB7XG4gICAgICAgIG1ldGhvZDogdHJhbnNmb3JtTWV0aG9kKHRoaXMuX3F1ZXJ5Q29uZmlnLm1ldGhvZCksXG4gICAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgYm9keSxcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgY2FjaGVBZGFwdGVyOiB0aGlzLl9jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmNhY2hlQWRhcHRlcixcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUmVzcG9uc2VPYmplY3QgPSB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnO1xuXG4gICAgICAgIGNvbnN0IGlzR3FsID0gaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZyk7XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlRGF0YTogUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzR3FsICYmXG4gICAgICAgICAgaXNSZXNwb25zZU9iamVjdCAmJlxuICAgICAgICAgICEhcmVzcG9uc2UuZGF0YSAmJlxuICAgICAgICAgIHR5cGVvZiByZXNwb25zZS5kYXRhID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICdkYXRhJyBpbiByZXNwb25zZS5kYXRhXG4gICAgICAgICkge1xuICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IChyZXNwb25zZS5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnZGF0YSddIGFzIFJlc3BvbnNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLmRhdGEgYXMgUmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFJlc3BvbnNlID0gdGhpcy5fcXVlcnlDb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lclxuICAgICAgICAgID8gdGhpcy5fcXVlcnlDb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lcihyZXNwb25zZURhdGEpXG4gICAgICAgICAgOiByZXNwb25zZURhdGE7XG5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3MsXG4gICAgICAgICAgcmVzcG9uc2U6IHRyYW5zZm9ybWVkUmVzcG9uc2UgYXMgQ29tcHV0ZWRSZXNwb25zZSxcbiAgICAgICAgICByYXdSZXNwb25zZTogcmVzcG9uc2VEYXRhIGFzIFJlc3BvbnNlLFxuICAgICAgICAgIG1ldGE6IHsgLi4ubWV0YSwgZXhwaXJlc0F0OiByZXNwb25zZS5leHBpcmVzSW5UaW1lc3RhbXAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gdGhpcy5faGFuZGxlRXhlY3V0ZUVycm9yKGVycm9yLCBtZXRhKSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFib3J0KCkge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9vbkFib3J0JC5uZXh0KCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvbGwoY29uZmlnOiBQb2xsQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24gPSBpbnRlcnZhbChjb25maWcuaW50ZXJ2YWwpXG4gICAgICAucGlwZSh0YWtlVW50aWwoY29uZmlnLnRha2VVbnRpbCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZXhlY3V0ZSh7IHNraXBDYWNoZTogdHJ1ZSB9KSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0b3BQb2xsaW5nKCkge1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVVzZVJlc3VsdEluRGVwZW5kZW5jaWVzKCkge1xuICAgIGlmICghdGhpcy5fYXJncz8udXNlUmVzdWx0SW4/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyU3VjY2VzcygpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fb25BYm9ydCQpLFxuICAgICAgICB0YWtlVW50aWxSZXNwb25zZSgpLFxuICAgICAgICB0YXAoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl9hcmdzPy51c2VSZXN1bHRJbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3QgcXVlcnkgb2YgdGhpcy5fYXJncy51c2VSZXN1bHRJbikge1xuICAgICAgICAgICAgcXVlcnkuX3N0YXRlJC5uZXh0KHtcbiAgICAgICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcyxcbiAgICAgICAgICAgICAgbWV0YTogeyAuLi5zdGF0ZS5tZXRhLCBpZDogcXVlcnkuX25leHRJZCB9LFxuICAgICAgICAgICAgICByYXdSZXNwb25zZTogc3RhdGUucmF3UmVzcG9uc2UsXG4gICAgICAgICAgICAgIHJlc3BvbnNlOiBzdGF0ZS5yZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVFeGVjdXRlRXJyb3IoZXJyb3I6IHVua25vd24sIG1ldGE6IFF1ZXJ5U3RhdGVNZXRhKSB7XG4gICAgaWYgKGlzQWJvcnRSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZCxcbiAgICAgICAgbWV0YSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBtZXRhLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19","import { ChangeDetectorRef, Directive, ErrorHandler, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess, } from '../query';\nimport * as i0 from \"@angular/core\";\nexport class QueryDirective {\n get query() {\n return this._query;\n }\n set query(v) {\n this._query = v;\n this._subscribeToQuery();\n }\n get cache() {\n return this._cache;\n }\n set cache(v) {\n this._cache = v;\n }\n constructor(_mainTemplateRef, _viewContainerRef, _errorHandler, _cdr) {\n this._mainTemplateRef = _mainTemplateRef;\n this._viewContainerRef = _viewContainerRef;\n this._errorHandler = _errorHandler;\n this._cdr = _cdr;\n this._isMainViewCreated = false;\n this._subscription = null;\n this._viewContext = {\n $implicit: null,\n query: null,\n raw: null,\n loading: false,\n error: null,\n };\n this._cache = false;\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n ngOnInit() {\n this._renderMainView();\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n _subscribeToQuery() {\n this._subscription?.unsubscribe();\n this._subscription = null;\n if (!this.query) {\n return;\n }\n const sub = this.query.state$.pipe(tap((state) => this._updateView(state))).subscribe();\n this._subscription = sub;\n }\n _updateView(state) {\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n }\n else {\n this._viewContext.loading = false;\n }\n if (isQueryStateSuccess(state)) {\n this._viewContext.query = state.response;\n this._viewContext.$implicit = state.response;\n this._viewContext.raw = state.rawResponse;\n }\n else if (!this.cache) {\n this._viewContext.query = null;\n this._viewContext.$implicit = null;\n this._viewContext.raw = null;\n }\n if (isQueryStateFailure(state)) {\n this._viewContext.error = state.error;\n this._errorHandler.handleError(state.error);\n }\n else {\n this._viewContext.error = null;\n }\n this._cdr.markForCheck();\n }\n _renderMainView() {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n}\nQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: QueryDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ErrorHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\nQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: QueryDirective, isStandalone: true, selector: \"[query]\", inputs: { query: \"query\", cache: [\"queryCache\", \"cache\"] }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: QueryDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[query]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ErrorHandler }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { query: [{\n type: Input\n }], cache: [{\n type: Input,\n args: ['queryCache']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RpcmVjdGl2ZXMvcXVlcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLG1CQUFtQixFQUNuQixtQkFBbUIsR0FJcEIsTUFBTSxVQUFVLENBQUM7O0FBZ0JsQixNQUFNLE9BQU8sY0FBYztJQVl6QixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLENBQUk7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFVO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFHRCxZQUNVLGdCQUE4QyxFQUM5QyxpQkFBbUMsRUFDbkMsYUFBMkIsRUFDM0IsSUFBdUI7UUFIdkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBbkN6Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0Isa0JBQWEsR0FBd0Is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OUQsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs0TEFjSyxLQUFLO3NCQURSLEtBQUs7Z0JBWUYsS0FBSztzQkFEUixLQUFLO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFcnJvckhhbmRsZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFueVF1ZXJ5LFxuICBpc1F1ZXJ5U3RhdGVGYWlsdXJlLFxuICBpc1F1ZXJ5U3RhdGVMb2FkaW5nLFxuICBpc1F1ZXJ5U3RhdGVTdWNjZXNzLFxuICBRdWVyeVJhd1Jlc3BvbnNlVHlwZSxcbiAgUXVlcnlSZXNwb25zZVR5cGUsXG4gIFF1ZXJ5U3RhdGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuXG5pbnRlcmZhY2UgUXVlcnlDb250ZXh0PFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+IHtcbiAgJGltcGxpY2l0OiBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgcXVlcnk6IFF1ZXJ5UmVzcG9uc2VUeXBlPFE+O1xuICByYXc6IFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogUmVxdWVzdEVycm9yPHVua25vd24+IHwgbnVsbDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3F1ZXJ5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RGlyZWN0aXZlPFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9pc01haW5WaWV3Q3JlYXRlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250ZXh0OiBRdWVyeUNvbnRleHQ8UT4gPSB7XG4gICAgJGltcGxpY2l0OiBudWxsIGFzIFF1ZXJ5UmVzcG9uc2VUeXBlPFE+LFxuICAgIHF1ZXJ5OiBudWxsIGFzIFF1ZXJ5UmVzcG9uc2VUeXBlPFE+LFxuICAgIHJhdzogbnVsbCBhcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxRPixcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfTtcblxuICBASW5wdXQoKVxuICBnZXQgcXVlcnkoKTogUSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5O1xuICB9XG4gIHNldCBxdWVyeSh2OiBRKSB7XG4gICAgdGhpcy5fcXVlcnkgPSB2O1xuXG4gICAgdGhpcy5fc3Vic2NyaWJlVG9RdWVyeSgpO1xuICB9XG4gIHByaXZhdGUgX3F1ZXJ5ITogUTtcblxuICBASW5wdXQoJ3F1ZXJ5Q2FjaGUnKVxuICBnZXQgY2FjaGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlO1xuICB9XG4gIHNldCBjYWNoZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2FjaGUgPSB2O1xuICB9XG4gIHByaXZhdGUgX2NhY2hlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWFpblRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxRdWVyeUNvbnRleHQ8UT4+LFxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBfZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIsXG4gICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+KFxuICAgIGRpcjogUXVlcnlEaXJlY3RpdmU8UT4sXG4gICAgY3R4OiB1bmtub3duLFxuICApOiBjdHggaXMgUXVlcnlDb250ZXh0PFE+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlck1haW5WaWV3KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb1F1ZXJ5KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgaWYgKCF0aGlzLnF1ZXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3ViID0gdGhpcy5xdWVyeS5zdGF0ZSQucGlwZSh0YXAoKHN0YXRlKSA9PiB0aGlzLl91cGRhdGVWaWV3KHN0YXRlKSkpLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gc3ViO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlVmlldyhzdGF0ZTogUXVlcnlTdGF0ZSkge1xuICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSkge1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmxvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoaXNRdWVyeVN0YXRlU3VjY2VzcyhzdGF0ZSkpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnF1ZXJ5ID0gc3RhdGUucmVzcG9uc2UgYXMgUXVlcnlSZXNwb25zZVR5cGU8UT47XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBzdGF0ZS5yZXNwb25zZSBhcyBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnJhdyA9IHN0YXRlLnJhd1Jlc3BvbnNlIGFzIFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuY2FjaGUpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnF1ZXJ5ID0gbnVsbCBhcyBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LiRpbXBsaWNpdCA9IG51bGwgYXMgUXVlcnlSZXNwb25zZVR5cGU8UT47XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC5yYXcgPSBudWxsIGFzIFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICAgIH1cblxuICAgIGlmIChpc1F1ZXJ5U3RhdGVGYWlsdXJlKHN0YXRlKSkge1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQuZXJyb3IgPSBzdGF0ZS5lcnJvcjtcblxuICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKHN0YXRlLmVycm9yKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQuZXJyb3IgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX3JlbmRlck1haW5WaWV3KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNNYWluVmlld0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuX2lzTWFpblZpZXdDcmVhdGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX21haW5UZW1wbGF0ZVJlZiwgdGhpcy5fdmlld0NvbnRleHQpO1xuICAgIH1cbiAgfVxufVxuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { BehaviorSubject } from 'rxjs';\nimport { filterSuccess, takeUntilResponse } from '../query';\nexport class InfinityQuery {\n get currentPage$() {\n return this._currentPage$.asObservable();\n }\n get currentPage() {\n return this._currentPage$.getValue();\n }\n get currentCalculatedPage$() {\n return this._currentCalculatedPage$.asObservable();\n }\n get currentCalculatedPage() {\n return this._currentCalculatedPage$.getValue();\n }\n get totalPages$() {\n return this._totalPages$.asObservable();\n }\n get totalPages() {\n return this._totalPages$.getValue();\n }\n get itemsPerPage$() {\n return this._itemsPerPage$.asObservable();\n }\n get itemsPerPage() {\n return this._itemsPerPage$.getValue();\n }\n get currentQuery$() {\n return this._currentQuery$.asObservable();\n }\n get currentQuery() {\n return this._currentQuery$.getValue();\n }\n get data$() {\n return this._data$.asObservable();\n }\n get data() {\n return this._data$.getValue();\n }\n constructor(_config) {\n this._config = _config;\n this._currentPage$ = new BehaviorSubject(null);\n this._currentCalculatedPage$ = new BehaviorSubject(null);\n this._totalPages$ = new BehaviorSubject(null);\n this._itemsPerPage$ = new BehaviorSubject(this._config.limitParam?.value ?? 10);\n this._currentQuery$ = new BehaviorSubject(null);\n this._data$ = new BehaviorSubject([]);\n this._subscriptions = [];\n }\n nextPage() {\n const newPage = (this._currentPage$.value ?? 0) + 1;\n const calculatedPage = this._config?.pageParam?.valueCalculator?.({\n page: newPage,\n totalPages: this.totalPages,\n itemsPerPage: this.itemsPerPage,\n }) ?? newPage;\n const args = this._prepareArgs(this._config, calculatedPage);\n const query = this._config.queryCreator.prepare(args).execute();\n this._handleNewQuery(query);\n this._currentPage$.next(newPage);\n this._currentCalculatedPage$.next(calculatedPage);\n this._currentQuery$.next(query);\n }\n reset(newConfig) {\n this._destroy();\n this._config = { ...this._config, ...(newConfig ?? {}) };\n this._currentPage$.next(null);\n this._currentCalculatedPage$.next(null);\n this._totalPages$.next(null);\n this._itemsPerPage$.next(this._config.limitParam?.value ?? 10);\n this._currentQuery$.next(null);\n this._data$.next([]);\n }\n _destroy() {\n this._subscriptions.forEach((sub) => sub.unsubscribe());\n this._subscriptions = [];\n }\n _handleNewQuery(query) {\n const stateChangesSub = query.state$.pipe(takeUntilResponse(), filterSuccess()).subscribe({\n next: (state) => {\n let newData = this._config?.response.valueExtractor(state.response);\n if (this._config.response.reverse) {\n newData = [...newData].reverse();\n }\n if (this._config.response.appendItemsTo === 'start') {\n newData = [...newData, ...this.data];\n }\n else {\n newData = [...this.data, ...newData];\n }\n this._data$.next(newData);\n const totalPages = this._config.response.totalPagesExtractor?.({\n response: state.response,\n itemsPerPage: this.itemsPerPage,\n }) ??\n state.response?.totalPages ??\n null;\n this._totalPages$.next(totalPages);\n },\n complete: () => {\n this._subscriptions = this._subscriptions.filter((sub) => sub !== stateChangesSub);\n },\n });\n this._subscriptions.push(stateChangesSub);\n }\n _prepareArgs(config, page) {\n const pageParamLocation = this._getPageParamLocation(config?.pageParam?.location);\n const pageArgs = {\n [pageParamLocation]: {\n [config?.pageParam?.key ?? 'page']: page,\n },\n };\n const limitParamLocation = this._getPageParamLocation(config?.limitParam?.location);\n const limitArgs = {\n [limitParamLocation]: {\n [config?.limitParam?.key ?? 'limit']: config?.limitParam?.value ?? 10,\n },\n };\n const defaultConfig = config?.defaultArgs ?? {};\n const mergedArgs = pageParamLocation === limitParamLocation\n ? {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[limitParamLocation],\n ...limitArgs[limitParamLocation],\n },\n }\n : {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[pageParamLocation],\n },\n [limitParamLocation]: {\n ...(config?.defaultArgs?.[limitParamLocation] ?? {}),\n ...limitArgs[limitParamLocation],\n },\n };\n return mergedArgs;\n }\n _getPageParamLocation(location) {\n const loc = location ?? 'query';\n switch (loc) {\n case 'path':\n return 'pathParams';\n case 'query':\n return 'queryParams';\n case 'body':\n return 'body';\n case 'header':\n return 'headers';\n case 'variable':\n return 'variables';\n default:\n throw new Error(`Invalid pageParamLocation: ${loc}`);\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSTVFLE1BQU0sT0FBTyxhQUFhO0lBZ0J4QixJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsWUFBb0IsT0FBaUY7UUFBakYsWUFBTyxHQUFQLE9BQU8sQ0FBMEU7UUF6RHBGLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQWdCLElBQUksQ0FBQyxDQUFDO1FBQ3pELDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNuRSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUN4RCxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBQ3pELFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBbUIsRUFBNkIsQ0FBQyxDQUFDO1FBRXZGLG1CQUFjLEdBQW1CLEVBQUUsQ0FBQztJQWtENEQsQ0FBQztJQUV6RyxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsTUFBTSxjQUFjLEdBQ2xCLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDO1lBQ3pDLElBQUksRUFBRSxPQUFPO1lBQ2IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLElBQUksT0FBTyxDQUFDO1FBRWhCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUU3RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFXLENBQUM7UUFDekUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxLQUFLLENBQ0gsU0FHQztRQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUV6RCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUE2QixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFZO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEYsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFcEUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFzQixDQUFDO2lCQUN0RDtnQkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLGFBQWEsS0FBSyxPQUFPLEVBQUU7b0JBQ25ELE9BQU8sR0FBRyxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBcUIsQ0FBQztpQkFDMUQ7cUJBQU07b0JBQ0wsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFxQixDQUFDO2lCQUMxRDtnQkFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFMUIsTUFBTSxVQUFVLEdBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDMUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7aUJBQ2hDLENBQUM7b0JBQ0YsS0FBSyxDQUFDLFFBQVEsRUFBRSxVQUFVO29CQUMxQixJQUFJLENBQUM7Z0JBRVAsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELFFBQVEsRUFBRSxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWdGLEVBQUUsSUFBWTtRQUNqSCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRWxGLE1BQU0sUUFBUSxHQUFHO1lBQ2YsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUNuQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxFQUFFLElBQUk7YUFDekM7U0FDRixDQUFDO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRixNQUFNLFNBQVMsR0FBRztZQUNoQixDQUFDLGtCQUFrQixDQUFDLEVBQUU7Z0JBQ3BCLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxLQUFLLElBQUksRUFBRTthQUN0RTtTQUNGLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUVoRCxNQUFNLFVBQVUsR0FDZCxpQkFBaUIsS0FBSyxrQkFBa0I7WUFDdEMsQ0FBQyxDQUFDO2dCQUNFLEdBQUcsYUFBYTtnQkFDaEIsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO29CQUNuQixHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO29CQUNuRCxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDL0IsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUM7aUJBQ2pDO2FBQ0Y7WUFDSCxDQUFDLENBQUM7Z0JBQ0UsR0FBRyxhQUFhO2dCQUNoQixDQUFDLGlCQUFpQixDQUFDLEVBQUU7b0JBQ25CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25ELEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDO2lCQUMvQjtnQkFDRCxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0JBQ3BCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3BELEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUFDO2lCQUNqQzthQUNGLENBQUM7UUFFUixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8scUJBQXFCLENBQUMsUUFBZ0Q7UUFDNUUsTUFBTSxHQUFHLEdBQUcsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUVoQyxRQUFRLEdBQUcsRUFBRTtZQUNYLEtBQUssTUFBTTtnQkFDVCxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxhQUFhLENBQUM7WUFDdkIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssUUFBUTtnQkFDWCxPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxXQUFXLENBQUM7WUFDckI7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJTdWNjZXNzLCBRdWVyeVN0YXRlRGF0YSwgdGFrZVVudGlsUmVzcG9uc2UgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgSW5maW5pdHlRdWVyeVBhcmFtTG9jYXRpb24gfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEluZmluaXR5UXVlcnk8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudENhbGN1bGF0ZWRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsUGFnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXNQZXJQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLl9jb25maWcubGltaXRQYXJhbT8udmFsdWUgPz8gMTApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50UXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeSB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW5maW5pdHlSZXNwb25zZT4oW10gYXMgYW55IGFzIEluZmluaXR5UmVzcG9uc2UpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgZ2V0IGN1cnJlbnRQYWdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGFnZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50Q2FsY3VsYXRlZFBhZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50Q2FsY3VsYXRlZFBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRDYWxjdWxhdGVkUGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudENhbGN1bGF0ZWRQYWdlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IHRvdGFsUGFnZXMkKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB0b3RhbFBhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXRlbXNQZXJQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgY3VycmVudFF1ZXJ5JCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFF1ZXJ5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50UXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRRdWVyeSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBkYXRhJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogSW5maW5pdHlRdWVyeUNvbmZpZzxRdWVyeUNyZWF0b3IsIEFyZ3MsIFF1ZXJ5UmVzcG9uc2UsIEluZmluaXR5UmVzcG9uc2U+KSB7fVxuXG4gIG5leHRQYWdlKCkge1xuICAgIGNvbnN0IG5ld1BhZ2UgPSAodGhpcy5fY3VycmVudFBhZ2UkLnZhbHVlID8/IDApICsgMTtcbiAgICBjb25zdCBjYWxjdWxhdGVkUGFnZSA9XG4gICAgICB0aGlzLl9jb25maWc/LnBhZ2VQYXJhbT8udmFsdWVDYWxjdWxhdG9yPy4oe1xuICAgICAgICBwYWdlOiBuZXdQYWdlLFxuICAgICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMsXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5pdGVtc1BlclBhZ2UsXG4gICAgICB9KSA/PyBuZXdQYWdlO1xuXG4gICAgY29uc3QgYXJncyA9IHRoaXMuX3ByZXBhcmVBcmdzKHRoaXMuX2NvbmZpZywgY2FsY3VsYXRlZFBhZ2UpO1xuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLl9jb25maWcucXVlcnlDcmVhdG9yLnByZXBhcmUoYXJncykuZXhlY3V0ZSgpIGFzIFF1ZXJ5O1xuICAgIHRoaXMuX2hhbmRsZU5ld1F1ZXJ5KHF1ZXJ5KTtcblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlJC5uZXh0KG5ld1BhZ2UpO1xuICAgIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQubmV4dChjYWxjdWxhdGVkUGFnZSk7XG4gICAgdGhpcy5fY3VycmVudFF1ZXJ5JC5uZXh0KHF1ZXJ5KTtcbiAgfVxuXG4gIHJlc2V0KFxuICAgIG5ld0NvbmZpZz86IE9taXQ8XG4gICAgICBJbmZpbml0eVF1ZXJ5Q29uZmlnPFF1ZXJ5Q3JlYXRvciwgQXJncywgUXVlcnlSZXNwb25zZSwgSW5maW5pdHlSZXNwb25zZT4sXG4gICAgICAncXVlcnlDcmVhdG9yJyB8ICdyZXNwb25zZSdcbiAgICA+LFxuICApIHtcbiAgICB0aGlzLl9kZXN0cm95KCk7XG5cbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuX2NvbmZpZywgLi4uKG5ld0NvbmZpZyA/PyB7fSkgfTtcblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQubmV4dChudWxsKTtcbiAgICB0aGlzLl90b3RhbFBhZ2VzJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2l0ZW1zUGVyUGFnZSQubmV4dCh0aGlzLl9jb25maWcubGltaXRQYXJhbT8udmFsdWUgPz8gMTApO1xuICAgIHRoaXMuX2N1cnJlbnRRdWVyeSQubmV4dChudWxsKTtcblxuICAgIHRoaXMuX2RhdGEkLm5leHQoW10gYXMgYW55IGFzIEluZmluaXR5UmVzcG9uc2UpO1xuICB9XG5cbiAgX2Rlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOZXdRdWVyeShxdWVyeTogUXVlcnkpIHtcbiAgICBjb25zdCBzdGF0ZUNoYW5nZXNTdWIgPSBxdWVyeS5zdGF0ZSQucGlwZSh0YWtlVW50aWxSZXNwb25zZSgpLCBmaWx0ZXJTdWNjZXNzKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoc3RhdGUpID0+IHtcbiAgICAgICAgbGV0IG5ld0RhdGEgPSB0aGlzLl9jb25maWc/LnJlc3BvbnNlLnZhbHVlRXh0cmFjdG9yKHN0YXRlLnJlc3BvbnNlKTtcblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLnJlc3BvbnNlLnJldmVyc2UpIHtcbiAgICAgICAgICBuZXdEYXRhID0gWy4uLm5ld0RhdGFdLnJldmVyc2UoKSBhcyBJbmZpbml0eVJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5yZXNwb25zZS5hcHBlbmRJdGVtc1RvID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5uZXdEYXRhLCAuLi50aGlzLmRhdGFdIGFzIEluZmluaXR5UmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi50aGlzLmRhdGEsIC4uLm5ld0RhdGFdIGFzIEluZmluaXR5UmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KG5ld0RhdGEpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPVxuICAgICAgICAgIHRoaXMuX2NvbmZpZy5yZXNwb25zZS50b3RhbFBhZ2VzRXh0cmFjdG9yPy4oe1xuICAgICAgICAgICAgcmVzcG9uc2U6IHN0YXRlLnJlc3BvbnNlLFxuICAgICAgICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLml0ZW1zUGVyUGFnZSxcbiAgICAgICAgICB9KSA/P1xuICAgICAgICAgIHN0YXRlLnJlc3BvbnNlPy50b3RhbFBhZ2VzID8/XG4gICAgICAgICAgbnVsbDtcblxuICAgICAgICB0aGlzLl90b3RhbFBhZ2VzJC5uZXh0KHRvdGFsUGFnZXMpO1xuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmZpbHRlcigoc3ViKSA9PiBzdWIgIT09IHN0YXRlQ2hhbmdlc1N1Yik7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHN0YXRlQ2hhbmdlc1N1Yik7XG4gIH1cblxuICBwcml2YXRlIF9wcmVwYXJlQXJncyhjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPiwgcGFnZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZVBhcmFtTG9jYXRpb24gPSB0aGlzLl9nZXRQYWdlUGFyYW1Mb2NhdGlvbihjb25maWc/LnBhZ2VQYXJhbT8ubG9jYXRpb24pO1xuXG4gICAgY29uc3QgcGFnZUFyZ3MgPSB7XG4gICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgIFtjb25maWc/LnBhZ2VQYXJhbT8ua2V5ID8/ICdwYWdlJ106IHBhZ2UsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBsaW1pdFBhcmFtTG9jYXRpb24gPSB0aGlzLl9nZXRQYWdlUGFyYW1Mb2NhdGlvbihjb25maWc/LmxpbWl0UGFyYW0/LmxvY2F0aW9uKTtcblxuICAgIGNvbnN0IGxpbWl0QXJncyA9IHtcbiAgICAgIFtsaW1pdFBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgIFtjb25maWc/LmxpbWl0UGFyYW0/LmtleSA/PyAnbGltaXQnXTogY29uZmlnPy5saW1pdFBhcmFtPy52YWx1ZSA/PyAxMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSBjb25maWc/LmRlZmF1bHRBcmdzID8/IHt9O1xuXG4gICAgY29uc3QgbWVyZ2VkQXJncyA9XG4gICAgICBwYWdlUGFyYW1Mb2NhdGlvbiA9PT0gbGltaXRQYXJhbUxvY2F0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdENvbmZpZyxcbiAgICAgICAgICAgIFtwYWdlUGFyYW1Mb2NhdGlvbl06IHtcbiAgICAgICAgICAgICAgLi4uKGNvbmZpZz8uZGVmYXVsdEFyZ3M/LltwYWdlUGFyYW1Mb2NhdGlvbl0gPz8ge30pLFxuICAgICAgICAgICAgICAuLi5wYWdlQXJnc1tsaW1pdFBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgICAuLi5saW1pdEFyZ3NbbGltaXRQYXJhbUxvY2F0aW9uXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRDb25maWcsXG4gICAgICAgICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bcGFnZVBhcmFtTG9jYXRpb25dID8/IHt9KSxcbiAgICAgICAgICAgICAgLi4ucGFnZUFyZ3NbcGFnZVBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtsaW1pdFBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bbGltaXRQYXJhbUxvY2F0aW9uXSA/PyB7fSksXG4gICAgICAgICAgICAgIC4uLmxpbWl0QXJnc1tsaW1pdFBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIG1lcmdlZEFyZ3M7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYWdlUGFyYW1Mb2NhdGlvbihsb2NhdGlvbjogSW5maW5pdHlRdWVyeVBhcmFtTG9jYXRpb24gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiA/PyAncXVlcnknO1xuXG4gICAgc3dpdGNoIChsb2MpIHtcbiAgICAgIGNhc2UgJ3BhdGgnOlxuICAgICAgICByZXR1cm4gJ3BhdGhQYXJhbXMnO1xuICAgICAgY2FzZSAncXVlcnknOlxuICAgICAgICByZXR1cm4gJ3F1ZXJ5UGFyYW1zJztcbiAgICAgIGNhc2UgJ2JvZHknOlxuICAgICAgICByZXR1cm4gJ2JvZHknO1xuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgcmV0dXJuICdoZWFkZXJzJztcbiAgICAgIGNhc2UgJ3ZhcmlhYmxlJzpcbiAgICAgICAgcmV0dXJuICd2YXJpYWJsZXMnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhZ2VQYXJhbUxvY2F0aW9uOiAke2xvY31gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","export const createInfinityQueryConfig = (config) => config;\nexport const skipPaginationPageParamCalculator = ({ page, itemsPerPage }) => itemsPerPage * (page - 1);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FPdkMsTUFBZ0YsRUFDaEYsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUVaLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUE4QixFQUFFLEVBQUUsQ0FDdEcsWUFBWSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlTdGF0ZURhdGEgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgUGFnZVBhcmFtQ2FsY3VsYXRvck9wdGlvbnMgfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZmluaXR5UXVlcnlDb25maWcgPSA8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+KFxuICBjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPixcbikgPT4gY29uZmlnO1xuXG5leHBvcnQgY29uc3Qgc2tpcFBhZ2luYXRpb25QYWdlUGFyYW1DYWxjdWxhdG9yID0gKHsgcGFnZSwgaXRlbXNQZXJQYWdlIH06IFBhZ2VQYXJhbUNhbGN1bGF0b3JPcHRpb25zKSA9PlxuICBpdGVtc1BlclBhZ2UgKiAocGFnZSAtIDEpO1xuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectorRef, Directive, ErrorHandler, inject, InjectionToken, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { DestroyService } from '@ethlete/core';\nimport { BehaviorSubject, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { InfinityQuery } from '../infinite-query';\nimport { isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess } from '../query';\nimport * as i0 from \"@angular/core\";\nexport const INFINITY_QUERY_TOKEN = new InjectionToken('INFINITY_QUERY_TOKEN');\nexport class InfinityQueryDirective {\n constructor() {\n this._queryConfigChanged$ = new Subject();\n this._viewContext = {\n $implicit: null,\n infinityQuery: null,\n loading: false,\n error: null,\n isFirstLoad: false,\n canLoadMore: false,\n currentPage: null,\n currentCalculatedPage: null,\n totalPages: null,\n itemsPerPage: null,\n };\n this._infinityQueryInstance = null;\n this._destroy$ = inject(DestroyService).destroy$;\n this._cdr = inject(ChangeDetectorRef);\n this._viewContainerRef = inject(ViewContainerRef);\n this._mainTemplateRef = inject((TemplateRef));\n this._errorHandler = inject(ErrorHandler);\n this._data$ = new BehaviorSubject([]);\n this._isMainViewCreated = false;\n }\n get infinityQuery() {\n return this._infinityQuery;\n }\n set infinityQuery(v) {\n this._cleanup();\n this._infinityQuery = v;\n this._infinityQueryInstance = this._setupInfinityQuery(v);\n this._loadNextPage();\n }\n get context() {\n return this._viewContext;\n }\n get instance() {\n return this._infinityQueryInstance;\n }\n get data$() {\n return this._data$.asObservable();\n }\n get data() {\n return this._data$.getValue();\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n ngOnInit() {\n this._renderMainView();\n }\n ngOnDestroy() {\n this.instance?._destroy();\n }\n _setupInfinityQuery(config) {\n const instance = new InfinityQuery(config);\n instance.currentQuery$\n .pipe(switchMap((q) => q?.state$ ?? of(null)), tap((state) => {\n this._viewContext.currentPage = instance.currentPage;\n this._viewContext.totalPages = instance.totalPages;\n this._viewContext.itemsPerPage = instance.itemsPerPage;\n this._viewContext.canLoadMore =\n (instance.totalPages && instance.currentPage && instance.totalPages > instance.currentPage) || false;\n this._viewContext.currentCalculatedPage = instance.currentCalculatedPage;\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = this.context.infinityQuery === null;\n }\n else if (isQueryStateFailure(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = state.error;\n this._viewContext.isFirstLoad = false;\n this._errorHandler.handleError(state.error);\n }\n else if (isQueryStateSuccess(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = false;\n }\n else {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n this._data$.next([]);\n }\n this._cdr.markForCheck();\n }), takeUntil(this._destroy$), takeUntil(this._queryConfigChanged$))\n .subscribe();\n instance.data$\n .pipe(tap((data) => {\n this._viewContext.infinityQuery = this._viewContext.$implicit = data;\n this._data$.next(data);\n this._cdr.markForCheck();\n }), takeUntil(this._destroy$), takeUntil(this._queryConfigChanged$))\n .subscribe();\n return instance;\n }\n _loadNextPage() {\n if (!this._infinityQueryInstance) {\n return;\n }\n this._infinityQueryInstance.nextPage();\n }\n _renderMainView() {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n _cleanup() {\n this._queryConfigChanged$.next(true);\n this.instance?._destroy();\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n this._data$.next([]);\n }\n}\nInfinityQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nInfinityQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: InfinityQueryDirective, isStandalone: true, selector: \"[infinityQuery]\", inputs: { infinityQuery: \"infinityQuery\" }, providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }, DestroyService], exportAs: [\"infinityQuery\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQuery]',\n exportAs: 'infinityQuery',\n standalone: true,\n providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }, DestroyService],\n }]\n }], propDecorators: { infinityQuery: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RpcmVjdGl2ZXMvaW5maW5pdHktcXVlcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBaUIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBa0J4RyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsc0JBQXNCLENBQUMsQ0FBQztBQVM1RyxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBVW1CLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDOUMsaUJBQVksR0FBNEI7WUFDdkQsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxJQUFJO1lBRVgsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLElBQUk7WUFDakIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ00sMkJBQXNCLEdBQXVELElBQUksQ0FBQztRQUV6RSxjQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUM1QyxTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDN0MscUJBQWdCLEdBQUcsTUFBTSxDQUFDLENBQUEsV0FBb0MsQ0FBQSxDQUFDLENBQUM7UUFDaEUsa0JBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckMsV0FBTSxHQUFHLElBQUksZUFBZSxDQUE2QixFQUFFLENBQUMsQ0FBQztRQUV0RSx1QkFBa0IsR0FBRyxLQUFLLENBQUM7S0FnSnBDO0lBOUlDLElBQ0ksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxhQUFhLENBQUMsQ0FBSTtRQUNwQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQzNCLEdBQThCLEVBQzlCLEdBQVk7UUFFWixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBUztRQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzQyxRQUFRLENBQUMsYUFBYTthQUNuQixJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN2QyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDckQsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVztnQkFDM0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxDQUFDO1lBQ3ZHLElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDO1lBRXpFLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUM7YUFDckU7aUJBQU0sSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QztpQkFBTSxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQ3ZDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFFbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztnQkFDckMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBRXBDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3RCO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixRQUFRLENBQUMsS0FBSzthQUNYLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQXlDLENBQUM7WUFDMUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFFZixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNyRjtJQUNILENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUVuQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXBDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O21IQTFLVSxzQkFBc0I7dUdBQXRCLHNCQUFzQiwwR0FGdEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxjQUFjLENBQUM7MkZBRXhGLHNCQUFzQjtrQkFQbEMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyx3QkFBd0IsRUFBRSxFQUFFLGNBQWMsQ0FBQztpQkFDcEc7OEJBK0JLLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFcnJvckhhbmRsZXIsXG4gIGluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveVNlcnZpY2UgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluZmluaXR5UXVlcnksIEluZmluaXR5UXVlcnlDb25maWcgfSBmcm9tICcuLi9pbmZpbml0ZS1xdWVyeSc7XG5pbXBvcnQgeyBCYXNlQXJndW1lbnRzLCBpc1F1ZXJ5U3RhdGVGYWlsdXJlLCBpc1F1ZXJ5U3RhdGVMb2FkaW5nLCBpc1F1ZXJ5U3RhdGVTdWNjZXNzIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgQW55UXVlcnlDcmVhdG9yIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuXG5pbnRlcmZhY2UgSW5maW5pdHlRdWVyeUNvbnRleHQ8USBleHRlbmRzIEluZmluaXR5UXVlcnlDb25maWc8QW55UXVlcnlDcmVhdG9yLCBCYXNlQXJndW1lbnRzLCBhbnksIHVua25vd25bXT4+IHtcbiAgJGltcGxpY2l0OiBRWydyZXNwb25zZSddWydhcnJheVR5cGUnXSB8IG51bGw7XG4gIGluZmluaXR5UXVlcnk6IFFbJ3Jlc3BvbnNlJ11bJ2FycmF5VHlwZSddIHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IFJlcXVlc3RFcnJvcjx1bmtub3duPiB8IG51bGw7XG5cbiAgaXNGaXJzdExvYWQ6IGJvb2xlYW47XG4gIGNhbkxvYWRNb3JlOiBib29sZWFuO1xuICBjdXJyZW50UGFnZTogbnVtYmVyIHwgbnVsbDtcbiAgY3VycmVudENhbGN1bGF0ZWRQYWdlOiBudW1iZXIgfCBudWxsO1xuICB0b3RhbFBhZ2VzOiBudW1iZXIgfCBudWxsO1xuICBpdGVtc1BlclBhZ2U6IG51bWJlciB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBJTkZJTklUWV9RVUVSWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJbmZpbml0eVF1ZXJ5RGlyZWN0aXZlPGFueT4+KCdJTkZJTklUWV9RVUVSWV9UT0tFTicpO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5maW5pdHlRdWVyeV0nLFxuICBleHBvcnRBczogJ2luZmluaXR5UXVlcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElORklOSVRZX1FVRVJZX1RPS0VOLCB1c2VFeGlzdGluZzogSW5maW5pdHlRdWVyeURpcmVjdGl2ZSB9LCBEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEluZmluaXR5UXVlcnlEaXJlY3RpdmU8USBleHRlbmRzIEluZmluaXR5UXVlcnlDb25maWc8QW55UXVlcnlDcmVhdG9yLCBCYXNlQXJndW1lbnRzLCBhbnksIHVua25vd25bXT4+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlDb25maWdDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250ZXh0OiBJbmZpbml0eVF1ZXJ5Q29udGV4dDxRPiA9IHtcbiAgICAkaW1wbGljaXQ6IG51bGwsXG4gICAgaW5maW5pdHlRdWVyeTogbnVsbCxcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcblxuICAgIGlzRmlyc3RMb2FkOiBmYWxzZSxcbiAgICBjYW5Mb2FkTW9yZTogZmFsc2UsXG4gICAgY3VycmVudFBhZ2U6IG51bGwsXG4gICAgY3VycmVudENhbGN1bGF0ZWRQYWdlOiBudWxsLFxuICAgIHRvdGFsUGFnZXM6IG51bGwsXG4gICAgaXRlbXNQZXJQYWdlOiBudWxsLFxuICB9O1xuICBwcml2YXRlIF9pbmZpbml0eVF1ZXJ5SW5zdGFuY2U6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX3NldHVwSW5maW5pdHlRdWVyeT4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGluamVjdChEZXN0cm95U2VydmljZSkuZGVzdHJveSQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21haW5UZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxJbmZpbml0eVF1ZXJ5Q29udGV4dDxRPj4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcnJvckhhbmRsZXIgPSBpbmplY3QoRXJyb3JIYW5kbGVyKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UVsncmVzcG9uc2UnXVsnYXJyYXlUeXBlJ10+KFtdKTtcblxuICBwcml2YXRlIF9pc01haW5WaWV3Q3JlYXRlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbmZpbml0eVF1ZXJ5KCk6IFEge1xuICAgIHJldHVybiB0aGlzLl9pbmZpbml0eVF1ZXJ5O1xuICB9XG4gIHNldCBpbmZpbml0eVF1ZXJ5KHY6IFEpIHtcbiAgICB0aGlzLl9jbGVhbnVwKCk7XG5cbiAgICB0aGlzLl9pbmZpbml0eVF1ZXJ5ID0gdjtcbiAgICB0aGlzLl9pbmZpbml0eVF1ZXJ5SW5zdGFuY2UgPSB0aGlzLl9zZXR1cEluZmluaXR5UXVlcnkodik7XG4gICAgdGhpcy5fbG9hZE5leHRQYWdlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfaW5maW5pdHlRdWVyeSE6IFE7XG5cbiAgZ2V0IGNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdDb250ZXh0O1xuICB9XG5cbiAgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbmZpbml0eVF1ZXJ5SW5zdGFuY2U7XG4gIH1cblxuICBnZXQgZGF0YSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmdldFZhbHVlKCk7XG4gIH1cblxuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxRIGV4dGVuZHMgSW5maW5pdHlRdWVyeUNvbmZpZzxBbnlRdWVyeUNyZWF0b3IsIEJhc2VBcmd1bWVudHMsIGFueSwgdW5rbm93bltdPj4oXG4gICAgZGlyOiBJbmZpbml0eVF1ZXJ5RGlyZWN0aXZlPFE+LFxuICAgIGN0eDogdW5rbm93bixcbiAgKTogY3R4IGlzIEluZmluaXR5UXVlcnlDb250ZXh0PFE+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlck1haW5WaWV3KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbmNlPy5fZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbmZpbml0eVF1ZXJ5KGNvbmZpZzogUSkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IEluZmluaXR5UXVlcnkoY29uZmlnKTtcblxuICAgIGluc3RhbmNlLmN1cnJlbnRRdWVyeSRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHEpID0+IHE/LnN0YXRlJCA/PyBvZihudWxsKSksXG4gICAgICAgIHRhcCgoc3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jdXJyZW50UGFnZSA9IGluc3RhbmNlLmN1cnJlbnRQYWdlO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBpbnN0YW5jZS50b3RhbFBhZ2VzO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0Lml0ZW1zUGVyUGFnZSA9IGluc3RhbmNlLml0ZW1zUGVyUGFnZTtcbiAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9XG4gICAgICAgICAgICAoaW5zdGFuY2UudG90YWxQYWdlcyAmJiBpbnN0YW5jZS5jdXJyZW50UGFnZSAmJiBpbnN0YW5jZS50b3RhbFBhZ2VzID4gaW5zdGFuY2UuY3VycmVudFBhZ2UpIHx8IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmN1cnJlbnRDYWxjdWxhdGVkUGFnZSA9IGluc3RhbmNlLmN1cnJlbnRDYWxjdWxhdGVkUGFnZTtcblxuICAgICAgICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IHRoaXMuY29udGV4dC5pbmZpbml0eVF1ZXJ5ID09PSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNRdWVyeVN0YXRlRmFpbHVyZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gc3RhdGUuZXJyb3I7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKHN0YXRlLmVycm9yKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pbmZpbml0eVF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LiRpbXBsaWNpdCA9IG51bGw7XG5cbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmlzRmlyc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQuY3VycmVudFBhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQuaXRlbXNQZXJQYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBudWxsO1xuXG4gICAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KFtdKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fcXVlcnlDb25maWdDaGFuZ2VkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBpbnN0YW5jZS5kYXRhJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmluZmluaXR5UXVlcnkgPSB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBkYXRhIGFzIFFbJ3Jlc3BvbnNlJ11bJ2FycmF5VHlwZSddIHwgbnVsbDtcbiAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KGRhdGEpO1xuXG4gICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3F1ZXJ5Q29uZmlnQ2hhbmdlZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgX2xvYWROZXh0UGFnZSgpIHtcbiAgICBpZiAoIXRoaXMuX2luZmluaXR5UXVlcnlJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2luZmluaXR5UXVlcnlJbnN0YW5jZS5uZXh0UGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTWFpblZpZXcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc01haW5WaWV3Q3JlYXRlZCkge1xuICAgICAgdGhpcy5faXNNYWluVmlld0NyZWF0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fbWFpblRlbXBsYXRlUmVmLCB0aGlzLl92aWV3Q29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW51cCgpIHtcbiAgICB0aGlzLl9xdWVyeUNvbmZpZ0NoYW5nZWQkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLmluc3RhbmNlPy5fZGVzdHJveSgpO1xuXG4gICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5pbmZpbml0eVF1ZXJ5ID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBudWxsO1xuXG4gICAgdGhpcy5fdmlld0NvbnRleHQuaXNGaXJzdExvYWQgPSBmYWxzZTtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9IGZhbHNlO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LmN1cnJlbnRQYWdlID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5pdGVtc1BlclBhZ2UgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBudWxsO1xuXG4gICAgdGhpcy5fZGF0YSQubmV4dChbXSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, inject, Input } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { INFINITY_QUERY_TOKEN } from './infinity-query.directive';\nimport * as i0 from \"@angular/core\";\nexport class InfinityQueryTriggerDirective {\n constructor() {\n this._elementRef = inject((ElementRef));\n this._infinityQuery = inject(INFINITY_QUERY_TOKEN);\n this._destroy = new Subject();\n this._observer = null;\n this.click$ = fromEvent(this._elementRef.nativeElement, 'click');\n this.scrollContainerSelector = null;\n }\n ngOnInit() {\n const isInteractive = this._elementRef.nativeElement.hasAttribute('infinityQueryTrigger');\n if (isInteractive) {\n this.click$.pipe(takeUntil(this._destroy)).subscribe(() => this._infinityQuery._loadNextPage());\n }\n else {\n this._setupIntersectionObserver();\n }\n }\n ngOnDestroy() {\n this._destroy.next(true);\n this._destroy.unsubscribe();\n this._observer?.disconnect();\n }\n _setupIntersectionObserver() {\n this._observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !this._infinityQuery.context.loading) {\n this._infinityQuery._loadNextPage();\n }\n }, {\n root: this.scrollContainerSelector ? document.querySelector(this.scrollContainerSelector) : null,\n rootMargin: '0px',\n threshold: 1.0,\n });\n this._observer.observe(this._elementRef.nativeElement);\n }\n}\nInfinityQueryTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nInfinityQueryTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: InfinityQueryTriggerDirective, isStandalone: true, selector: \"[infinityQueryTrigger], infinity-query-trigger\", inputs: { scrollContainerSelector: \"scrollContainerSelector\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryTriggerDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQueryTrigger], infinity-query-trigger',\n standalone: true,\n }]\n }], propDecorators: { scrollContainerSelector: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnktdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZGlyZWN0aXZlcy9pbmZpbml0eS1xdWVyeS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyw2QkFBNkI7SUFMMUM7UUFNVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBQzlDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEMsY0FBUyxHQUFnQyxJQUFJLENBQUM7UUFFdEQsV0FBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUc1RCw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO0tBb0MvQztJQWxDQyxRQUFRO1FBQ04sTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFMUYsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDakc7YUFBTTtZQUNMLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQ3ZDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekIsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxFQUNEO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNoRyxVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsR0FBRztTQUNmLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7MEhBN0NVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBTHpDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBV0MsdUJBQXVCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElORklOSVRZX1FVRVJZX1RPS0VOIH0gZnJvbSAnLi9pbmZpbml0eS1xdWVyeS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5maW5pdHlRdWVyeVRyaWdnZXJdLCBpbmZpbml0eS1xdWVyeS10cmlnZ2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5maW5pdHlRdWVyeVRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIF9pbmZpbml0eVF1ZXJ5ID0gaW5qZWN0KElORklOSVRZX1FVRVJZX1RPS0VOKTtcblxuICBwcml2YXRlIF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY2xpY2skID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyk7XG5cbiAgQElucHV0KClcbiAgc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzSW50ZXJhY3RpdmUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdpbmZpbml0eVF1ZXJ5VHJpZ2dlcicpO1xuXG4gICAgaWYgKGlzSW50ZXJhY3RpdmUpIHtcbiAgICAgIHRoaXMuY2xpY2skLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW5maW5pdHlRdWVyeS5fbG9hZE5leHRQYWdlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2Rlc3Ryb3kudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcblxuICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgIXRoaXMuX2luZmluaXR5UXVlcnkuY29udGV4dC5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5faW5maW5pdHlRdWVyeS5fbG9hZE5leHRQYWdlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJvb3Q6IHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IpIDogbnVsbCxcbiAgICAgICAgcm9vdE1hcmdpbjogJzBweCcsXG4gICAgICAgIHRocmVzaG9sZDogMS4wLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG59XG4iXX0=","export class QueryStore {\n constructor(_config) {\n this._config = _config;\n this._store = new Map();\n this._garbageCollector = null;\n }\n add(id, query) {\n this._store.set(id, query);\n this._initGarbageCollector();\n this._logState(id, query, 'SET');\n }\n get(id) {\n return this._store.get(id) ?? null;\n }\n remove(id) {\n this._store.delete(id);\n this._logState(id, null, 'REMOVE');\n }\n _logState(key, item, operation) {\n if (!this._config?.enableChangeLogging)\n return;\n const stateAsJson = {};\n this._store.forEach((value, key) => {\n stateAsJson[key] = value;\n });\n console.log(`%c[${operation}] ${key}`, 'font-weight: bold');\n console.log({ operation, key, item });\n console.log(stateAsJson);\n }\n _initGarbageCollector() {\n if (this._garbageCollector !== null) {\n return;\n }\n this._logGarbageCollector('Start');\n this._garbageCollector = window.setInterval(() => {\n this._runGarbageCollector();\n }, 15000);\n }\n _stopGarbageCollector() {\n if (this._garbageCollector !== null) {\n window.clearInterval(this._garbageCollector);\n this._garbageCollector = null;\n }\n }\n _runGarbageCollector() {\n this._logGarbageCollector('Collecting...');\n this._store.forEach((item, key) => {\n if (item.isExpired) {\n this.remove(key);\n }\n });\n this._logGarbageCollector('Collection done');\n if (!this._store.size) {\n this._stopGarbageCollector();\n this._logGarbageCollector('Stop');\n }\n }\n _logGarbageCollector(action) {\n if (!this._config?.enableGarbageCollectorLogging)\n return;\n console.log(`%cGC: ${action}`, 'color: yellow; font-weight: bold');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktc3RvcmUvcXVlcnktc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFDVSxPQUdQO1FBSE8sWUFBTyxHQUFQLE9BQU8sQ0FHZDtRQVBjLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO0lBTzdDLENBQUM7SUFFSixHQUFHLENBQUMsRUFBVSxFQUFFLEtBQWU7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFrQixFQUFFLElBQXFCLEVBQUUsU0FBaUI7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CO1lBQUUsT0FBTztRQUUvQyxNQUFNLFdBQVcsR0FBNkIsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2pDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sU0FBUyxLQUFLLEdBQUcsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsNkJBQTZCO1lBQUUsT0FBTztRQUV6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsTUFBTSxFQUFFLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlRdWVyeSB9IGZyb20gJy4uL3F1ZXJ5JztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5U3RvcmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IG5ldyBNYXA8c3RyaW5nLCBBbnlRdWVyeT4oKTtcbiAgcHJpdmF0ZSBfZ2FyYmFnZUNvbGxlY3RvcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29uZmlnPzoge1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZz86IGJvb2xlYW47XG4gICAgICBlbmFibGVHYXJiYWdlQ29sbGVjdG9yTG9nZ2luZz86IGJvb2xlYW47XG4gICAgfSxcbiAgKSB7fVxuXG4gIGFkZChpZDogc3RyaW5nLCBxdWVyeTogQW55UXVlcnkpIHtcbiAgICB0aGlzLl9zdG9yZS5zZXQoaWQsIHF1ZXJ5KTtcblxuICAgIHRoaXMuX2luaXRHYXJiYWdlQ29sbGVjdG9yKCk7XG5cbiAgICB0aGlzLl9sb2dTdGF0ZShpZCwgcXVlcnksICdTRVQnKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmdldChpZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHJlbW92ZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3RvcmUuZGVsZXRlKGlkKTtcblxuICAgIHRoaXMuX2xvZ1N0YXRlKGlkLCBudWxsLCAnUkVNT1ZFJyk7XG4gIH1cblxuICBwcml2YXRlIF9sb2dTdGF0ZShrZXk6IHN0cmluZyB8IG51bGwsIGl0ZW06IEFueVF1ZXJ5IHwgbnVsbCwgb3BlcmF0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlQ2hhbmdlTG9nZ2luZykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RhdGVBc0pzb246IFJlY29yZDxzdHJpbmcsIEFueVF1ZXJ5PiA9IHt9O1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgc3RhdGVBc0pzb25ba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYCVjWyR7b3BlcmF0aW9ufV0gJHtrZXl9YCwgJ2ZvbnQtd2VpZ2h0OiBib2xkJyk7XG5cbiAgICBjb25zb2xlLmxvZyh7IG9wZXJhdGlvbiwga2V5LCBpdGVtIH0pO1xuICAgIGNvbnNvbGUubG9nKHN0YXRlQXNKc29uKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RhcnQnKTtcblxuICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5fcnVuR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIH0sIDE1MDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0b3BHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yKTtcbiAgICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3J1bkdhcmJhZ2VDb2xsZWN0b3IoKSB7XG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignQ29sbGVjdGluZy4uLicpO1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XG4gICAgICBpZiAoaXRlbS5pc0V4cGlyZWQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ0NvbGxlY3Rpb24gZG9uZScpO1xuXG4gICAgaWYgKCF0aGlzLl9zdG9yZS5zaXplKSB7XG4gICAgICB0aGlzLl9zdG9wR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RvcCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmcpIHJldHVybjtcblxuICAgIGNvbnNvbGUubG9nKGAlY0dDOiAke2FjdGlvbn1gLCAnY29sb3I6IHllbGxvdzsgZm9udC13ZWlnaHQ6IGJvbGQnKTtcbiAgfVxufVxuIl19","export const shouldCacheQuery = (method) => {\n return method === 'GET' || method === 'OPTIONS' || method === 'HEAD' || method === 'GQL_QUERY';\n};\nexport const buildGqlCacheKey = (\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconfig, args) => {\n const { query } = config;\n const variables = args?.variables || {};\n const queryWithoutNewLinesAndWhitespace = query.replace(/\\s/g, '');\n const queryFirst50Chars = queryWithoutNewLinesAndWhitespace.slice(0, 50);\n const queryMiddle25Chars = queryWithoutNewLinesAndWhitespace.slice(queryWithoutNewLinesAndWhitespace.length / 2 - 25, queryWithoutNewLinesAndWhitespace.length / 2 + 25);\n const queryLast50Chars = queryWithoutNewLinesAndWhitespace.slice(-50);\n const vars = JSON.stringify(variables);\n return `${queryFirst50Chars}...${queryMiddle25Chars}...${queryLast50Chars}...${vars}`;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUNqRCxPQUFPLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDakcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7QUFDOUIsOERBQThEO0FBQzlELE1BQTBDLEVBQzFDLElBQStCLEVBQy9CLEVBQUU7SUFDRixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO0lBRXhDLE1BQU0saUNBQWlDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sa0JBQWtCLEdBQUcsaUNBQWlDLENBQUMsS0FBSyxDQUNoRSxpQ0FBaUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFDakQsaUNBQWlDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQ2xELENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkMsT0FBTyxHQUFHLGlCQUFpQixNQUFNLGtCQUFrQixNQUFNLGdCQUFnQixNQUFNLElBQUksRUFBRSxDQUFDO0FBQ3hGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBcmd1bWVudHMsIEdxbFF1ZXJ5Q29uZmlnIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBzaG91bGRDYWNoZVF1ZXJ5ID0gKG1ldGhvZDogTWV0aG9kKSA9PiB7XG4gIHJldHVybiBtZXRob2QgPT09ICdHRVQnIHx8IG1ldGhvZCA9PT0gJ09QVElPTlMnIHx8IG1ldGhvZCA9PT0gJ0hFQUQnIHx8IG1ldGhvZCA9PT0gJ0dRTF9RVUVSWSc7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRHcWxDYWNoZUtleSA9IChcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uZmlnOiBHcWxRdWVyeUNvbmZpZzxhbnksIGFueSwgYW55LCBhbnk+LFxuICBhcmdzOiBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuKSA9PiB7XG4gIGNvbnN0IHsgcXVlcnkgfSA9IGNvbmZpZztcbiAgY29uc3QgdmFyaWFibGVzID0gYXJncz8udmFyaWFibGVzIHx8IHt9O1xuXG4gIGNvbnN0IHF1ZXJ5V2l0aG91dE5ld0xpbmVzQW5kV2hpdGVzcGFjZSA9IHF1ZXJ5LnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbiAgY29uc3QgcXVlcnlGaXJzdDUwQ2hhcnMgPSBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2Uuc2xpY2UoMCwgNTApO1xuICBjb25zdCBxdWVyeU1pZGRsZTI1Q2hhcnMgPSBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2Uuc2xpY2UoXG4gICAgcXVlcnlXaXRob3V0TmV3TGluZXNBbmRXaGl0ZXNwYWNlLmxlbmd0aCAvIDIgLSAyNSxcbiAgICBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2UubGVuZ3RoIC8gMiArIDI1LFxuICApO1xuICBjb25zdCBxdWVyeUxhc3Q1MENoYXJzID0gcXVlcnlXaXRob3V0TmV3TGluZXNBbmRXaGl0ZXNwYWNlLnNsaWNlKC01MCk7XG5cbiAgY29uc3QgdmFycyA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcyk7XG5cbiAgcmV0dXJuIGAke3F1ZXJ5Rmlyc3Q1MENoYXJzfS4uLiR7cXVlcnlNaWRkbGUyNUNoYXJzfS4uLiR7cXVlcnlMYXN0NTBDaGFyc30uLi4ke3ZhcnN9YDtcbn07XG4iXX0=","import { BehaviorSubject } from 'rxjs';\nimport { isGqlQueryConfig, Query, } from '../query';\nimport { QueryStore } from '../query-store';\nimport { buildRoute } from '../request';\nimport { buildGqlCacheKey, shouldCacheQuery } from './query-client.utils';\nexport class QueryClient {\n get config() {\n return this._clientConfig;\n }\n get authProvider() {\n return this._authProvider;\n }\n constructor(_clientConfig) {\n this._clientConfig = _clientConfig;\n this._authProvider = null;\n this.get = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GET',\n });\n this.post = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'POST',\n });\n this.put = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'PUT',\n });\n this.patch = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'PATCH',\n });\n this.delete = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'DELETE',\n });\n this.gqlQuery = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GQL_QUERY',\n });\n this.gqlMutate = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GQL_MUTATE',\n });\n this.fetch = (queryConfig) => {\n const prepare = (args) => {\n const route = buildRoute({\n base: this._clientConfig.baseRoute,\n route: queryConfig.route,\n pathParams: args?.pathParams,\n queryParams: args?.queryParams,\n });\n const cacheKey = isGqlQueryConfig(queryConfig) ? buildGqlCacheKey(queryConfig, args) : route;\n if (shouldCacheQuery(queryConfig.method)) {\n const existingQuery = this._store.get(cacheKey);\n if (existingQuery) {\n return existingQuery;\n }\n }\n const query = new Query(this, queryConfig, route, args);\n if (shouldCacheQuery(queryConfig.method)) {\n this._store.add(cacheKey, query);\n }\n return query;\n };\n const behaviorSubject = (initialValue = null) => new BehaviorSubject(initialValue);\n return {\n prepare,\n behaviorSubject,\n };\n };\n this.setAuthProvider = (authProvider) => {\n if (this._authProvider) {\n throw new Error('The auth provider is already set. Please call clearAuthProvider() first.');\n }\n this._authProvider = authProvider;\n authProvider.queryClient = this;\n };\n this.clearAuthProvider = () => {\n this._authProvider?.cleanUp();\n this._authProvider = null;\n };\n this._store = new QueryStore({\n enableChangeLogging: _clientConfig.logging?.queryStateChanges,\n enableGarbageCollectorLogging: _clientConfig.logging?.queryStateGarbageCollector,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLEtBQUssR0FJTixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxZQUFZLENBQUM7QUFPOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUUsTUFBTSxPQUFPLFdBQVc7SUFJdEIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQW9CLGFBQWdDO1FBQWhDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQVY1QyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFpQmxELFFBQUcsR0FBRyxDQU1KLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUF5RDtZQUNqRSxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUVMLFNBQUksR0FBRyxDQU1MLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUEwRDtZQUNsRSxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUVMLFFBQUcsR0FBRyxDQU1KLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUF5RDtZQUNqRSxH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Q0FBQztZQUMzQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLGlCQUFpQjtZQUM3RCw2QkFBNkIsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLDBCQUEwQjtTQUNqRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBeUpGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIFF1ZXJ5LFxuICBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIFJlc3RRdWVyeUNvbmZpZyxcbiAgUm91dGVUeXBlLFxufSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeVN0b3JlIH0gZnJvbSAnLi4vcXVlcnktc3RvcmUnO1xuaW1wb3J0IHsgYnVpbGRSb3V0ZSwgTWV0aG9kIGFzIE1ldGhvZFR5cGUgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7XG4gIERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyLFxuICBRdWVyeUNsaWVudENvbmZpZyxcbiAgUXVlcnlDcmVhdG9yLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSxcbn0gZnJvbSAnLi9xdWVyeS1jbGllbnQudHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRHcWxDYWNoZUtleSwgc2hvdWxkQ2FjaGVRdWVyeSB9IGZyb20gJy4vcXVlcnktY2xpZW50LnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5Q2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmU6IFF1ZXJ5U3RvcmU7XG4gIHByaXZhdGUgX2F1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50Q29uZmlnO1xuICB9XG5cbiAgZ2V0IGF1dGhQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aFByb3ZpZGVyO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2xpZW50Q29uZmlnOiBRdWVyeUNsaWVudENvbmZpZykge1xuICAgIHRoaXMuX3N0b3JlID0gbmV3IFF1ZXJ5U3RvcmUoe1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZzogX2NsaWVudENvbmZpZy5sb2dnaW5nPy5xdWVyeVN0YXRlQ2hhbmdlcyxcbiAgICAgIGVuYWJsZUdhcmJhZ2VDb2xsZWN0b3JMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVHYXJiYWdlQ29sbGVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ0dFVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KTtcblxuICBwb3N0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ1BPU1QnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIH0pO1xuXG4gIHB1dCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdQVVQnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgfSk7XG5cbiAgcGF0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnUEFUQ0gnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICB9KTtcblxuICBkZWxldGUgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnREVMRVRFJywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgIH0pO1xuXG4gIGdxbFF1ZXJ5ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ0dRTF9RVUVSWScsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX1FVRVJZJyxcbiAgICB9KTtcblxuICBncWxNdXRhdGUgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR1FMX01VVEFURScsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX01VVEFURScsXG4gICAgfSk7XG5cbiAgZmV0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIE1ldGhvZCBleHRlbmRzIE1ldGhvZFR5cGUsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzpcbiAgICAgIHwgUmVzdFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPlxuICAgICAgfCBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICk6IFF1ZXJ5Q3JlYXRvcjxBcmd1bWVudHMsIE1ldGhvZCwgUmVzcG9uc2UsIFJvdXRlLCBSZXNwb25zZVRyYW5zZm9ybWVyPiA9PiB7XG4gICAgY29uc3QgcHJlcGFyZSA9IChhcmdzPzogQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCByb3V0ZSA9IGJ1aWxkUm91dGUoe1xuICAgICAgICBiYXNlOiB0aGlzLl9jbGllbnRDb25maWcuYmFzZVJvdXRlLFxuICAgICAgICByb3V0ZTogcXVlcnlDb25maWcucm91dGUsXG4gICAgICAgIHBhdGhQYXJhbXM6IChhcmdzIGFzIEJhc2VBcmd1bWVudHMpPy5wYXRoUGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtczogKGFyZ3MgYXMgQmFzZUFyZ3VtZW50cyk/LnF1ZXJ5UGFyYW1zLFxuICAgICAgfSkgYXMgUm91dGU7XG5cbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gaXNHcWxRdWVyeUNvbmZpZyhxdWVyeUNvbmZpZykgPyBidWlsZEdxbENhY2hlS2V5KHF1ZXJ5Q29uZmlnLCBhcmdzKSA6IHJvdXRlO1xuXG4gICAgICBpZiAoc2hvdWxkQ2FjaGVRdWVyeShxdWVyeUNvbmZpZy5tZXRob2QpKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nUXVlcnkgPSB0aGlzLl9zdG9yZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgICAgIGlmIChleGlzdGluZ1F1ZXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nUXVlcnkgYXMgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4odGhpcywgcXVlcnlDb25maWcsIHJvdXRlLCBhcmdzKTtcblxuICAgICAgaWYgKHNob3VsZENhY2hlUXVlcnkocXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgICB0aGlzLl9zdG9yZS5hZGQoY2FjaGVLZXksIHF1ZXJ5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH07XG5cbiAgICBjb25zdCBiZWhhdmlvclN1YmplY3QgPSA8VCBleHRlbmRzIFJldHVyblR5cGU8dHlwZW9mIHByZXBhcmU+Pihpbml0aWFsVmFsdWU6IFQgfCBudWxsID0gbnVsbCkgPT5cbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IG51bGw+KGluaXRpYWxWYWx1ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJlcGFyZSxcbiAgICAgIGJlaGF2aW9yU3ViamVjdCxcbiAgICB9IGFzIHVua25vd24gYXMgUXVlcnlDcmVhdG9yPEFyZ3VtZW50cywgTWV0aG9kLCBSZXNwb25zZSwgUm91dGUsIFJlc3BvbnNlVHJhbnNmb3JtZXI+O1xuICB9O1xuXG4gIHNldEF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcikgPT4ge1xuICAgIGlmICh0aGlzLl9hdXRoUHJvdmlkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGF1dGggcHJvdmlkZXIgaXMgYWxyZWFkeSBzZXQuIFBsZWFzZSBjYWxsIGNsZWFyQXV0aFByb3ZpZGVyKCkgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyID0gYXV0aFByb3ZpZGVyO1xuICAgIGF1dGhQcm92aWRlci5xdWVyeUNsaWVudCA9IHRoaXM7XG4gIH07XG5cbiAgY2xlYXJBdXRoUHJvdmlkZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyPy5jbGVhblVwKCk7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyID0gbnVsbDtcbiAgfTtcbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, concat, debounceTime, distinctUntilChanged, map, startWith, take, tap } from 'rxjs';\nexport class QueryField {\n get control() {\n return this.data.control;\n }\n constructor(data) {\n this.data = data;\n this.changes$ = this._setupChangesObservable();\n this._currentDebounceTimeout = null;\n }\n setValue(value) {\n if (this._currentDebounceTimeout !== null) {\n clearTimeout(this._currentDebounceTimeout);\n }\n if (this.data.debounce) {\n this._currentDebounceTimeout = window.setTimeout(() => {\n this.control.setValue(value);\n }, this.data.debounce);\n }\n else {\n this.control.setValue(value);\n }\n }\n _setupChangesObservable() {\n const obs = this.control.valueChanges.pipe(startWith(this.control.value));\n if (!this.data.debounce) {\n return obs;\n }\n // The initial value should get emitted immediately\n // concat switches to the debounced observable after the first observable is completed\n return concat(obs.pipe(take(1)), this.control.valueChanges.pipe(debounceTime(this.data.debounce)));\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class QueryForm {\n constructor(_fields) {\n this._fields = _fields;\n this._router = inject(Router, { optional: true });\n this._activatedRoute = inject(ActivatedRoute, { optional: true });\n this._defaultValues = this._extractDefaultValues();\n this.form = this._setupFormGroup();\n }\n observe(options) {\n return combineLatest(Object.values(this._fields).map((field) => field.changes$)).pipe(map(() => this.form.getRawValue()), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), tap((values) => {\n if (options?.syncViaUrlQueryParams !== false) {\n this._syncViaUrlQueryParams(values);\n }\n }));\n }\n setFormValueFromUrlQueryParams() {\n if (!this._activatedRoute) {\n throw new Error('Cannot set form value from url query params without ActivatedRoute');\n }\n const queryParams = this._activatedRoute.snapshot.queryParams;\n for (const [key, field] of Object.entries(this._fields)) {\n const value = queryParams[key];\n // We only check using == because the value types can be different (e.g. \"1\" and 1)\n if (value === undefined || value == field.control.value) {\n continue;\n }\n const deserializedValue = field.data.queryParamToValueTransformFn?.(value) ?? value;\n field.setValue(deserializedValue);\n }\n }\n updateFormOnUrlQueryParamsChange() {\n if (!this._activatedRoute) {\n throw new Error('Cannot update form on url query params change without ActivatedRoute');\n }\n return this._activatedRoute.queryParams.pipe(tap(() => this.setFormValueFromUrlQueryParams()));\n }\n _getDefaultValue(key) {\n return this._defaultValues[key] ?? null;\n }\n _isDefaultValue(key, value) {\n const normalizedValue = Array.isArray(value) ? JSON.stringify(value) : value;\n return this._getDefaultValue(key) === normalizedValue;\n }\n _setupFormGroup() {\n const group = new FormGroup({});\n for (const [key, field] of Object.entries(this._fields)) {\n group.addControl(key, field.control);\n }\n return group;\n }\n _extractDefaultValues() {\n const defaultValues = {};\n for (const [key, field] of Object.entries(this._fields)) {\n const value = field.control.value;\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n defaultValues[key] = JSON.stringify(value);\n }\n else {\n defaultValues[key] = value;\n }\n }\n return defaultValues;\n }\n _syncViaUrlQueryParams(values) {\n if (!this._router || !this._activatedRoute) {\n return;\n }\n const queryParams = structuredClone(this._activatedRoute.snapshot.queryParams);\n for (const [key, value] of Object.entries(values)) {\n if (this._isDefaultValue(key, value) || this._fields[key].data.appendToUrl === false) {\n delete queryParams[key];\n }\n else {\n queryParams[key] = this._fields[key].data.valueToQueryParamTransformFn\n ? this._fields[key].data.valueToQueryParamTransformFn?.(value)\n : value;\n }\n }\n this._router.navigate([], {\n queryParams,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1mb3JtL3F1ZXJ5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hILE1BQU0sT0FBTyxVQUFVO0lBR3JCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUlELFlBQW1CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO1FBUjdDLGFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQU1sQyw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO0lBRU4sQ0FBQztJQUVqRCxRQUFRLENBQUMsS0FBZTtRQUN0QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxJQUFJLEVBQUU7WUFDekMsWUFBWSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsRUFBRSxJQUFJLENB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QyxJQUFJLENBQUMsNEJBQTRCO29CQUNwRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDWDtTQUNGO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3hCLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgY29uY2F0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBRdWVyeUZpZWxkT3B0aW9ucywgUXVlcnlGb3JtR3JvdXAsIFF1ZXJ5Rm9ybVZhbHVlIH0gZnJvbSAnLi9xdWVyeS1mb3JtLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5RmllbGQ8VD4ge1xuICBjaGFuZ2VzJCA9IHRoaXMuX3NldHVwQ2hhbmdlc09ic2VydmFibGUoKTtcblxuICBnZXQgY29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50RGVib3VuY2VUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogUXVlcnlGaWVsZE9wdGlvbnM8VD4pIHt9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnREZWJvdW5jZVRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jdXJyZW50RGVib3VuY2VUaW1lb3V0KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhLmRlYm91bmNlKSB7XG4gICAgICB0aGlzLl9jdXJyZW50RGVib3VuY2VUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgfSwgdGhpcy5kYXRhLmRlYm91bmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cENoYW5nZXNPYnNlcnZhYmxlKCkge1xuICAgIGNvbnN0IG9icyA9IHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jb250cm9sLnZhbHVlKSk7XG5cbiAgICBpZiAoIXRoaXMuZGF0YS5kZWJvdW5jZSkge1xuICAgICAgcmV0dXJuIG9icztcbiAgICB9XG5cbiAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBzaG91bGQgZ2V0IGVtaXR0ZWQgaW1tZWRpYXRlbHlcbiAgICAvLyBjb25jYXQgc3dpdGNoZXMgdG8gdGhlIGRlYm91bmNlZCBvYnNlcnZhYmxlIGFmdGVyIHRoZSBmaXJzdCBvYnNlcnZhYmxlIGlzIGNvbXBsZXRlZFxuICAgIHJldHVybiBjb25jYXQob2JzLnBpcGUodGFrZSgxKSksIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kYXRhLmRlYm91bmNlKSkpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgUXVlcnlGb3JtPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBRdWVyeUZpZWxkPGFueT4+PiB7XG4gIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWVzID0gdGhpcy5fZXh0cmFjdERlZmF1bHRWYWx1ZXMoKTtcblxuICBmb3JtID0gdGhpcy5fc2V0dXBGb3JtR3JvdXAoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWVsZHM6IFQpIHt9XG5cbiAgb2JzZXJ2ZShvcHRpb25zPzogeyBzeW5jVmlhVXJsUXVlcnlQYXJhbXM/OiBib29sZWFuIH0pIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChPYmplY3QudmFsdWVzKHRoaXMuX2ZpZWxkcykubWFwKChmaWVsZCkgPT4gZmllbGQuY2hhbmdlcyQpKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuICAgICAgdGFwKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnN5bmNWaWFVcmxRdWVyeVBhcmFtcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLl9zeW5jVmlhVXJsUXVlcnlQYXJhbXModmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSksXG5cbiAgICAgIC8vIFRoaXMgdHlwZSBjYXN0IGlzIG5lZWRlZCBzaW5jZSBuZy1wYWNrYWdyIHdpbGwgYnJlYWsgdGhlIHR5cGUgaW5mZXJlbmNlIG90aGVyd2lzZS5cbiAgICApIGFzIE9ic2VydmFibGU8UXVlcnlGb3JtVmFsdWU8VD4+O1xuICB9XG5cbiAgc2V0Rm9ybVZhbHVlRnJvbVVybFF1ZXJ5UGFyYW1zKCkge1xuICAgIGlmICghdGhpcy5fYWN0aXZhdGVkUm91dGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNldCBmb3JtIHZhbHVlIGZyb20gdXJsIHF1ZXJ5IHBhcmFtcyB3aXRob3V0IEFjdGl2YXRlZFJvdXRlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcblxuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcXVlcnlQYXJhbXNba2V5XTtcblxuICAgICAgLy8gV2Ugb25seSBjaGVjayB1c2luZyA9PSBiZWNhdXNlIHRoZSB2YWx1ZSB0eXBlcyBjYW4gYmUgZGlmZmVyZW50IChlLmcuIFwiMVwiIGFuZCAxKVxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT0gZmllbGQuY29udHJvbC52YWx1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVzZXJpYWxpemVkVmFsdWUgPSBmaWVsZC5kYXRhLnF1ZXJ5UGFyYW1Ub1ZhbHVlVHJhbnNmb3JtRm4/Lih2YWx1ZSkgPz8gdmFsdWU7XG5cbiAgICAgIGZpZWxkLnNldFZhbHVlKGRlc2VyaWFsaXplZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGb3JtT25VcmxRdWVyeVBhcmFtc0NoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2YXRlZFJvdXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgZm9ybSBvbiB1cmwgcXVlcnkgcGFyYW1zIGNoYW5nZSB3aXRob3V0IEFjdGl2YXRlZFJvdXRlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFwKCgpID0+IHRoaXMuc2V0Rm9ybVZhbHVlRnJvbVVybFF1ZXJ5UGFyYW1zKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERlZmF1bHRWYWx1ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWVzW2tleV0gPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRGVmYXVsdFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0RGVmYXVsdFZhbHVlKGtleSkgPT09IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwRm9ybUdyb3VwKCkge1xuICAgIGNvbnN0IGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSBhcyBRdWVyeUZvcm1Hcm91cDxUPik7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9maWVsZHMpKSB7XG4gICAgICBncm91cC5hZGRDb250cm9sKGtleSwgZmllbGQuY29udHJvbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXh0cmFjdERlZmF1bHRWYWx1ZXMoKSB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmllbGQuY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBkZWZhdWx0VmFsdWVzW2tleV0gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZhdWx0VmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNWaWFVcmxRdWVyeVBhcmFtcyh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgaWYgKCF0aGlzLl9yb3V0ZXIgfHwgIXRoaXMuX2FjdGl2YXRlZFJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkge1xuICAgICAgaWYgKHRoaXMuX2lzRGVmYXVsdFZhbHVlKGtleSwgdmFsdWUpIHx8IHRoaXMuX2ZpZWxkc1trZXldLmRhdGEuYXBwZW5kVG9VcmwgPT09IGZhbHNlKSB7XG4gICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1trZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IHRoaXMuX2ZpZWxkc1trZXldLmRhdGEudmFsdWVUb1F1ZXJ5UGFyYW1UcmFuc2Zvcm1GblxuICAgICAgICAgID8gdGhpcy5fZmllbGRzW2tleV0uZGF0YS52YWx1ZVRvUXVlcnlQYXJhbVRyYW5zZm9ybUZuPy4odmFsdWUpXG4gICAgICAgICAgOiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","export const transformToString = (value) => {\n if (typeof value === 'string') {\n return value;\n }\n return null;\n};\nexport const transformToStringArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToString).filter(Boolean);\n }\n else if (typeof value === 'string') {\n return [transformToString(value)];\n }\n return null;\n};\nexport const transformToNumber = (value) => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n return null;\n};\nexport const transformToNumberArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToNumber).filter((item) => item !== null);\n }\n else if (typeof value === 'number') {\n return [value];\n }\n return null;\n};\nexport const transformToBoolean = (value) => {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n return value === 'true' || value === '1';\n }\n return null;\n};\nexport const transformToBooleanArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToBoolean).filter((item) => item !== null);\n }\n else if (typeof value === 'string' || typeof value === 'boolean') {\n return [transformToBoolean(value)];\n }\n return null;\n};\nexport const transformToDate = (value) => {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'string') {\n const date = new Date(value);\n if (isNaN(date.getTime())) {\n return null;\n }\n return date;\n }\n return null;\n};\nexport const transformToDateArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToDate).filter((item) => item !== null);\n }\n else if (typeof value === 'string' || value instanceof Date) {\n return [transformToDate(value)];\n }\n return null;\n};\nexport const transformToSort = (value) => {\n if (typeof value === 'string') {\n const [active, direction] = value.split(':');\n return {\n active,\n direction: direction,\n };\n }\n return null;\n};\nexport const transformToSortQueryParam = (value) => {\n if (typeof value === 'string') {\n return value;\n }\n if (value && typeof value === 'object' && 'active' in value && 'direction' in value) {\n const valAsSort = value;\n return valAsSort.direction ? `${valAsSort.active}:${valAsSort.direction}` : null;\n }\n return null;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZm9ybS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1mb3JtL3F1ZXJ5LWZvcm0udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3ZELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFhLENBQUM7S0FDakU7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUNwQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQWEsQ0FBQztLQUMvQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDdkQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBYSxDQUFDO0tBQ2pGO1NBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDcEMsT0FBTyxDQUFDLEtBQUssQ0FBYSxDQUFDO0tBQzVCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ25ELElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssS0FBSyxNQUFNLElBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQztLQUMxQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUN4RCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDeEIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFjLENBQUM7S0FDbkY7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDbEUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFjLENBQUM7S0FDakQ7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ2hELElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtRQUN6QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDckQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQVcsQ0FBQztLQUM3RTtTQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUU7UUFDN0QsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBVyxDQUFDO0tBQzNDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNoRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsT0FBTztZQUNMLE1BQU07WUFDTixTQUFTLEVBQUUsU0FBMkI7U0FDdkMsQ0FBQztLQUNIO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQzFELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxFQUFFO1FBQ25GLE1BQU0sU0FBUyxHQUFHLEtBR2pCLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUNsRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvU3RyaW5nID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVG9TdHJpbmdBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvU3RyaW5nKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBbdHJhbnNmb3JtVG9TdHJpbmcodmFsdWUpXSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvTnVtYmVyID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVG9OdW1iZXJBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvTnVtYmVyKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpIGFzIG51bWJlcltdO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gW3ZhbHVlXSBhcyBudW1iZXJbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvQm9vbGVhbiA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJzEnO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvQm9vbGVhbkFycmF5ID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAodHJhbnNmb3JtVG9Cb29sZWFuKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpIGFzIGJvb2xlYW5bXTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIFt0cmFuc2Zvcm1Ub0Jvb2xlYW4odmFsdWUpXSBhcyBib29sZWFuW107XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub0RhdGUgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub0RhdGVBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvRGF0ZSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBudWxsKSBhcyBEYXRlW107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gW3RyYW5zZm9ybVRvRGF0ZSh2YWx1ZSldIGFzIERhdGVbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvU29ydCA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IFthY3RpdmUsIGRpcmVjdGlvbl0gPSB2YWx1ZS5zcGxpdCgnOicpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZSxcbiAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uIGFzICdhc2MnIHwgJ2Rlc2MnLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub1NvcnRRdWVyeVBhcmFtID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdhY3RpdmUnIGluIHZhbHVlICYmICdkaXJlY3Rpb24nIGluIHZhbHVlKSB7XG4gICAgY29uc3QgdmFsQXNTb3J0ID0gdmFsdWUgYXMge1xuICAgICAgYWN0aXZlOiBzdHJpbmc7XG4gICAgICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnO1xuICAgIH07XG5cbiAgICByZXR1cm4gdmFsQXNTb3J0LmRpcmVjdGlvbiA/IGAke3ZhbEFzU29ydC5hY3RpdmV9OiR7dmFsQXNTb3J0LmRpcmVjdGlvbn1gIDogbnVsbDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcbiJdfQ==","export const deepFreeze = (object) => {\n // check if object is actually an object or frozen\n if (!object || typeof object !== 'object' || Object.isFrozen(object)) {\n return object;\n }\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n // Freeze properties before freezing self\n for (const name of propNames) {\n const value = object[name];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1mcmVlemUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi91dGlscy9kZWVwLWZyZWV6ZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFvQyxNQUFTLEVBQUUsRUFBRTtJQUN6RSxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwRSxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsZ0RBQWdEO0lBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCx5Q0FBeUM7SUFFekMsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7UUFDNUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxVQUFVLENBQUMsS0FBVSxDQUFDLENBQUM7U0FDeEI7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZGVlcEZyZWV6ZSA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KG9iamVjdDogVCkgPT4ge1xuICAvLyBjaGVjayBpZiBvYmplY3QgaXMgYWN0dWFsbHkgYW4gb2JqZWN0IG9yIGZyb3plblxuICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0JyB8fCBPYmplY3QuaXNGcm96ZW4ob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICAvLyBSZXRyaWV2ZSB0aGUgcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBvbiBvYmplY3RcbiAgY29uc3QgcHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICAvLyBGcmVlemUgcHJvcGVydGllcyBiZWZvcmUgZnJlZXppbmcgc2VsZlxuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBwcm9wTmFtZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtuYW1lXTtcblxuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBkZWVwRnJlZXplKHZhbHVlIGFzIFQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG59O1xuIl19","/**\n * Dummy function for providing types while not breaking inference.\n * **This function always returns null.**\n * @see https://github.com/microsoft/TypeScript/issues/26242\n * @returns null\n */\nexport const def = () => null;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvdXRpbHMvZGVmLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRHVtbXkgZnVuY3Rpb24gZm9yIHByb3ZpZGluZyB0eXBlcyB3aGlsZSBub3QgYnJlYWtpbmcgaW5mZXJlbmNlLlxuICogKipUaGlzIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zIG51bGwuKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8yNjI0MlxuICogQHJldHVybnMgbnVsbFxuICovXG5leHBvcnQgY29uc3QgZGVmID0gPERhdGE+KCkgPT4gbnVsbCBhcyB1bmtub3duIGFzIERhdGE7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRobGV0ZS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2V0aGxldGUtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ethlete-query.mjs","sources":["../esm2020/lib/auth/custom-header-auth-provider.mjs","../esm2020/lib/auth/basic-auth-provider.mjs","../esm2020/lib/logger/logger.mjs","../esm2020/lib/request/request.util.mjs","../esm2020/lib/request/request.mjs","../esm2020/lib/auth/auth-provider.utils.mjs","../esm2020/lib/auth/bearer-auth-provider.mjs","../esm2020/lib/gql/gql.mjs","../esm2020/lib/query/query.utils.mjs","../esm2020/lib/query/query.mjs","../esm2020/lib/directives/query.directive.mjs","../esm2020/lib/infinite-query/infinity-query.mjs","../esm2020/lib/infinite-query/infinity-query.utils.mjs","../esm2020/lib/directives/infinity-query.directive.mjs","../esm2020/lib/directives/infinity-query-trigger.directive.mjs","../esm2020/lib/query-store/query-store.mjs","../esm2020/lib/query-client/query-client.utils.mjs","../esm2020/lib/query-client/query-client.mjs","../esm2020/lib/query-form/query-form.mjs","../esm2020/lib/query-form/query-form.utils.mjs","../esm2020/lib/utils/deep-freeze.util.mjs","../esm2020/lib/utils/def.util.mjs","../esm2020/ethlete-query.mjs"],"sourcesContent":["export class CustomHeaderAuthProvider {\n get header() {\n return { [this._config.name]: this._config.value };\n }\n constructor(_config) {\n this._config = _config;\n this.queryClient = null;\n }\n cleanUp() {\n // noop\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2F1dGgvY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFJRCxZQUFvQixPQUF1QztRQUF2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQztRQUYzRCxnQkFBVyxHQUF1QixJQUFJLENBQUM7SUFFdUIsQ0FBQztJQUUvRCxPQUFPO1FBQ0wsT0FBTztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJ5Q2xpZW50IH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IEF1dGhQcm92aWRlciwgQXV0aFByb3ZpZGVyQ3VzdG9tSGVhZGVyQ29uZmlnIH0gZnJvbSAnLi9hdXRoLXByb3ZpZGVyLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlYWRlckF1dGhQcm92aWRlciBpbXBsZW1lbnRzIEF1dGhQcm92aWRlciB7XG4gIGdldCBoZWFkZXIoKSB7XG4gICAgcmV0dXJuIHsgW3RoaXMuX2NvbmZpZy5uYW1lXTogdGhpcy5fY29uZmlnLnZhbHVlIH07XG4gIH1cblxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb25maWc6IEF1dGhQcm92aWRlckN1c3RvbUhlYWRlckNvbmZpZykge31cblxuICBjbGVhblVwKCk6IHZvaWQge1xuICAgIC8vIG5vb3BcbiAgfVxufVxuIl19","export class BasicAuthProvider {\n get header() {\n return { Authorization: `Basic ${this._basicAuthString}` };\n }\n get _basicAuthString() {\n return btoa(`${this._config.username}:${this._config.password}`);\n }\n constructor(_config) {\n this._config = _config;\n this.queryClient = null;\n }\n cleanUp() {\n // noop\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtYXV0aC1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9hdXRoL2Jhc2ljLWF1dGgtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLE1BQU07UUFDUixPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBWSxnQkFBZ0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUlELFlBQW9CLE9BQWdDO1FBQWhDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBRnBELGdCQUFXLEdBQXVCLElBQUksQ0FBQztJQUVnQixDQUFDO0lBRXhELE9BQU87UUFDTCxPQUFPO0lBQ1QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgQXV0aFByb3ZpZGVyLCBBdXRoUHJvdmlkZXJCYXNpY0NvbmZpZyB9IGZyb20gJy4vYXV0aC1wcm92aWRlci50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBCYXNpY0F1dGhQcm92aWRlciBpbXBsZW1lbnRzIEF1dGhQcm92aWRlciB7XG4gIGdldCBoZWFkZXIoKSB7XG4gICAgcmV0dXJuIHsgQXV0aG9yaXphdGlvbjogYEJhc2ljICR7dGhpcy5fYmFzaWNBdXRoU3RyaW5nfWAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9iYXNpY0F1dGhTdHJpbmcoKSB7XG4gICAgcmV0dXJuIGJ0b2EoYCR7dGhpcy5fY29uZmlnLnVzZXJuYW1lfToke3RoaXMuX2NvbmZpZy5wYXNzd29yZH1gKTtcbiAgfVxuXG4gIHF1ZXJ5Q2xpZW50OiBRdWVyeUNsaWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogQXV0aFByb3ZpZGVyQmFzaWNDb25maWcpIHt9XG5cbiAgY2xlYW5VcCgpOiB2b2lkIHtcbiAgICAvLyBub29wXG4gIH1cbn1cbiJdfQ==","export const buildErrorMessage = (code, message) => `[@ethlete\\\\query:${code}] ${message}`;\nexport class QueryError extends Error {\n constructor(code, message, data) {\n super(buildErrorMessage(code, message));\n this.name = 'QueryError';\n this.data = data;\n }\n}\nexport const invalidBaseRouteError = (data) => new QueryError('001', 'The baseRoute must not end with a slash', data);\nexport const invalidRouteError = (data) => new QueryError('002', 'The route must start with a slash', data);\nexport const pathParamsMissingInRouteFunctionError = (data) => new QueryError('003', 'The route is a function but pathParams are missing', data);\nexport const queryStateAlreadyHasKeyError = (data) => new QueryError('004', 'The query state already contains the provided key', data);\nexport const queryStateDoesNotContainKeyError = (data) => new QueryError('005', 'The query state does not contain the provided key', data);\nexport const queryStateCannotTransformError = (data) => new QueryError('006', 'The query state cannot be transformed because it is not loading', data);\nexport const invalidBodyError = (data) => new QueryError('007', 'The body is not valid or upsupported', data);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2xvZ2dlci9sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO0FBRTNHLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQUduQyxZQUFZLElBQVksRUFBRSxPQUFlLEVBQUUsSUFBYztRQUN2RCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxZQUFZLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUNyRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUseUNBQXlDLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVySCxNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ3JFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxvREFBb0QsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVwRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzVELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQ2hFLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxtREFBbUQsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQzlELElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxpRUFBaUUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVqRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLHNDQUFzQyxFQUFFLElBQUksQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGJ1aWxkRXJyb3JNZXNzYWdlID0gKGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiBgW0BldGhsZXRlXFxcXHF1ZXJ5OiR7Y29kZX1dICR7bWVzc2FnZX1gO1xuXG5leHBvcnQgY2xhc3MgUXVlcnlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGF0YT86IHVua25vd247XG5cbiAgY29uc3RydWN0b3IoY29kZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiB1bmtub3duKSB7XG4gICAgc3VwZXIoYnVpbGRFcnJvck1lc3NhZ2UoY29kZSwgbWVzc2FnZSkpO1xuICAgIHRoaXMubmFtZSA9ICdRdWVyeUVycm9yJztcbiAgICB0aGlzLmRhdGEgPSBkYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBpbnZhbGlkQmFzZVJvdXRlRXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwMScsICdUaGUgYmFzZVJvdXRlIG11c3Qgbm90IGVuZCB3aXRoIGEgc2xhc2gnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRSb3V0ZUVycm9yID0gKGRhdGE6IHVua25vd24pID0+IG5ldyBRdWVyeUVycm9yKCcwMDInLCAnVGhlIHJvdXRlIG11c3Qgc3RhcnQgd2l0aCBhIHNsYXNoJywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBwYXRoUGFyYW1zTWlzc2luZ0luUm91dGVGdW5jdGlvbkVycm9yID0gKGRhdGE6IHVua25vd24pID0+XG4gIG5ldyBRdWVyeUVycm9yKCcwMDMnLCAnVGhlIHJvdXRlIGlzIGEgZnVuY3Rpb24gYnV0IHBhdGhQYXJhbXMgYXJlIG1pc3NpbmcnLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVBbHJlYWR5SGFzS2V5RXJyb3IgPSAoZGF0YTogdW5rbm93bikgPT5cbiAgbmV3IFF1ZXJ5RXJyb3IoJzAwNCcsICdUaGUgcXVlcnkgc3RhdGUgYWxyZWFkeSBjb250YWlucyB0aGUgcHJvdmlkZWQga2V5JywgZGF0YSk7XG5cbmV4cG9ydCBjb25zdCBxdWVyeVN0YXRlRG9lc05vdENvbnRhaW5LZXlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA1JywgJ1RoZSBxdWVyeSBzdGF0ZSBkb2VzIG5vdCBjb250YWluIHRoZSBwcm92aWRlZCBrZXknLCBkYXRhKTtcblxuZXhwb3J0IGNvbnN0IHF1ZXJ5U3RhdGVDYW5ub3RUcmFuc2Zvcm1FcnJvciA9IChkYXRhOiB1bmtub3duKSA9PlxuICBuZXcgUXVlcnlFcnJvcignMDA2JywgJ1RoZSBxdWVyeSBzdGF0ZSBjYW5ub3QgYmUgdHJhbnNmb3JtZWQgYmVjYXVzZSBpdCBpcyBub3QgbG9hZGluZycsIGRhdGEpO1xuXG5leHBvcnQgY29uc3QgaW52YWxpZEJvZHlFcnJvciA9IChkYXRhOiB1bmtub3duKSA9PiBuZXcgUXVlcnlFcnJvcignMDA3JywgJ1RoZSBib2R5IGlzIG5vdCB2YWxpZCBvciB1cHN1cHBvcnRlZCcsIGRhdGEpO1xuIl19","import { invalidBaseRouteError, invalidBodyError, invalidRouteError, pathParamsMissingInRouteFunctionError, } from '../logger';\nexport const isRequestError = (error) => error instanceof Object && 'code' in error && 'message' in error;\nexport const isAbortRequestError = (error) => isRequestError(error) && error.code === -1;\nexport const buildRoute = (options) => {\n if (options.base.endsWith('/')) {\n throw invalidBaseRouteError(options.base);\n }\n let route = null;\n if (typeof options.route === 'function') {\n if (!options.pathParams) {\n throw pathParamsMissingInRouteFunctionError(options.route({}));\n }\n route = options.route(options.pathParams);\n }\n else {\n route = options.route ?? null;\n }\n if (route && !route.startsWith('/')) {\n throw invalidRouteError(route);\n }\n if (options.queryParams) {\n const queryString = buildQueryString(options.queryParams);\n if (queryString) {\n route = route ? `${route}?${queryString}` : `/?${queryString}`;\n }\n }\n return `${options.base}${route ?? ''}`;\n};\nexport const buildQueryString = (params) => {\n const validParams = filterInvalidParams(params);\n const queryString = Object.keys(validParams)\n .map((key) => Array.isArray(validParams[key])\n ? buildQueryArrayString(key, validParams[key])\n : `${key}=${encodeURIComponent(validParams[key])}`)\n .join('&');\n return queryString || null;\n};\nexport const buildQueryArrayString = (key, array) => {\n const uriBrackets = encodeURIComponent('[]');\n return array\n .slice()\n .map((item) => `${key}${uriBrackets}=${encodeURIComponent(item)}`)\n .join('&');\n};\nexport const isFetchResponse = (response) => typeof response === 'object' &&\n response !== null &&\n 'status' in response &&\n 'statusText' in response &&\n 'json' in response &&\n typeof response['json'] === 'function';\nexport const filterInvalidParams = (params) => {\n const filteredParams = Object.entries(params)\n .map(([key, value]) => {\n if (!Array.isArray(value)) {\n return [key, value];\n }\n return [key, value.filter((v) => isParamValid(v))];\n })\n .filter(([, value]) => isParamValid(value))\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n return filteredParams;\n};\nexport const isParamValid = (primitive) => {\n if (primitive === undefined || primitive === null || primitive === '') {\n return false;\n }\n if (typeof primitive === 'string' && primitive.trim() === '') {\n return false;\n }\n if (typeof primitive === 'number' && isNaN(primitive)) {\n return false;\n }\n return true;\n};\nexport const extractExpiresInSeconds = (headers) => {\n const cacheControl = headers.get('cache-control');\n const age = headers.get('age');\n const expires = headers.get('expires');\n // In seconds\n let expiresIn = null;\n let maxAge = null;\n if (cacheControl?.includes('no-cache')) {\n return null;\n }\n if (cacheControl?.includes('max-age')) {\n maxAge = parseInt(cacheControl.split('max-age=')[1]);\n }\n else if (cacheControl?.includes('s-maxage')) {\n maxAge = parseInt(cacheControl.split('s-maxage=')[1]);\n }\n if (maxAge && age) {\n const ageSeconds = parseInt(age);\n expiresIn = maxAge - ageSeconds;\n }\n else if (expires) {\n // Used by some apis to tell the response will never expire\n // In this case we let the response expire after 1 hour\n if (expires === '-1') {\n expiresIn = 3600;\n }\n else {\n const expiresDate = new Date(expires);\n // check if the date is valid\n if (expiresDate.toString() !== 'Invalid Date') {\n expiresIn = Math.floor((expiresDate.getTime() - Date.now()) / 1000);\n }\n }\n }\n return expiresIn;\n};\nexport const buildTimestampFromSeconds = (seconds) => {\n if (seconds === null) {\n return null;\n }\n return new Date(Date.now() + seconds * 1000).getTime();\n};\nexport const buildRequestError = async (error, route, requestInit) => {\n if (error instanceof DOMException && error.code === error.ABORT_ERR) {\n const err = {\n code: -1,\n message: 'Request aborted',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (error instanceof SyntaxError) {\n const err = {\n code: -3,\n message: 'Syntax error',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (error instanceof Error) {\n const err = {\n code: -2,\n message: `${error.name}: ${error.message}`,\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n if (isFetchResponse(error)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let detail = null;\n try {\n detail = await error.json();\n }\n catch {\n // noop\n }\n if (!detail) {\n try {\n detail = await error.text();\n }\n catch {\n // noop\n }\n }\n const err = {\n code: error.status,\n message: error.statusText,\n detail,\n raw: error,\n route,\n requestInit,\n };\n return err;\n }\n const err = {\n code: 0,\n message: 'Unknown error',\n detail: null,\n raw: error,\n route,\n requestInit,\n };\n return err;\n};\nexport const buildBody = (body) => {\n if (body === undefined || body === null) {\n return null;\n }\n if (typeof body === 'string') {\n return body;\n }\n if (typeof body === 'object') {\n return JSON.stringify(body);\n }\n if (body instanceof FormData) {\n return body;\n }\n throw invalidBodyError(body);\n};\nexport const transformMethod = (method) => {\n if (method === 'GQL_QUERY' || method === 'GQL_MUTATE') {\n return 'POST';\n }\n return method;\n};\nexport const guessContentType = (body) => {\n if (body === null || body === undefined) {\n return null;\n }\n if (typeof body === 'string') {\n return 'text/plain';\n }\n if (body instanceof FormData) {\n return 'multipart/form-data';\n }\n if (typeof body === 'object') {\n return 'application/json';\n }\n return null;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3JlcXVlc3QvcmVxdWVzdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixxQ0FBcUMsR0FDdEMsTUFBTSxXQUFXLENBQUM7QUFHbkIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYyxFQUF5QixFQUFFLENBQ3RFLEtBQUssWUFBWSxNQUFNLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksS0FBSyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBYyxFQUF5QixFQUFFLENBQzNFLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLE9BSzFCLEVBQUUsRUFBRTtJQUNILElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDM0M7SUFFRCxJQUFJLEtBQUssR0FBa0IsSUFBSSxDQUFDO0lBRWhDLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTtRQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRTtZQUN2QixNQUFNLHFDQUFxQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNoRTtRQUVELEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQUMzQztTQUFNO1FBQ0wsS0FBSyxHQUFH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SUFBSSxZQUFZLFFBQVEsRUFBRTtRQUM1QixPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUNoRCxJQUFJLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxLQUFLLFlBQVksRUFBRTtRQUNyRCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRTtJQUNoRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUN2QyxPQUFPLElBQUksQ0FBQztLQUNiO0lBRUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7UUFDNUIsT0FBTyxZQUFZLENBQUM7S0FDckI7SUFFRCxJQUFJLElBQUksWUFBWSxRQUFRLEVBQUU7UUFDNUIsT0FBTyxxQkFBcUIsQ0FBQztLQUM5QjtJQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzVCLE9BQU8sa0JBQWtCLENBQUM7S0FDM0I7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGludmFsaWRCYXNlUm91dGVFcnJvcixcbiAgaW52YWxpZEJvZHlFcnJvcixcbiAgaW52YWxpZFJvdXRlRXJyb3IsXG4gIHBhdGhQYXJhbXNNaXNzaW5nSW5Sb3V0ZUZ1bmN0aW9uRXJyb3IsXG59IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBNZXRob2QsIFBhcmFtQXJyYXksIFBhcmFtcywgUXVlcnlQYXJhbXMsIFJlcXVlc3RFcnJvciwgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlIH0gZnJvbSAnLi9yZXF1ZXN0LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGlzUmVxdWVzdEVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgUmVxdWVzdEVycm9yID0+XG4gIGVycm9yIGluc3RhbmNlb2YgT2JqZWN0ICYmICdjb2RlJyBpbiBlcnJvciAmJiAnbWVzc2FnZScgaW4gZXJyb3I7XG5cbmV4cG9ydCBjb25zdCBpc0Fib3J0UmVxdWVzdEVycm9yID0gKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgUmVxdWVzdEVycm9yID0+XG4gIGlzUmVxdWVzdEVycm9yKGVycm9yKSAmJiBlcnJvci5jb2RlID09PSAtMTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkUm91dGUgPSAob3B0aW9uczoge1xuICBiYXNlOiBzdHJpbmc7XG4gIHJvdXRlOiAoKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBzdHJpbmcpIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcGF0aFBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBxdWVyeVBhcmFtcz86IFF1ZXJ5UGFyYW1zO1xufSkgPT4ge1xuICBpZiAob3B0aW9ucy5iYXNlLmVuZHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBpbnZhbGlkQmFzZVJvdXRlRXJyb3Iob3B0aW9ucy5iYXNlKTtcbiAgfVxuXG4gIGxldCByb3V0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLnJvdXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKCFvcHRpb25zLnBhdGhQYXJhbXMpIHtcbiAgICAgIHRocm93IHBhdGhQYXJhbXNNaXNzaW5nSW5Sb3V0ZUZ1bmN0aW9uRXJyb3Iob3B0aW9ucy5yb3V0ZSh7fSkpO1xuICAgIH1cblxuICAgIHJvdXRlID0gb3B0aW9ucy5yb3V0ZShvcHRpb25zLnBhdGhQYXJhbXMpO1xuICB9IGVsc2Uge1xuICAgIHJvdXRlID0gb3B0aW9ucy5yb3V0ZSA/PyBudWxsO1xuICB9XG5cbiAgaWYgKHJvdXRlICYmICFyb3V0ZS5zdGFydHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBpbnZhbGlkUm91dGVFcnJvcihyb3V0ZSk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5xdWVyeVBhcmFtcykge1xuICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gYnVpbGRRdWVyeVN0cmluZyhvcHRpb25zLnF1ZXJ5UGFyYW1zKTtcblxuICAgIGlmIChxdWVyeVN0cmluZykge1xuICAgICAgcm91dGUgPSByb3V0ZSA/IGAke3JvdXRlfT8ke3F1ZXJ5U3RyaW5nfWAgOiBgLz8ke3F1ZXJ5U3RyaW5nfWA7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGAke29wdGlvbnMuYmFzZX0ke3JvdXRlID8/ICcnfWA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRRdWVyeVN0cmluZyA9IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKSA9PiB7XG4gIGNvbnN0IHZhbGlkUGFyYW1zID0gZmlsdGVySW52YWxpZFBhcmFtcyhwYXJhbXMpO1xuXG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmtleXModmFsaWRQYXJhbXMpXG4gICAgLm1hcCgoa2V5KSA9PlxuICAgICAgQXJyYXkuaXNBcnJheSh2YWxpZFBhcmFtc1trZXldKVxuICAgICAgICA/IGJ1aWxkUXVlcnlBcnJheVN0cmluZyhrZXksIHZhbGlkUGFyYW1zW2tleV0gYXMgUGFyYW1BcnJheSlcbiAgICAgICAgOiBgJHtrZXl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHZhbGlkUGFyYW1zW2tleV0gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YCxcbiAgICApXG4gICAgLmpvaW4oJyYnKTtcblxuICByZXR1cm4gcXVlcnlTdHJpbmcgfHwgbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5QXJyYXlTdHJpbmcgPSAoa2V5OiBzdHJpbmcsIGFycmF5OiBQYXJhbUFycmF5KSA9PiB7XG4gIGNvbnN0IHVyaUJyYWNrZXRzID0gZW5jb2RlVVJJQ29tcG9uZW50KCdbXScpO1xuXG4gIHJldHVybiBhcnJheVxuICAgIC5zbGljZSgpXG4gICAgLm1hcCgoaXRlbSkgPT4gYCR7a2V5fSR7dXJpQnJhY2tldHN9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KGl0ZW0gYXMgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbil9YClcbiAgICAuam9pbignJicpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzRmV0Y2hSZXNwb25zZSA9IChyZXNwb25zZTogdW5rbm93bik6IHJlc3BvbnNlIGlzIFJlc3BvbnNlID0+XG4gIHR5cGVvZiByZXNwb25zZSA9PT0gJ29iamVjdCcgJiZcbiAgcmVzcG9uc2UgIT09IG51bGwgJiZcbiAgJ3N0YXR1cycgaW4gcmVzcG9uc2UgJiZcbiAgJ3N0YXR1c1RleHQnIGluIHJlc3BvbnNlICYmXG4gICdqc29uJyBpbiByZXNwb25zZSAmJlxuICB0eXBlb2YgKHJlc3BvbnNlIGFzIFJlc3BvbnNlKVsnanNvbiddID09PSAnZnVuY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgZmlsdGVySW52YWxpZFBhcmFtcyA9IChwYXJhbXM6IFF1ZXJ5UGFyYW1zKSA9PiB7XG4gIGNvbnN0IGZpbHRlcmVkUGFyYW1zOiBQYXJhbXMgPSBPYmplY3QuZW50cmllcyhwYXJhbXMpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBba2V5LCB2YWx1ZS5maWx0ZXIoKHYpID0+IGlzUGFyYW1WYWxpZCh2KSldO1xuICAgIH0pXG4gICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiBpc1BhcmFtVmFsaWQodmFsdWUgYXMgVW5maWx0ZXJlZFBhcmFtUHJpbWl0aXZlKSlcbiAgICAucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4gKHsgLi4uYWNjLCBba2V5IGFzIHN0cmluZ106IHZhbHVlIH0pLCB7fSk7XG5cbiAgcmV0dXJuIGZpbHRlcmVkUGFyYW1zO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzUGFyYW1WYWxpZCA9IChwcmltaXRpdmU6IFVuZmlsdGVyZWRQYXJhbVByaW1pdGl2ZSkgPT4ge1xuICBpZiAocHJpbWl0aXZlID09PSB1bmRlZmluZWQgfHwgcHJpbWl0aXZlID09PSBudWxsIHx8IHByaW1pdGl2ZSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ3N0cmluZycgJiYgcHJpbWl0aXZlLnRyaW0oKSA9PT0gJycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAodHlwZW9mIHByaW1pdGl2ZSA9PT0gJ251bWJlcicgJiYgaXNOYU4ocHJpbWl0aXZlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RFeHBpcmVzSW5TZWNvbmRzID0gKGhlYWRlcnM6IEhlYWRlcnMpID0+IHtcbiAgY29uc3QgY2FjaGVDb250cm9sID0gaGVhZGVycy5nZXQoJ2NhY2hlLWNvbnRyb2wnKTtcbiAgY29uc3QgYWdlID0gaGVhZGVycy5nZXQoJ2FnZScpO1xuICBjb25zdCBleHBpcmVzID0gaGVhZGVycy5nZXQoJ2V4cGlyZXMnKTtcblxuICAvLyBJbiBzZWNvbmRzXG4gIGxldCBleHBpcmVzSW46IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBsZXQgbWF4QWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygnbm8tY2FjaGUnKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGNhY2hlQ29udHJvbD8uaW5jbHVkZXMoJ21heC1hZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgnbWF4LWFnZT0nKVsxXSk7XG4gIH0gZWxzZSBpZiAoY2FjaGVDb250cm9sPy5pbmNsdWRlcygncy1tYXhhZ2UnKSkge1xuICAgIG1heEFnZSA9IHBhcnNlSW50KGNhY2hlQ29udHJvbC5zcGxpdCgncy1tYXhhZ2U9JylbMV0pO1xuICB9XG5cbiAgaWYgKG1heEFnZSAmJiBhZ2UpIHtcbiAgICBjb25zdCBhZ2VTZWNvbmRzID0gcGFyc2VJbnQoYWdlKTtcblxuICAgIGV4cGlyZXNJbiA9IG1heEFnZSAtIGFnZVNlY29uZHM7XG4gIH0gZWxzZSBpZiAoZXhwaXJlcykge1xuICAgIC8vIFVzZWQgYnkgc29tZSBhcGlzIHRvIHRlbGwgdGhlIHJlc3BvbnNlIHdpbGwgbmV2ZXIgZXhwaXJlXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGxldCB0aGUgcmVzcG9uc2UgZXhwaXJlIGFmdGVyIDEgaG91clxuICAgIGlmIChleHBpcmVzID09PSAnLTEnKSB7XG4gICAgICBleHBpcmVzSW4gPSAzNjAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleHBpcmVzRGF0ZSA9IG5ldyBEYXRlKGV4cGlyZXMpO1xuXG4gICAgICAvLyBjaGVjayBpZiB0aGUgZGF0ZSBpcyB2YWxpZFxuICAgICAgaWYgKGV4cGlyZXNEYXRlLnRvU3RyaW5nKCkgIT09ICdJbnZhbGlkIERhdGUnKSB7XG4gICAgICAgIGV4cGlyZXNJbiA9IE1hdGguZmxvb3IoKGV4cGlyZXNEYXRlLmdldFRpbWUoKSAtIERhdGUubm93KCkpIC8gMTAwMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGV4cGlyZXNJbjtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzID0gKHNlY29uZHM6IG51bWJlciB8IG51bGwpID0+IHtcbiAgaWYgKHNlY29uZHMgPT09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc2Vjb25kcyAqIDEwMDApLmdldFRpbWUoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFJlcXVlc3RFcnJvciA9IGFzeW5jIDxFcnJvclJlc3BvbnNlID0gdW5rbm93bj4oXG4gIGVycm9yOiB1bmtub3duLFxuICByb3V0ZTogc3RyaW5nLFxuICByZXF1ZXN0SW5pdD86IFJlcXVlc3RJbml0LFxuKSA9PiB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiAmJiBlcnJvci5jb2RlID09PSBlcnJvci5BQk9SVF9FUlIpIHtcbiAgICBjb25zdCBlcnI6IFJlcXVlc3RFcnJvcjxudWxsPiA9IHtcbiAgICAgIGNvZGU6IC0xLFxuICAgICAgbWVzc2FnZTogJ1JlcXVlc3QgYWJvcnRlZCcsXG4gICAgICBkZXRhaWw6IG51bGwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7XG4gICAgY29uc3QgZXJyOiBSZXF1ZXN0RXJyb3I8bnVsbD4gPSB7XG4gICAgICBjb2RlOiAtMyxcbiAgICAgIG1lc3NhZ2U6ICdTeW50YXggZXJyb3InLFxuICAgICAgZGV0YWlsOiBudWxsLFxuICAgICAgcmF3OiBlcnJvcixcbiAgICAgIHJvdXRlLFxuICAgICAgcmVxdWVzdEluaXQsXG4gICAgfTtcblxuICAgIHJldHVybiBlcnI7XG4gIH1cblxuICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgIGNvbnN0IGVycjogUmVxdWVzdEVycm9yPG51bGw+ID0ge1xuICAgICAgY29kZTogLTIsXG4gICAgICBtZXNzYWdlOiBgJHtlcnJvci5uYW1lfTogJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICBkZXRhaWw6IG51bGwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGlmIChpc0ZldGNoUmVzcG9uc2UoZXJyb3IpKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBsZXQgZGV0YWlsOiBhbnkgPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIGRldGFpbCA9IGF3YWl0IGVycm9yLmpzb24oKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIG5vb3BcbiAgICB9XG5cbiAgICBpZiAoIWRldGFpbCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZGV0YWlsID0gYXdhaXQgZXJyb3IudGV4dCgpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIG5vb3BcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBlcnI6IFJlcXVlc3RFcnJvcjxFcnJvclJlc3BvbnNlPiA9IHtcbiAgICAgIGNvZGU6IGVycm9yLnN0YXR1cyxcbiAgICAgIG1lc3NhZ2U6IGVycm9yLnN0YXR1c1RleHQsXG4gICAgICBkZXRhaWwsXG4gICAgICByYXc6IGVycm9yLFxuICAgICAgcm91dGUsXG4gICAgICByZXF1ZXN0SW5pdCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVycjtcbiAgfVxuXG4gIGNvbnN0IGVycjogUmVxdWVzdEVycm9yPG51bGw+ID0ge1xuICAgIGNvZGU6IDAsXG4gICAgbWVzc2FnZTogJ1Vua25vd24gZXJyb3InLFxuICAgIGRldGFpbDogbnVsbCxcbiAgICByYXc6IGVycm9yLFxuICAgIHJvdXRlLFxuICAgIHJlcXVlc3RJbml0LFxuICB9O1xuXG4gIHJldHVybiBlcnI7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCb2R5ID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgaWYgKGJvZHkgPT09IHVuZGVmaW5lZCB8fCBib2R5ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGJvZHkpO1xuICB9XG5cbiAgaWYgKGJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgdGhyb3cgaW52YWxpZEJvZHlFcnJvcihib2R5KTtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1NZXRob2QgPSAobWV0aG9kOiBNZXRob2QpID0+IHtcbiAgaWYgKG1ldGhvZCA9PT0gJ0dRTF9RVUVSWScgfHwgbWV0aG9kID09PSAnR1FMX01VVEFURScpIHtcbiAgICByZXR1cm4gJ1BPU1QnO1xuICB9XG5cbiAgcmV0dXJuIG1ldGhvZDtcbn07XG5cbmV4cG9ydCBjb25zdCBndWVzc0NvbnRlbnRUeXBlID0gKGJvZHk6IHVua25vd24pID0+IHtcbiAgaWYgKGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIGJvZHkgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuICd0ZXh0L3BsYWluJztcbiAgfVxuXG4gIGlmIChib2R5IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICByZXR1cm4gJ211bHRpcGFydC9mb3JtLWRhdGEnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBib2R5ID09PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnYXBwbGljYXRpb24vanNvbic7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG4iXX0=","import { buildRequestError, buildTimestampFromSeconds, extractExpiresInSeconds } from './request.util';\nexport const request = async (options) => {\n try {\n const response = await fetch(options.route, options.init);\n if (!response.ok) {\n throw response;\n }\n const isJsonResponse = response.headers.get('Content-Type')?.includes('application/json');\n const isTextResponse = response.headers.get('Content-Type')?.includes('text/plain');\n const data = (isJsonResponse ? await response.json() : isTextResponse ? await response.text() : null);\n const expiresInSeconds = options.cacheAdapter\n ? options.cacheAdapter(response.headers)\n : extractExpiresInSeconds(response.headers);\n const expiresInTimestamp = buildTimestampFromSeconds(expiresInSeconds);\n return { data, expiresInTimestamp };\n }\n catch (error) {\n throw await buildRequestError(error, options.route, options.init);\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9yZXF1ZXN0L3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkcsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBc0IsT0FJakQsRUFBRSxFQUFFO0lBQ0gsSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sUUFBUSxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBGLE1BQU0sSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFhLENBQUM7UUFFbEgsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsWUFBWTtZQUMzQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFOUMsTUFBTSxrQkFBa0IsR0FBRyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztLQUNyQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsTUFBTSxNQUFNLGlCQUFpQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNuRTtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhY2hlQWRhcHRlckZuIH0gZnJvbSAnLi9yZXF1ZXN0LnR5cGVzJztcbmltcG9ydCB7IGJ1aWxkUmVxdWVzdEVycm9yLCBidWlsZFRpbWVzdGFtcEZyb21TZWNvbmRzLCBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyB9IGZyb20gJy4vcmVxdWVzdC51dGlsJztcblxuZXhwb3J0IGNvbnN0IHJlcXVlc3QgPSBhc3luYyA8UmVzcG9uc2UgPSB1bmtub3duPihvcHRpb25zOiB7XG4gIHJvdXRlOiBzdHJpbmc7XG4gIGluaXQ/OiBSZXF1ZXN0SW5pdDtcbiAgY2FjaGVBZGFwdGVyPzogQ2FjaGVBZGFwdGVyRm47XG59KSA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChvcHRpb25zLnJvdXRlLCBvcHRpb25zLmluaXQpO1xuXG4gICAgaWYgKCFyZXNwb25zZS5vaykge1xuICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgfVxuXG4gICAgY29uc3QgaXNKc29uUmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyk/LmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgY29uc3QgaXNUZXh0UmVzcG9uc2UgPSByZXNwb25zZS5oZWFkZXJzLmdldCgnQ29udGVudC1UeXBlJyk/LmluY2x1ZGVzKCd0ZXh0L3BsYWluJyk7XG5cbiAgICBjb25zdCBkYXRhID0gKGlzSnNvblJlc3BvbnNlID8gYXdhaXQgcmVzcG9uc2UuanNvbigpIDogaXNUZXh0UmVzcG9uc2UgPyBhd2FpdCByZXNwb25zZS50ZXh0KCkgOiBudWxsKSBhcyBSZXNwb25zZTtcblxuICAgIGNvbnN0IGV4cGlyZXNJblNlY29uZHMgPSBvcHRpb25zLmNhY2hlQWRhcHRlclxuICAgICAgPyBvcHRpb25zLmNhY2hlQWRhcHRlcihyZXNwb25zZS5oZWFkZXJzKVxuICAgICAgOiBleHRyYWN0RXhwaXJlc0luU2Vjb25kcyhyZXNwb25zZS5oZWFkZXJzKTtcblxuICAgIGNvbnN0IGV4cGlyZXNJblRpbWVzdGFtcCA9IGJ1aWxkVGltZXN0YW1wRnJvbVNlY29uZHMoZXhwaXJlc0luU2Vjb25kcyk7XG5cbiAgICByZXR1cm4geyBkYXRhLCBleHBpcmVzSW5UaW1lc3RhbXAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBhd2FpdCBidWlsZFJlcXVlc3RFcnJvcihlcnJvciwgb3B0aW9ucy5yb3V0ZSwgb3B0aW9ucy5pbml0KTtcbiAgfVxufTtcbiJdfQ==","import { BasicAuthProvider } from './basic-auth-provider';\nimport { BearerAuthProvider } from './bearer-auth-provider';\nimport { CustomHeaderAuthProvider } from './custom-header-auth-provider';\nexport const isBasicAuthProvider = (authProvider) => authProvider instanceof BasicAuthProvider;\nexport const isBearerAuthProvider = (authProvider) => authProvider instanceof BearerAuthProvider;\nexport const isCustomHeaderAuthProvider = (authProvider) => authProvider instanceof CustomHeaderAuthProvider;\nexport const decryptBearer = (token) => {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64)\n .split('')\n .map((c) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2))\n .join(''));\n return JSON.parse(jsonPayload);\n }\n catch (error) {\n console.error(`Invalid bearer token: ${token}`, error);\n return null;\n }\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1wcm92aWRlci51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9hdXRoL2F1dGgtcHJvdmlkZXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxZQUEwQixFQUFxQyxFQUFFLENBQ25HLFlBQVksWUFBWSxpQkFBaUIsQ0FBQztBQUU1QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLFlBQTBCLEVBQXNDLEVBQUUsQ0FDckcsWUFBWSxZQUFZLGtCQUFrQixDQUFDO0FBRTdDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsWUFBMEIsRUFBNEMsRUFBRSxDQUNqSCxZQUFZLFlBQVksd0JBQXdCLENBQUM7QUFFbkQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQW1DLEtBQWEsRUFBRSxFQUFFO0lBQy9FLElBQUk7UUFDRixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0QsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDVCxLQUFLLENBQUMsRUFBRSxDQUFDO2FBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNqRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ1osQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQVcsQ0FBQztLQUMxQztJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsS0FBSyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhQcm92aWRlciB9IGZyb20gJy4vYXV0aC1wcm92aWRlci50eXBlcyc7XG5pbXBvcnQgeyBCYXNpY0F1dGhQcm92aWRlciB9IGZyb20gJy4vYmFzaWMtYXV0aC1wcm92aWRlcic7XG5pbXBvcnQgeyBCZWFyZXJBdXRoUHJvdmlkZXIgfSBmcm9tICcuL2JlYXJlci1hdXRoLXByb3ZpZGVyJztcbmltcG9ydCB7IEN1c3RvbUhlYWRlckF1dGhQcm92aWRlciB9IGZyb20gJy4vY3VzdG9tLWhlYWRlci1hdXRoLXByb3ZpZGVyJztcblxuZXhwb3J0IGNvbnN0IGlzQmFzaWNBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBhdXRoUHJvdmlkZXIgaXMgQmFzaWNBdXRoUHJvdmlkZXIgPT5cbiAgYXV0aFByb3ZpZGVyIGluc3RhbmNlb2YgQmFzaWNBdXRoUHJvdmlkZXI7XG5cbmV4cG9ydCBjb25zdCBpc0JlYXJlckF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcik6IGF1dGhQcm92aWRlciBpcyBCZWFyZXJBdXRoUHJvdmlkZXIgPT5cbiAgYXV0aFByb3ZpZGVyIGluc3RhbmNlb2YgQmVhcmVyQXV0aFByb3ZpZGVyO1xuXG5leHBvcnQgY29uc3QgaXNDdXN0b21IZWFkZXJBdXRoUHJvdmlkZXIgPSAoYXV0aFByb3ZpZGVyOiBBdXRoUHJvdmlkZXIpOiBhdXRoUHJvdmlkZXIgaXMgQ3VzdG9tSGVhZGVyQXV0aFByb3ZpZGVyID0+XG4gIGF1dGhQcm92aWRlciBpbnN0YW5jZW9mIEN1c3RvbUhlYWRlckF1dGhQcm92aWRlcjtcblxuZXhwb3J0IGNvbnN0IGRlY3J5cHRCZWFyZXIgPSA8UmVzdWx0ID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHRva2VuOiBzdHJpbmcpID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBiYXNlNjRVcmwgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgIGNvbnN0IGJhc2U2NCA9IGJhc2U2NFVybC5yZXBsYWNlKC8tL2csICcrJykucmVwbGFjZSgvXy9nLCAnLycpO1xuICAgIGNvbnN0IGpzb25QYXlsb2FkID0gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgICAgYXRvYihiYXNlNjQpXG4gICAgICAgIC5zcGxpdCgnJylcbiAgICAgICAgLm1hcCgoYykgPT4gJyUnICsgKCcwMCcgKyBjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMikpXG4gICAgICAgIC5qb2luKCcnKSxcbiAgICApO1xuXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblBheWxvYWQpIGFzIFJlc3VsdDtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBJbnZhbGlkIGJlYXJlciB0b2tlbjogJHt0b2tlbn1gLCBlcnJvcik7XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufTtcbiJdfQ==","import { Subject, timer } from 'rxjs';\nimport { buildBody, buildRequestError, buildRoute, request } from '../request';\nimport { decryptBearer } from './auth-provider.utils';\nexport class BearerAuthProvider {\n get header() {\n return { Authorization: `Bearer ${this._token}` };\n }\n constructor(_config) {\n this._config = _config;\n this._refreshToken = null;\n this._refreshTimerSubscription = null;\n this._failureCount = 0;\n this.queryClient = null;\n this.onRefreshInitiation$ = new Subject();\n this.onRefreshSuccess$ = new Subject();\n this.onRefreshFailure$ = new Subject();\n this._token = _config.token;\n this._refreshToken = _config.refreshConfig?.token ?? null;\n if (this._config.refreshConfig) {\n this._setupRefresh(this._config.refreshConfig);\n }\n }\n cleanUp() {\n this._refreshTimerSubscription?.unsubscribe();\n this._refreshTimerSubscription = null;\n }\n _setupRefresh(config) {\n this.cleanUp();\n const bearer = decryptBearer(this._token);\n if (!bearer) {\n return;\n }\n const expiresInPropertyName = config.expiresInPropertyName || 'exp';\n const expiresIn = bearer[expiresInPropertyName];\n const fiveMinutes = 5 * 60 * 1000;\n const refreshBuffer = config.refreshBuffer ?? fiveMinutes;\n if (expiresIn === undefined) {\n throw new Error(`Bearer token does not contain an '${expiresInPropertyName}' property`);\n }\n const remainingTime = new Date(expiresIn * 1000).getTime() - refreshBuffer - new Date().getTime();\n const strategy = config.strategy ?? \"beforeExpiration\" /* AuthBearerRefreshStrategy.BeforeExpiration */;\n switch (strategy) {\n case \"beforeExpiration\" /* AuthBearerRefreshStrategy.BeforeExpiration */:\n this._refreshTimerSubscription = timer(remainingTime).subscribe(() => this._refresh(config));\n break;\n }\n }\n async _refresh(config) {\n if (!this._refreshToken) {\n throw new Error('No refresh token found');\n }\n if (!this.queryClient) {\n throw new Error('Query client instance is null');\n }\n const { method, route, requestAdapter, responseAdapter, paramLocation } = config;\n const data = requestAdapter?.(this._refreshToken) ?? { refreshToken: this._refreshToken };\n const fullRoute = buildRoute({\n base: this.queryClient.config.baseRoute,\n route,\n queryParams: paramLocation === 'query' ? data : undefined,\n });\n const requestInit = { body: paramLocation === 'body' ? buildBody(data) : undefined, method };\n this.onRefreshInitiation$.next();\n try {\n const result = await request({\n route: fullRoute,\n init: requestInit,\n });\n const tokens = responseAdapter ? responseAdapter(result.data) : result.data;\n if (!tokens.token) {\n throw new Error('Token not found in response');\n }\n if (!tokens.refreshToken) {\n throw new Error('Refresh token not found in response');\n }\n this._token = tokens.token;\n this._refreshToken = tokens.refreshToken;\n this.onRefreshSuccess$.next(tokens);\n this._setupRefresh(config);\n this._failureCount = 0;\n }\n catch (error) {\n if (error instanceof Error) {\n this.onRefreshFailure$.next(await buildRequestError(error, fullRoute, requestInit));\n }\n else {\n this.onRefreshFailure$.next(error);\n }\n this._failureCount++;\n if (this._failureCount <= (config.maxRefreshAttempts ?? 3)) {\n this._setupRefresh(config);\n }\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhcmVyLWF1dGgtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvYXV0aC9iZWFyZXItYXV0aC1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFnQixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFnQixNQUFNLFlBQVksQ0FBQztBQVE3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsTUFBTSxPQUFPLGtCQUFrQjtJQU03QixJQUFJLE1BQU07UUFDUixPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQVFELFlBQW9CLE9BQWlDO1FBQWpDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBZDdDLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUNwQyw4QkFBeUIsR0FBd0IsSUFBSSxDQUFDO1FBQ3RELGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBTTFCLGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUV2Qyx5QkFBb0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBQ2pELHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFnQixDQUFDO1FBRzlDLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxD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c2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUXVlcnlDbGllbnQgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgYnVpbGRCb2R5LCBidWlsZFJlcXVlc3RFcnJvciwgYnVpbGRSb3V0ZSwgcmVxdWVzdCwgUmVxdWVzdEVycm9yIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5pbXBvcnQge1xuICBBdXRoQmVhcmVyUmVmcmVzaFN0cmF0ZWd5LFxuICBBdXRoUHJvdmlkZXIsXG4gIEF1dGhQcm92aWRlckJlYXJlckNvbmZpZyxcbiAgQmVhcmVyUmVmcmVzaENvbmZpZyxcbiAgVG9rZW5SZXNwb25zZSxcbn0gZnJvbSAnLi9hdXRoLXByb3ZpZGVyLnR5cGVzJztcbmltcG9ydCB7IGRlY3J5cHRCZWFyZXIgfSBmcm9tICcuL2F1dGgtcHJvdmlkZXIudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQmVhcmVyQXV0aFByb3ZpZGVyIGltcGxlbWVudHMgQXV0aFByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW46IHN0cmluZztcbiAgcHJpdmF0ZSBfcmVmcmVzaFRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfZmFpbHVyZUNvdW50ID0gMDtcblxuICBnZXQgaGVhZGVyKCkge1xuICAgIHJldHVybiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLl90b2tlbn1gIH07XG4gIH1cblxuICBxdWVyeUNsaWVudDogUXVlcnlDbGllbnQgfCBudWxsID0gbnVsbDtcblxuICBvblJlZnJlc2hJbml0aWF0aW9uJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIG9uUmVmcmVzaFN1Y2Nlc3MkID0gbmV3IFN1YmplY3Q8VG9rZW5SZXNwb25zZT4oKTtcbiAgb25SZWZyZXNoRmFpbHVyZSQgPSBuZXcgU3ViamVjdDxSZXF1ZXN0RXJyb3I+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29uZmlnOiBBdXRoUHJvdmlkZXJCZWFyZXJDb25maWcpIHtcbiAgICB0aGlzLl90b2tlbiA9IF9jb25maWcudG9rZW47XG4gICAgdGhpcy5fcmVmcmVzaFRva2VuID0gX2NvbmZpZy5yZWZyZXNoQ29uZmlnPy50b2tlbiA/PyBudWxsO1xuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5yZWZyZXNoQ29uZmlnKSB7XG4gICAgICB0aGlzLl9zZXR1cFJlZnJlc2godGhpcy5fY29uZmlnLnJlZnJlc2hDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFuVXAoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3JlZnJlc2hUaW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cFJlZnJlc2goY29uZmlnOiBCZWFyZXJSZWZyZXNoQ29uZmlnKSB7XG4gICAgdGhpcy5jbGVhblVwKCk7XG5cbiAgICBjb25zdCBiZWFyZXIgPSBkZWNyeXB0QmVhcmVyKHRoaXMuX3Rva2VuKTtcblxuICAgIGlmICghYmVhcmVyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhwaXJlc0luUHJvcGVydHlOYW1lID0gY29uZmlnLmV4cGlyZXNJblByb3BlcnR5TmFtZSB8fCAnZXhwJztcbiAgICBjb25zdCBleHBpcmVzSW4gPSBiZWFyZXJbZXhwaXJlc0luUHJvcGVydHlOYW1lXSBhcyBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZml2ZU1pbnV0ZXMgPSA1ICogNjAgKiAxMDAwO1xuICAgIGNvbnN0IHJlZnJlc2hCdWZmZXIgPSBjb25maWcucmVmcmVzaEJ1ZmZlciA/PyBmaXZlTWludXRlcztcblxuICAgIGlmIChleHBpcmVzSW4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBCZWFyZXIgdG9rZW4gZG9lcyBub3QgY29udGFpbiBhbiAnJHtleHBpcmVzSW5Qcm9wZXJ0eU5hbWV9JyBwcm9wZXJ0eWApO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbWFpbmluZ1RpbWUgPSBuZXcgRGF0ZShleHBpcmVzSW4gKiAxMDAwKS5nZXRUaW1lKCkgLSByZWZyZXNoQnVmZmVyIC0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cbiAgICBjb25zdCBzdHJhdGVneSA9IGNvbmZpZy5zdHJhdGVneSA/PyBBdXRoQmVhcmVyUmVmcmVzaFN0cmF0ZWd5LkJlZm9yZUV4cGlyYXRpb247XG5cbiAgICBzd2l0Y2ggKHN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIEF1dGhCZWFyZXJSZWZyZXNoU3RyYXRlZ3kuQmVmb3JlRXhwaXJhdGlvbjpcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRpbWVyU3Vic2NyaXB0aW9uID0gdGltZXIocmVtYWluaW5nVGltZSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlZnJlc2goY29uZmlnKSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3JlZnJlc2goY29uZmlnOiBCZWFyZXJSZWZyZXNoQ29uZmlnKSB7XG4gICAgaWYgKCF0aGlzLl9yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcmVmcmVzaCB0b2tlbiBmb3VuZCcpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5xdWVyeUNsaWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdRdWVyeSBjbGllbnQgaW5zdGFuY2UgaXMgbnVsbCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbWV0aG9kLCByb3V0ZSwgcmVxdWVzdEFkYXB0ZXIsIHJlc3BvbnNlQWRhcHRlciwgcGFyYW1Mb2NhdGlvbiB9ID0gY29uZmlnO1xuXG4gICAgY29uc3QgZGF0YSA9IHJlcXVlc3RBZGFwdGVyPy4odGhpcy5fcmVmcmVzaFRva2VuKSA/PyB7IHJlZnJlc2hUb2tlbjogdGhpcy5fcmVmcmVzaFRva2VuIH07XG5cbiAgICBjb25zdCBmdWxsUm91dGUgPSBidWlsZFJvdXRlKHtcbiAgICAgIGJhc2U6IHRoaXMucXVlcnlDbGllbnQuY29uZmlnLmJhc2VSb3V0ZSxcbiAgICAgIHJvdXRlLFxuICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtTG9jYXRpb24gPT09ICdxdWVyeScgPyBkYXRhIDogdW5kZWZpbmVkLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVxdWVzdEluaXQ6IFJlcXVlc3RJbml0ID0geyBib2R5OiBwYXJhbUxvY2F0aW9uID09PSAnYm9keScgPyBidWlsZEJvZHkoZGF0YSkgOiB1bmRlZmluZWQsIG1ldGhvZCB9O1xuXG4gICAgdGhpcy5vblJlZnJlc2hJbml0aWF0aW9uJC5uZXh0KCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdCh7XG4gICAgICAgIHJvdXRlOiBmdWxsUm91dGUsXG4gICAgICAgIGluaXQ6IHJlcXVlc3RJbml0LFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHRva2VucyA9IHJlc3BvbnNlQWRhcHRlciA/IHJlc3BvbnNlQWRhcHRlcihyZXN1bHQuZGF0YSkgOiAocmVzdWx0LmRhdGEgYXMgVG9rZW5SZXNwb25zZSk7XG5cbiAgICAgIGlmICghdG9rZW5zLnRva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVG9rZW4gbm90IGZvdW5kIGluIHJlc3BvbnNlJyk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdG9rZW5zLnJlZnJlc2hUb2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlZnJlc2ggdG9rZW4gbm90IGZvdW5kIGluIHJlc3BvbnNlJyk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Rva2VuID0gdG9rZW5zLnRva2VuO1xuICAgICAgdGhpcy5fcmVmcmVzaFRva2VuID0gdG9rZW5zLnJlZnJlc2hUb2tlbjtcblxuICAgICAgdGhpcy5vblJlZnJlc2hTdWNjZXNzJC5uZXh0KHRva2Vucyk7XG5cbiAgICAgIHRoaXMuX3NldHVwUmVmcmVzaChjb25maWcpO1xuXG4gICAgICB0aGlzLl9mYWlsdXJlQ291bnQgPSAwO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICB0aGlzLm9uUmVmcmVzaEZhaWx1cmUkLm5leHQoYXdhaXQgYnVpbGRSZXF1ZXN0RXJyb3IoZXJyb3IsIGZ1bGxSb3V0ZSwgcmVxdWVzdEluaXQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub25SZWZyZXNoRmFpbHVyZSQubmV4dChlcnJvciBhcyBSZXF1ZXN0RXJyb3IpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9mYWlsdXJlQ291bnQrKztcblxuICAgICAgaWYgKHRoaXMuX2ZhaWx1cmVDb3VudCA8PSAoY29uZmlnLm1heFJlZnJlc2hBdHRlbXB0cyA/PyAzKSkge1xuICAgICAgICB0aGlzLl9zZXR1cFJlZnJlc2goY29uZmlnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==","const getOpName = /(query|mutation) ?([\\w\\d-_]+)? ?\\(.*?\\)? \\{/;\nexport const transformGql = (str) => {\n str = Array.isArray(str) ? str.join('') : str;\n const name = getOpName.exec(str);\n return function (variables) {\n const data = { query: str };\n if (variables)\n data['variables'] = JSON.stringify(variables);\n if (name && name.length) {\n const operationName = name[2];\n if (operationName)\n data['operationName'] = name[2];\n }\n return JSON.stringify(data);\n };\n};\nexport const gql = (strings, ...values) => {\n const str = strings.reduce((acc, cur, i) => {\n return acc + cur + (values[i] || '');\n }, '');\n return str;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2dxbC9ncWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxTQUFTLEdBQUcsNkNBQTZDLENBQUM7QUFFaEUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEVBQUU7SUFDMUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM5QyxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLE9BQU8sVUFBVSxTQUFxRDtRQUNwRSxNQUFNLElBQUksR0FBNEIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDckQsSUFBSSxTQUFTO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsSUFBSSxhQUFhO2dCQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBNkIsRUFBRSxHQUFHLE1BQWdCLEVBQUUsRUFBRTtJQUN4RSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUN6QyxPQUFPLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1AsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZXRPcE5hbWUgPSAvKHF1ZXJ5fG11dGF0aW9uKSA/KFtcXHdcXGQtX10rKT8gP1xcKC4qP1xcKT8gXFx7LztcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUdxbCA9IChzdHI6IHN0cmluZykgPT4ge1xuICBzdHIgPSBBcnJheS5pc0FycmF5KHN0cikgPyBzdHIuam9pbignJykgOiBzdHI7XG4gIGNvbnN0IG5hbWUgPSBnZXRPcE5hbWUuZXhlYyhzdHIpO1xuICByZXR1cm4gZnVuY3Rpb24gKHZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IHF1ZXJ5OiBzdHIgfTtcbiAgICBpZiAodmFyaWFibGVzKSBkYXRhWyd2YXJpYWJsZXMnXSA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcyk7XG4gICAgaWYgKG5hbWUgJiYgbmFtZS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBuYW1lWzJdO1xuICAgICAgaWYgKG9wZXJhdGlvbk5hbWUpIGRhdGFbJ29wZXJhdGlvbk5hbWUnXSA9IG5hbWVbMl07XG4gICAgfVxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBncWwgPSAoc3RyaW5nczogVGVtcGxhdGVTdHJpbmdzQXJyYXksIC4uLnZhbHVlczogc3RyaW5nW10pID0+IHtcbiAgY29uc3Qgc3RyID0gc3RyaW5ncy5yZWR1Y2UoKGFjYywgY3VyLCBpKSA9PiB7XG4gICAgcmV0dXJuIGFjYyArIGN1ciArICh2YWx1ZXNbaV0gfHwgJycpO1xuICB9LCAnJyk7XG4gIHJldHVybiBzdHI7XG59O1xuIl19","import { BehaviorSubject, filter, of, switchMap, takeWhile } from 'rxjs';\nexport function filterSuccess() {\n return function (source) {\n return source.pipe(filter((value) => isQueryStateSuccess(value)));\n };\n}\nexport function filterFailure() {\n return function (source) {\n return source.pipe(filter((value) => isQueryStateFailure(value)));\n };\n}\nexport function filterQueryStates(allowedStates) {\n return function (source) {\n return source.pipe(filter((value) => value && allowedStates.includes(value.type)));\n };\n}\nexport function takeUntilResponse() {\n return function (source) {\n return source.pipe(takeWhile((value) => isQueryStateLoading(value), true));\n };\n}\nexport function filterNull() {\n return function (source) {\n return source.pipe(filter((value) => value !== null));\n };\n}\nexport function switchQueryState() {\n return function (source) {\n return source.pipe(switchMap((value) => value?.state$ ?? of(null)));\n };\n}\nexport const isQueryStateLoading = (state) => state?.type === \"LOADING\" /* QueryStateType.Loading */;\nexport const isQueryStateSuccess = (state) => state?.type === \"SUCCESS\" /* QueryStateType.Success */;\nexport const isQueryStateFailure = (state) => state?.type === \"FAILURE\" /* QueryStateType.Failure */;\nexport const isQueryStateCancelled = (state) => state?.type === \"CANCELLED\" /* QueryStateType.Cancelled */;\nexport const isQueryStatePrepared = (state) => state?.type === \"PREPARED\" /* QueryStateType.Prepared */;\nexport const mergeHeaders = (...headers) => {\n return headers.reduce((acc, headers) => {\n if (!headers) {\n return acc;\n }\n return {\n ...acc,\n ...headers,\n };\n }, {});\n};\nexport const isGqlQueryConfig = (config) => {\n if (!config || typeof config !== 'object' || Array.isArray(config)) {\n return false;\n }\n if (!('query' in config)) {\n return false;\n }\n return true;\n};\nexport const isQuery = (query) => {\n if (!query || typeof query !== 'object' || Array.isArray(query)) {\n return false;\n }\n if (!('state$' in query)) {\n return false;\n }\n return true;\n};\nexport const createQueryCollection = (\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nqueryMap) => new BehaviorSubject(null);\nexport const extractQuery = (v) => (isQuery(v) ? v : v?.query) ?? null;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUF5QnJGLE1BQU0sVUFBVSxhQUFhO0lBQzNCLE9BQU8sVUFJTCxNQUFxQjtRQUNyQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUErQyxDQUFDO0lBQ2xILENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLFVBQXVDLE1BQXFCO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQXdCLENBQUM7SUFDM0YsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxhQUErQjtJQUMvRCxPQUFPLFVBQXVDLE1BQXFCO1FBQ2pFLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFrQixDQUFDO0lBQ3RHLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU8sVUFBZ0MsTUFBcUI7UUFDMUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxVQUFhLE1BQXFCO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQXdCLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPLFVBSUwsTUFBcUI7UUFDckIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FHekQsQ0FBQztJQUNaLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQW9DLEVBQW9CLEVBQUUsQ0FDNUYsS0FBSyxFQUFFLElBQUksMkNBQTJCLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFvQyxFQUFvQixFQUFFLENBQzVGLEtBQUssRUFBRSxJQUFJLDJDQUEyQixDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBb0MsRUFBb0IsRUFBRSxDQUM1RixLQUFLLEVBQUUsSUFBSSwyQ0FBMkIsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQW9DLEVBQXNCLEVBQUUsQ0FDaEcsS0FBSyxFQUFFLElBQUksK0NBQTZCLENBQUM7QUFFM0MsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFvQyxFQUFxQixFQUFFLENBQzlGLEtBQUssRUFBRSxJQUFJLDZDQUE0QixDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQUcsT0FBaUQsRUFBRSxFQUFFO0lBQ25GLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUNyQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLENBQUM7U0FDWjtRQUVELE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixHQUFHLE9BQU87U0FDWCxDQUFDO0lBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FNOUIsTUFBZSxFQUM0RCxFQUFFO0lBQzdFLElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbEUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBcUIsS0FBYyxFQUFjLEVBQUU7SUFDeEUsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUMvRCxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0FBQ25DLDZEQUE2RDtBQUM3RCxRQUFXLEVBQ1gsRUFBRSxDQUFDLElBQUksZUFBZSxDQUFXLElBQUksQ0FBQyxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMxQixDQUFJLEVBQ0osRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFrZVdoaWxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSB9IGZyb20gJy4uL3F1ZXJ5LWNsaWVudCc7XG5pbXBvcnQgeyBSZXF1ZXN0SGVhZGVycyB9IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQW55UXVlcnksXG4gIEFueVF1ZXJ5Q3JlYXRvckNvbGxlY3Rpb24sXG4gIEFueVF1ZXJ5T2ZDcmVhdG9yQ29sbGVjdGlvbixcbiAgQmFzZUFyZ3VtZW50cyxcbiAgQ2FuY2VsbGVkLFxuICBGYWlsdXJlLFxuICBHcWxRdWVyeUNvbmZpZyxcbiAgTG9hZGluZyxcbiAgUHJlcGFyZWQsXG4gIFF1ZXJ5UmF3UmVzcG9uc2VUeXBlLFxuICBRdWVyeVJlc3BvbnNlVHlwZSxcbiAgUXVlcnlTdGF0ZSxcbiAgUXVlcnlTdGF0ZURhdGEsXG4gIFF1ZXJ5U3RhdGVSYXdEYXRhLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUm91dGVUeXBlLFxuICBTdWNjZXNzLFxufSBmcm9tICcuL3F1ZXJ5LnR5cGVzJztcblxudHlwZSBPbWl0TnVsbDxUPiA9IFQgZXh0ZW5kcyBudWxsID8gbmV2ZXIgOiBUO1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyU3VjY2VzcygpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxcbiAgICBUIGV4dGVuZHMgUXVlcnlTdGF0ZSB8IG51bGwsXG4gICAgUmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxPbWl0TnVsbDxUPj4sXG4gICAgUmF3UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlUmF3RGF0YTxPbWl0TnVsbDxUPj4sXG4gID4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcigodmFsdWUpID0+IGlzUXVlcnlTdGF0ZVN1Y2Nlc3ModmFsdWUpKSkgYXMgT2JzZXJ2YWJsZTxTdWNjZXNzPFJlc3BvbnNlLCBSYXdSZXNwb25zZT4+O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyRmFpbHVyZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgUXVlcnlTdGF0ZSB8IG51bGw+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiBpc1F1ZXJ5U3RhdGVGYWlsdXJlKHZhbHVlKSkpIGFzIE9ic2VydmFibGU8RmFpbHVyZT47XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJRdWVyeVN0YXRlcyhhbGxvd2VkU3RhdGVzOiBRdWVyeVN0YXRlVHlwZVtdKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8VCBleHRlbmRzIFF1ZXJ5U3RhdGUgfCBudWxsPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgJiYgYWxsb3dlZFN0YXRlcy5pbmNsdWRlcyh2YWx1ZS50eXBlKSkpIGFzIE9ic2VydmFibGU8VD47XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWtlVW50aWxSZXNwb25zZSgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgUXVlcnlTdGF0ZT4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KSB7XG4gICAgcmV0dXJuIHNvdXJjZS5waXBlKHRha2VXaGlsZSgodmFsdWUpID0+IGlzUXVlcnlTdGF0ZUxvYWRpbmcodmFsdWUpLCB0cnVlKSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJOdWxsKCkge1xuICByZXR1cm4gZnVuY3Rpb24gPFQ+KHNvdXJjZTogT2JzZXJ2YWJsZTxUPikge1xuICAgIHJldHVybiBzb3VyY2UucGlwZShmaWx0ZXIoKHZhbHVlKTogdmFsdWUgaXMgT21pdE51bGw8VD4gPT4gdmFsdWUgIT09IG51bGwpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN3aXRjaFF1ZXJ5U3RhdGUoKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8XG4gICAgVCBleHRlbmRzIEFueVF1ZXJ5IHwgbnVsbCxcbiAgICBSZXNwb25zZSBleHRlbmRzIFF1ZXJ5UmVzcG9uc2VUeXBlPE9taXROdWxsPFQ+PixcbiAgICBSYXdSZXNwb25zZSBleHRlbmRzIFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPE9taXROdWxsPFQ+PixcbiAgPihzb3VyY2U6IE9ic2VydmFibGU8VD4pIHtcbiAgICByZXR1cm4gc291cmNlLnBpcGUoc3dpdGNoTWFwKCh2YWx1ZSkgPT4gdmFsdWU/LnN0YXRlJCA/PyBvZihudWxsKSkpIGFzIE9ic2VydmFibGU8UXVlcnlTdGF0ZTxcbiAgICAgIE9taXROdWxsPFJlc3BvbnNlPixcbiAgICAgIE9taXROdWxsPFJhd1Jlc3BvbnNlPlxuICAgID4gfCBudWxsPjtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUxvYWRpbmcgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgTG9hZGluZyA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuTG9hZGluZztcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZVN1Y2Nlc3MgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgU3VjY2VzcyA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcztcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUZhaWx1cmUgPSAoc3RhdGU6IFF1ZXJ5U3RhdGUgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RhdGUgaXMgRmFpbHVyZSA9PlxuICBzdGF0ZT8udHlwZSA9PT0gUXVlcnlTdGF0ZVR5cGUuRmFpbHVyZTtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZUNhbmNlbGxlZCA9IChzdGF0ZTogUXVlcnlTdGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpOiBzdGF0ZSBpcyBDYW5jZWxsZWQgPT5cbiAgc3RhdGU/LnR5cGUgPT09IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZDtcblxuZXhwb3J0IGNvbnN0IGlzUXVlcnlTdGF0ZVByZXBhcmVkID0gKHN0YXRlOiBRdWVyeVN0YXRlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0YXRlIGlzIFByZXBhcmVkID0+XG4gIHN0YXRlPy50eXBlID09PSBRdWVyeVN0YXRlVHlwZS5QcmVwYXJlZDtcblxuZXhwb3J0IGNvbnN0IG1lcmdlSGVhZGVycyA9ICguLi5oZWFkZXJzOiBBcnJheTxSZXF1ZXN0SGVhZGVycyB8IG51bGwgfCB1bmRlZmluZWQ+KSA9PiB7XG4gIHJldHVybiBoZWFkZXJzLnJlZHVjZSgoYWNjLCBoZWFkZXJzKSA9PiB7XG4gICAgaWYgKCFoZWFkZXJzKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICAuLi5oZWFkZXJzLFxuICAgIH07XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0dxbFF1ZXJ5Q29uZmlnID0gPFxuICBSZXNwb25zZSxcbiAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCxcbiAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPiB8IHVuZGVmaW5lZCxcbiAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiB8IHVuZGVmaW5lZCxcbj4oXG4gIGNvbmZpZzogdW5rbm93bixcbik6IGNvbmZpZyBpcyBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4gPT4ge1xuICBpZiAoIWNvbmZpZyB8fCB0eXBlb2YgY29uZmlnICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGNvbmZpZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoISgncXVlcnknIGluIGNvbmZpZykpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1F1ZXJ5ID0gPFQgZXh0ZW5kcyBBbnlRdWVyeT4ocXVlcnk6IHVua25vd24pOiBxdWVyeSBpcyBUID0+IHtcbiAgaWYgKCFxdWVyeSB8fCB0eXBlb2YgcXVlcnkgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocXVlcnkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKCEoJ3N0YXRlJCcgaW4gcXVlcnkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnlDb2xsZWN0aW9uID0gPFQgZXh0ZW5kcyBBbnlRdWVyeUNyZWF0b3JDb2xsZWN0aW9uLCBSIGV4dGVuZHMgQW55UXVlcnlPZkNyZWF0b3JDb2xsZWN0aW9uPFQ+PihcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBxdWVyeU1hcDogVCxcbikgPT4gbmV3IEJlaGF2aW9yU3ViamVjdDxSIHwgbnVsbD4obnVsbCk7XG5cbmV4cG9ydCBjb25zdCBleHRyYWN0UXVlcnkgPSA8VCBleHRlbmRzIEFueVF1ZXJ5IHwgQW55UXVlcnlPZkNyZWF0b3JDb2xsZWN0aW9uPEFueVF1ZXJ5Q3JlYXRvckNvbGxlY3Rpb24+IHwgbnVsbD4oXG4gIHY6IFQsXG4pID0+IChpc1F1ZXJ5KHYpID8gdiA6IHY/LnF1ZXJ5KSA/PyBudWxsO1xuIl19","import { BehaviorSubject, interval, Subject, takeUntil, tap } from 'rxjs';\nimport { transformGql } from '../gql';\nimport { buildBody, guessContentType, isAbortRequestError, isRequestError, request, transformMethod, } from '../request';\nimport { filterSuccess, isGqlQueryConfig, isQueryStateLoading, isQueryStateSuccess, mergeHeaders, takeUntilResponse, } from './query.utils';\nexport class Query {\n get _nextId() {\n return ++this._currentId;\n }\n get state$() {\n return this._state$.asObservable();\n }\n get state() {\n return this._state$.value;\n }\n get isExpired() {\n if (!isQueryStateSuccess(this.state)) {\n return false;\n }\n const ts = this.state.meta.expiresAt;\n if (!ts) {\n return true;\n }\n return ts < Date.now();\n }\n constructor(_client, _queryConfig, _route, _args) {\n this._client = _client;\n this._queryConfig = _queryConfig;\n this._route = _route;\n this._args = _args;\n this._currentId = 0;\n this._abortController = new AbortController();\n this._pollingSubscription = null;\n this._onAbort$ = new Subject();\n this._state$ = new BehaviorSubject({\n type: \"PREPARED\" /* QueryStateType.Prepared */,\n meta: { id: this._currentId },\n });\n }\n clone() {\n return this._client.fetch(this._queryConfig);\n }\n execute(options) {\n if (!this.isExpired && !options?.skipCache && isQueryStateSuccess(this.state)) {\n return this;\n }\n if (this._queryConfig.secure && !this._client.authProvider) {\n throw new Error('Cannot execute secure query without auth provider');\n }\n const id = this._nextId;\n if (isQueryStateLoading(this._state$.value)) {\n this.abort();\n }\n const meta = { id };\n this._state$.next({\n type: \"LOADING\" /* QueryStateType.Loading */,\n meta,\n });\n this._updateUseResultInDependencies();\n let body = null;\n let contentType = null;\n if (isGqlQueryConfig(this._queryConfig)) {\n const queryTemplate = this._queryConfig.query;\n const query = transformGql(queryTemplate);\n contentType = 'application/json';\n body = query(this._args?.variables);\n }\n else {\n body = buildBody(this._args?.body);\n contentType = guessContentType(this._args?.body);\n }\n let authHeader = null;\n if (this._queryConfig.secure) {\n const header = this._client.authProvider?.header;\n if (header) {\n authHeader = header;\n }\n }\n else if (this._client.authProvider?.header) {\n if (this._queryConfig.secure === undefined || this._queryConfig.secure) {\n authHeader = this._client.authProvider.header;\n }\n }\n let headers = mergeHeaders(authHeader, this._args?.headers);\n if (contentType && !headers?.['Content-Type'] && !headers?.['content-type']) {\n if (headers) {\n headers['Content-Type'] = contentType;\n }\n else {\n headers = {\n 'Content-Type': contentType,\n };\n }\n }\n request({\n route: this._route,\n init: {\n method: transformMethod(this._queryConfig.method),\n signal: this._abortController.signal,\n body,\n headers: headers || undefined,\n },\n cacheAdapter: this._client.config.request?.cacheAdapter,\n })\n .then((response) => {\n const isResponseObject = typeof response === 'object';\n const isGql = isGqlQueryConfig(this._queryConfig);\n let responseData = null;\n if (isGql &&\n isResponseObject &&\n !!response.data &&\n typeof response.data === 'object' &&\n 'data' in response.data) {\n responseData = response.data['data'];\n }\n else {\n responseData = response.data;\n }\n const transformedResponse = this._queryConfig.responseTransformer\n ? this._queryConfig.responseTransformer(responseData)\n : responseData;\n this._state$.next({\n type: \"SUCCESS\" /* QueryStateType.Success */,\n response: transformedResponse,\n rawResponse: responseData,\n meta: { ...meta, expiresAt: response.expiresInTimestamp },\n });\n })\n .catch((error) => this._handleExecuteError(error, meta));\n return this;\n }\n abort() {\n this._abortController.abort();\n this._abortController = new AbortController();\n this._onAbort$.next();\n return this;\n }\n poll(config) {\n if (this._pollingSubscription) {\n return this;\n }\n this._pollingSubscription = interval(config.interval)\n .pipe(takeUntil(config.takeUntil))\n .subscribe(() => this.execute({ skipCache: true }));\n return this;\n }\n stopPolling() {\n this._pollingSubscription?.unsubscribe();\n this._pollingSubscription = null;\n return this;\n }\n _updateUseResultInDependencies() {\n if (!this._args?.useResultIn?.length) {\n return;\n }\n this.state$\n .pipe(filterSuccess(), takeUntil(this._onAbort$), takeUntilResponse(), tap((state) => {\n if (!this._args?.useResultIn) {\n return;\n }\n for (const query of this._args.useResultIn) {\n query._state$.next({\n type: \"SUCCESS\" /* QueryStateType.Success */,\n meta: { ...state.meta, id: query._nextId },\n rawResponse: state.rawResponse,\n response: state.response,\n });\n }\n }))\n .subscribe();\n }\n _handleExecuteError(error, meta) {\n if (isAbortRequestError(error)) {\n this._state$.next({\n type: \"CANCELLED\" /* QueryStateType.Cancelled */,\n meta,\n });\n }\n else if (isRequestError(error)) {\n this._state$.next({\n type: \"FAILURE\" /* QueryStateType.Failure */,\n error,\n meta,\n });\n }\n else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnkvcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFdEMsT0FBTyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFFZCxPQUFPLEVBQ1AsZUFBZSxHQUNoQixNQUFNLFlBQVksQ0FBQztBQWFwQixPQUFPLEVBQ0wsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsTUFBTSxPQUFPLEtBQUs7SUFjaEIsSUFBWSxPQUFPO1FBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEMsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVyQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sRUFBRSxH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UUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2lCQUN6QixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEtBQWMsRUFBRSxJQUFvQjtRQUM5RCxJQUFJLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNoQixJQUFJLDRDQUEwQjtnQkFDOUIsSUFBSTthQUNMLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBSSxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLElBQUksd0NBQXdCO2dCQUM1QixLQUFLO2dCQUNMLElBQUk7YUFDTCxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxLQUFLLENBQUM7U0FDYjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgaW50ZXJ2YWwsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRyYW5zZm9ybUdxbCB9IGZyb20gJy4uL2dxbCc7XG5pbXBvcnQgeyBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lciwgUXVlcnlDbGllbnQsIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7XG4gIGJ1aWxkQm9keSxcbiAgZ3Vlc3NDb250ZW50VHlwZSxcbiAgaXNBYm9ydFJlcXVlc3RFcnJvcixcbiAgaXNSZXF1ZXN0RXJyb3IsXG4gIE1ldGhvZCBhcyBNZXRob2RUeXBlLFxuICByZXF1ZXN0LFxuICB0cmFuc2Zvcm1NZXRob2QsXG59IGZyb20gJy4uL3JlcXVlc3QnO1xuaW1wb3J0IHtcbiAgQmFzZUFyZ3VtZW50cyxcbiAgR3FsUXVlcnlDb25maWcsXG4gIFBvbGxDb25maWcsXG4gIFF1ZXJ5U3RhdGUsXG4gIFF1ZXJ5U3RhdGVNZXRhLFxuICBRdWVyeVN0YXRlVHlwZSxcbiAgUmVzdFF1ZXJ5Q29uZmlnLFxuICBSb3V0ZVR5cGUsXG4gIFJ1blF1ZXJ5T3B0aW9ucyxcbiAgV2l0aFVzZVJlc3VsdEluLFxufSBmcm9tICcuL3F1ZXJ5LnR5cGVzJztcbmltcG9ydCB7XG4gIGZpbHRlclN1Y2Nlc3MsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIGlzUXVlcnlTdGF0ZUxvYWRpbmcsXG4gIGlzUXVlcnlTdGF0ZVN1Y2Nlc3MsXG4gIG1lcmdlSGVhZGVycyxcbiAgdGFrZVVudGlsUmVzcG9uc2UsXG59IGZyb20gJy4vcXVlcnkudXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgUXVlcnk8XG4gIFJlc3BvbnNlLFxuICBBcmd1bWVudHMgZXh0ZW5kcyAoQmFzZUFyZ3VtZW50cyAmIFdpdGhVc2VSZXN1bHRJbjxSZXNwb25zZSwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4pIHwgdW5kZWZpbmVkLFxuICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICBNZXRob2QgZXh0ZW5kcyBNZXRob2RUeXBlLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuPiB7XG4gIHByaXZhdGUgX2N1cnJlbnRJZCA9IDA7XG4gIHByaXZhdGUgX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgcHJpdmF0ZSBfcG9sbGluZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uQWJvcnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeVN0YXRlPFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4sIFJlc3BvbnNlPj47XG5cbiAgcHJpdmF0ZSBnZXQgX25leHRJZCgpIHtcbiAgICByZXR1cm4gKyt0aGlzLl9jdXJyZW50SWQ7XG4gIH1cblxuICBnZXQgc3RhdGUkKCkge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGdldCBpc0V4cGlyZWQoKSB7XG4gICAgaWYgKCFpc1F1ZXJ5U3RhdGVTdWNjZXNzKHRoaXMuc3RhdGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdHMgPSB0aGlzLnN0YXRlLm1ldGEuZXhwaXJlc0F0O1xuXG4gICAgaWYgKCF0cykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRzIDwgRGF0ZS5ub3coKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NsaWVudDogUXVlcnlDbGllbnQsXG4gICAgcHJpdmF0ZSBfcXVlcnlDb25maWc6XG4gICAgICB8IFJlc3RRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj5cbiAgICAgIHwgR3FsUXVlcnlDb25maWc8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICAgIHByaXZhdGUgX3JvdXRlOiBSb3V0ZSxcbiAgICBwcml2YXRlIF9hcmdzOiBBcmd1bWVudHMgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIHRoaXMuX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnlTdGF0ZTxSZXR1cm5UeXBlPFJlc3BvbnNlVHJhbnNmb3JtZXI+LCBSZXNwb25zZT4+KHtcbiAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlByZXBhcmVkLFxuICAgICAgbWV0YTogeyBpZDogdGhpcy5fY3VycmVudElkIH0sXG4gICAgfSk7XG4gIH1cblxuICBjbG9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50LmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBNZXRob2QsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHRoaXMuX3F1ZXJ5Q29uZmlnKTtcbiAgfVxuXG4gIGV4ZWN1dGU8Q29tcHV0ZWRSZXNwb25zZSBleHRlbmRzIFJldHVyblR5cGU8UmVzcG9uc2VUcmFuc2Zvcm1lcj4+KG9wdGlvbnM/OiBSdW5RdWVyeU9wdGlvbnMpIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBpcmVkICYmICFvcHRpb25zPy5za2lwQ2FjaGUgJiYgaXNRdWVyeVN0YXRlU3VjY2Vzcyh0aGlzLnN0YXRlKSkge1xuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSAmJiAhdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZXhlY3V0ZSBzZWN1cmUgcXVlcnkgd2l0aG91dCBhdXRoIHByb3ZpZGVyJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaWQgPSB0aGlzLl9uZXh0SWQ7XG5cbiAgICBpZiAoaXNRdWVyeVN0YXRlTG9hZGluZyh0aGlzLl9zdGF0ZSQudmFsdWUpKSB7XG4gICAgICB0aGlzLmFib3J0KCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YSA9IHsgaWQgfTtcblxuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHtcbiAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkxvYWRpbmcsXG4gICAgICBtZXRhLFxuICAgIH0pO1xuXG4gICAgdGhpcy5fdXBkYXRlVXNlUmVzdWx0SW5EZXBlbmRlbmNpZXMoKTtcblxuICAgIGxldCBib2R5OiBzdHJpbmcgfCBGb3JtRGF0YSB8IG51bGwgPSBudWxsO1xuICAgIGxldCBjb250ZW50VHlwZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZykpIHtcbiAgICAgIGNvbnN0IHF1ZXJ5VGVtcGxhdGUgPSB0aGlzLl9xdWVyeUNvbmZpZy5xdWVyeTtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0gdHJhbnNmb3JtR3FsKHF1ZXJ5VGVtcGxhdGUpO1xuXG4gICAgICBjb250ZW50VHlwZSA9ICdhcHBsaWNhdGlvbi9qc29uJztcbiAgICAgIGJvZHkgPSBxdWVyeSh0aGlzLl9hcmdzPy52YXJpYWJsZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBib2R5ID0gYnVpbGRCb2R5KHRoaXMuX2FyZ3M/LmJvZHkpO1xuICAgICAgY29udGVudFR5cGUgPSBndWVzc0NvbnRlbnRUeXBlKHRoaXMuX2FyZ3M/LmJvZHkpO1xuICAgIH1cblxuICAgIGxldCBhdXRoSGVhZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5fcXVlcnlDb25maWcuc2VjdXJlKSB7XG4gICAgICBjb25zdCBoZWFkZXIgPSB0aGlzLl9jbGllbnQuYXV0aFByb3ZpZGVyPy5oZWFkZXI7XG5cbiAgICAgIGlmIChoZWFkZXIpIHtcbiAgICAgICAgYXV0aEhlYWRlciA9IGhlYWRlcjtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuX2NsaWVudC5hdXRoUHJvdmlkZXI/LmhlYWRlcikge1xuICAgICAgaWYgKHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3F1ZXJ5Q29uZmlnLnNlY3VyZSkge1xuICAgICAgICBhdXRoSGVhZGVyID0gdGhpcy5fY2xpZW50LmF1dGhQcm92aWRlci5oZWFkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IGhlYWRlcnMgPSBtZXJnZUhlYWRlcnMoYXV0aEhlYWRlciwgdGhpcy5fYXJncz8uaGVhZGVycyk7XG5cbiAgICBpZiAoY29udGVudFR5cGUgJiYgIWhlYWRlcnM/LlsnQ29udGVudC1UeXBlJ10gJiYgIWhlYWRlcnM/LlsnY29udGVudC10eXBlJ10pIHtcbiAgICAgIGlmIChoZWFkZXJzKSB7XG4gICAgICAgIGhlYWRlcnNbJ0NvbnRlbnQtVHlwZSddID0gY29udGVudFR5cGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJzID0ge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiBjb250ZW50VHlwZSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXF1ZXN0PFJlc3BvbnNlPih7XG4gICAgICByb3V0ZTogdGhpcy5fcm91dGUsXG4gICAgICBpbml0OiB7XG4gICAgICAgIG1ldGhvZDogdHJhbnNmb3JtTWV0aG9kKHRoaXMuX3F1ZXJ5Q29uZmlnLm1ldGhvZCksXG4gICAgICAgIHNpZ25hbDogdGhpcy5fYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgYm9keSxcbiAgICAgICAgaGVhZGVyczogaGVhZGVycyB8fCB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgY2FjaGVBZGFwdGVyOiB0aGlzLl9jbGllbnQuY29uZmlnLnJlcXVlc3Q/LmNhY2hlQWRhcHRlcixcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUmVzcG9uc2VPYmplY3QgPSB0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnO1xuXG4gICAgICAgIGNvbnN0IGlzR3FsID0gaXNHcWxRdWVyeUNvbmZpZyh0aGlzLl9xdWVyeUNvbmZpZyk7XG5cbiAgICAgICAgbGV0IHJlc3BvbnNlRGF0YTogUmVzcG9uc2UgfCBudWxsID0gbnVsbDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGlzR3FsICYmXG4gICAgICAgICAgaXNSZXNwb25zZU9iamVjdCAmJlxuICAgICAgICAgICEhcmVzcG9uc2UuZGF0YSAmJlxuICAgICAgICAgIHR5cGVvZiByZXNwb25zZS5kYXRhID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICdkYXRhJyBpbiByZXNwb25zZS5kYXRhXG4gICAgICAgICkge1xuICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IChyZXNwb25zZS5kYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVsnZGF0YSddIGFzIFJlc3BvbnNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLmRhdGEgYXMgUmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFJlc3BvbnNlID0gdGhpcy5fcXVlcnlDb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lclxuICAgICAgICAgID8gdGhpcy5fcXVlcnlDb25maWcucmVzcG9uc2VUcmFuc2Zvcm1lcihyZXNwb25zZURhdGEpXG4gICAgICAgICAgOiByZXNwb25zZURhdGE7XG5cbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQoe1xuICAgICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLlN1Y2Nlc3MsXG4gICAgICAgICAgcmVzcG9uc2U6IHRyYW5zZm9ybWVkUmVzcG9uc2UgYXMgQ29tcHV0ZWRSZXNwb25zZSxcbiAgICAgICAgICByYXdSZXNwb25zZTogcmVzcG9uc2VEYXRhIGFzIFJlc3BvbnNlLFxuICAgICAgICAgIG1ldGE6IHsgLi4ubWV0YSwgZXhwaXJlc0F0OiByZXNwb25zZS5leHBpcmVzSW5UaW1lc3RhbXAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gdGhpcy5faGFuZGxlRXhlY3V0ZUVycm9yKGVycm9yLCBtZXRhKSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGFib3J0KCkge1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIHRoaXMuX2Fib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICB0aGlzLl9vbkFib3J0JC5uZXh0KCk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHBvbGwoY29uZmlnOiBQb2xsQ29uZmlnKSB7XG4gICAgaWYgKHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24gPSBpbnRlcnZhbChjb25maWcuaW50ZXJ2YWwpXG4gICAgICAucGlwZSh0YWtlVW50aWwoY29uZmlnLnRha2VVbnRpbCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuZXhlY3V0ZSh7IHNraXBDYWNoZTogdHJ1ZSB9KSk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHN0b3BQb2xsaW5nKCkge1xuICAgIHRoaXMuX3BvbGxpbmdTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcG9sbGluZ1N1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVVzZVJlc3VsdEluRGVwZW5kZW5jaWVzKCkge1xuICAgIGlmICghdGhpcy5fYXJncz8udXNlUmVzdWx0SW4/Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3RhdGUkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyU3VjY2VzcygpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fb25BYm9ydCQpLFxuICAgICAgICB0YWtlVW50aWxSZXNwb25zZSgpLFxuICAgICAgICB0YXAoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLl9hcmdzPy51c2VSZXN1bHRJbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZvciAoY29uc3QgcXVlcnkgb2YgdGhpcy5fYXJncy51c2VSZXN1bHRJbikge1xuICAgICAgICAgICAgcXVlcnkuX3N0YXRlJC5uZXh0KHtcbiAgICAgICAgICAgICAgdHlwZTogUXVlcnlTdGF0ZVR5cGUuU3VjY2VzcyxcbiAgICAgICAgICAgICAgbWV0YTogeyAuLi5zdGF0ZS5tZXRhLCBpZDogcXVlcnkuX25leHRJZCB9LFxuICAgICAgICAgICAgICByYXdSZXNwb25zZTogc3RhdGUucmF3UmVzcG9uc2UsXG4gICAgICAgICAgICAgIHJlc3BvbnNlOiBzdGF0ZS5yZXNwb25zZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVFeGVjdXRlRXJyb3IoZXJyb3I6IHVua25vd24sIG1ldGE6IFF1ZXJ5U3RhdGVNZXRhKSB7XG4gICAgaWYgKGlzQWJvcnRSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkNhbmNlbGxlZCxcbiAgICAgICAgbWV0YSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoaXNSZXF1ZXN0RXJyb3IoZXJyb3IpKSB7XG4gICAgICB0aGlzLl9zdGF0ZSQubmV4dCh7XG4gICAgICAgIHR5cGU6IFF1ZXJ5U3RhdGVUeXBlLkZhaWx1cmUsXG4gICAgICAgIGVycm9yLFxuICAgICAgICBtZXRhLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuIl19","import { ChangeDetectorRef, Directive, ErrorHandler, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { tap } from 'rxjs';\nimport { isQuery, isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess, } from '../query';\nimport * as i0 from \"@angular/core\";\nexport class QueryDirective {\n get query() {\n return this._query;\n }\n set query(v) {\n this._query = v;\n this._subscribeToQuery();\n }\n get cache() {\n return this._cache;\n }\n set cache(v) {\n this._cache = v;\n }\n constructor(_mainTemplateRef, _viewContainerRef, _errorHandler, _cdr) {\n this._mainTemplateRef = _mainTemplateRef;\n this._viewContainerRef = _viewContainerRef;\n this._errorHandler = _errorHandler;\n this._cdr = _cdr;\n this._isMainViewCreated = false;\n this._subscription = null;\n this._viewContext = {\n $implicit: null,\n query: null,\n raw: null,\n loading: false,\n error: null,\n };\n this._cache = false;\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n ngOnInit() {\n this._renderMainView();\n }\n ngOnDestroy() {\n this._subscription?.unsubscribe();\n }\n _subscribeToQuery() {\n this._subscription?.unsubscribe();\n this._subscription = null;\n if (!this.query) {\n return;\n }\n const query = isQuery(this.query) ? this.query : this.query.query;\n const sub = query.state$.pipe(tap((state) => this._updateView(state))).subscribe();\n this._subscription = sub;\n }\n _updateView(state) {\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n }\n else {\n this._viewContext.loading = false;\n }\n if (isQueryStateSuccess(state)) {\n this._viewContext.query = state.response;\n this._viewContext.$implicit = state.response;\n this._viewContext.raw = state.rawResponse;\n }\n else if (!this.cache) {\n this._viewContext.query = null;\n this._viewContext.$implicit = null;\n this._viewContext.raw = null;\n }\n if (isQueryStateFailure(state)) {\n this._viewContext.error = state.error;\n this._errorHandler.handleError(state.error);\n }\n else {\n this._viewContext.error = null;\n }\n this._cdr.markForCheck();\n }\n _renderMainView() {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n}\nQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: QueryDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.ErrorHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });\nQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: QueryDirective, isStandalone: true, selector: \"[query]\", inputs: { query: \"query\", cache: [\"queryCache\", \"cache\"] }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: QueryDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[query]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.ErrorHandler }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { query: [{\n type: Input\n }], cache: [{\n type: Input,\n args: ['queryCache']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RpcmVjdGl2ZXMvcXVlcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBSUwsT0FBTyxFQUNQLG1CQUFtQixFQUNuQixtQkFBbUIsRUFDbkIsbUJBQW1CLEdBS3BCLE1BQU0sVUFBVSxDQUFDOztBQWdCbEIsTUFBTSxPQUFPLGNBQWM7SUFjekIsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxDQUFJO1FBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFFaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUdELElBQ0ksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsQ0FBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBR0QsWUFDVSxnQkFBdUQsRUFDdkQsaUJBQW1DLEVBQ25DLGFBQTJCLEVBQzNCLElBQXVCO1FBSHZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBdUM7UUFDdkQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQW5DekIsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGtC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QUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JGO0lBQ0gsQ0FBQzs7MkdBeEdVLGNBQWM7K0ZBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs0TEFnQkssS0FBSztzQkFEUixLQUFLO2dCQVlGLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRXJyb3JIYW5kbGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBbnlRdWVyeSxcbiAgQW55UXVlcnlDcmVhdG9yQ29sbGVjdGlvbixcbiAgQW55UXVlcnlPZkNyZWF0b3JDb2xsZWN0aW9uLFxuICBpc1F1ZXJ5LFxuICBpc1F1ZXJ5U3RhdGVGYWlsdXJlLFxuICBpc1F1ZXJ5U3RhdGVMb2FkaW5nLFxuICBpc1F1ZXJ5U3RhdGVTdWNjZXNzLFxuICBRdWVyeU9mLFxuICBRdWVyeVJhd1Jlc3BvbnNlVHlwZSxcbiAgUXVlcnlSZXNwb25zZVR5cGUsXG4gIFF1ZXJ5U3RhdGUsXG59IGZyb20gJy4uL3F1ZXJ5JztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuXG5pbnRlcmZhY2UgUXVlcnlDb250ZXh0PFEgZXh0ZW5kcyBBbnlRdWVyeSB8IG51bGw+IHtcbiAgJGltcGxpY2l0OiBRdWVyeVJlc3BvbnNlVHlwZTxRPjtcbiAgcXVlcnk6IFF1ZXJ5UmVzcG9uc2VUeXBlPFE+O1xuICByYXc6IFF1ZXJ5UmF3UmVzcG9uc2VUeXBlPFE+O1xuICBsb2FkaW5nOiBib29sZWFuO1xuICBlcnJvcjogUmVxdWVzdEVycm9yPHVua25vd24+IHwgbnVsbDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3F1ZXJ5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXJ5RGlyZWN0aXZlPFEgZXh0ZW5kcyBBbnlRdWVyeSB8IEFueVF1ZXJ5T2ZDcmVhdG9yQ29sbGVjdGlvbjxBbnlRdWVyeUNyZWF0b3JDb2xsZWN0aW9uPiB8IG51bGw+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfaXNNYWluVmlld0NyZWF0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGV4dDogUXVlcnlDb250ZXh0PFF1ZXJ5T2Y8UT4+ID0ge1xuICAgICRpbXBsaWNpdDogbnVsbCBhcyBRdWVyeVJlc3BvbnNlVHlwZTxRdWVyeU9mPFE+PixcbiAgICBxdWVyeTogbnVsbCBhcyBRdWVyeVJlc3BvbnNlVHlwZTxRdWVyeU9mPFE+PixcbiAgICByYXc6IG51bGwgYXMgUXVlcnlSYXdSZXNwb25zZVR5cGU8UXVlcnlPZjxRPj4sXG4gICAgbG9hZGluZzogZmFsc2UsXG4gICAgZXJyb3I6IG51bGwsXG4gIH07XG5cbiAgQElucHV0KClcbiAgZ2V0IHF1ZXJ5KCk6IFEge1xuICAgIHJldHVybiB0aGlzLl9xdWVyeTtcbiAgfVxuICBzZXQgcXVlcnkodjogUSkge1xuICAgIHRoaXMuX3F1ZXJ5ID0gdjtcblxuICAgIHRoaXMuX3N1YnNjcmliZVRvUXVlcnkoKTtcbiAgfVxuICBwcml2YXRlIF9xdWVyeSE6IFE7XG5cbiAgQElucHV0KCdxdWVyeUNhY2hlJylcbiAgZ2V0IGNhY2hlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jYWNoZTtcbiAgfVxuICBzZXQgY2FjaGUodjogYm9vbGVhbikge1xuICAgIHRoaXMuX2NhY2hlID0gdjtcbiAgfVxuICBwcml2YXRlIF9jYWNoZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX21haW5UZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8UXVlcnlDb250ZXh0PFF1ZXJ5T2Y8UT4+PixcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgX2Vycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyLFxuICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxRIGV4dGVuZHMgQW55UXVlcnkgfCBBbnlRdWVyeU9mQ3JlYXRvckNvbGxlY3Rpb248QW55UXVlcnlDcmVhdG9yQ29sbGVjdGlvbj4gfCBudWxsPihcbiAgICBkaXI6IFF1ZXJ5RGlyZWN0aXZlPFE+LFxuICAgIGN0eDogdW5rbm93bixcbiAgKTogY3R4IGlzIFF1ZXJ5Q29udGV4dDxRdWVyeU9mPFE+PiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW5kZXJNYWluVmlldygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9RdWVyeSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICAgIGlmICghdGhpcy5xdWVyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gaXNRdWVyeSh0aGlzLnF1ZXJ5KSA/IHRoaXMucXVlcnkgOiB0aGlzLnF1ZXJ5LnF1ZXJ5O1xuXG4gICAgY29uc3Qgc3ViID0gcXVlcnkuc3RhdGUkLnBpcGUodGFwKChzdGF0ZSkgPT4gdGhpcy5fdXBkYXRlVmlldyhzdGF0ZSkpKS5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHN1YjtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZpZXcoc3RhdGU6IFF1ZXJ5U3RhdGUpIHtcbiAgICBpZiAoaXNRdWVyeVN0YXRlTG9hZGluZyhzdGF0ZSkpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmxvYWRpbmcgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpKSB7XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC5xdWVyeSA9IHN0YXRlLnJlc3BvbnNlIGFzIFF1ZXJ5UmVzcG9uc2VUeXBlPFF1ZXJ5T2Y8UT4+O1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQuJGltcGxpY2l0ID0gc3RhdGUucmVzcG9uc2UgYXMgUXVlcnlSZXNwb25zZVR5cGU8UXVlcnlPZjxRPj47XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC5yYXcgPSBzdGF0ZS5yYXdSZXNwb25zZSBhcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxRdWVyeU9mPFE+PjtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmNhY2hlKSB7XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC5xdWVyeSA9IG51bGwgYXMgUXVlcnlSZXNwb25zZVR5cGU8UXVlcnlPZjxRPj47XG4gICAgICB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBudWxsIGFzIFF1ZXJ5UmVzcG9uc2VUeXBlPFF1ZXJ5T2Y8UT4+O1xuICAgICAgdGhpcy5fdmlld0NvbnRleHQucmF3ID0gbnVsbCBhcyBRdWVyeVJhd1Jlc3BvbnNlVHlwZTxRdWVyeU9mPFE+PjtcbiAgICB9XG5cbiAgICBpZiAoaXNRdWVyeVN0YXRlRmFpbHVyZShzdGF0ZSkpIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gc3RhdGUuZXJyb3I7XG5cbiAgICAgIHRoaXMuX2Vycm9ySGFuZGxlci5oYW5kbGVFcnJvcihzdGF0ZS5lcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJNYWluVmlldygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzTWFpblZpZXdDcmVhdGVkKSB7XG4gICAgICB0aGlzLl9pc01haW5WaWV3Q3JlYXRlZCA9IHRydWU7XG4gICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9tYWluVGVtcGxhdGVSZWYsIHRoaXMuX3ZpZXdDb250ZXh0KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { BehaviorSubject } from 'rxjs';\nimport { filterSuccess, takeUntilResponse } from '../query';\nexport class InfinityQuery {\n get currentPage$() {\n return this._currentPage$.asObservable();\n }\n get currentPage() {\n return this._currentPage$.getValue();\n }\n get currentCalculatedPage$() {\n return this._currentCalculatedPage$.asObservable();\n }\n get currentCalculatedPage() {\n return this._currentCalculatedPage$.getValue();\n }\n get totalPages$() {\n return this._totalPages$.asObservable();\n }\n get totalPages() {\n return this._totalPages$.getValue();\n }\n get itemsPerPage$() {\n return this._itemsPerPage$.asObservable();\n }\n get itemsPerPage() {\n return this._itemsPerPage$.getValue();\n }\n get currentQuery$() {\n return this._currentQuery$.asObservable();\n }\n get currentQuery() {\n return this._currentQuery$.getValue();\n }\n get data$() {\n return this._data$.asObservable();\n }\n get data() {\n return this._data$.getValue();\n }\n constructor(_config) {\n this._config = _config;\n this._currentPage$ = new BehaviorSubject(null);\n this._currentCalculatedPage$ = new BehaviorSubject(null);\n this._totalPages$ = new BehaviorSubject(null);\n this._itemsPerPage$ = new BehaviorSubject(this._config.limitParam?.value ?? 10);\n this._currentQuery$ = new BehaviorSubject(null);\n this._data$ = new BehaviorSubject([]);\n this._subscriptions = [];\n }\n nextPage() {\n const newPage = (this._currentPage$.value ?? 0) + 1;\n const calculatedPage = this._config?.pageParam?.valueCalculator?.({\n page: newPage,\n totalPages: this.totalPages,\n itemsPerPage: this.itemsPerPage,\n }) ?? newPage;\n const args = this._prepareArgs(this._config, calculatedPage);\n const query = this._config.queryCreator.prepare(args).execute();\n this._handleNewQuery(query);\n this._currentPage$.next(newPage);\n this._currentCalculatedPage$.next(calculatedPage);\n this._currentQuery$.next(query);\n }\n reset(newConfig) {\n this._destroy();\n this._config = { ...this._config, ...(newConfig ?? {}) };\n this._currentPage$.next(null);\n this._currentCalculatedPage$.next(null);\n this._totalPages$.next(null);\n this._itemsPerPage$.next(this._config.limitParam?.value ?? 10);\n this._currentQuery$.next(null);\n this._data$.next([]);\n }\n _destroy() {\n this._subscriptions.forEach((sub) => sub.unsubscribe());\n this._subscriptions = [];\n }\n _handleNewQuery(query) {\n const stateChangesSub = query.state$.pipe(takeUntilResponse(), filterSuccess()).subscribe({\n next: (state) => {\n let newData = this._config?.response.valueExtractor(state.response);\n if (this._config.response.reverse) {\n newData = [...newData].reverse();\n }\n if (this._config.response.appendItemsTo === 'start') {\n newData = [...newData, ...this.data];\n }\n else {\n newData = [...this.data, ...newData];\n }\n this._data$.next(newData);\n const totalPages = this._config.response.totalPagesExtractor?.({\n response: state.response,\n itemsPerPage: this.itemsPerPage,\n }) ??\n state.response?.totalPages ??\n null;\n this._totalPages$.next(totalPages);\n },\n complete: () => {\n this._subscriptions = this._subscriptions.filter((sub) => sub !== stateChangesSub);\n },\n });\n this._subscriptions.push(stateChangesSub);\n }\n _prepareArgs(config, page) {\n const pageParamLocation = this._getPageParamLocation(config?.pageParam?.location);\n const pageArgs = {\n [pageParamLocation]: {\n [config?.pageParam?.key ?? 'page']: page,\n },\n };\n const limitParamLocation = this._getPageParamLocation(config?.limitParam?.location);\n const limitArgs = {\n [limitParamLocation]: {\n [config?.limitParam?.key ?? 'limit']: config?.limitParam?.value ?? 10,\n },\n };\n const defaultConfig = config?.defaultArgs ?? {};\n const mergedArgs = pageParamLocation === limitParamLocation\n ? {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[limitParamLocation],\n ...limitArgs[limitParamLocation],\n },\n }\n : {\n ...defaultConfig,\n [pageParamLocation]: {\n ...(config?.defaultArgs?.[pageParamLocation] ?? {}),\n ...pageArgs[pageParamLocation],\n },\n [limitParamLocation]: {\n ...(config?.defaultArgs?.[limitParamLocation] ?? {}),\n ...limitArgs[limitParamLocation],\n },\n };\n return mergedArgs;\n }\n _getPageParamLocation(location) {\n const loc = location ?? 'query';\n switch (loc) {\n case 'path':\n return 'pathParams';\n case 'query':\n return 'queryParams';\n case 'body':\n return 'body';\n case 'header':\n return 'headers';\n case 'variable':\n return 'variables';\n default:\n throw new Error(`Invalid pageParamLocation: ${loc}`);\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSTVFLE1BQU0sT0FBTyxhQUFhO0lBZ0J4QixJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFB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QUMsQ0FBQztTQUN4RDtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXJTdWNjZXNzLCBRdWVyeVN0YXRlRGF0YSwgdGFrZVVudGlsUmVzcG9uc2UgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgSW5maW5pdHlRdWVyeVBhcmFtTG9jYXRpb24gfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIEluZmluaXR5UXVlcnk8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudFBhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudENhbGN1bGF0ZWRQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RvdGFsUGFnZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXRlbXNQZXJQYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLl9jb25maWcubGltaXRQYXJhbT8udmFsdWUgPz8gMTApO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50UXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxRdWVyeSB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SW5maW5pdHlSZXNwb25zZT4oW10gYXMgYW55IGFzIEluZmluaXR5UmVzcG9uc2UpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgZ2V0IGN1cnJlbnRQYWdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGFnZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50Q2FsY3VsYXRlZFBhZ2UkKCkge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50Q2FsY3VsYXRlZFBhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRDYWxjdWxhdGVkUGFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudENhbGN1bGF0ZWRQYWdlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IHRvdGFsUGFnZXMkKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB0b3RhbFBhZ2VzKCkge1xuICAgIHJldHVybiB0aGlzLl90b3RhbFBhZ2VzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgZ2V0IGl0ZW1zUGVyUGFnZSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2l0ZW1zUGVyUGFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXRlbXNQZXJQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLl9pdGVtc1BlclBhZ2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgY3VycmVudFF1ZXJ5JCgpIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFF1ZXJ5JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50UXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRRdWVyeSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGdldCBkYXRhJCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGF0YSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogSW5maW5pdHlRdWVyeUNvbmZpZzxRdWVyeUNyZWF0b3IsIEFyZ3MsIFF1ZXJ5UmVzcG9uc2UsIEluZmluaXR5UmVzcG9uc2U+KSB7fVxuXG4gIG5leHRQYWdlKCkge1xuICAgIGNvbnN0IG5ld1BhZ2UgPSAodGhpcy5fY3VycmVudFBhZ2UkLnZhbHVlID8/IDApICsgMTtcbiAgICBjb25zdCBjYWxjdWxhdGVkUGFnZSA9XG4gICAgICB0aGlzLl9jb25maWc/LnBhZ2VQYXJhbT8udmFsdWVDYWxjdWxhdG9yPy4oe1xuICAgICAgICBwYWdlOiBuZXdQYWdlLFxuICAgICAgICB0b3RhbFBhZ2VzOiB0aGlzLnRvdGFsUGFnZXMsXG4gICAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5pdGVtc1BlclBhZ2UsXG4gICAgICB9KSA/PyBuZXdQYWdlO1xuXG4gICAgY29uc3QgYXJncyA9IHRoaXMuX3ByZXBhcmVBcmdzKHRoaXMuX2NvbmZpZywgY2FsY3VsYXRlZFBhZ2UpO1xuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLl9jb25maWcucXVlcnlDcmVhdG9yLnByZXBhcmUoYXJncykuZXhlY3V0ZSgpIGFzIFF1ZXJ5O1xuICAgIHRoaXMuX2hhbmRsZU5ld1F1ZXJ5KHF1ZXJ5KTtcblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlJC5uZXh0KG5ld1BhZ2UpO1xuICAgIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQubmV4dChjYWxjdWxhdGVkUGFnZSk7XG4gICAgdGhpcy5fY3VycmVudFF1ZXJ5JC5uZXh0KHF1ZXJ5KTtcbiAgfVxuXG4gIHJlc2V0KFxuICAgIG5ld0NvbmZpZz86IE9taXQ8XG4gICAgICBJbmZpbml0eVF1ZXJ5Q29uZmlnPFF1ZXJ5Q3JlYXRvciwgQXJncywgUXVlcnlSZXNwb25zZSwgSW5maW5pdHlSZXNwb25zZT4sXG4gICAgICAncXVlcnlDcmVhdG9yJyB8ICdyZXNwb25zZSdcbiAgICA+LFxuICApIHtcbiAgICB0aGlzLl9kZXN0cm95KCk7XG5cbiAgICB0aGlzLl9jb25maWcgPSB7IC4uLnRoaXMuX2NvbmZpZywgLi4uKG5ld0NvbmZpZyA/PyB7fSkgfTtcblxuICAgIHRoaXMuX2N1cnJlbnRQYWdlJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2N1cnJlbnRDYWxjdWxhdGVkUGFnZSQubmV4dChudWxsKTtcbiAgICB0aGlzLl90b3RhbFBhZ2VzJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2l0ZW1zUGVyUGFnZSQubmV4dCh0aGlzLl9jb25maWcubGltaXRQYXJhbT8udmFsdWUgPz8gMTApO1xuICAgIHRoaXMuX2N1cnJlbnRRdWVyeSQubmV4dChudWxsKTtcblxuICAgIHRoaXMuX2RhdGEkLm5leHQoW10gYXMgYW55IGFzIEluZmluaXR5UmVzcG9uc2UpO1xuICB9XG5cbiAgX2Rlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gW107XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVOZXdRdWVyeShxdWVyeTogUXVlcnkpIHtcbiAgICBjb25zdCBzdGF0ZUNoYW5nZXNTdWIgPSBxdWVyeS5zdGF0ZSQucGlwZSh0YWtlVW50aWxSZXNwb25zZSgpLCBmaWx0ZXJTdWNjZXNzKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoc3RhdGUpID0+IHtcbiAgICAgICAgbGV0IG5ld0RhdGEgPSB0aGlzLl9jb25maWc/LnJlc3BvbnNlLnZhbHVlRXh0cmFjdG9yKHN0YXRlLnJlc3BvbnNlKTtcblxuICAgICAgICBpZiAodGhpcy5fY29uZmlnLnJlc3BvbnNlLnJldmVyc2UpIHtcbiAgICAgICAgICBuZXdEYXRhID0gWy4uLm5ld0RhdGFdLnJldmVyc2UoKSBhcyBJbmZpbml0eVJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5yZXNwb25zZS5hcHBlbmRJdGVtc1RvID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi5uZXdEYXRhLCAuLi50aGlzLmRhdGFdIGFzIEluZmluaXR5UmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3RGF0YSA9IFsuLi50aGlzLmRhdGEsIC4uLm5ld0RhdGFdIGFzIEluZmluaXR5UmVzcG9uc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KG5ld0RhdGEpO1xuXG4gICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPVxuICAgICAgICAgIHRoaXMuX2NvbmZpZy5yZXNwb25zZS50b3RhbFBhZ2VzRXh0cmFjdG9yPy4oe1xuICAgICAgICAgICAgcmVzcG9uc2U6IHN0YXRlLnJlc3BvbnNlLFxuICAgICAgICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLml0ZW1zUGVyUGFnZSxcbiAgICAgICAgICB9KSA/P1xuICAgICAgICAgIHN0YXRlLnJlc3BvbnNlPy50b3RhbFBhZ2VzID8/XG4gICAgICAgICAgbnVsbDtcblxuICAgICAgICB0aGlzLl90b3RhbFBhZ2VzJC5uZXh0KHRvdGFsUGFnZXMpO1xuICAgICAgfSxcbiAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMgPSB0aGlzLl9zdWJzY3JpcHRpb25zLmZpbHRlcigoc3ViKSA9PiBzdWIgIT09IHN0YXRlQ2hhbmdlc1N1Yik7XG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKHN0YXRlQ2hhbmdlc1N1Yik7XG4gIH1cblxuICBwcml2YXRlIF9wcmVwYXJlQXJncyhjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPiwgcGFnZTogbnVtYmVyKSB7XG4gICAgY29uc3QgcGFnZVBhcmFtTG9jYXRpb24gPSB0aGlzLl9nZXRQYWdlUGFyYW1Mb2NhdGlvbihjb25maWc/LnBhZ2VQYXJhbT8ubG9jYXRpb24pO1xuXG4gICAgY29uc3QgcGFnZUFyZ3MgPSB7XG4gICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgIFtjb25maWc/LnBhZ2VQYXJhbT8ua2V5ID8/ICdwYWdlJ106IHBhZ2UsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBsaW1pdFBhcmFtTG9jYXRpb24gPSB0aGlzLl9nZXRQYWdlUGFyYW1Mb2NhdGlvbihjb25maWc/LmxpbWl0UGFyYW0/LmxvY2F0aW9uKTtcblxuICAgIGNvbnN0IGxpbWl0QXJncyA9IHtcbiAgICAgIFtsaW1pdFBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgIFtjb25maWc/LmxpbWl0UGFyYW0/LmtleSA/PyAnbGltaXQnXTogY29uZmlnPy5saW1pdFBhcmFtPy52YWx1ZSA/PyAxMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSBjb25maWc/LmRlZmF1bHRBcmdzID8/IHt9O1xuXG4gICAgY29uc3QgbWVyZ2VkQXJncyA9XG4gICAgICBwYWdlUGFyYW1Mb2NhdGlvbiA9PT0gbGltaXRQYXJhbUxvY2F0aW9uXG4gICAgICAgID8ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdENvbmZpZyxcbiAgICAgICAgICAgIFtwYWdlUGFyYW1Mb2NhdGlvbl06IHtcbiAgICAgICAgICAgICAgLi4uKGNvbmZpZz8uZGVmYXVsdEFyZ3M/LltwYWdlUGFyYW1Mb2NhdGlvbl0gPz8ge30pLFxuICAgICAgICAgICAgICAuLi5wYWdlQXJnc1tsaW1pdFBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgICAuLi5saW1pdEFyZ3NbbGltaXRQYXJhbUxvY2F0aW9uXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIC4uLmRlZmF1bHRDb25maWcsXG4gICAgICAgICAgICBbcGFnZVBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bcGFnZVBhcmFtTG9jYXRpb25dID8/IHt9KSxcbiAgICAgICAgICAgICAgLi4ucGFnZUFyZ3NbcGFnZVBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFtsaW1pdFBhcmFtTG9jYXRpb25dOiB7XG4gICAgICAgICAgICAgIC4uLihjb25maWc/LmRlZmF1bHRBcmdzPy5bbGltaXRQYXJhbUxvY2F0aW9uXSA/PyB7fSksXG4gICAgICAgICAgICAgIC4uLmxpbWl0QXJnc1tsaW1pdFBhcmFtTG9jYXRpb25dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIG1lcmdlZEFyZ3M7XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYWdlUGFyYW1Mb2NhdGlvbihsb2NhdGlvbjogSW5maW5pdHlRdWVyeVBhcmFtTG9jYXRpb24gfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBsb2MgPSBsb2NhdGlvbiA/PyAncXVlcnknO1xuXG4gICAgc3dpdGNoIChsb2MpIHtcbiAgICAgIGNhc2UgJ3BhdGgnOlxuICAgICAgICByZXR1cm4gJ3BhdGhQYXJhbXMnO1xuICAgICAgY2FzZSAncXVlcnknOlxuICAgICAgICByZXR1cm4gJ3F1ZXJ5UGFyYW1zJztcbiAgICAgIGNhc2UgJ2JvZHknOlxuICAgICAgICByZXR1cm4gJ2JvZHknO1xuICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgcmV0dXJuICdoZWFkZXJzJztcbiAgICAgIGNhc2UgJ3ZhcmlhYmxlJzpcbiAgICAgICAgcmV0dXJuICd2YXJpYWJsZXMnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhZ2VQYXJhbUxvY2F0aW9uOiAke2xvY31gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","export const createInfinityQueryConfig = (config) => config;\nexport const skipPaginationPageParamCalculator = ({ page, itemsPerPage }) => itemsPerPage * (page - 1);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvaW5maW5pdGUtcXVlcnkvaW5maW5pdHktcXVlcnkudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsQ0FPdkMsTUFBZ0YsRUFDaEYsRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUVaLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUE4QixFQUFFLEVBQUUsQ0FDdEcsWUFBWSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcnlTdGF0ZURhdGEgfSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBBbnlRdWVyeUNyZWF0b3IsIFF1ZXJ5Q3JlYXRvckFyZ3MsIFF1ZXJ5Q3JlYXRvclJldHVyblR5cGUgfSBmcm9tICcuLi9xdWVyeS1jbGllbnQnO1xuaW1wb3J0IHsgSW5maW5pdHlRdWVyeUNvbmZpZywgUGFnZVBhcmFtQ2FsY3VsYXRvck9wdGlvbnMgfSBmcm9tICcuL2luZmluaXR5LXF1ZXJ5LnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUluZmluaXR5UXVlcnlDb25maWcgPSA8XG4gIFF1ZXJ5Q3JlYXRvciBleHRlbmRzIEFueVF1ZXJ5Q3JlYXRvcixcbiAgUXVlcnkgZXh0ZW5kcyBRdWVyeUNyZWF0b3JSZXR1cm5UeXBlPFF1ZXJ5Q3JlYXRvcj4sXG4gIEFyZ3MgZXh0ZW5kcyBRdWVyeUNyZWF0b3JBcmdzPFF1ZXJ5Q3JlYXRvcj4sXG4gIFF1ZXJ5UmVzcG9uc2UgZXh0ZW5kcyBRdWVyeVN0YXRlRGF0YTxRdWVyeVsnc3RhdGUnXT4sXG4gIEluZmluaXR5UmVzcG9uc2UgZXh0ZW5kcyB1bmtub3duW10sXG4+KFxuICBjb25maWc6IEluZmluaXR5UXVlcnlDb25maWc8UXVlcnlDcmVhdG9yLCBBcmdzLCBRdWVyeVJlc3BvbnNlLCBJbmZpbml0eVJlc3BvbnNlPixcbikgPT4gY29uZmlnO1xuXG5leHBvcnQgY29uc3Qgc2tpcFBhZ2luYXRpb25QYWdlUGFyYW1DYWxjdWxhdG9yID0gKHsgcGFnZSwgaXRlbXNQZXJQYWdlIH06IFBhZ2VQYXJhbUNhbGN1bGF0b3JPcHRpb25zKSA9PlxuICBpdGVtc1BlclBhZ2UgKiAocGFnZSAtIDEpO1xuIl19","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectorRef, Directive, ErrorHandler, inject, InjectionToken, Input, TemplateRef, ViewContainerRef, } from '@angular/core';\nimport { DestroyService } from '@ethlete/core';\nimport { BehaviorSubject, of, Subject, switchMap, takeUntil, tap } from 'rxjs';\nimport { InfinityQuery } from '../infinite-query';\nimport { isQueryStateFailure, isQueryStateLoading, isQueryStateSuccess } from '../query';\nimport * as i0 from \"@angular/core\";\nexport const INFINITY_QUERY_TOKEN = new InjectionToken('INFINITY_QUERY_TOKEN');\nexport class InfinityQueryDirective {\n constructor() {\n this._queryConfigChanged$ = new Subject();\n this._viewContext = {\n $implicit: null,\n infinityQuery: null,\n loading: false,\n error: null,\n isFirstLoad: false,\n canLoadMore: false,\n currentPage: null,\n currentCalculatedPage: null,\n totalPages: null,\n itemsPerPage: null,\n };\n this._infinityQueryInstance = null;\n this._destroy$ = inject(DestroyService).destroy$;\n this._cdr = inject(ChangeDetectorRef);\n this._viewContainerRef = inject(ViewContainerRef);\n this._mainTemplateRef = inject((TemplateRef));\n this._errorHandler = inject(ErrorHandler);\n this._data$ = new BehaviorSubject([]);\n this._isMainViewCreated = false;\n }\n get infinityQuery() {\n return this._infinityQuery;\n }\n set infinityQuery(v) {\n this._cleanup();\n this._infinityQuery = v;\n this._infinityQueryInstance = this._setupInfinityQuery(v);\n this._loadNextPage();\n }\n get context() {\n return this._viewContext;\n }\n get instance() {\n return this._infinityQueryInstance;\n }\n get data$() {\n return this._data$.asObservable();\n }\n get data() {\n return this._data$.getValue();\n }\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n ngOnInit() {\n this._renderMainView();\n }\n ngOnDestroy() {\n this.instance?._destroy();\n }\n _setupInfinityQuery(config) {\n const instance = new InfinityQuery(config);\n instance.currentQuery$\n .pipe(switchMap((q) => q?.state$ ?? of(null)), tap((state) => {\n this._viewContext.currentPage = instance.currentPage;\n this._viewContext.totalPages = instance.totalPages;\n this._viewContext.itemsPerPage = instance.itemsPerPage;\n this._viewContext.canLoadMore =\n (instance.totalPages && instance.currentPage && instance.totalPages > instance.currentPage) || false;\n this._viewContext.currentCalculatedPage = instance.currentCalculatedPage;\n if (isQueryStateLoading(state)) {\n this._viewContext.loading = true;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = this.context.infinityQuery === null;\n }\n else if (isQueryStateFailure(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = state.error;\n this._viewContext.isFirstLoad = false;\n this._errorHandler.handleError(state.error);\n }\n else if (isQueryStateSuccess(state)) {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.isFirstLoad = false;\n }\n else {\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n this._data$.next([]);\n }\n this._cdr.markForCheck();\n }), takeUntil(this._destroy$), takeUntil(this._queryConfigChanged$))\n .subscribe();\n instance.data$\n .pipe(tap((data) => {\n this._viewContext.infinityQuery = this._viewContext.$implicit = data;\n this._data$.next(data);\n this._cdr.markForCheck();\n }), takeUntil(this._destroy$), takeUntil(this._queryConfigChanged$))\n .subscribe();\n return instance;\n }\n _loadNextPage() {\n if (!this._infinityQueryInstance) {\n return;\n }\n this._infinityQueryInstance.nextPage();\n }\n _renderMainView() {\n if (!this._isMainViewCreated) {\n this._isMainViewCreated = true;\n this._viewContainerRef.createEmbeddedView(this._mainTemplateRef, this._viewContext);\n }\n }\n _cleanup() {\n this._queryConfigChanged$.next(true);\n this.instance?._destroy();\n this._viewContext.loading = false;\n this._viewContext.error = null;\n this._viewContext.infinityQuery = null;\n this._viewContext.$implicit = null;\n this._viewContext.isFirstLoad = false;\n this._viewContext.canLoadMore = false;\n this._viewContext.currentPage = null;\n this._viewContext.itemsPerPage = null;\n this._viewContext.totalPages = null;\n this._data$.next([]);\n }\n}\nInfinityQueryDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nInfinityQueryDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: InfinityQueryDirective, isStandalone: true, selector: \"[infinityQuery]\", inputs: { infinityQuery: \"infinityQuery\" }, providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }, DestroyService], exportAs: [\"infinityQuery\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQuery]',\n exportAs: 'infinityQuery',\n standalone: true,\n providers: [{ provide: INFINITY_QUERY_TOKEN, useExisting: InfinityQueryDirective }, DestroyService],\n }]\n }], propDecorators: { infinityQuery: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL2RpcmVjdGl2ZXMvaW5maW5pdHktcXVlcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsV0FBVyxFQUNYLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUF1QixNQUFNLG1CQUFtQixDQUFDO0FBQ3ZFLE9BQU8sRUFBaUIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBa0J4RyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsc0JBQXNCLENBQUMsQ0FBQztBQVM1RyxNQUFNLE9BQU8sc0JBQXNCO0lBUG5DO1FBVW1CLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDOUMsaUJBQVksR0FBNEI7WUFDdkQsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixPQUFPLEVBQUUsS0FBSztZQUNkLEtBQUssRUFBRSxJQUFJO1lBRVgsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLElBQUk7WUFDakIscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixVQUFVLEVBQUUsSUFBSTtZQUNoQixZ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RUFBRSxFQUFFLGNBQWMsQ0FBQztpQkFDcEc7OEJBK0JLLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFcnJvckhhbmRsZXIsXG4gIGluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVzdHJveVNlcnZpY2UgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgb2YsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluZmluaXR5UXVlcnksIEluZmluaXR5UXVlcnlDb25maWcgfSBmcm9tICcuLi9pbmZpbml0ZS1xdWVyeSc7XG5pbXBvcnQgeyBCYXNlQXJndW1lbnRzLCBpc1F1ZXJ5U3RhdGVGYWlsdXJlLCBpc1F1ZXJ5U3RhdGVMb2FkaW5nLCBpc1F1ZXJ5U3RhdGVTdWNjZXNzIH0gZnJvbSAnLi4vcXVlcnknO1xuaW1wb3J0IHsgQW55UXVlcnlDcmVhdG9yIH0gZnJvbSAnLi4vcXVlcnktY2xpZW50JztcbmltcG9ydCB7IFJlcXVlc3RFcnJvciB9IGZyb20gJy4uL3JlcXVlc3QnO1xuXG5pbnRlcmZhY2UgSW5maW5pdHlRdWVyeUNvbnRleHQ8USBleHRlbmRzIEluZmluaXR5UXVlcnlDb25maWc8QW55UXVlcnlDcmVhdG9yLCBCYXNlQXJndW1lbnRzLCBhbnksIHVua25vd25bXT4+IHtcbiAgJGltcGxpY2l0OiBRWydyZXNwb25zZSddWydhcnJheVR5cGUnXSB8IG51bGw7XG4gIGluZmluaXR5UXVlcnk6IFFbJ3Jlc3BvbnNlJ11bJ2FycmF5VHlwZSddIHwgbnVsbDtcbiAgbG9hZGluZzogYm9vbGVhbjtcbiAgZXJyb3I6IFJlcXVlc3RFcnJvcjx1bmtub3duPiB8IG51bGw7XG5cbiAgaXNGaXJzdExvYWQ6IGJvb2xlYW47XG4gIGNhbkxvYWRNb3JlOiBib29sZWFuO1xuICBjdXJyZW50UGFnZTogbnVtYmVyIHwgbnVsbDtcbiAgY3VycmVudENhbGN1bGF0ZWRQYWdlOiBudW1iZXIgfCBudWxsO1xuICB0b3RhbFBhZ2VzOiBudW1iZXIgfCBudWxsO1xuICBpdGVtc1BlclBhZ2U6IG51bWJlciB8IG51bGw7XG59XG5cbmV4cG9ydCBjb25zdCBJTkZJTklUWV9RVUVSWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJbmZpbml0eVF1ZXJ5RGlyZWN0aXZlPGFueT4+KCdJTkZJTklUWV9RVUVSWV9UT0tFTicpO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5maW5pdHlRdWVyeV0nLFxuICBleHBvcnRBczogJ2luZmluaXR5UXVlcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IElORklOSVRZX1FVRVJZX1RPS0VOLCB1c2VFeGlzdGluZzogSW5maW5pdHlRdWVyeURpcmVjdGl2ZSB9LCBEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEluZmluaXR5UXVlcnlEaXJlY3RpdmU8USBleHRlbmRzIEluZmluaXR5UXVlcnlDb25maWc8QW55UXVlcnlDcmVhdG9yLCBCYXNlQXJndW1lbnRzLCBhbnksIHVua25vd25bXT4+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlDb25maWdDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250ZXh0OiBJbmZpbml0eVF1ZXJ5Q29udGV4dDxRPiA9IHtcbiAgICAkaW1wbGljaXQ6IG51bGwsXG4gICAgaW5maW5pdHlRdWVyeTogbnVsbCxcbiAgICBsb2FkaW5nOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcblxuICAgIGlzRmlyc3RMb2FkOiBmYWxzZSxcbiAgICBjYW5Mb2FkTW9yZTogZmFsc2UsXG4gICAgY3VycmVudFBhZ2U6IG51bGwsXG4gICAgY3VycmVudENhbGN1bGF0ZWRQYWdlOiBudWxsLFxuICAgIHRvdGFsUGFnZXM6IG51bGwsXG4gICAgaXRlbXNQZXJQYWdlOiBudWxsLFxuICB9O1xuICBwcml2YXRlIF9pbmZpbml0eVF1ZXJ5SW5zdGFuY2U6IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuX3NldHVwSW5maW5pdHlRdWVyeT4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGluamVjdChEZXN0cm95U2VydmljZSkuZGVzdHJveSQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21haW5UZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZjxJbmZpbml0eVF1ZXJ5Q29udGV4dDxRPj4pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcnJvckhhbmRsZXIgPSBpbmplY3QoRXJyb3JIYW5kbGVyKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UVsncmVzcG9uc2UnXVsnYXJyYXlUeXBlJ10+KFtdKTtcblxuICBwcml2YXRlIF9pc01haW5WaWV3Q3JlYXRlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpbmZpbml0eVF1ZXJ5KCk6IFEge1xuICAgIHJldHVybiB0aGlzLl9pbmZpbml0eVF1ZXJ5O1xuICB9XG4gIHNldCBpbmZpbml0eVF1ZXJ5KHY6IFEpIHtcbiAgICB0aGlzLl9jbGVhbnVwKCk7XG5cbiAgICB0aGlzLl9pbmZpbml0eVF1ZXJ5ID0gdjtcbiAgICB0aGlzLl9pbmZpbml0eVF1ZXJ5SW5zdGFuY2UgPSB0aGlzLl9zZXR1cEluZmluaXR5UXVlcnkodik7XG4gICAgdGhpcy5fbG9hZE5leHRQYWdlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfaW5maW5pdHlRdWVyeSE6IFE7XG5cbiAgZ2V0IGNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXdDb250ZXh0O1xuICB9XG5cbiAgZ2V0IGluc3RhbmNlKCkge1xuICAgIHJldHVybiB0aGlzLl9pbmZpbml0eVF1ZXJ5SW5zdGFuY2U7XG4gIH1cblxuICBnZXQgZGF0YSQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGRhdGEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGEkLmdldFZhbHVlKCk7XG4gIH1cblxuICBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZDxRIGV4dGVuZHMgSW5maW5pdHlRdWVyeUNvbmZpZzxBbnlRdWVyeUNyZWF0b3IsIEJhc2VBcmd1bWVudHMsIGFueSwgdW5rbm93bltdPj4oXG4gICAgZGlyOiBJbmZpbml0eVF1ZXJ5RGlyZWN0aXZlPFE+LFxuICAgIGN0eDogdW5rbm93bixcbiAgKTogY3R4IGlzIEluZmluaXR5UXVlcnlDb250ZXh0PFE+IHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbmRlck1haW5WaWV3KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbmNlPy5fZGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbmZpbml0eVF1ZXJ5KGNvbmZpZzogUSkge1xuICAgIGNvbnN0IGluc3RhbmNlID0gbmV3IEluZmluaXR5UXVlcnkoY29uZmlnKTtcblxuICAgIGluc3RhbmNlLmN1cnJlbnRRdWVyeSRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHEpID0+IHE/LnN0YXRlJCA/PyBvZihudWxsKSksXG4gICAgICAgIHRhcCgoc3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jdXJyZW50UGFnZSA9IGluc3RhbmNlLmN1cnJlbnRQYWdlO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBpbnN0YW5jZS50b3RhbFBhZ2VzO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0Lml0ZW1zUGVyUGFnZSA9IGluc3RhbmNlLml0ZW1zUGVyUGFnZTtcbiAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9XG4gICAgICAgICAgICAoaW5zdGFuY2UudG90YWxQYWdlcyAmJiBpbnN0YW5jZS5jdXJyZW50UGFnZSAmJiBpbnN0YW5jZS50b3RhbFBhZ2VzID4gaW5zdGFuY2UuY3VycmVudFBhZ2UpIHx8IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmN1cnJlbnRDYWxjdWxhdGVkUGFnZSA9IGluc3RhbmNlLmN1cnJlbnRDYWxjdWxhdGVkUGFnZTtcblxuICAgICAgICAgIGlmIChpc1F1ZXJ5U3RhdGVMb2FkaW5nKHN0YXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IHRoaXMuY29udGV4dC5pbmZpbml0eVF1ZXJ5ID09PSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNRdWVyeVN0YXRlRmFpbHVyZShzdGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gc3RhdGUuZXJyb3I7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKHN0YXRlLmVycm9yKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzUXVlcnlTdGF0ZVN1Y2Nlc3Moc3RhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pc0ZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5pbmZpbml0eVF1ZXJ5ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LiRpbXBsaWNpdCA9IG51bGw7XG5cbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmlzRmlyc3RMb2FkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQuY3VycmVudFBhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRleHQuaXRlbXNQZXJQYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBudWxsO1xuXG4gICAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KFtdKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fcXVlcnlDb25maWdDaGFuZ2VkJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICBpbnN0YW5jZS5kYXRhJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGF0YSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3ZpZXdDb250ZXh0LmluZmluaXR5UXVlcnkgPSB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBkYXRhIGFzIFFbJ3Jlc3BvbnNlJ11bJ2FycmF5VHlwZSddIHwgbnVsbDtcbiAgICAgICAgICB0aGlzLl9kYXRhJC5uZXh0KGRhdGEpO1xuXG4gICAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3F1ZXJ5Q29uZmlnQ2hhbmdlZCQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgX2xvYWROZXh0UGFnZSgpIHtcbiAgICBpZiAoIXRoaXMuX2luZmluaXR5UXVlcnlJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2luZmluaXR5UXVlcnlJbnN0YW5jZS5uZXh0UGFnZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVuZGVyTWFpblZpZXcoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc01haW5WaWV3Q3JlYXRlZCkge1xuICAgICAgdGhpcy5faXNNYWluVmlld0NyZWF0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fbWFpblRlbXBsYXRlUmVmLCB0aGlzLl92aWV3Q29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW51cCgpIHtcbiAgICB0aGlzLl9xdWVyeUNvbmZpZ0NoYW5nZWQkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLmluc3RhbmNlPy5fZGVzdHJveSgpO1xuXG4gICAgdGhpcy5fdmlld0NvbnRleHQubG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LmVycm9yID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5pbmZpbml0eVF1ZXJ5ID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC4kaW1wbGljaXQgPSBudWxsO1xuXG4gICAgdGhpcy5fdmlld0NvbnRleHQuaXNGaXJzdExvYWQgPSBmYWxzZTtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5jYW5Mb2FkTW9yZSA9IGZhbHNlO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LmN1cnJlbnRQYWdlID0gbnVsbDtcbiAgICB0aGlzLl92aWV3Q29udGV4dC5pdGVtc1BlclBhZ2UgPSBudWxsO1xuICAgIHRoaXMuX3ZpZXdDb250ZXh0LnRvdGFsUGFnZXMgPSBudWxsO1xuXG4gICAgdGhpcy5fZGF0YSQubmV4dChbXSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, inject, Input } from '@angular/core';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { INFINITY_QUERY_TOKEN } from './infinity-query.directive';\nimport * as i0 from \"@angular/core\";\nexport class InfinityQueryTriggerDirective {\n constructor() {\n this._elementRef = inject((ElementRef));\n this._infinityQuery = inject(INFINITY_QUERY_TOKEN);\n this._destroy = new Subject();\n this._observer = null;\n this.click$ = fromEvent(this._elementRef.nativeElement, 'click');\n this.scrollContainerSelector = null;\n }\n ngOnInit() {\n const isInteractive = this._elementRef.nativeElement.hasAttribute('infinityQueryTrigger');\n if (isInteractive) {\n this.click$.pipe(takeUntil(this._destroy)).subscribe(() => this._infinityQuery._loadNextPage());\n }\n else {\n this._setupIntersectionObserver();\n }\n }\n ngOnDestroy() {\n this._destroy.next(true);\n this._destroy.unsubscribe();\n this._observer?.disconnect();\n }\n _setupIntersectionObserver() {\n this._observer = new IntersectionObserver((entries) => {\n const entry = entries[0];\n if (entry.isIntersecting && !this._infinityQuery.context.loading) {\n this._infinityQuery._loadNextPage();\n }\n }, {\n root: this.scrollContainerSelector ? document.querySelector(this.scrollContainerSelector) : null,\n rootMargin: '0px',\n threshold: 1.0,\n });\n this._observer.observe(this._elementRef.nativeElement);\n }\n}\nInfinityQueryTriggerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nInfinityQueryTriggerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: InfinityQueryTriggerDirective, isStandalone: true, selector: \"[infinityQueryTrigger], infinity-query-trigger\", inputs: { scrollContainerSelector: \"scrollContainerSelector\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: InfinityQueryTriggerDirective, decorators: [{\n type: Directive,\n args: [{\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[infinityQueryTrigger], infinity-query-trigger',\n standalone: true,\n }]\n }], propDecorators: { scrollContainerSelector: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5maW5pdHktcXVlcnktdHJpZ2dlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvZGlyZWN0aXZlcy9pbmZpbml0eS1xdWVyeS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyw2QkFBNkI7SUFMMUM7UUFNVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBQzlDLG1CQUFjLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFOUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDbEMsY0FBUyxHQUFnQyxJQUFJLENBQUM7UUFFdEQsV0FBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUc1RCw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO0tBb0MvQztJQWxDQyxRQUFRO1FBQ04sTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFFMUYsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDakc7YUFBTTtZQUNMLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQ3ZDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDVixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekIsSUFBSSxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUNoRSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3JDO1FBQ0gsQ0FBQyxFQUNEO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtZQUNoRyxVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsR0FBRztTQUNmLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7MEhBN0NVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBTHpDLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBV0MsdUJBQXVCO3NCQUR0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElORklOSVRZX1FVRVJZX1RPS0VOIH0gZnJvbSAnLi9pbmZpbml0eS1xdWVyeS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5maW5pdHlRdWVyeVRyaWdnZXJdLCBpbmZpbml0eS1xdWVyeS10cmlnZ2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5maW5pdHlRdWVyeVRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIF9pbmZpbml0eVF1ZXJ5ID0gaW5qZWN0KElORklOSVRZX1FVRVJZX1RPS0VOKTtcblxuICBwcml2YXRlIF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY2xpY2skID0gZnJvbUV2ZW50KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyk7XG5cbiAgQElucHV0KClcbiAgc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IGlzSW50ZXJhY3RpdmUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaGFzQXR0cmlidXRlKCdpbmZpbml0eVF1ZXJ5VHJpZ2dlcicpO1xuXG4gICAgaWYgKGlzSW50ZXJhY3RpdmUpIHtcbiAgICAgIHRoaXMuY2xpY2skLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW5maW5pdHlRdWVyeS5fbG9hZE5leHRQYWdlKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXR1cEludGVyc2VjdGlvbk9ic2VydmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KHRydWUpO1xuICAgIHRoaXMuX2Rlc3Ryb3kudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBJbnRlcnNlY3Rpb25PYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcblxuICAgICAgICBpZiAoZW50cnkuaXNJbnRlcnNlY3RpbmcgJiYgIXRoaXMuX2luZmluaXR5UXVlcnkuY29udGV4dC5sb2FkaW5nKSB7XG4gICAgICAgICAgdGhpcy5faW5maW5pdHlRdWVyeS5fbG9hZE5leHRQYWdlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJvb3Q6IHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IgPyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2Nyb2xsQ29udGFpbmVyU2VsZWN0b3IpIDogbnVsbCxcbiAgICAgICAgcm9vdE1hcmdpbjogJzBweCcsXG4gICAgICAgIHRocmVzaG9sZDogMS4wLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG59XG4iXX0=","export class QueryStore {\n constructor(_config) {\n this._config = _config;\n this._store = new Map();\n this._garbageCollector = null;\n }\n add(id, query) {\n this._store.set(id, query);\n this._initGarbageCollector();\n this._logState(id, query, 'SET');\n }\n get(id) {\n return this._store.get(id) ?? null;\n }\n remove(id) {\n this._store.delete(id);\n this._logState(id, null, 'REMOVE');\n }\n _logState(key, item, operation) {\n if (!this._config?.enableChangeLogging)\n return;\n const stateAsJson = {};\n this._store.forEach((value, key) => {\n stateAsJson[key] = value;\n });\n console.log(`%c[${operation}] ${key}`, 'font-weight: bold');\n console.log({ operation, key, item });\n console.log(stateAsJson);\n }\n _initGarbageCollector() {\n if (this._garbageCollector !== null) {\n return;\n }\n this._logGarbageCollector('Start');\n this._garbageCollector = window.setInterval(() => {\n this._runGarbageCollector();\n }, 15000);\n }\n _stopGarbageCollector() {\n if (this._garbageCollector !== null) {\n window.clearInterval(this._garbageCollector);\n this._garbageCollector = null;\n }\n }\n _runGarbageCollector() {\n this._logGarbageCollector('Collecting...');\n this._store.forEach((item, key) => {\n if (item.isExpired) {\n this.remove(key);\n }\n });\n this._logGarbageCollector('Collection done');\n if (!this._store.size) {\n this._stopGarbageCollector();\n this._logGarbageCollector('Stop');\n }\n }\n _logGarbageCollector(action) {\n if (!this._config?.enableGarbageCollectorLogging)\n return;\n console.log(`%cGC: ${action}`, 'color: yellow; font-weight: bold');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvcXVlcnktc3RvcmUvcXVlcnktc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFVBQVU7SUFJckIsWUFDVSxPQUdQO1FBSE8sWUFBTyxHQUFQLE9BQU8sQ0FHZDtRQVBjLFdBQU0sR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUM5QyxzQkFBaUIsR0FBa0IsSUFBSSxDQUFDO0lBTzdDLENBQUM7SUFFSixHQUFHLENBQUMsRUFBVSxFQUFFLEtBQWU7UUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFrQixFQUFFLElBQXFCLEVBQUUsU0FBaUI7UUFDNUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsbUJBQW1CO1lBQUUsT0FBTztRQUUvQyxNQUFNLFdBQVcsR0FBNkIsRUFBRSxDQUFDO1FBRWpELElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2pDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sU0FBUyxLQUFLLEdBQUcsRUFBRSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssSUFBSSxFQUFFO1lBQ25DLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsNkJBQTZCO1lBQUUsT0FBTztRQUV6RCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsTUFBTSxFQUFFLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbnlRdWVyeSB9IGZyb20gJy4uL3F1ZXJ5JztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5U3RvcmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IG5ldyBNYXA8c3RyaW5nLCBBbnlRdWVyeT4oKTtcbiAgcHJpdmF0ZSBfZ2FyYmFnZUNvbGxlY3RvcjogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29uZmlnPzoge1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZz86IGJvb2xlYW47XG4gICAgICBlbmFibGVHYXJiYWdlQ29sbGVjdG9yTG9nZ2luZz86IGJvb2xlYW47XG4gICAgfSxcbiAgKSB7fVxuXG4gIGFkZChpZDogc3RyaW5nLCBxdWVyeTogQW55UXVlcnkpIHtcbiAgICB0aGlzLl9zdG9yZS5zZXQoaWQsIHF1ZXJ5KTtcblxuICAgIHRoaXMuX2luaXRHYXJiYWdlQ29sbGVjdG9yKCk7XG5cbiAgICB0aGlzLl9sb2dTdGF0ZShpZCwgcXVlcnksICdTRVQnKTtcbiAgfVxuXG4gIGdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0b3JlLmdldChpZCkgPz8gbnVsbDtcbiAgfVxuXG4gIHJlbW92ZShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3RvcmUuZGVsZXRlKGlkKTtcblxuICAgIHRoaXMuX2xvZ1N0YXRlKGlkLCBudWxsLCAnUkVNT1ZFJyk7XG4gIH1cblxuICBwcml2YXRlIF9sb2dTdGF0ZShrZXk6IHN0cmluZyB8IG51bGwsIGl0ZW06IEFueVF1ZXJ5IHwgbnVsbCwgb3BlcmF0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlQ2hhbmdlTG9nZ2luZykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3RhdGVBc0pzb246IFJlY29yZDxzdHJpbmcsIEFueVF1ZXJ5PiA9IHt9O1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgc3RhdGVBc0pzb25ba2V5XSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgY29uc29sZS5sb2coYCVjWyR7b3BlcmF0aW9ufV0gJHtrZXl9YCwgJ2ZvbnQtd2VpZ2h0OiBib2xkJyk7XG5cbiAgICBjb25zb2xlLmxvZyh7IG9wZXJhdGlvbiwga2V5LCBpdGVtIH0pO1xuICAgIGNvbnNvbGUubG9nKHN0YXRlQXNKc29uKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RhcnQnKTtcblxuICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSB3aW5kb3cuc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5fcnVuR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgIH0sIDE1MDAwKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N0b3BHYXJiYWdlQ29sbGVjdG9yKCkge1xuICAgIGlmICh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yICE9PSBudWxsKSB7XG4gICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aGlzLl9nYXJiYWdlQ29sbGVjdG9yKTtcbiAgICAgIHRoaXMuX2dhcmJhZ2VDb2xsZWN0b3IgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3J1bkdhcmJhZ2VDb2xsZWN0b3IoKSB7XG4gICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignQ29sbGVjdGluZy4uLicpO1xuXG4gICAgdGhpcy5fc3RvcmUuZm9yRWFjaCgoaXRlbSwga2V5KSA9PiB7XG4gICAgICBpZiAoaXRlbS5pc0V4cGlyZWQpIHtcbiAgICAgICAgdGhpcy5yZW1vdmUoa2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoJ0NvbGxlY3Rpb24gZG9uZScpO1xuXG4gICAgaWYgKCF0aGlzLl9zdG9yZS5zaXplKSB7XG4gICAgICB0aGlzLl9zdG9wR2FyYmFnZUNvbGxlY3RvcigpO1xuICAgICAgdGhpcy5fbG9nR2FyYmFnZUNvbGxlY3RvcignU3RvcCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xvZ0dhcmJhZ2VDb2xsZWN0b3IoYWN0aW9uOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuX2NvbmZpZz8uZW5hYmxlR2FyYmFnZUNvbGxlY3RvckxvZ2dpbmcpIHJldHVybjtcblxuICAgIGNvbnNvbGUubG9nKGAlY0dDOiAke2FjdGlvbn1gLCAnY29sb3I6IHllbGxvdzsgZm9udC13ZWlnaHQ6IGJvbGQnKTtcbiAgfVxufVxuIl19","export const shouldCacheQuery = (method) => {\n return method === 'GET' || method === 'OPTIONS' || method === 'HEAD' || method === 'GQL_QUERY';\n};\nexport const buildGqlCacheKey = (\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconfig, args) => {\n const { query } = config;\n const variables = args?.variables || {};\n const queryWithoutNewLinesAndWhitespace = query.replace(/\\s/g, '');\n const queryFirst50Chars = queryWithoutNewLinesAndWhitespace.slice(0, 50);\n const queryMiddle25Chars = queryWithoutNewLinesAndWhitespace.slice(queryWithoutNewLinesAndWhitespace.length / 2 - 25, queryWithoutNewLinesAndWhitespace.length / 2 + 25);\n const queryLast50Chars = queryWithoutNewLinesAndWhitespace.slice(-50);\n const vars = JSON.stringify(variables);\n return `${queryFirst50Chars}...${queryMiddle25Chars}...${queryLast50Chars}...${vars}`;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUNqRCxPQUFPLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sS0FBSyxXQUFXLENBQUM7QUFDakcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7QUFDOUIsOERBQThEO0FBQzlELE1BQTBDLEVBQzFDLElBQStCLEVBQy9CLEVBQUU7SUFDRixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO0lBRXhDLE1BQU0saUNBQWlDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLE1BQU0sa0JBQWtCLEdBQUcsaUNBQWlDLENBQUMsS0FBSyxDQUNoRSxpQ0FBaUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFDakQsaUNBQWlDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQ2xELENBQUM7SUFDRixNQUFNLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXRFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkMsT0FBTyxHQUFHLGlCQUFpQixNQUFNLGtCQUFrQixNQUFNLGdCQUFnQixNQUFNLElBQUksRUFBRSxDQUFDO0FBQ3hGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VBcmd1bWVudHMsIEdxbFF1ZXJ5Q29uZmlnIH0gZnJvbSAnLi4vcXVlcnkvcXVlcnkudHlwZXMnO1xuaW1wb3J0IHsgTWV0aG9kIH0gZnJvbSAnLi4vcmVxdWVzdCc7XG5cbmV4cG9ydCBjb25zdCBzaG91bGRDYWNoZVF1ZXJ5ID0gKG1ldGhvZDogTWV0aG9kKSA9PiB7XG4gIHJldHVybiBtZXRob2QgPT09ICdHRVQnIHx8IG1ldGhvZCA9PT0gJ09QVElPTlMnIHx8IG1ldGhvZCA9PT0gJ0hFQUQnIHx8IG1ldGhvZCA9PT0gJ0dRTF9RVUVSWSc7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRHcWxDYWNoZUtleSA9IChcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgY29uZmlnOiBHcWxRdWVyeUNvbmZpZzxhbnksIGFueSwgYW55LCBhbnk+LFxuICBhcmdzOiBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuKSA9PiB7XG4gIGNvbnN0IHsgcXVlcnkgfSA9IGNvbmZpZztcbiAgY29uc3QgdmFyaWFibGVzID0gYXJncz8udmFyaWFibGVzIHx8IHt9O1xuXG4gIGNvbnN0IHF1ZXJ5V2l0aG91dE5ld0xpbmVzQW5kV2hpdGVzcGFjZSA9IHF1ZXJ5LnJlcGxhY2UoL1xccy9nLCAnJyk7XG5cbiAgY29uc3QgcXVlcnlGaXJzdDUwQ2hhcnMgPSBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2Uuc2xpY2UoMCwgNTApO1xuICBjb25zdCBxdWVyeU1pZGRsZTI1Q2hhcnMgPSBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2Uuc2xpY2UoXG4gICAgcXVlcnlXaXRob3V0TmV3TGluZXNBbmRXaGl0ZXNwYWNlLmxlbmd0aCAvIDIgLSAyNSxcbiAgICBxdWVyeVdpdGhvdXROZXdMaW5lc0FuZFdoaXRlc3BhY2UubGVuZ3RoIC8gMiArIDI1LFxuICApO1xuICBjb25zdCBxdWVyeUxhc3Q1MENoYXJzID0gcXVlcnlXaXRob3V0TmV3TGluZXNBbmRXaGl0ZXNwYWNlLnNsaWNlKC01MCk7XG5cbiAgY29uc3QgdmFycyA9IEpTT04uc3RyaW5naWZ5KHZhcmlhYmxlcyk7XG5cbiAgcmV0dXJuIGAke3F1ZXJ5Rmlyc3Q1MENoYXJzfS4uLiR7cXVlcnlNaWRkbGUyNUNoYXJzfS4uLiR7cXVlcnlMYXN0NTBDaGFyc30uLi4ke3ZhcnN9YDtcbn07XG4iXX0=","import { BehaviorSubject } from 'rxjs';\nimport { isGqlQueryConfig, Query, } from '../query';\nimport { QueryStore } from '../query-store';\nimport { buildRoute } from '../request';\nimport { buildGqlCacheKey, shouldCacheQuery } from './query-client.utils';\nexport class QueryClient {\n get config() {\n return this._clientConfig;\n }\n get authProvider() {\n return this._authProvider;\n }\n constructor(_clientConfig) {\n this._clientConfig = _clientConfig;\n this._authProvider = null;\n this.get = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GET',\n });\n this.post = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'POST',\n });\n this.put = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'PUT',\n });\n this.patch = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'PATCH',\n });\n this.delete = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'DELETE',\n });\n this.gqlQuery = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GQL_QUERY',\n });\n this.gqlMutate = (queryConfig) => this.fetch({\n ...queryConfig,\n method: 'GQL_MUTATE',\n });\n this.fetch = (queryConfig) => {\n const prepare = (args) => {\n const route = buildRoute({\n base: this._clientConfig.baseRoute,\n route: queryConfig.route,\n pathParams: args?.pathParams,\n queryParams: args?.queryParams,\n });\n const cacheKey = isGqlQueryConfig(queryConfig) ? buildGqlCacheKey(queryConfig, args) : route;\n if (shouldCacheQuery(queryConfig.method)) {\n const existingQuery = this._store.get(cacheKey);\n if (existingQuery) {\n return existingQuery;\n }\n }\n const query = new Query(this, queryConfig, route, args);\n if (shouldCacheQuery(queryConfig.method)) {\n this._store.add(cacheKey, query);\n }\n return query;\n };\n const behaviorSubject = (initialValue = null) => new BehaviorSubject(initialValue);\n return {\n prepare,\n behaviorSubject,\n };\n };\n this.setAuthProvider = (authProvider) => {\n if (this._authProvider) {\n throw new Error('The auth provider is already set. Please call clearAuthProvider() first.');\n }\n this._authProvider = authProvider;\n authProvider.queryClient = this;\n };\n this.clearAuthProvider = () => {\n this._authProvider?.cleanUp();\n this._authProvider = null;\n };\n this._store = new QueryStore({\n enableChangeLogging: _clientConfig.logging?.queryStateChanges,\n enableGarbageCollectorLogging: _clientConfig.logging?.queryStateGarbageCollector,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xdWVyeS9zcmMvbGliL3F1ZXJ5LWNsaWVudC9xdWVyeS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBSUwsZ0JBQWdCLEVBQ2hCLEtBQUssR0FJTixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxZQUFZLENBQUM7QUFPOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUUsTUFBTSxPQUFPLFdBQVc7SUFJdEIsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQW9CLGFBQWdDO1FBQWhDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQVY1QyxrQkFBYSxHQUF3QixJQUFJLENBQUM7UUFpQmxELFFBQUcsR0FBRyxDQU1KLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUF5RDtZQUNqRSxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUVMLFNBQUksR0FBRyxDQU1MLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUEwRDtZQUNsRSxHQUFHLFdBQVc7WUFDZCxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUVMLFFBQUcsR0FBRyxDQU1KLFdBQXNGLEVBQ3RGLEVBQUUsQ0FDRixJQUFJLENBQUMsS0FBSyxDQUF5RDtZQUNqRSxH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Q0FBQztZQUMzQixtQkFBbUIsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLGlCQUFpQjtZQUM3RCw2QkFBNkIsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLDBCQUEwQjtTQUNqRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBeUpGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUHJvdmlkZXIgfSBmcm9tICcuLi9hdXRoJztcbmltcG9ydCB7XG4gIEJhc2VBcmd1bWVudHMsXG4gIEdxbFF1ZXJ5Q29uZmlnLFxuICBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIGlzR3FsUXVlcnlDb25maWcsXG4gIFF1ZXJ5LFxuICBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2QsXG4gIFJlc3RRdWVyeUNvbmZpZyxcbiAgUm91dGVUeXBlLFxufSBmcm9tICcuLi9xdWVyeSc7XG5pbXBvcnQgeyBRdWVyeVN0b3JlIH0gZnJvbSAnLi4vcXVlcnktc3RvcmUnO1xuaW1wb3J0IHsgYnVpbGRSb3V0ZSwgTWV0aG9kIGFzIE1ldGhvZFR5cGUgfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7XG4gIERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyLFxuICBRdWVyeUNsaWVudENvbmZpZyxcbiAgUXVlcnlDcmVhdG9yLFxuICBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZSxcbn0gZnJvbSAnLi9xdWVyeS1jbGllbnQudHlwZXMnO1xuaW1wb3J0IHsgYnVpbGRHcWxDYWNoZUtleSwgc2hvdWxkQ2FjaGVRdWVyeSB9IGZyb20gJy4vcXVlcnktY2xpZW50LnV0aWxzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5Q2xpZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmU6IFF1ZXJ5U3RvcmU7XG4gIHByaXZhdGUgX2F1dGhQcm92aWRlcjogQXV0aFByb3ZpZGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY2xpZW50Q29uZmlnO1xuICB9XG5cbiAgZ2V0IGF1dGhQcm92aWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aFByb3ZpZGVyO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2xpZW50Q29uZmlnOiBRdWVyeUNsaWVudENvbmZpZykge1xuICAgIHRoaXMuX3N0b3JlID0gbmV3IFF1ZXJ5U3RvcmUoe1xuICAgICAgZW5hYmxlQ2hhbmdlTG9nZ2luZzogX2NsaWVudENvbmZpZy5sb2dnaW5nPy5xdWVyeVN0YXRlQ2hhbmdlcyxcbiAgICAgIGVuYWJsZUdhcmJhZ2VDb2xsZWN0b3JMb2dnaW5nOiBfY2xpZW50Q29uZmlnLmxvZ2dpbmc/LnF1ZXJ5U3RhdGVHYXJiYWdlQ29sbGVjdG9yLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ0dFVCcsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICB9KTtcblxuICBwb3N0ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ1BPU1QnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgIH0pO1xuXG4gIHB1dCA9IDxcbiAgICBSb3V0ZSBleHRlbmRzIFJvdXRlVHlwZTxBcmd1bWVudHM+LFxuICAgIFJlc3BvbnNlLFxuICAgIEFyZ3VtZW50cyBleHRlbmRzIEJhc2VBcmd1bWVudHMgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzogUXVlcnlDb25maWdXaXRob3V0TWV0aG9kPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPixcbiAgKSA9PlxuICAgIHRoaXMuZmV0Y2g8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsICdQVVQnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgfSk7XG5cbiAgcGF0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnUEFUQ0gnLCBSZXNwb25zZVRyYW5zZm9ybWVyPih7XG4gICAgICAuLi5xdWVyeUNvbmZpZyxcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICB9KTtcblxuICBkZWxldGUgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnREVMRVRFJywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4oe1xuICAgICAgLi4ucXVlcnlDb25maWcsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnLFxuICAgIH0pO1xuXG4gIGdxbFF1ZXJ5ID0gPFxuICAgIFJvdXRlIGV4dGVuZHMgUm91dGVUeXBlPEFyZ3VtZW50cz4sXG4gICAgUmVzcG9uc2UsXG4gICAgQXJndW1lbnRzIGV4dGVuZHMgQmFzZUFyZ3VtZW50cyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgICBSZXNwb25zZVRyYW5zZm9ybWVyIGV4dGVuZHMgUmVzcG9uc2VUcmFuc2Zvcm1lclR5cGU8UmVzcG9uc2U+ID0gRGVmYXVsdFJlc3BvbnNlVHJhbnNmb3JtZXI8UmVzcG9uc2U+LFxuICA+KFxuICAgIHF1ZXJ5Q29uZmlnOiBHcWxRdWVyeUNvbmZpZ1dpdGhvdXRNZXRob2Q8Um91dGUsIFJlc3BvbnNlLCBBcmd1bWVudHMsIFJlc3BvbnNlVHJhbnNmb3JtZXI+LFxuICApID0+XG4gICAgdGhpcy5mZXRjaDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgJ0dRTF9RVUVSWScsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX1FVRVJZJyxcbiAgICB9KTtcblxuICBncWxNdXRhdGUgPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgIFJlc3BvbnNlVHJhbnNmb3JtZXIgZXh0ZW5kcyBSZXNwb25zZVRyYW5zZm9ybWVyVHlwZTxSZXNwb25zZT4gPSBEZWZhdWx0UmVzcG9uc2VUcmFuc2Zvcm1lcjxSZXNwb25zZT4sXG4gID4oXG4gICAgcXVlcnlDb25maWc6IEdxbFF1ZXJ5Q29uZmlnV2l0aG91dE1ldGhvZDxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICkgPT5cbiAgICB0aGlzLmZldGNoPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCAnR1FMX01VVEFURScsIFJlc3BvbnNlVHJhbnNmb3JtZXI+KHtcbiAgICAgIC4uLnF1ZXJ5Q29uZmlnLFxuICAgICAgbWV0aG9kOiAnR1FMX01VVEFURScsXG4gICAgfSk7XG5cbiAgZmV0Y2ggPSA8XG4gICAgUm91dGUgZXh0ZW5kcyBSb3V0ZVR5cGU8QXJndW1lbnRzPixcbiAgICBSZXNwb25zZSxcbiAgICBBcmd1bWVudHMgZXh0ZW5kcyBCYXNlQXJndW1lbnRzIHwgdW5kZWZpbmVkLFxuICAgIE1ldGhvZCBleHRlbmRzIE1ldGhvZFR5cGUsXG4gICAgUmVzcG9uc2VUcmFuc2Zvcm1lciBleHRlbmRzIFJlc3BvbnNlVHJhbnNmb3JtZXJUeXBlPFJlc3BvbnNlPiA9IERlZmF1bHRSZXNwb25zZVRyYW5zZm9ybWVyPFJlc3BvbnNlPixcbiAgPihcbiAgICBxdWVyeUNvbmZpZzpcbiAgICAgIHwgUmVzdFF1ZXJ5Q29uZmlnPFJvdXRlLCBSZXNwb25zZSwgQXJndW1lbnRzLCBSZXNwb25zZVRyYW5zZm9ybWVyPlxuICAgICAgfCBHcWxRdWVyeUNvbmZpZzxSb3V0ZSwgUmVzcG9uc2UsIEFyZ3VtZW50cywgUmVzcG9uc2VUcmFuc2Zvcm1lcj4sXG4gICk6IFF1ZXJ5Q3JlYXRvcjxBcmd1bWVudHMsIE1ldGhvZCwgUmVzcG9uc2UsIFJvdXRlLCBSZXNwb25zZVRyYW5zZm9ybWVyPiA9PiB7XG4gICAgY29uc3QgcHJlcGFyZSA9IChhcmdzPzogQXJndW1lbnRzKSA9PiB7XG4gICAgICBjb25zdCByb3V0ZSA9IGJ1aWxkUm91dGUoe1xuICAgICAgICBiYXNlOiB0aGlzLl9jbGllbnRDb25maWcuYmFzZVJvdXRlLFxuICAgICAgICByb3V0ZTogcXVlcnlDb25maWcucm91dGUsXG4gICAgICAgIHBhdGhQYXJhbXM6IChhcmdzIGFzIEJhc2VBcmd1bWVudHMpPy5wYXRoUGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtczogKGFyZ3MgYXMgQmFzZUFyZ3VtZW50cyk/LnF1ZXJ5UGFyYW1zLFxuICAgICAgfSkgYXMgUm91dGU7XG5cbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gaXNHcWxRdWVyeUNvbmZpZyhxdWVyeUNvbmZpZykgPyBidWlsZEdxbENhY2hlS2V5KHF1ZXJ5Q29uZmlnLCBhcmdzKSA6IHJvdXRlO1xuXG4gICAgICBpZiAoc2hvdWxkQ2FjaGVRdWVyeShxdWVyeUNvbmZpZy5tZXRob2QpKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nUXVlcnkgPSB0aGlzLl9zdG9yZS5nZXQoY2FjaGVLZXkpO1xuXG4gICAgICAgIGlmIChleGlzdGluZ1F1ZXJ5KSB7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nUXVlcnkgYXMgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcXVlcnkgPSBuZXcgUXVlcnk8UmVzcG9uc2UsIEFyZ3VtZW50cywgUm91dGUsIE1ldGhvZCwgUmVzcG9uc2VUcmFuc2Zvcm1lcj4odGhpcywgcXVlcnlDb25maWcsIHJvdXRlLCBhcmdzKTtcblxuICAgICAgaWYgKHNob3VsZENhY2hlUXVlcnkocXVlcnlDb25maWcubWV0aG9kKSkge1xuICAgICAgICB0aGlzLl9zdG9yZS5hZGQoY2FjaGVLZXksIHF1ZXJ5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH07XG5cbiAgICBjb25zdCBiZWhhdmlvclN1YmplY3QgPSA8VCBleHRlbmRzIFJldHVyblR5cGU8dHlwZW9mIHByZXBhcmU+Pihpbml0aWFsVmFsdWU6IFQgfCBudWxsID0gbnVsbCkgPT5cbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8VCB8IG51bGw+KGluaXRpYWxWYWx1ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcHJlcGFyZSxcbiAgICAgIGJlaGF2aW9yU3ViamVjdCxcbiAgICB9IGFzIHVua25vd24gYXMgUXVlcnlDcmVhdG9yPEFyZ3VtZW50cywgTWV0aG9kLCBSZXNwb25zZSwgUm91dGUsIFJlc3BvbnNlVHJhbnNmb3JtZXI+O1xuICB9O1xuXG4gIHNldEF1dGhQcm92aWRlciA9IChhdXRoUHJvdmlkZXI6IEF1dGhQcm92aWRlcikgPT4ge1xuICAgIGlmICh0aGlzLl9hdXRoUHJvdmlkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGF1dGggcHJvdmlkZXIgaXMgYWxyZWFkeSBzZXQuIFBsZWFzZSBjYWxsIGNsZWFyQXV0aFByb3ZpZGVyKCkgZmlyc3QuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyID0gYXV0aFByb3ZpZGVyO1xuICAgIGF1dGhQcm92aWRlci5xdWVyeUNsaWVudCA9IHRoaXM7XG4gIH07XG5cbiAgY2xlYXJBdXRoUHJvdmlkZXIgPSAoKSA9PiB7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyPy5jbGVhblVwKCk7XG4gICAgdGhpcy5fYXV0aFByb3ZpZGVyID0gbnVsbDtcbiAgfTtcbn1cbiJdfQ==","import { inject } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { combineLatest, concat, debounceTime, distinctUntilChanged, map, startWith, take, tap } from 'rxjs';\nexport class QueryField {\n get control() {\n return this.data.control;\n }\n constructor(data) {\n this.data = data;\n this.changes$ = this._setupChangesObservable();\n this._currentDebounceTimeout = null;\n }\n setValue(value) {\n if (this._currentDebounceTimeout !== null) {\n clearTimeout(this._currentDebounceTimeout);\n }\n if (this.data.debounce) {\n this._currentDebounceTimeout = window.setTimeout(() => {\n this.control.setValue(value);\n }, this.data.debounce);\n }\n else {\n this.control.setValue(value);\n }\n }\n _setupChangesObservable() {\n const obs = this.control.valueChanges.pipe(startWith(this.control.value));\n if (!this.data.debounce) {\n return obs;\n }\n // The initial value should get emitted immediately\n // concat switches to the debounced observable after the first observable is completed\n return concat(obs.pipe(take(1)), this.control.valueChanges.pipe(debounceTime(this.data.debounce)));\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class QueryForm {\n constructor(_fields) {\n this._fields = _fields;\n this._router = inject(Router, { optional: true });\n this._activatedRoute = inject(ActivatedRoute, { optional: true });\n this._defaultValues = this._extractDefaultValues();\n this.form = this._setupFormGroup();\n }\n observe(options) {\n return combineLatest(Object.values(this._fields).map((field) => field.changes$)).pipe(map(() => this.form.getRawValue()), distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)), tap((values) => {\n if (options?.syncViaUrlQueryParams !== false) {\n this._syncViaUrlQueryParams(values);\n }\n }));\n }\n setFormValueFromUrlQueryParams() {\n if (!this._activatedRoute) {\n throw new Error('Cannot set form value from url query params without ActivatedRoute');\n }\n const queryParams = this._activatedRoute.snapshot.queryParams;\n for (const [key, field] of Object.entries(this._fields)) {\n const value = queryParams[key];\n // We only check using == because the value types can be different (e.g. \"1\" and 1)\n if (value === undefined || value == field.control.value) {\n continue;\n }\n const deserializedValue = field.data.queryParamToValueTransformFn?.(value) ?? value;\n field.setValue(deserializedValue);\n }\n }\n updateFormOnUrlQueryParamsChange() {\n if (!this._activatedRoute) {\n throw new Error('Cannot update form on url query params change without ActivatedRoute');\n }\n return this._activatedRoute.queryParams.pipe(tap(() => this.setFormValueFromUrlQueryParams()));\n }\n _getDefaultValue(key) {\n return this._defaultValues[key] ?? null;\n }\n _isDefaultValue(key, value) {\n const normalizedValue = Array.isArray(value) ? JSON.stringify(value) : value;\n return this._getDefaultValue(key) === normalizedValue;\n }\n _setupFormGroup() {\n const group = new FormGroup({});\n for (const [key, field] of Object.entries(this._fields)) {\n group.addControl(key, field.control);\n }\n return group;\n }\n _extractDefaultValues() {\n const defaultValues = {};\n for (const [key, field] of Object.entries(this._fields)) {\n const value = field.control.value;\n if (value === null || value === undefined) {\n continue;\n }\n if (Array.isArray(value)) {\n defaultValues[key] = JSON.stringify(value);\n }\n else {\n defaultValues[key] = value;\n }\n }\n return defaultValues;\n }\n _syncViaUrlQueryParams(values) {\n if (!this._router || !this._activatedRoute) {\n return;\n }\n const queryParams = structuredClone(this._activatedRoute.snapshot.queryParams);\n for (const [key, value] of Object.entries(values)) {\n if (this._isDefaultValue(key, value) || this._fields[key].data.appendToUrl === false) {\n delete queryParams[key];\n }\n else {\n queryParams[key] = this._fields[key].data.valueToQueryParamTransformFn\n ? this._fields[key].data.valueToQueryParamTransformFn?.(value)\n : value;\n }\n }\n this._router.navigate([], {\n queryParams,\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1mb3JtL3F1ZXJ5LWZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hILE1BQU0sT0FBTyxVQUFVO0lBR3JCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUlELFlBQW1CLElBQTBCO1FBQTFCLFNBQUksR0FBSixJQUFJLENBQXNCO1FBUjdDLGFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQU1sQyw0QkFBdUIsR0FBa0IsSUFBSSxDQUFDO0lBRU4sQ0FBQztJQUVqRCxRQUFRLENBQUMsS0FBZTtRQUN0QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsS0FBSyxJQUFJLEVBQUU7WUFDekMsWUFBWSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsdUJBQXVCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsRUFBRSxJQUFJLENB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QyxJQUFJLENBQUMsNEJBQTRCO29CQUNwRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUM7b0JBQzlELENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDWDtTQUNGO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3hCLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgY29uY2F0LCBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBRdWVyeUZpZWxkT3B0aW9ucywgUXVlcnlGb3JtR3JvdXAsIFF1ZXJ5Rm9ybVZhbHVlIH0gZnJvbSAnLi9xdWVyeS1mb3JtLnR5cGVzJztcblxuZXhwb3J0IGNsYXNzIFF1ZXJ5RmllbGQ8VD4ge1xuICBjaGFuZ2VzJCA9IHRoaXMuX3NldHVwQ2hhbmdlc09ic2VydmFibGUoKTtcblxuICBnZXQgY29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIF9jdXJyZW50RGVib3VuY2VUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogUXVlcnlGaWVsZE9wdGlvbnM8VD4pIHt9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFQgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMuX2N1cnJlbnREZWJvdW5jZVRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9jdXJyZW50RGVib3VuY2VUaW1lb3V0KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhLmRlYm91bmNlKSB7XG4gICAgICB0aGlzLl9jdXJyZW50RGVib3VuY2VUaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgfSwgdGhpcy5kYXRhLmRlYm91bmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cENoYW5nZXNPYnNlcnZhYmxlKCkge1xuICAgIGNvbnN0IG9icyA9IHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5jb250cm9sLnZhbHVlKSk7XG5cbiAgICBpZiAoIXRoaXMuZGF0YS5kZWJvdW5jZSkge1xuICAgICAgcmV0dXJuIG9icztcbiAgICB9XG5cbiAgICAvLyBUaGUgaW5pdGlhbCB2YWx1ZSBzaG91bGQgZ2V0IGVtaXR0ZWQgaW1tZWRpYXRlbHlcbiAgICAvLyBjb25jYXQgc3dpdGNoZXMgdG8gdGhlIGRlYm91bmNlZCBvYnNlcnZhYmxlIGFmdGVyIHRoZSBmaXJzdCBvYnNlcnZhYmxlIGlzIGNvbXBsZXRlZFxuICAgIHJldHVybiBjb25jYXQob2JzLnBpcGUodGFrZSgxKSksIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kYXRhLmRlYm91bmNlKSkpO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY2xhc3MgUXVlcnlGb3JtPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBRdWVyeUZpZWxkPGFueT4+PiB7XG4gIHByaXZhdGUgX3JvdXRlciA9IGluamVjdChSb3V0ZXIsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWVzID0gdGhpcy5fZXh0cmFjdERlZmF1bHRWYWx1ZXMoKTtcblxuICBmb3JtID0gdGhpcy5fc2V0dXBGb3JtR3JvdXAoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWVsZHM6IFQpIHt9XG5cbiAgb2JzZXJ2ZShvcHRpb25zPzogeyBzeW5jVmlhVXJsUXVlcnlQYXJhbXM/OiBib29sZWFuIH0pIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChPYmplY3QudmFsdWVzKHRoaXMuX2ZpZWxkcykubWFwKChmaWVsZCkgPT4gZmllbGQuY2hhbmdlcyQpKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gSlNPTi5zdHJpbmdpZnkoYikpLFxuICAgICAgdGFwKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgaWYgKG9wdGlvbnM/LnN5bmNWaWFVcmxRdWVyeVBhcmFtcyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICB0aGlzLl9zeW5jVmlhVXJsUXVlcnlQYXJhbXModmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgfSksXG5cbiAgICAgIC8vIFRoaXMgdHlwZSBjYXN0IGlzIG5lZWRlZCBzaW5jZSBuZy1wYWNrYWdyIHdpbGwgYnJlYWsgdGhlIHR5cGUgaW5mZXJlbmNlIG90aGVyd2lzZS5cbiAgICApIGFzIE9ic2VydmFibGU8UXVlcnlGb3JtVmFsdWU8VD4+O1xuICB9XG5cbiAgc2V0Rm9ybVZhbHVlRnJvbVVybFF1ZXJ5UGFyYW1zKCkge1xuICAgIGlmICghdGhpcy5fYWN0aXZhdGVkUm91dGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNldCBmb3JtIHZhbHVlIGZyb20gdXJsIHF1ZXJ5IHBhcmFtcyB3aXRob3V0IEFjdGl2YXRlZFJvdXRlJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcblxuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gcXVlcnlQYXJhbXNba2V5XTtcblxuICAgICAgLy8gV2Ugb25seSBjaGVjayB1c2luZyA9PSBiZWNhdXNlIHRoZSB2YWx1ZSB0eXBlcyBjYW4gYmUgZGlmZmVyZW50IChlLmcuIFwiMVwiIGFuZCAxKVxuICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT0gZmllbGQuY29udHJvbC52YWx1ZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGVzZXJpYWxpemVkVmFsdWUgPSBmaWVsZC5kYXRhLnF1ZXJ5UGFyYW1Ub1ZhbHVlVHJhbnNmb3JtRm4/Lih2YWx1ZSkgPz8gdmFsdWU7XG5cbiAgICAgIGZpZWxkLnNldFZhbHVlKGRlc2VyaWFsaXplZFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVGb3JtT25VcmxRdWVyeVBhcmFtc0NoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2YXRlZFJvdXRlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCB1cGRhdGUgZm9ybSBvbiB1cmwgcXVlcnkgcGFyYW1zIGNoYW5nZSB3aXRob3V0IEFjdGl2YXRlZFJvdXRlJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2YXRlZFJvdXRlLnF1ZXJ5UGFyYW1zLnBpcGUodGFwKCgpID0+IHRoaXMuc2V0Rm9ybVZhbHVlRnJvbVVybFF1ZXJ5UGFyYW1zKCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERlZmF1bHRWYWx1ZShrZXk6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWVzW2tleV0gPz8gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgX2lzRGVmYXVsdFZhbHVlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XG5cbiAgICByZXR1cm4gdGhpcy5fZ2V0RGVmYXVsdFZhbHVlKGtleSkgPT09IG5vcm1hbGl6ZWRWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwRm9ybUdyb3VwKCkge1xuICAgIGNvbnN0IGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSBhcyBRdWVyeUZvcm1Hcm91cDxUPik7XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIGZpZWxkXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLl9maWVsZHMpKSB7XG4gICAgICBncm91cC5hZGRDb250cm9sKGtleSwgZmllbGQuY29udHJvbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZXh0cmFjdERlZmF1bHRWYWx1ZXMoKSB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgZmllbGRdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX2ZpZWxkcykpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmllbGQuY29udHJvbC52YWx1ZTtcblxuICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICBkZWZhdWx0VmFsdWVzW2tleV0gPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkZWZhdWx0VmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlcztcbiAgfVxuXG4gIHByaXZhdGUgX3N5bmNWaWFVcmxRdWVyeVBhcmFtcyh2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgaWYgKCF0aGlzLl9yb3V0ZXIgfHwgIXRoaXMuX2FjdGl2YXRlZFJvdXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5fYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFsdWVzKSkge1xuICAgICAgaWYgKHRoaXMuX2lzRGVmYXVsdFZhbHVlKGtleSwgdmFsdWUpIHx8IHRoaXMuX2ZpZWxkc1trZXldLmRhdGEuYXBwZW5kVG9VcmwgPT09IGZhbHNlKSB7XG4gICAgICAgIGRlbGV0ZSBxdWVyeVBhcmFtc1trZXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVlcnlQYXJhbXNba2V5XSA9IHRoaXMuX2ZpZWxkc1trZXldLmRhdGEudmFsdWVUb1F1ZXJ5UGFyYW1UcmFuc2Zvcm1GblxuICAgICAgICAgID8gdGhpcy5fZmllbGRzW2tleV0uZGF0YS52YWx1ZVRvUXVlcnlQYXJhbVRyYW5zZm9ybUZuPy4odmFsdWUpXG4gICAgICAgICAgOiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=","export const transformToString = (value) => {\n if (typeof value === 'string') {\n return value;\n }\n return null;\n};\nexport const transformToStringArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToString).filter(Boolean);\n }\n else if (typeof value === 'string') {\n return [transformToString(value)];\n }\n return null;\n};\nexport const transformToNumber = (value) => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n return null;\n};\nexport const transformToNumberArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToNumber).filter((item) => item !== null);\n }\n else if (typeof value === 'number') {\n return [value];\n }\n return null;\n};\nexport const transformToBoolean = (value) => {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n return value === 'true' || value === '1';\n }\n return null;\n};\nexport const transformToBooleanArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToBoolean).filter((item) => item !== null);\n }\n else if (typeof value === 'string' || typeof value === 'boolean') {\n return [transformToBoolean(value)];\n }\n return null;\n};\nexport const transformToDate = (value) => {\n if (value instanceof Date) {\n return value;\n }\n if (typeof value === 'string') {\n const date = new Date(value);\n if (isNaN(date.getTime())) {\n return null;\n }\n return date;\n }\n return null;\n};\nexport const transformToDateArray = (value) => {\n if (Array.isArray(value)) {\n return value.map(transformToDate).filter((item) => item !== null);\n }\n else if (typeof value === 'string' || value instanceof Date) {\n return [transformToDate(value)];\n }\n return null;\n};\nexport const transformToSort = (value) => {\n if (typeof value === 'string') {\n const [active, direction] = value.split(':');\n return {\n active,\n direction: direction,\n };\n }\n return null;\n};\nexport const transformToSortQueryParam = (value) => {\n if (typeof value === 'string') {\n return value;\n }\n if (value && typeof value === 'object' && 'active' in value && 'direction' in value) {\n const valAsSort = value;\n return valAsSort.direction ? `${valAsSort.active}:${valAsSort.direction}` : null;\n }\n return null;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZm9ybS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi9xdWVyeS1mb3JtL3F1ZXJ5LWZvcm0udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQ3ZELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN4QixPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFhLENBQUM7S0FDakU7U0FBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUNwQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQWEsQ0FBQztLQUMvQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFjLEVBQUUsRUFBRTtJQUNsRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsS0FBYyxFQUFFLEVBQUU7SUFDdkQsSUFB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RixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO0lBQzFELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxFQUFFO1FBQ25GLE1BQU0sU0FBUyxHQUFHLEtBR2pCLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUNsRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvU3RyaW5nID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVG9TdHJpbmdBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvU3RyaW5nKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBbdHJhbnNmb3JtVG9TdHJpbmcodmFsdWUpXSBhcyBzdHJpbmdbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvTnVtYmVyID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVG9OdW1iZXJBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvTnVtYmVyKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpIGFzIG51bWJlcltdO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gW3ZhbHVlXSBhcyBudW1iZXJbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvQm9vbGVhbiA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJzEnO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvQm9vbGVhbkFycmF5ID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAodHJhbnNmb3JtVG9Cb29sZWFuKS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IG51bGwpIGFzIGJvb2xlYW5bXTtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIFt0cmFuc2Zvcm1Ub0Jvb2xlYW4odmFsdWUpXSBhcyBib29sZWFuW107XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub0RhdGUgPSAodmFsdWU6IHVua25vd24pID0+IHtcbiAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub0RhdGVBcnJheSA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKHRyYW5zZm9ybVRvRGF0ZSkuZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSBudWxsKSBhcyBEYXRlW107XG4gIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gW3RyYW5zZm9ybVRvRGF0ZSh2YWx1ZSldIGFzIERhdGVbXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVRvU29ydCA9ICh2YWx1ZTogdW5rbm93bikgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IFthY3RpdmUsIGRpcmVjdGlvbl0gPSB2YWx1ZS5zcGxpdCgnOicpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGl2ZSxcbiAgICAgIGRpcmVjdGlvbjogZGlyZWN0aW9uIGFzICdhc2MnIHwgJ2Rlc2MnLFxuICAgIH07XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Ub1NvcnRRdWVyeVBhcmFtID0gKHZhbHVlOiB1bmtub3duKSA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdhY3RpdmUnIGluIHZhbHVlICYmICdkaXJlY3Rpb24nIGluIHZhbHVlKSB7XG4gICAgY29uc3QgdmFsQXNTb3J0ID0gdmFsdWUgYXMge1xuICAgICAgYWN0aXZlOiBzdHJpbmc7XG4gICAgICBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnO1xuICAgIH07XG5cbiAgICByZXR1cm4gdmFsQXNTb3J0LmRpcmVjdGlvbiA/IGAke3ZhbEFzU29ydC5hY3RpdmV9OiR7dmFsQXNTb3J0LmRpcmVjdGlvbn1gIDogbnVsbDtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcbiJdfQ==","export const deepFreeze = (object) => {\n // check if object is actually an object or frozen\n if (!object || typeof object !== 'object' || Object.isFrozen(object)) {\n return object;\n }\n // Retrieve the property names defined on object\n const propNames = Object.getOwnPropertyNames(object);\n // Freeze properties before freezing self\n for (const name of propNames) {\n const value = object[name];\n if (value && typeof value === 'object') {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1mcmVlemUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2xpYi91dGlscy9kZWVwLWZyZWV6ZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFvQyxNQUFTLEVBQUUsRUFBRTtJQUN6RSxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwRSxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsZ0RBQWdEO0lBQ2hELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCx5Q0FBeUM7SUFFekMsS0FBSyxNQUFNLElBQUksSUFBSSxTQUFTLEVBQUU7UUFDNUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNCLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN0QyxVQUFVLENBQUMsS0FBVSxDQUFDLENBQUM7U0FDeEI7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZGVlcEZyZWV6ZSA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KG9iamVjdDogVCkgPT4ge1xuICAvLyBjaGVjayBpZiBvYmplY3QgaXMgYWN0dWFsbHkgYW4gb2JqZWN0IG9yIGZyb3plblxuICBpZiAoIW9iamVjdCB8fCB0eXBlb2Ygb2JqZWN0ICE9PSAnb2JqZWN0JyB8fCBPYmplY3QuaXNGcm96ZW4ob2JqZWN0KSkge1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICAvLyBSZXRyaWV2ZSB0aGUgcHJvcGVydHkgbmFtZXMgZGVmaW5lZCBvbiBvYmplY3RcbiAgY29uc3QgcHJvcE5hbWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0KTtcblxuICAvLyBGcmVlemUgcHJvcGVydGllcyBiZWZvcmUgZnJlZXppbmcgc2VsZlxuXG4gIGZvciAoY29uc3QgbmFtZSBvZiBwcm9wTmFtZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtuYW1lXTtcblxuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBkZWVwRnJlZXplKHZhbHVlIGFzIFQpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG59O1xuIl19","/**\n * Dummy function for providing types while not breaking inference.\n * **This function always returns null.**\n * @see https://github.com/microsoft/TypeScript/issues/26242\n * @returns null\n */\nexport const def = () => null;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3F1ZXJ5L3NyYy9saWIvdXRpbHMvZGVmLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBUyxFQUFFLENBQUMsSUFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRHVtbXkgZnVuY3Rpb24gZm9yIHByb3ZpZGluZyB0eXBlcyB3aGlsZSBub3QgYnJlYWtpbmcgaW5mZXJlbmNlLlxuICogKipUaGlzIGZ1bmN0aW9uIGFsd2F5cyByZXR1cm5zIG51bGwuKipcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8yNjI0MlxuICogQHJldHVybnMgbnVsbFxuICovXG5leHBvcnQgY29uc3QgZGVmID0gPERhdGE+KCkgPT4gbnVsbCBhcyB1bmtub3duIGFzIERhdGE7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRobGV0ZS1xdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvcXVlcnkvc3JjL2V0aGxldGUtcXVlcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|