@nx-ddd/hasura 19.21.8 → 19.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apollo/link/index.d.ts.map +1 -1
- package/fesm2022/nx-ddd-hasura.mjs +15 -5
- package/fesm2022/nx-ddd-hasura.mjs.map +1 -1
- package/index.d.ts +4 -5
- package/index.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/links.ts","../../../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/link.service.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/links.ts","../../../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/link.service.ts"],"sourcesContent":[null,null],"names":[],"mappings":";;;;;AAEA;AACM;AAEN;AAMA;;ACOA;;AAGE;;;;;;;AAA4C;AAE5C;;;;;;;AAwCD;;;"}
|
|
@@ -118,6 +118,16 @@ class ApolloClientManagerService {
|
|
|
118
118
|
crypto = CRYPTO.inject() ?? globalThis.crypto;
|
|
119
119
|
async buildClientName(endpoint, headers) {
|
|
120
120
|
const data = new TextEncoder().encode(JSON.stringify(headers));
|
|
121
|
+
// HTTP環境ではcrypto.subtleが使えないため、フォールバックを使用
|
|
122
|
+
if (!this.crypto?.subtle) {
|
|
123
|
+
const str = JSON.stringify(headers);
|
|
124
|
+
let hash = 0;
|
|
125
|
+
for (let i = 0; i < str.length; i++) {
|
|
126
|
+
hash = ((hash << 5) - hash) + str.charCodeAt(i);
|
|
127
|
+
hash |= 0;
|
|
128
|
+
}
|
|
129
|
+
return `${endpoint}?headers=${Math.abs(hash).toString(16)}`;
|
|
130
|
+
}
|
|
121
131
|
const arrayBuffer = await this.crypto.subtle.digest('SHA-256', data);
|
|
122
132
|
const hash = Array.from(new Uint8Array(arrayBuffer)).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
123
133
|
return `${endpoint}?headers=${hash}`;
|
|
@@ -822,13 +832,13 @@ class HasuraService {
|
|
|
822
832
|
throw error;
|
|
823
833
|
});
|
|
824
834
|
}
|
|
825
|
-
// Observable版のquery
|
|
835
|
+
// Observable版のqueryメソッド(HTTP経由)
|
|
826
836
|
watchQuery(options) {
|
|
827
|
-
const { query, variables, fetchPolicy = 'cache
|
|
837
|
+
const { query, variables, fetchPolicy = 'no-cache' } = options;
|
|
828
838
|
return this.getApolloClient().pipe(switchMap((client) => client.watchQuery({
|
|
829
|
-
query
|
|
830
|
-
variables
|
|
831
|
-
fetchPolicy
|
|
839
|
+
query,
|
|
840
|
+
variables,
|
|
841
|
+
fetchPolicy
|
|
832
842
|
}).valueChanges));
|
|
833
843
|
}
|
|
834
844
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: HasuraService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-hasura.mjs","sources":["../tmp-esm2022/apollo/multi/multi.service.js","../tmp-esm2022/apollo/link/links.js","../tmp-esm2022/apollo/link/link.service.js","../tmp-esm2022/apollo/client-manager/client-manager.service.js","../tmp-esm2022/decorators/decorators.js","../tmp-esm2022/converter/type-converters.js","../tmp-esm2022/converter/from-hasura.js","../tmp-esm2022/converter/case-converters.js","../tmp-esm2022/converter/to-hasura.js","../tmp-esm2022/converter/converter.js","../tmp-esm2022/hasura.interceptor.js","../tmp-esm2022/hasura.config.js","../tmp-esm2022/hasura.di.js","../tmp-esm2022/builders/parts/queries/get.builder.js","../tmp-esm2022/builders/parts/queries/queries.builder.js","../tmp-esm2022/builders/parts/mutations/create.builder.js","../tmp-esm2022/builders/parts/mutations/delete.builder.js","../tmp-esm2022/builders/parts/mutations/save.builder.js","../tmp-esm2022/builders/parts/mutations/update.builder.js","../tmp-esm2022/builders/parts/mutations/mutations.builder.js","../tmp-esm2022/builders/parts/parts.builder.js","../tmp-esm2022/builders/query-builder.js","../tmp-esm2022/hasura.service.js","../tmp-esm2022/hasura.repository.js","../tmp-esm2022/nx-ddd-hasura.js"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { makeDI } from '@nx-ddd/core';\nimport { ApolloLinkService } from '@nx-ddd/hasura/apollo/link';\nimport { Apollo } from 'apollo-angular';\nimport * as i0 from \"@angular/core\";\n/** @deprecated use ApolloClientManagerService instead */\nexport class ApolloMultiService {\n apollo = inject(Apollo);\n linkService = inject(ApolloLinkService);\n createClient(name, baseUrl, getHeaders) {\n this.apollo.removeClient(name);\n this.apollo.createNamed(name, {\n link: this.linkService.createLink(baseUrl, getHeaders),\n cache: new InMemoryCache()\n });\n }\n getClient(endpoint, getHeaders) {\n const name = endpoint;\n let client = this.apollo.use(name);\n console.debug('[ApolloMultiService] getClient:', name);\n if (!client) {\n this.createClient(name, endpoint, getHeaders);\n client = this.apollo.use(name);\n }\n return client;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloMultiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloMultiService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloMultiService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const GET_APOLLO_CLIENT = makeDI('GET_APOLLO_CLIENT');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYXBvbGxvL211bHRpL211bHRpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLGdCQUFnQixDQUFDOztBQUlwRCx5REFBeUQ7QUFFekQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2QsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELFlBQVksQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLFVBQXNCO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztZQUN0RCxLQUFLLEVBQUUsSUFBSSxhQUFhLEVBQUU7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLFVBQXNCO1FBQ2hELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM5QyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7dUdBckJVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRE4sTUFBTTs7MkZBQ2xCLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7O0FBMkJoQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQXVCLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGUgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jYWNoZSc7XG5pbXBvcnQgeyBBcG9sbG9DbGllbnQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IG1ha2VESSB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG9MaW5rU2VydmljZSwgR2V0SGVhZGVycyB9IGZyb20gJ0BueC1kZGQvaGFzdXJhL2Fwb2xsby9saW5rJztcbmltcG9ydCB7IEFwb2xsbywgQXBvbGxvQmFzZSB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhhc3VyYUNvbmZpZyB9IGZyb20gJy4uLy4uL2hhc3VyYS5jb25maWcnO1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlIGluc3RlYWQgKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEFwb2xsb011bHRpU2VydmljZSB7XG4gIHJlYWRvbmx5IGFwb2xsbyA9IGluamVjdChBcG9sbG8pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlua1NlcnZpY2UgPSBpbmplY3QoQXBvbGxvTGlua1NlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjcmVhdGVDbGllbnQobmFtZTogc3RyaW5nLCBiYXNlVXJsOiBzdHJpbmcsIGdldEhlYWRlcnM6IEdldEhlYWRlcnMpIHtcbiAgICB0aGlzLmFwb2xsby5yZW1vdmVDbGllbnQobmFtZSk7XG4gICAgdGhpcy5hcG9sbG8uY3JlYXRlTmFtZWQobmFtZSwge1xuICAgICAgbGluazogdGhpcy5saW5rU2VydmljZS5jcmVhdGVMaW5rKGJhc2VVcmwsIGdldEhlYWRlcnMpLFxuICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKClcbiAgICB9KTtcbiAgfVxuXG4gIGdldENsaWVudChlbmRwb2ludDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQXBvbGxvQmFzZSB7XG4gICAgY29uc3QgbmFtZSA9IGVuZHBvaW50O1xuICAgIGxldCBjbGllbnQgPSB0aGlzLmFwb2xsby51c2UobmFtZSk7XG4gICAgY29uc29sZS5kZWJ1ZygnW0Fwb2xsb011bHRpU2VydmljZV0gZ2V0Q2xpZW50OicsIG5hbWUpO1xuICAgIGlmICghY2xpZW50KSB7XG4gICAgICB0aGlzLmNyZWF0ZUNsaWVudChuYW1lLCBlbmRwb2ludCwgZ2V0SGVhZGVycyk7XG4gICAgICBjbGllbnQgPSB0aGlzLmFwb2xsby51c2UobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgdHlwZSBHZXRBcG9sbG9DbGllbnQ8RSBleHRlbmRzIHtpZDogc3RyaW5nfT4gPSAoY29uZmlnOiBIYXN1cmFDb25maWcpID0+IEFwb2xsb0NsaWVudCB8IFByb21pc2U8QXBvbGxvQ2xpZW50PiB8IE9ic2VydmFibGU8QXBvbGxvQ2xpZW50PjtcbmV4cG9ydCBjb25zdCBHRVRfQVBPTExPX0NMSUVOVCA9IG1ha2VESTxHZXRBcG9sbG9DbGllbnQ8YW55Pj4oJ0dFVF9BUE9MTE9fQ0xJRU5UJyk7Il19","import { distinctUntilChanged, filter, from, isObservable, lastValueFrom, of, take } from 'rxjs';\nexport function wrap(obsOrPromiseOrValue) {\n if (isObservable(obsOrPromiseOrValue))\n return obsOrPromiseOrValue;\n if (obsOrPromiseOrValue instanceof Promise)\n return from(obsOrPromiseOrValue);\n return of(obsOrPromiseOrValue);\n}\nexport function resolve(getHeaders) {\n const headers$ = wrap(getHeaders());\n return lastValueFrom(headers$.pipe(filter((headers) => !!headers), take(1), distinctUntilChanged()));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2Fwb2xsby9saW5rL2xpbmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUtsSCxNQUFNLFVBQVUsSUFBSSxDQUFJLG1CQUFtRDtJQUN6RSxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztRQUFFLE9BQU8sbUJBQW1CLENBQUM7SUFDbEUsSUFBSSxtQkFBbUIsWUFBWSxPQUFPO1FBQUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM3RSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLFVBQXNCO0lBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1Asb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZyb20sIGlzT2JzZXJ2YWJsZSwgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFByb21pc2VPck9ic2VydmFibGU8VD4gPSBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPiB8IFQ7XG5leHBvcnQgdHlwZSBHZXRIZWFkZXJzID0gKCkgPT4gUHJvbWlzZU9yT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXA8VD4ob2JzT3JQcm9taXNlT3JWYWx1ZTogUHJvbWlzZTxUPiB8IE9ic2VydmFibGU8VD4gfCBUKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmIChpc09ic2VydmFibGUob2JzT3JQcm9taXNlT3JWYWx1ZSkpIHJldHVybiBvYnNPclByb21pc2VPclZhbHVlO1xuICBpZiAob2JzT3JQcm9taXNlT3JWYWx1ZSBpbnN0YW5jZW9mIFByb21pc2UpIHJldHVybiBmcm9tKG9ic09yUHJvbWlzZU9yVmFsdWUpO1xuICByZXR1cm4gb2Yob2JzT3JQcm9taXNlT3JWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGdldEhlYWRlcnM6IEdldEhlYWRlcnMpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgaGVhZGVycyQgPSB3cmFwKGdldEhlYWRlcnMoKSk7XG4gIHJldHVybiBsYXN0VmFsdWVGcm9tKGhlYWRlcnMkLnBpcGUoXG4gICAgZmlsdGVyKChoZWFkZXJzKSA9PiAhIWhlYWRlcnMpLFxuICAgIHRha2UoMSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgKSlcbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { HttpLink } from 'apollo-angular/http';\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloLink, split } from '@apollo/client/core';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport { createClient } from 'graphql-ws';\nimport { resolve } from './links';\nimport { WEBSOCKET } from '@nx-ddd/common/infrastructure/externals/websocket/token';\nimport * as i0 from \"@angular/core\";\nfunction isSubscription(query) {\n const definition = getMainDefinition(query);\n return (definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription');\n}\nexport class ApolloLinkService {\n httpLink = inject(HttpLink);\n WebSocketImpl = WEBSOCKET.inject();\n createGraphQLWsClient(baseUrl, getHeaders) {\n return createClient({\n url: baseUrl.replace('http', 'ws'),\n webSocketImpl: this.WebSocketImpl,\n connectionParams: async () => {\n const headers = await resolve(getHeaders);\n return { headers };\n },\n lazy: true, // 必要時のみ接続を開始\n shouldRetry: () => true, // 再接続を有効化\n retryAttempts: 5, // 再接続試行回数を制限\n keepAlive: 30000, // 30秒ごとにキープアライブ\n });\n }\n createHttpLink(baseUrl, getHeaders) {\n return ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers };\n }),\n this.httpLink.create({ uri: baseUrl, }),\n ]);\n }\n createWebSocketLink(baseUrl, getHeaders) {\n return new GraphQLWsLink(this.createGraphQLWsClient(baseUrl, getHeaders));\n }\n createAutoSplitLink(baseUrl, getHeaders) {\n return split(({ query }) => isSubscription(query), this.createWebSocketLink(baseUrl, getHeaders), this.createHttpLink(baseUrl, getHeaders));\n }\n createLink(baseUrl, getHeaders) {\n return this.createAutoSplitLink(baseUrl, getHeaders);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloLinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloLinkService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloLinkService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9hcG9sbG8vbGluay9saW5rLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7QUFFcEYsU0FBUyxjQUFjLENBQUMsS0FBbUI7SUFDekMsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsT0FBTyxDQUNMLFVBQVUsQ0FBQyxJQUFJLEtBQUsscUJBQXFCO1FBQ3pDLFVBQVUsQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRXBDLHFCQUFxQixDQUFDLE9BQWUsRUFBRSxVQUFzQjtRQUNuRSxPQUFPLFlBQVksQ0FBQztZQUNsQixHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ2xDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxnQkFBZ0IsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNyQixDQUFDO1lBQ0QsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhO1lBQ3pCLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVTtZQUNuQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLGFBQWE7WUFDL0IsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0I7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDcEQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDcEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtZQUNwQixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUcsQ0FBQztTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZSxFQUFFLFVBQXNCO1FBQ3pELE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDekQsT0FBTyxLQUFLLENBQ1YsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUN6QyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7dUdBM0NVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBREwsTUFBTTs7MkZBQ2xCLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBMaW5rIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBzZXRDb250ZXh0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9jb250ZXh0JztcbmltcG9ydCB7IEFwb2xsb0xpbmssIERvY3VtZW50Tm9kZSwgc3BsaXQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IGdldE1haW5EZWZpbml0aW9uIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvdXRpbGl0aWVzJztcbmltcG9ydCB7IEdyYXBoUUxXc0xpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3N1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgQ2xpZW50LCBjcmVhdGVDbGllbnQgfSBmcm9tICdncmFwaHFsLXdzJztcbmltcG9ydCB7IEdldEhlYWRlcnMsIHJlc29sdmUgfSBmcm9tICcuL2xpbmtzJztcbmltcG9ydCB7IFdFQlNPQ0tFVCB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy93ZWJzb2NrZXQvdG9rZW4nO1xuXG5mdW5jdGlvbiBpc1N1YnNjcmlwdGlvbihxdWVyeTogRG9jdW1lbnROb2RlKSB7XG4gIGNvbnN0IGRlZmluaXRpb24gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gIHJldHVybiAoXG4gICAgZGVmaW5pdGlvbi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiZcbiAgICBkZWZpbml0aW9uLm9wZXJhdGlvbiA9PT0gJ3N1YnNjcmlwdGlvbidcbiAgKTtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQXBvbGxvTGlua1NlcnZpY2Uge1xuICByZWFkb25seSBodHRwTGluayA9IGluamVjdChIdHRwTGluayk7XG4gIHJlYWRvbmx5IFdlYlNvY2tldEltcGwgPSBXRUJTT0NLRVQuaW5qZWN0KCk7XG5cbiAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMV3NDbGllbnQoYmFzZVVybDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQ2xpZW50IHtcbiAgICByZXR1cm4gY3JlYXRlQ2xpZW50KHtcbiAgICAgIHVybDogYmFzZVVybC5yZXBsYWNlKCdodHRwJywgJ3dzJyksXG4gICAgICB3ZWJTb2NrZXRJbXBsOiB0aGlzLldlYlNvY2tldEltcGwsXG4gICAgICBjb25uZWN0aW9uUGFyYW1zOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBhd2FpdCByZXNvbHZlKGdldEhlYWRlcnMpO1xuICAgICAgICByZXR1cm4geyBoZWFkZXJzIH07XG4gICAgICB9LFxuICAgICAgbGF6eTogdHJ1ZSwgLy8g5b+F6KaB5pmC44Gu44G/5o6l57aa44KS6ZaL5aeLXG4gICAgICBzaG91bGRSZXRyeTogKCkgPT4gdHJ1ZSwgLy8g5YaN5o6l57aa44KS5pyJ5Yq55YyWXG4gICAgICByZXRyeUF0dGVtcHRzOiA1LCAvLyDlho3mjqXntproqabooYzlm57mlbDjgpLliLbpmZBcbiAgICAgIGtlZXBBbGl2ZTogMzAwMDAsIC8vIDMw56eS44GU44Go44Gr44Kt44O844OX44Ki44Op44Kk44OWXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVIdHRwTGluayhiYXNlVXJsOiBzdHJpbmcsIGdldEhlYWRlcnM6IEdldEhlYWRlcnMpOiBBcG9sbG9MaW5rIHtcbiAgICByZXR1cm4gQXBvbGxvTGluay5mcm9tKFtcbiAgICAgIHNldENvbnRleHQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gYXdhaXQgcmVzb2x2ZShnZXRIZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIHsgaGVhZGVycyB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuaHR0cExpbmsuY3JlYXRlKHsgdXJpOiBiYXNlVXJsLCB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIGNyZWF0ZVdlYlNvY2tldExpbmsoYmFzZVVybDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQXBvbGxvTGluayB7XG4gICAgcmV0dXJuIG5ldyBHcmFwaFFMV3NMaW5rKHRoaXMuY3JlYXRlR3JhcGhRTFdzQ2xpZW50KGJhc2VVcmwsIGdldEhlYWRlcnMpKTtcbiAgfVxuXG4gIGNyZWF0ZUF1dG9TcGxpdExpbmsoYmFzZVVybDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQXBvbGxvTGluayB7XG4gICAgcmV0dXJuIHNwbGl0KFxuICAgICAgKHsgcXVlcnkgfSkgPT4gaXNTdWJzY3JpcHRpb24ocXVlcnkpLFxuICAgICAgdGhpcy5jcmVhdGVXZWJTb2NrZXRMaW5rKGJhc2VVcmwsIGdldEhlYWRlcnMpLFxuICAgICAgdGhpcy5jcmVhdGVIdHRwTGluayhiYXNlVXJsLCBnZXRIZWFkZXJzKVxuICAgICk7XG4gIH1cblxuICBjcmVhdGVMaW5rKGJhc2VVcmw6IHN0cmluZywgZ2V0SGVhZGVyczogR2V0SGVhZGVycyk6IEFwb2xsb0xpbmsge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUF1dG9TcGxpdExpbmsoYmFzZVVybCwgZ2V0SGVhZGVycyk7XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable } from \"@angular/core\";\nimport { Apollo } from \"apollo-angular\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { ApolloLinkService, wrap } from \"../link\";\nimport { switchMap, take } from \"rxjs\";\nimport { CRYPTO } from \"@nx-ddd/common/infrastructure/externals/crypto/token\";\nimport * as i0 from \"@angular/core\";\nexport class ApolloClientManagerService {\n apollo = inject(Apollo);\n linkService = inject(ApolloLinkService);\n crypto = CRYPTO.inject() ?? globalThis.crypto;\n async buildClientName(endpoint, headers) {\n const data = new TextEncoder().encode(JSON.stringify(headers));\n const arrayBuffer = await this.crypto.subtle.digest('SHA-256', data);\n const hash = Array.from(new Uint8Array(arrayBuffer)).map(b => b.toString(16).padStart(2, '0')).join('');\n return `${endpoint}?headers=${hash}`;\n }\n getClient(endpoint, getHeaders) {\n return wrap(getHeaders()).pipe(take(1), switchMap(async (headers) => {\n const name = await this.buildClientName(endpoint, headers);\n const client = this.apollo.use(name);\n if (!client) {\n this.apollo.removeClient(name);\n this.apollo.createNamed(name, {\n link: this.linkService.createLink(endpoint, getHeaders),\n cache: new InMemoryCache()\n });\n return this.apollo.use(name);\n }\n return client;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloClientManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloClientManagerService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloClientManagerService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYXBvbGxvL2NsaWVudC1tYW5hZ2VyL2NsaWVudC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWMsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFHOUUsTUFBTSxPQUFPLDBCQUEwQjtJQUM1QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2QsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUV2RCxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQWdCLEVBQUUsT0FBK0I7UUFDL0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRSxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLE9BQU8sR0FBRyxRQUFRLFlBQVksSUFBSSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLFVBQXNCO1FBQ2hELE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM1QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUMxQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO29CQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztvQkFDdkQsS0FBSyxFQUFFLElBQUksYUFBYSxFQUFFO2lCQUMzQixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7dUdBL0JVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLGNBRGQsTUFBTTs7MkZBQ2xCLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQXBvbGxvLCBBcG9sbG9CYXNlIH0gZnJvbSBcImFwb2xsby1hbmd1bGFyXCI7XG5pbXBvcnQgeyBJbk1lbW9yeUNhY2hlIH0gZnJvbSBcIkBhcG9sbG8vY2xpZW50L2NhY2hlXCI7XG5pbXBvcnQgeyBBcG9sbG9MaW5rU2VydmljZSwgR2V0SGVhZGVycywgd3JhcCB9IGZyb20gXCIuLi9saW5rXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQ1JZUFRPIH0gZnJvbSBcIkBueC1kZGQvY29tbW9uL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy9jcnlwdG8vdG9rZW5cIjtcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQXBvbGxvQ2xpZW50TWFuYWdlclNlcnZpY2Uge1xuICByZWFkb25seSBhcG9sbG8gPSBpbmplY3QoQXBvbGxvKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxpbmtTZXJ2aWNlID0gaW5qZWN0KEFwb2xsb0xpbmtTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNyeXB0byA9IENSWVBUTy5pbmplY3QoKSA/PyBnbG9iYWxUaGlzLmNyeXB0bztcblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRDbGllbnROYW1lKGVuZHBvaW50OiBzdHJpbmcsIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGRhdGEgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJpbmdpZnkoaGVhZGVycykpO1xuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgdGhpcy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xuICAgIGNvbnN0IGhhc2ggPSBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSkubWFwKGIgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gICAgcmV0dXJuIGAke2VuZHBvaW50fT9oZWFkZXJzPSR7aGFzaH1gO1xuICB9XG5cbiAgZ2V0Q2xpZW50KGVuZHBvaW50OiBzdHJpbmcsIGdldEhlYWRlcnM6IEdldEhlYWRlcnMpOiBPYnNlcnZhYmxlPEFwb2xsb0Jhc2U8YW55Pj4ge1xuICAgIHJldHVybiB3cmFwKGdldEhlYWRlcnMoKSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoYXN5bmMgKGhlYWRlcnMpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGF3YWl0IHRoaXMuYnVpbGRDbGllbnROYW1lKGVuZHBvaW50LCBoZWFkZXJzKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5hcG9sbG8udXNlKG5hbWUpO1xuXG4gICAgICAgIGlmICghY2xpZW50KSB7XG4gICAgICAgICAgdGhpcy5hcG9sbG8ucmVtb3ZlQ2xpZW50KG5hbWUpO1xuICAgICAgICAgIHRoaXMuYXBvbGxvLmNyZWF0ZU5hbWVkKG5hbWUsIHtcbiAgICAgICAgICAgIGxpbms6IHRoaXMubGlua1NlcnZpY2UuY3JlYXRlTGluayhlbmRwb2ludCwgZ2V0SGVhZGVycyksXG4gICAgICAgICAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmFwb2xsby51c2UobmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xpZW50O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19","import { makeDecoratorFactories } from \"@nx-ddd/core\";\nimport { camelCase, snakeCase } from 'lodash-es';\nconst { createDecorator, \n// createClassDecorator,\naddAnnotation, getAnnotations, } = makeDecoratorFactories((type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }), '[@nx-ddd/hasura] annotations');\nexport function getFieldAnnotationMap(T, prefix = '') {\n const annotations = Hasura.getAnnotations(T);\n return (annotations ?? []).reduce((acc, annotation) => {\n const currentKey = prefix ? camelCase(`${prefix}_${annotation.fieldName}`) : annotation.fieldName;\n return { ...acc, [currentKey]: annotation };\n }, {});\n}\nexport function getFlattenFieldAnnotations(T, prefix = '') {\n const annotations = Hasura.getAnnotations(T);\n return (annotations ?? []).reduce((acc, annotation) => {\n const currentKey = prefix ? camelCase(`${prefix}_${annotation.fieldName}`) : annotation.fieldName;\n if (annotation.childType) {\n return {\n ...acc,\n ...getFlattenFieldAnnotations(annotation.childType(), currentKey)\n };\n }\n return {\n ...acc,\n [currentKey]: annotation\n };\n }, {});\n}\nexport function getFields(T, options = {\n prefix: '',\n case: 'snake'\n}) {\n const annotations = Hasura.getAnnotations(T).filter((annotation) => annotation.type !== 'table');\n const changeCase = options?.case === 'snake' ? snakeCase : camelCase;\n const fields = (annotations ?? []).flatMap((annotation) => {\n const currentKey = changeCase(options?.prefix ? `${options?.prefix}_${annotation.fieldName}` : annotation.fieldName);\n if (annotation.childType) {\n return [\n ...getFields(annotation.childType(), {\n prefix: currentKey,\n case: options?.case,\n })\n ];\n }\n return [currentKey];\n });\n return fields;\n}\nfunction createClassDecorator(type) {\n return (nameOrProps) => {\n const props = typeof nameOrProps === 'string' ? { name: nameOrProps } : nameOrProps;\n return (target) => {\n const name = props?.name || target.name;\n const annotation = { type, name };\n addAnnotation(target, annotation);\n };\n };\n}\nexport function getTableName(target) {\n const annotations = getAnnotations(target);\n const annotation = annotations.find((annotation) => annotation.type === 'table');\n return annotation.name;\n}\nexport const Hasura = {\n Table: createClassDecorator('table'),\n Text: createDecorator('text'),\n Timestamp: createDecorator('timestamp'),\n Date: createDecorator('date'),\n Integer: createDecorator('integer'),\n Numeric: createDecorator('numeric'),\n Boolean: createDecorator('boolean'),\n Map: (childType) => createDecorator('map', { childType })(),\n JSON: createDecorator('json'),\n Location: createDecorator('location'),\n addAnnotation,\n createDecorator,\n getAnnotations,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvZGVjb3JhdG9ycy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqRCxNQUFNLEVBQ0osZUFBZTtBQUNmLHdCQUF3QjtBQUN4QixhQUFhLEVBQ2IsY0FBYyxHQUNmLEdBQUcsc0JBQXNCLENBQ3hCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUNyRyw4QkFBOEIsQ0FDL0IsQ0FBQztBQUVGLE1BQU0sVUFBVSxxQkFBcUIsQ0FBYSxDQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUNsRyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7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R0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN0RixPQUFRLFVBQWtCLENBQUMsSUFBSSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUc7SUFDcEIsS0FBSyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztJQUNwQyxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUM3QixTQUFTLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUM3QixPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxHQUFHLEVBQUUsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBRTtJQUNwRSxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUM3QixRQUFRLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxhQUFhO0lBQ2IsZUFBZTtJQUNmLGNBQWM7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZURlY29yYXRvckZhY3RvcmllcyB9IGZyb20gXCJAbngtZGRkL2NvcmVcIjtcbmltcG9ydCB7IGNhbWVsQ2FzZSwgc25ha2VDYXNlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3Qge1xuICBjcmVhdGVEZWNvcmF0b3IsXG4gIC8vIGNyZWF0ZUNsYXNzRGVjb3JhdG9yLFxuICBhZGRBbm5vdGF0aW9uLFxuICBnZXRBbm5vdGF0aW9ucyxcbn0gPSBtYWtlRGVjb3JhdG9yRmFjdG9yaWVzKFxuICAodHlwZSwgZmllbGROYW1lLCBwcm9wTmFtZSwgb3B0aW9ucykgPT4gKHsgdHlwZSwgZmllbGROYW1lLCBwcm9wTmFtZSwgY2hpbGRUeXBlOiBvcHRpb25zLmNoaWxkVHlwZSB9KSxcbiAgJ1tAbngtZGRkL2hhc3VyYV0gYW5ub3RhdGlvbnMnXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRBbm5vdGF0aW9uTWFwPEFubm90YXRpb24+KFQ6IGFueSwgcHJlZml4ID0gJycpOiBSZWNvcmQ8c3RyaW5nLCBBbm5vdGF0aW9uPiB7XG4gIGNvbnN0IGFubm90YXRpb25zID0gSGFzdXJhLmdldEFubm90YXRpb25zKFQpO1xuICByZXR1cm4gKGFubm90YXRpb25zID8/IFtdKS5yZWR1Y2UoKGFjYywgYW5ub3RhdGlvbikgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBwcmVmaXggPyBjYW1lbENhc2UoYCR7cHJlZml4fV8ke2Fubm90YXRpb24uZmllbGROYW1lfWApIDogYW5ub3RhdGlvbi5maWVsZE5hbWU7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbY3VycmVudEtleV06IGFubm90YXRpb24gfTtcbiAgfSwge30pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxhdHRlbkZpZWxkQW5ub3RhdGlvbnM8QW5ub3RhdGlvbj4oVDogYW55LCBwcmVmaXggPSAnJyk6IFJlY29yZDxzdHJpbmcsIEFubm90YXRpb24+IHtcbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBIYXN1cmEuZ2V0QW5ub3RhdGlvbnMoVCk7XG4gIHJldHVybiAoYW5ub3RhdGlvbnMgPz8gW10pLnJlZHVjZSgoYWNjLCBhbm5vdGF0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEtleSA9IHByZWZpeCA/IGNhbWVsQ2FzZShgJHtwcmVmaXh9XyR7YW5ub3RhdGlvbi5maWVsZE5hbWV9YCkgOiBhbm5vdGF0aW9uLmZpZWxkTmFtZTtcbiAgICBpZiAoYW5ub3RhdGlvbi5jaGlsZFR5cGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4uZ2V0RmxhdHRlbkZpZWxkQW5ub3RhdGlvbnMoYW5ub3RhdGlvbi5jaGlsZFR5cGUoKSwgY3VycmVudEtleSlcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICBbY3VycmVudEtleV06IGFubm90YXRpb25cbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHMoVDogYW55LCBvcHRpb25zOiB7XG4gIHByZWZpeD86IHN0cmluZztcbiAgY2FzZT86ICdzbmFrZScgfCAnY2FtZWwnO1xufSA9IHtcbiAgcHJlZml4OiAnJyxcbiAgY2FzZTogJ3NuYWtlJ1xufSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBIYXN1cmEuZ2V0QW5ub3RhdGlvbnMoVCkuZmlsdGVyKChhbm5vdGF0aW9uOiBhbnkpID0+IGFubm90YXRpb24udHlwZSAhPT0gJ3RhYmxlJyk7XG4gIGNvbnN0IGNoYW5nZUNhc2UgPSBvcHRpb25zPy5jYXNlID09PSAnc25ha2UnID8gc25ha2VDYXNlIDogY2FtZWxDYXNlO1xuICBjb25zdCBmaWVsZHMgPSAoYW5ub3RhdGlvbnMgPz8gW10pLmZsYXRNYXAoKGFubm90YXRpb24pID0+IHtcbiAgICBjb25zdCBjdXJyZW50S2V5ID0gY2hhbmdlQ2FzZShvcHRpb25zPy5wcmVmaXggPyBgJHtvcHRpb25zPy5wcmVmaXh9XyR7YW5ub3RhdGlvbi5maWVsZE5hbWV9YCA6IGFubm90YXRpb24uZmllbGROYW1lKTtcbiAgICBpZiAoYW5ub3RhdGlvbi5jaGlsZFR5cGUpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmdldEZpZWxkcyhhbm5vdGF0aW9uLmNoaWxkVHlwZSgpLCB7XG4gICAgICAgICAgcHJlZml4OiBjdXJyZW50S2V5LFxuICAgICAgICAgIGNhc2U6IG9wdGlvbnM/LmNhc2UsXG4gICAgICAgIH0pXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW2N1cnJlbnRLZXldO1xuICB9KTtcbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2xhc3NEZWNvcmF0b3IodHlwZTogc3RyaW5nKSB7XG4gIHJldHVybiAobmFtZU9yUHJvcHM6IHsgbmFtZTogc3RyaW5nIH0gfCBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHR5cGVvZiBuYW1lT3JQcm9wcyA9PT0gJ3N0cmluZycgPyB7IG5hbWU6IG5hbWVPclByb3BzIH0gOiBuYW1lT3JQcm9wcztcbiAgICByZXR1cm4gKHRhcmdldDogYW55KSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gcHJvcHM/Lm5hbWUgfHwgdGFyZ2V0Lm5hbWU7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uID0geyB0eXBlLCBuYW1lIH07XG4gICAgICBhZGRBbm5vdGF0aW9uKHRhcmdldCwgYW5ub3RhdGlvbiBhcyBhbnkpO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWUodGFyZ2V0OiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBhbm5vdGF0aW9ucyA9IGdldEFubm90YXRpb25zKHRhcmdldCk7XG4gIGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5maW5kKChhbm5vdGF0aW9uOiBhbnkpID0+IGFubm90YXRpb24udHlwZSA9PT0gJ3RhYmxlJyk7XG4gIHJldHVybiAoYW5ub3RhdGlvbiBhcyBhbnkpLm5hbWU7XG59XG5cbmV4cG9ydCBjb25zdCBIYXN1cmEgPSB7XG4gIFRhYmxlOiBjcmVhdGVDbGFzc0RlY29yYXRvcigndGFibGUnKSxcbiAgVGV4dDogY3JlYXRlRGVjb3JhdG9yKCd0ZXh0JyksXG4gIFRpbWVzdGFtcDogY3JlYXRlRGVjb3JhdG9yKCd0aW1lc3RhbXAnKSxcbiAgRGF0ZTogY3JlYXRlRGVjb3JhdG9yKCdkYXRlJyksXG4gIEludGVnZXI6IGNyZWF0ZURlY29yYXRvcignaW50ZWdlcicpLFxuICBOdW1lcmljOiBjcmVhdGVEZWNvcmF0b3IoJ251bWVyaWMnKSxcbiAgQm9vbGVhbjogY3JlYXRlRGVjb3JhdG9yKCdib29sZWFuJyksXG4gIE1hcDogKGNoaWxkVHlwZTogKCkgPT4gYW55KSA9PiBjcmVhdGVEZWNvcmF0b3IoJ21hcCcsIHtjaGlsZFR5cGV9KSgpLFxuICBKU09OOiBjcmVhdGVEZWNvcmF0b3IoJ2pzb24nKSxcbiAgTG9jYXRpb246IGNyZWF0ZURlY29yYXRvcignbG9jYXRpb24nKSxcbiAgYWRkQW5ub3RhdGlvbixcbiAgY3JlYXRlRGVjb3JhdG9yLFxuICBnZXRBbm5vdGF0aW9ucyxcbn07XG4iXX0=","import dayjs from 'dayjs';\nimport { format } from 'date-fns';\nimport { formatInTimeZone } from 'date-fns-tz';\n/**\n * Converts a Date or dayjs object to Hasura timestamp format\n */\nexport function toTimestamp(date) {\n if (dayjs.isDayjs(date)) {\n return date.toISOString();\n }\n else if (date instanceof Date) {\n return format(date, 'yyyy-MM-dd HH:mm:ss');\n }\n else {\n return null;\n }\n}\n/**\n * Converts a Date, dayjs, or string to Hasura date format\n */\nexport function toDate(date) {\n if (typeof date === 'undefined') {\n return undefined;\n }\n else if (dayjs.isDayjs(date)) {\n return date.format('YYYY-MM-DD');\n }\n else if (date instanceof Date) {\n return formatInTimeZone(date, Intl.DateTimeFormat().resolvedOptions().timeZone, 'yyyy-MM-dd');\n }\n else if (typeof date === 'string') {\n return date;\n }\n else {\n return null;\n }\n}\n/**\n * Converts a value to a number, handling various input types\n */\nexport function toNumber(value) {\n if (typeof value === 'undefined')\n return undefined;\n if (value === null)\n return null;\n if (value === '' || (typeof value === 'string' && value.trim() === ''))\n return null;\n return isNaN(Number(value)) ? null : Number(value);\n}\n/**\n * Converts a lat/lng position to Hasura GeoJSON Point format\n */\nexport function toHasuraLocation(position) {\n if (!(position?.lat && position?.lng))\n return null;\n return {\n type: 'Point',\n crs: {\n type: 'name',\n properties: { name: 'urn:ogc:def:crs:EPSG::4326' }\n },\n coordinates: [position.lng, position.lat]\n };\n}\n/**\n * Converts a Hasura GeoJSON Point to a lat/lng object\n */\nexport function fromHasuraLocation(location) {\n if (!location)\n return null;\n return {\n lat: location.coordinates?.[1],\n lng: location.coordinates?.[0],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvdHlwZS1jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBK0I7SUFDekQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztTQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFvRDtJQUN6RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMsQ0FBQztTQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEcsQ0FBQztTQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNwRixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQXVEO0lBQ3RGLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ25ELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxNQUFNO1lBQ1osVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1NBQ25EO1FBQ0QsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsUUFTbEM7SUFDQyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzNCLE9BQU87UUFDTCxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QixHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMvQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBmb3JtYXRJblRpbWVab25lIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgRGF0ZSBvciBkYXlqcyBvYmplY3QgdG8gSGFzdXJhIHRpbWVzdGFtcCBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVGltZXN0YW1wKGRhdGU6IGRheWpzLkRheWpzIHwgRGF0ZSB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKGRheWpzLmlzRGF5anMoZGF0ZSkpIHtcbiAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICB9IGVsc2UgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGZvcm1hdChkYXRlLCAneXl5eS1NTS1kZCBISDptbTpzcycpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBEYXRlLCBkYXlqcywgb3Igc3RyaW5nIHRvIEhhc3VyYSBkYXRlIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRlKGRhdGU6IGRheWpzLkRheWpzIHwgRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBkYXRlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSBpZiAoZGF5anMuaXNEYXlqcyhkYXRlKSkge1xuICAgIHJldHVybiBkYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICB9IGVsc2UgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGZvcm1hdEluVGltZVpvbmUoZGF0ZSwgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLCAneXl5eS1NTS1kZCcpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkYXRlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB2YWx1ZSB0byBhIG51bWJlciwgaGFuZGxpbmcgdmFyaW91cyBpbnB1dCB0eXBlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWU6IGFueSk6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgaWYgKHZhbHVlID09PSAnJyB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSkgcmV0dXJuIG51bGw7XG4gIHJldHVybiBpc05hTihOdW1iZXIodmFsdWUpKSA/IG51bGwgOiBOdW1iZXIodmFsdWUpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGF0L2xuZyBwb3NpdGlvbiB0byBIYXN1cmEgR2VvSlNPTiBQb2ludCBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGFzdXJhTG9jYXRpb24ocG9zaXRpb246IHtsYXQ6IG51bWJlciwgbG5nOiBudW1iZXJ9IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICBpZiAoIShwb3NpdGlvbj8ubGF0ICYmIHBvc2l0aW9uPy5sbmcpKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnUG9pbnQnLFxuICAgIGNyczoge1xuICAgICAgdHlwZTogJ25hbWUnLFxuICAgICAgcHJvcGVydGllczogeyBuYW1lOiAndXJuOm9nYzpkZWY6Y3JzOkVQU0c6OjQzMjYnIH1cbiAgICB9LFxuICAgIGNvb3JkaW5hdGVzOiBbcG9zaXRpb24ubG5nLCBwb3NpdGlvbi5sYXRdXG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBIYXN1cmEgR2VvSlNPTiBQb2ludCB0byBhIGxhdC9sbmcgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSGFzdXJhTG9jYXRpb24obG9jYXRpb246IHtcbiAgdHlwZTogJ1BvaW50JyxcbiAgY3JzOiB7XG4gICAgdHlwZTogJ25hbWUnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG5hbWU6ICd1cm46b2djOmRlZjpjcnM6RVBTRzo6NDMyNidcbiAgICB9XG4gIH0sXG4gIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdXG59KSB7XG4gIGlmICghbG9jYXRpb24pIHJldHVybiBudWxsO1xuICByZXR1cm4ge1xuICAgIGxhdDogbG9jYXRpb24uY29vcmRpbmF0ZXM/LlsxXSxcbiAgICBsbmc6IGxvY2F0aW9uLmNvb3JkaW5hdGVzPy5bMF0sXG4gIH07XG59XG4iXX0=","import { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { get, snakeCase } from 'lodash-es';\nimport { parse } from 'date-fns';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { fromHasuraLocation } from './type-converters';\n/**\n * Extracts nested map fields recursively from a flattened Hasura object\n */\nfunction extractNestedMap(mapKey, childType, object) {\n const childFieldMap = getFieldAnnotationMap(childType);\n const childFields = {};\n Object.entries(childFieldMap).forEach(([childKey, childAnnotation]) => {\n if (childAnnotation.type === 'map') {\n const nested = extractNestedMap(`${mapKey}_${childKey}`, childAnnotation.childType(), object);\n if (nested && Object.keys(nested).length > 0) {\n childFields[childAnnotation.fieldName] = nested;\n }\n }\n else {\n const flattenedKey = `${mapKey}_${childKey}`;\n const value = get(object, snakeCase(flattenedKey));\n if (typeof value !== 'undefined') {\n childFields[childAnnotation.fieldName] = value;\n }\n }\n });\n return childFields;\n}\n/**\n * Converts a Hasura object to an entity instance\n */\nexport function fromHasura(_object, type) {\n const fieldMap = getFieldAnnotationMap(type);\n // First extract any flattened map fields (e.g., profile_bio)\n const nestedObjects = {};\n Object.entries(fieldMap).forEach(([key, annotation]) => {\n if (annotation.type === 'map') {\n const childType = annotation.childType();\n const nested = extractNestedMap(key, childType, _object);\n if (nested && Object.keys(nested).length > 0) {\n nestedObjects[annotation.fieldName] = nested;\n }\n }\n });\n // Now process all fields normally\n const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {\n // For map types, use our previously extracted nested objects\n if (annotation.type === 'map') {\n const nestedObj = nestedObjects[annotation.fieldName];\n if (nestedObj) {\n return { ...acc, [annotation.fieldName]: nestedObj };\n }\n return acc;\n }\n const value = get(_object, snakeCase(key));\n if (typeof value === 'undefined')\n return acc;\n switch (annotation.type) {\n case 'text':\n return { ...acc, [annotation.fieldName]: value };\n case 'timestamp':\n return { ...acc, [annotation.fieldName]: value === null ? null : parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()) };\n case 'date': {\n const parsedDate = value === null ? null : parse(value, 'yyyy-MM-dd', new Date());\n return { ...acc, [annotation.fieldName]: parsedDate };\n }\n case 'numeric':\n return { ...acc, [annotation.fieldName]: value };\n case 'integer':\n return { ...acc, [annotation.fieldName]: value };\n case 'json':\n return { ...acc, [annotation.fieldName]: value };\n case 'location':\n return { ...acc, [annotation.fieldName]: fromHasuraLocation(value) };\n default:\n return { ...acc, [annotation.fieldName]: value };\n }\n }, {});\n return plainToInstanceWithValid(type, obj);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1oYXN1cmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2NvbnZlcnRlci9mcm9tLWhhc3VyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXdkQ7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxTQUFjLEVBQUUsTUFBVztJQUNuRSxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBa0IsU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztJQUU1QyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxFQUFFLEVBQUU7UUFDcEUsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxJQUFJLFFBQVEsRUFBRSxFQUFFLGVBQWUsQ0FBQyxTQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7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QUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEYsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3hELENBQUM7WUFDRCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25ELEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkQsS0FBSyxNQUFNO2dCQUNULE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNuRCxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkU7Z0JBQ0UsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLHdCQUF3QixDQUFDLElBQVcsRUFBRSxHQUFHLENBQU0sQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGxhaW5Ub0luc3RhbmNlV2l0aFZhbGlkIH0gZnJvbSAnQG54LWRkZC9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4nO1xuaW1wb3J0IHsgZ2V0LCBzbmFrZUNhc2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBnZXRGaWVsZEFubm90YXRpb25NYXAgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcbmltcG9ydCB7IGZyb21IYXN1cmFMb2NhdGlvbiB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXJzJztcblxuLyoqXG4gKiBGaWVsZCBhbm5vdGF0aW9uIHR5cGUgZm9yIEhhc3VyYSBkZWNvcmF0b3JzXG4gKi9cbmludGVyZmFjZSBGaWVsZEFubm90YXRpb24ge1xuICB0eXBlOiAndGV4dCcgfCAndGltZXN0YW1wJyB8ICdkYXRlJyB8ICdudW1lcmljJyB8ICdpbnRlZ2VyJyB8ICdqc29uJyB8ICdtYXAnIHwgJ2xvY2F0aW9uJztcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIGNoaWxkVHlwZT86ICgpID0+IGFueTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQgbWFwIGZpZWxkcyByZWN1cnNpdmVseSBmcm9tIGEgZmxhdHRlbmVkIEhhc3VyYSBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdE5lc3RlZE1hcChtYXBLZXk6IHN0cmluZywgY2hpbGRUeXBlOiBhbnksIG9iamVjdDogYW55KTogYW55IHtcbiAgY29uc3QgY2hpbGRGaWVsZE1hcCA9IGdldEZpZWxkQW5ub3RhdGlvbk1hcDxGaWVsZEFubm90YXRpb24+KGNoaWxkVHlwZSk7XG4gIGNvbnN0IGNoaWxkRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgT2JqZWN0LmVudHJpZXMoY2hpbGRGaWVsZE1hcCkuZm9yRWFjaCgoW2NoaWxkS2V5LCBjaGlsZEFubm90YXRpb25dKSA9PiB7XG4gICAgaWYgKGNoaWxkQW5ub3RhdGlvbi50eXBlID09PSAnbWFwJykge1xuICAgICAgY29uc3QgbmVzdGVkID0gZXh0cmFjdE5lc3RlZE1hcChgJHttYXBLZXl9XyR7Y2hpbGRLZXl9YCwgY2hpbGRBbm5vdGF0aW9uLmNoaWxkVHlwZSEoKSwgb2JqZWN0KTtcbiAgICAgIGlmIChuZXN0ZWQgJiYgT2JqZWN0LmtleXMobmVzdGVkKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoaWxkRmllbGRzW2NoaWxkQW5ub3RhdGlvbi5maWVsZE5hbWVdID0gbmVzdGVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmbGF0dGVuZWRLZXkgPSBgJHttYXBLZXl9XyR7Y2hpbGRLZXl9YDtcbiAgICAgIGNvbnN0IHZhbHVlID0gZ2V0KG9iamVjdCwgc25ha2VDYXNlKGZsYXR0ZW5lZEtleSkpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY2hpbGRGaWVsZHNbY2hpbGRBbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjaGlsZEZpZWxkcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIEhhc3VyYSBvYmplY3QgdG8gYW4gZW50aXR5IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSGFzdXJhPFQ+KF9vYmplY3Q6IGFueSwgdHlwZTogVHlwZTxUPik6IFQge1xuICBjb25zdCBmaWVsZE1hcCA9IGdldEZpZWxkQW5ub3RhdGlvbk1hcDxGaWVsZEFubm90YXRpb24+KHR5cGUpO1xuXG4gIC8vIEZpcnN0IGV4dHJhY3QgYW55IGZsYXR0ZW5lZCBtYXAgZmllbGRzIChlLmcuLCBwcm9maWxlX2JpbylcbiAgY29uc3QgbmVzdGVkT2JqZWN0czogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7fTtcbiAgT2JqZWN0LmVudHJpZXMoZmllbGRNYXApLmZvckVhY2goKFtrZXksIGFubm90YXRpb25dKSA9PiB7XG4gICAgaWYgKGFubm90YXRpb24udHlwZSA9PT0gJ21hcCcpIHtcbiAgICAgIGNvbnN0IGNoaWxkVHlwZSA9IGFubm90YXRpb24uY2hpbGRUeXBlISgpO1xuICAgICAgY29uc3QgbmVzdGVkID0gZXh0cmFjdE5lc3RlZE1hcChrZXksIGNoaWxkVHlwZSwgX29iamVjdCk7XG4gICAgICBpZiAobmVzdGVkICYmIE9iamVjdC5rZXlzKG5lc3RlZCkubGVuZ3RoID4gMCkge1xuICAgICAgICBuZXN0ZWRPYmplY3RzW2Fubm90YXRpb24uZmllbGROYW1lXSA9IG5lc3RlZDtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIE5vdyBwcm9jZXNzIGFsbCBmaWVsZHMgbm9ybWFsbHlcbiAgY29uc3Qgb2JqID0gT2JqZWN0LmVudHJpZXMoZmllbGRNYXApLnJlZHVjZSgoYWNjLCBba2V5LCBhbm5vdGF0aW9uXSkgPT4ge1xuICAgIC8vIEZvciBtYXAgdHlwZXMsIHVzZSBvdXIgcHJldmlvdXNseSBleHRyYWN0ZWQgbmVzdGVkIG9iamVjdHNcbiAgICBpZiAoYW5ub3RhdGlvbi50eXBlID09PSAnbWFwJykge1xuICAgICAgY29uc3QgbmVzdGVkT2JqID0gbmVzdGVkT2JqZWN0c1thbm5vdGF0aW9uLmZpZWxkTmFtZV07XG4gICAgICBpZiAobmVzdGVkT2JqKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2Fubm90YXRpb24uZmllbGROYW1lXTogbmVzdGVkT2JqIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gZ2V0KF9vYmplY3QsIHNuYWtlQ2FzZShrZXkpKTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGFjYztcblxuICAgIHN3aXRjaCAoYW5ub3RhdGlvbi50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiB2YWx1ZSB9O1xuICAgICAgY2FzZSAndGltZXN0YW1wJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiB2YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiBwYXJzZSh2YWx1ZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnLCBuZXcgRGF0ZSgpKSB9O1xuICAgICAgY2FzZSAnZGF0ZSc6IHtcbiAgICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHZhbHVlID09PSBudWxsID8gbnVsbCA6IHBhcnNlKHZhbHVlLCAneXl5eS1NTS1kZCcsIG5ldyBEYXRlKCkpO1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFthbm5vdGF0aW9uLmZpZWxkTmFtZV06IHBhcnNlZERhdGUgfTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ251bWVyaWMnOlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFthbm5vdGF0aW9uLmZpZWxkTmFtZV06IHZhbHVlIH07XG4gICAgICBjYXNlICdpbnRlZ2VyJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiB2YWx1ZSB9O1xuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2Fubm90YXRpb24uZmllbGROYW1lXTogdmFsdWUgfTtcbiAgICAgIGNhc2UgJ2xvY2F0aW9uJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiBmcm9tSGFzdXJhTG9jYXRpb24odmFsdWUpIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFthbm5vdGF0aW9uLmZpZWxkTmFtZV06IHZhbHVlIH07XG4gICAgfVxuICB9LCB7fSk7XG5cbiAgcmV0dXJuIHBsYWluVG9JbnN0YW5jZVdpdGhWYWxpZCh0eXBlIGFzIGFueSwgb2JqKSBhcyBUO1xufVxuIl19","import { snakeCase } from 'lodash-es';\n/**\n * Recursively converts object keys from camelCase to snake_case\n */\nexport function deepCamelToSnakeCase(obj) {\n if (Array.isArray(obj))\n return obj.map(deepCamelToSnakeCase);\n if (obj instanceof Date)\n return obj;\n if (obj && typeof obj === \"object\") {\n const result = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n result[snakeCase(key)] = deepCamelToSnakeCase(obj[key]);\n }\n return result;\n }\n return obj;\n}\n/**\n * Converts snake_case string to camelCase\n */\nfunction camelCase(str) {\n return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n/**\n * Recursively converts object keys from snake_case to camelCase\n */\nexport function deepSnakeToCamelCase(obj) {\n if (Array.isArray(obj))\n return obj.map(deepSnakeToCamelCase);\n if (obj instanceof Date)\n return obj;\n if (obj && typeof obj === \"object\") {\n const result = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[camelCase(key)] = deepSnakeToCamelCase(obj[key]);\n }\n }\n return result;\n }\n return obj;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb252ZXJ0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvY2FzZS1jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFvQnRDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEdBQU07SUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBd0IsQ0FBQztJQUNwRixJQUFJLEdBQUcsWUFBWSxJQUFJO1FBQUUsT0FBTyxHQUEwQixDQUFDO0lBQzNELElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7Z0JBQ2hELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsQ0FBRSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sR0FBMEIsQ0FBQztBQUNwQyxDQUFDO0FBa0JEOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsR0FBVztJQUM1QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEdBQU07SUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBd0IsQ0FBQztJQUNwRixJQUFJLEdBQUcsWUFBWSxJQUFJO1FBQUUsT0FBTyxHQUEwQixDQUFDO0lBQzNELElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsb0JBQW9CLENBQUUsR0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxHQUEwQixDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzbmFrZUNhc2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIGNhbWVsQ2FzZSB0byBzbmFrZV9jYXNlIGNvbnZlcnNpb25cbiAqL1xudHlwZSBDYW1lbFRvU25ha2VDYXNlPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIGAke2luZmVyIFR9JHtpbmZlciBVfWBcbiAgICA/IFUgZXh0ZW5kcyBVbmNhcGl0YWxpemU8VT5cbiAgICAgID8gYCR7TG93ZXJjYXNlPFQ+fSR7Q2FtZWxUb1NuYWtlQ2FzZTxVPn1gXG4gICAgICA6IGAke0xvd2VyY2FzZTxUPn1fJHtDYW1lbFRvU25ha2VDYXNlPFU+fWBcbiAgICA6IFM7XG5cbnR5cGUgRGVlcENhbWVsVG9TbmFrZTxUPiA9IFQgZXh0ZW5kcyBEYXRlXG4gID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPlxuICA/IERlZXBDYW1lbFRvU25ha2U8VT5bXVxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgPyB7IFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIHN0cmluZyA/IENhbWVsVG9TbmFrZUNhc2U8Sz4gOiBLXTogRGVlcENhbWVsVG9TbmFrZTxUW0tdPiB9XG4gIDogVDtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSBjb252ZXJ0cyBvYmplY3Qga2V5cyBmcm9tIGNhbWVsQ2FzZSB0byBzbmFrZV9jYXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2FtZWxUb1NuYWtlQ2FzZTxUPihvYmo6IFQpOiBEZWVwQ2FtZWxUb1NuYWtlPFQ+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkgcmV0dXJuIG9iai5tYXAoZGVlcENhbWVsVG9TbmFrZUNhc2UpIGFzIERlZXBDYW1lbFRvU25ha2U8VD47XG4gIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gb2JqIGFzIERlZXBDYW1lbFRvU25ha2U8VD47XG4gIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSlcbiAgICAgICAgcmVzdWx0W3NuYWtlQ2FzZShrZXkpXSA9IGRlZXBDYW1lbFRvU25ha2VDYXNlKChvYmogYXMgYW55KVtrZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gb2JqIGFzIERlZXBDYW1lbFRvU25ha2U8VD47XG59XG5cbi8qKlxuICogVHlwZSBkZWZpbml0aW9ucyBmb3Igc25ha2VfY2FzZSB0byBjYW1lbENhc2UgY29udmVyc2lvblxuICovXG50eXBlIFNuYWtlVG9DYW1lbENhc2U8UyBleHRlbmRzIHN0cmluZz4gPVxuICBTIGV4dGVuZHMgYCR7aW5mZXIgVH1fJHtpbmZlciBVfWBcbiAgICA/IGAke1R9JHtDYXBpdGFsaXplPFNuYWtlVG9DYW1lbENhc2U8VT4+fWBcbiAgICA6IFM7XG5cbnR5cGUgRGVlcFNuYWtlVG9DYW1lbDxUPiA9IFQgZXh0ZW5kcyBEYXRlXG4gID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPlxuICA/IERlZXBTbmFrZVRvQ2FtZWw8VT5bXVxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgPyB7IFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIHN0cmluZyA/IFNuYWtlVG9DYW1lbENhc2U8Sz4gOiBLXTogRGVlcFNuYWtlVG9DYW1lbDxUW0tdPiB9XG4gIDogVDtcblxuLyoqXG4gKiBDb252ZXJ0cyBzbmFrZV9jYXNlIHN0cmluZyB0byBjYW1lbENhc2VcbiAqL1xuZnVuY3Rpb24gY2FtZWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9fKFthLXpdKS9nLCAoXywgbGV0dGVyKSA9PiBsZXR0ZXIudG9VcHBlckNhc2UoKSk7XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgY29udmVydHMgb2JqZWN0IGtleXMgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcFNuYWtlVG9DYW1lbENhc2U8VD4ob2JqOiBUKTogRGVlcFNuYWtlVG9DYW1lbDxUPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHJldHVybiBvYmoubWFwKGRlZXBTbmFrZVRvQ2FtZWxDYXNlKSBhcyBEZWVwU25ha2VUb0NhbWVsPFQ+O1xuICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIG9iaiBhcyBEZWVwU25ha2VUb0NhbWVsPFQ+O1xuICBpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2NhbWVsQ2FzZShrZXkpXSA9IGRlZXBTbmFrZVRvQ2FtZWxDYXNlKChvYmogYXMgYW55KVtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gb2JqIGFzIERlZXBTbmFrZVRvQ2FtZWw8VD47XG59XG4iXX0=","import { get } from 'lodash-es';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { deepCamelToSnakeCase } from './case-converters';\nimport { toTimestamp, toDate, toNumber, toHasuraLocation } from './type-converters';\n/**\n * Converts an entity to Hasura format\n */\nexport function toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {\n const fieldMap = getFieldAnnotationMap(type);\n const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {\n const value = get(object, annotation.fieldName);\n if (typeof value === 'undefined')\n return acc;\n switch (annotation.type) {\n case 'text':\n return { ...acc, [key]: value };\n case 'timestamp':\n return { ...acc, [key]: toTimestamp(value) };\n case 'date':\n return { ...acc, [key]: toDate(value) };\n case 'numeric':\n return { ...acc, [key]: toNumber(value) };\n case 'integer':\n return { ...acc, [key]: toNumber(value) };\n case 'json':\n return { ...acc, [key]: value };\n case 'map': {\n const childObj = toHasura(value, annotation.childType(), { extraFunc });\n const flattenedObj = Object.entries(childObj).reduce((childAcc, [childKey, childValue]) => ({\n ...childAcc,\n [`${key}_${childKey}`]: childValue\n }), {});\n return { ...acc, ...flattenedObj };\n }\n case 'location':\n return { ...acc, [key]: toHasuraLocation(value) };\n default:\n return { ...acc, [key]: value };\n }\n }, {});\n return extraFunc(obj);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8taGFzdXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvdG8taGFzdXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBa0JwRjs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE1BQVMsRUFDVCxJQUFhLEVBQ2IsRUFBRSxTQUFTLEdBQUcsb0JBQW9CLEtBQXNCLEVBQUU7SUFFMUQsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQWtCLElBQUksQ0FBQyxDQUFDO0lBRTlELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7UUFDckUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFN0MsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2xDLEtBQUssV0FBVztnQkFDZCxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbEMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFNBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDekUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFGLEdBQUcsUUFBUTtvQkFDWCxDQUFDLEdBQUcsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVTtpQkFDbkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNSLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ3JDLENBQUM7WUFDRCxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRDtnQkFDRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4nO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGdldEZpZWxkQW5ub3RhdGlvbk1hcCB9IGZyb20gJy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgZGVlcENhbWVsVG9TbmFrZUNhc2UgfSBmcm9tICcuL2Nhc2UtY29udmVydGVycyc7XG5pbXBvcnQgeyB0b1RpbWVzdGFtcCwgdG9EYXRlLCB0b051bWJlciwgdG9IYXN1cmFMb2NhdGlvbiB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXJzJztcblxuLyoqXG4gKiBGaWVsZCBhbm5vdGF0aW9uIHR5cGUgZm9yIEhhc3VyYSBkZWNvcmF0b3JzXG4gKi9cbmludGVyZmFjZSBGaWVsZEFubm90YXRpb24ge1xuICB0eXBlOiAndGV4dCcgfCAndGltZXN0YW1wJyB8ICdkYXRlJyB8ICdudW1lcmljJyB8ICdpbnRlZ2VyJyB8ICdqc29uJyB8ICdtYXAnIHwgJ2xvY2F0aW9uJztcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIGNoaWxkVHlwZT86ICgpID0+IGFueTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0b0hhc3VyYSBjb252ZXJzaW9uXG4gKi9cbmludGVyZmFjZSBUb0hhc3VyYU9wdGlvbnMge1xuICBleHRyYUZ1bmM/OiAob2JqOiBhbnkpID0+IGFueTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBlbnRpdHkgdG8gSGFzdXJhIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IYXN1cmE8RT4oXG4gIG9iamVjdDogRSxcbiAgdHlwZTogVHlwZTxFPixcbiAgeyBleHRyYUZ1bmMgPSBkZWVwQ2FtZWxUb1NuYWtlQ2FzZSB9OiBUb0hhc3VyYU9wdGlvbnMgPSB7fVxuKSB7XG4gIGNvbnN0IGZpZWxkTWFwID0gZ2V0RmllbGRBbm5vdGF0aW9uTWFwPEZpZWxkQW5ub3RhdGlvbj4odHlwZSk7XG5cbiAgY29uc3Qgb2JqID0gT2JqZWN0LmVudHJpZXMoZmllbGRNYXApLnJlZHVjZSgoYWNjLCBba2V5LCBhbm5vdGF0aW9uXSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gZ2V0KG9iamVjdCwgYW5ub3RhdGlvbi5maWVsZE5hbWUpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gYWNjO1xuXG4gICAgc3dpdGNoIChhbm5vdGF0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiB2YWx1ZSB9O1xuICAgICAgY2FzZSAndGltZXN0YW1wJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdG9UaW1lc3RhbXAodmFsdWUpIH07XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdG9EYXRlKHZhbHVlKSB9O1xuICAgICAgY2FzZSAnbnVtZXJpYyc6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHRvTnVtYmVyKHZhbHVlKSB9O1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHRvTnVtYmVyKHZhbHVlKSB9O1xuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHZhbHVlIH07XG4gICAgICBjYXNlICdtYXAnOiB7XG4gICAgICAgIGNvbnN0IGNoaWxkT2JqID0gdG9IYXN1cmEodmFsdWUsIGFubm90YXRpb24uY2hpbGRUeXBlISgpLCB7IGV4dHJhRnVuYyB9KTtcbiAgICAgICAgY29uc3QgZmxhdHRlbmVkT2JqID0gT2JqZWN0LmVudHJpZXMoY2hpbGRPYmopLnJlZHVjZSgoY2hpbGRBY2MsIFtjaGlsZEtleSwgY2hpbGRWYWx1ZV0pID0+ICh7XG4gICAgICAgICAgLi4uY2hpbGRBY2MsXG4gICAgICAgICAgW2Ake2tleX1fJHtjaGlsZEtleX1gXTogY2hpbGRWYWx1ZVxuICAgICAgICB9KSwge30pO1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLmZsYXR0ZW5lZE9iaiB9O1xuICAgICAgfVxuICAgICAgY2FzZSAnbG9jYXRpb24nOlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiB0b0hhc3VyYUxvY2F0aW9uKHZhbHVlKSB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfTtcbiAgICB9XG4gIH0sIHt9KTtcblxuICByZXR1cm4gZXh0cmFGdW5jKG9iaik7XG59XG4iXX0=","import { fromHasura } from './from-hasura';\nimport { toHasura } from './to-hasura';\nimport * as typeConverters from './type-converters';\nexport { deepCamelToSnakeCase, deepSnakeToCamelCase } from './case-converters';\nexport { toTimestamp, toDate, toNumber, toHasuraLocation, fromHasuraLocation } from './type-converters';\nexport { fromHasura } from './from-hasura';\nexport { toHasura } from './to-hasura';\n/**\n * Creates a HasuraConverter for the given entity type\n */\nexport function getConverter(type) {\n return {\n toHasura(entity) {\n return toHasura(entity, type);\n },\n toHasuraMany(entities) {\n return entities.map((entity) => this.toHasura(entity));\n },\n fromHasura(entity) {\n return fromHasura(entity, type);\n },\n fromHasuraMany(entities) {\n return entities.map((entity) => this.fromHasura(entity));\n },\n };\n}\n/** @deprecated use `getConverter` instead */\nexport const makeConverter = getConverter;\n/**\n * @deprecated Use individual functions instead\n * HasuraUtils is kept for backward compatibility\n */\nexport class HasuraUtils {\n static toTimestamp = typeConverters.toTimestamp;\n static toDate = typeConverters.toDate;\n static toNumber = typeConverters.toNumber;\n static toHasuraLocation = typeConverters.toHasuraLocation;\n static fromHasuraLocation = typeConverters.fromHasuraLocation;\n static fromHasura = fromHasura;\n static toHasura = toHasura;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEtBQUssY0FBYyxNQUFNLG1CQUFtQixDQUFDO0FBSXBELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUksSUFBYTtJQUMzQyxPQUFPO1FBQ0wsUUFBUSxDQUFDLE1BQVM7WUFDaEIsT0FBTyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxZQUFZLENBQUMsUUFBYTtZQUN4QixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsVUFBVSxDQUFDLE1BQWM7WUFDdkIsT0FBTyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBTSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxjQUFjLENBQUMsUUFBa0I7WUFDL0IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFFMUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQ2hELE1BQU0sQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxNQUFNLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7SUFDMUMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxRCxNQUFNLENBQUMsa0JBQWtCLEdBQUcsY0FBYyxDQUFDLGtCQUFrQixDQUFDO0lBQzlELE1BQU0sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5pbXBvcnQgeyBIYXN1cmFDb252ZXJ0ZXIgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGZyb21IYXN1cmEgfSBmcm9tICcuL2Zyb20taGFzdXJhJztcbmltcG9ydCB7IHRvSGFzdXJhIH0gZnJvbSAnLi90by1oYXN1cmEnO1xuaW1wb3J0ICogYXMgdHlwZUNvbnZlcnRlcnMgZnJvbSAnLi90eXBlLWNvbnZlcnRlcnMnO1xuXG4vLyBSZS1leHBvcnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7IEhhc3VyYUNvbnZlcnRlciB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IHsgZGVlcENhbWVsVG9TbmFrZUNhc2UsIGRlZXBTbmFrZVRvQ2FtZWxDYXNlIH0gZnJvbSAnLi9jYXNlLWNvbnZlcnRlcnMnO1xuZXhwb3J0IHsgdG9UaW1lc3RhbXAsIHRvRGF0ZSwgdG9OdW1iZXIsIHRvSGFzdXJhTG9jYXRpb24sIGZyb21IYXN1cmFMb2NhdGlvbiB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXJzJztcbmV4cG9ydCB7IGZyb21IYXN1cmEgfSBmcm9tICcuL2Zyb20taGFzdXJhJztcbmV4cG9ydCB7IHRvSGFzdXJhIH0gZnJvbSAnLi90by1oYXN1cmEnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBIYXN1cmFDb252ZXJ0ZXIgZm9yIHRoZSBnaXZlbiBlbnRpdHkgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udmVydGVyPFQ+KHR5cGU6IFR5cGU8VD4pOiBIYXN1cmFDb252ZXJ0ZXI8VD4ge1xuICByZXR1cm4ge1xuICAgIHRvSGFzdXJhKGVudGl0eTogVCkge1xuICAgICAgcmV0dXJuIHRvSGFzdXJhKGVudGl0eSwgdHlwZSk7XG4gICAgfSxcbiAgICB0b0hhc3VyYU1hbnkoZW50aXRpZXM6IFRbXSkge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiB0aGlzLnRvSGFzdXJhKGVudGl0eSkpO1xuICAgIH0sXG4gICAgZnJvbUhhc3VyYShlbnRpdHk6IG9iamVjdCkge1xuICAgICAgcmV0dXJuIGZyb21IYXN1cmEoZW50aXR5LCB0eXBlKSBhcyBUO1xuICAgIH0sXG4gICAgZnJvbUhhc3VyYU1hbnkoZW50aXRpZXM6IG9iamVjdFtdKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKChlbnRpdHkpID0+IHRoaXMuZnJvbUhhc3VyYShlbnRpdHkpKTtcbiAgICB9LFxuICB9O1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBnZXRDb252ZXJ0ZXJgIGluc3RlYWQgKi9cbmV4cG9ydCBjb25zdCBtYWtlQ29udmVydGVyID0gZ2V0Q29udmVydGVyO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBpbmRpdmlkdWFsIGZ1bmN0aW9ucyBpbnN0ZWFkXG4gKiBIYXN1cmFVdGlscyBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gKi9cbmV4cG9ydCBjbGFzcyBIYXN1cmFVdGlscyB7XG4gIHN0YXRpYyB0b1RpbWVzdGFtcCA9IHR5cGVDb252ZXJ0ZXJzLnRvVGltZXN0YW1wO1xuICBzdGF0aWMgdG9EYXRlID0gdHlwZUNvbnZlcnRlcnMudG9EYXRlO1xuICBzdGF0aWMgdG9OdW1iZXIgPSB0eXBlQ29udmVydGVycy50b051bWJlcjtcbiAgc3RhdGljIHRvSGFzdXJhTG9jYXRpb24gPSB0eXBlQ29udmVydGVycy50b0hhc3VyYUxvY2F0aW9uO1xuICBzdGF0aWMgZnJvbUhhc3VyYUxvY2F0aW9uID0gdHlwZUNvbnZlcnRlcnMuZnJvbUhhc3VyYUxvY2F0aW9uO1xuICBzdGF0aWMgZnJvbUhhc3VyYSA9IGZyb21IYXN1cmE7XG4gIHN0YXRpYyB0b0hhc3VyYSA9IHRvSGFzdXJhO1xufVxuIl19","import { Injectable, inject } from \"@angular/core\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport * as i0 from \"@angular/core\";\nexport class HasuraInterceptor {\n config = inject(HASURA_CONFIG);\n intercept(req, next) {\n if (req.url.startsWith(this.config.url) && this.config.adminSecret) {\n return next.handle(req.clone({\n headers: req.headers.set('x-hasura-admin-secret', this.config.adminSecret),\n }));\n }\n return next.handle(req);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraInterceptor });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraInterceptor, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9oYXN1cmEuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdoRCxNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFdkMsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUMzRSxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt1R0FWVSxpQkFBaUI7MkdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEhBU1VSQV9DT05GSUcgfSBmcm9tIFwiLi9oYXN1cmEuY29uZmlnXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIYXN1cmFJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KEhBU1VSQV9DT05GSUcpO1xuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmIChyZXEudXJsLnN0YXJ0c1dpdGgodGhpcy5jb25maWcudXJsKSAmJiB0aGlzLmNvbmZpZy5hZG1pblNlY3JldCkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcS5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgneC1oYXN1cmEtYWRtaW4tc2VjcmV0JywgdGhpcy5jb25maWcuYWRtaW5TZWNyZXQpLFxuICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgfVxufSJdfQ==","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { InjectionToken } from \"@angular/core\";\nimport { HasuraInterceptor } from \"./hasura.interceptor\";\nexport const HASURA_CONFIG = new InjectionToken('HASURA_CONFIG');\nexport function provideHasuraConfig(config) {\n return [\n { provide: HASURA_CONFIG, useValue: config },\n config.adminSecret ? { provide: HTTP_INTERCEPTORS, useClass: HasuraInterceptor, multi: true } : [],\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvaGFzdXJhLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBZSxlQUFlLENBQUMsQ0FBQztBQUUvRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBb0I7SUFDdEQsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDbEcsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSGFzdXJhSW50ZXJjZXB0b3IgfSBmcm9tIFwiLi9oYXN1cmEuaW50ZXJjZXB0b3JcIjtcblxuZXhwb3J0IGludGVyZmFjZSBIYXN1cmFDb25maWcge1xuICBhZG1pblNlY3JldD86IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBIQVNVUkFfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEhhc3VyYUNvbmZpZz4oJ0hBU1VSQV9DT05GSUcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIYXN1cmFDb25maWcoY29uZmlnOiBIYXN1cmFDb25maWcpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7IHByb3ZpZGU6IEhBU1VSQV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICBjb25maWcuYWRtaW5TZWNyZXQgPyB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogSGFzdXJhSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlfSA6IFtdLFxuICBdO1xufVxuIl19","export { TransformToDayjs } from '@nx-ddd/common/domain';\nexport { IsDayjs } from 'class-validator-extended';\nimport { InjectionToken, inject } from '@angular/core';\nimport { ApolloLink, InMemoryCache } from '@apollo/client/core';\nimport { APOLLO_OPTIONS, provideApollo } from 'apollo-angular';\nimport { provideHasuraConfig } from './hasura.config';\nexport const GRAPHQL_HEADERS = new InjectionToken('GRAPHQL_HEADERS', {\n providedIn: 'root',\n factory: () => () => ({}),\n});\nexport function provideHasuraGetHeaders(useFactory) {\n return [\n { provide: GRAPHQL_HEADERS, useFactory },\n ];\n}\n/**\n * @deprecated use provideHasuraGetHeaders instead\n */\nexport const provideGraphqlHeaders = provideHasuraGetHeaders;\nexport function provideApolloOptions() {\n return {\n provide: APOLLO_OPTIONS,\n useFactory: (link) => ({ cache: new InMemoryCache(), link }),\n deps: [ApolloLink],\n };\n}\nexport function provideHasura(config) {\n return [\n provideApollo(() => ({\n cache: new InMemoryCache(),\n link: inject(ApolloLink),\n })),\n provideHasuraConfig(config),\n ];\n}\nexport function provideHasuraWithWebSocket(config) {\n return [\n provideApollo(() => ({\n cache: new InMemoryCache(),\n link: inject(ApolloLink),\n })),\n provideHasuraConfig(config),\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLmRpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9oYXN1cmEuZGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBd0IsY0FBYyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBTW5GLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBYSxpQkFBaUIsRUFBRTtJQUMvRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDMUIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxVQUFtRTtJQUVuRSxPQUFPO1FBQ0wsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRTtLQUN6QyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFFN0QsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLGNBQWM7UUFDdkIsVUFBVSxFQUFFLENBQUMsSUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3hFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBb0I7SUFDaEQsT0FBTztRQUNMLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRTtZQUMxQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7S0FDNUIsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBb0I7SUFDN0QsT0FBTztRQUNMLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRTtZQUMxQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7S0FDNUIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5leHBvcnQgeyBUcmFuc2Zvcm1Ub0RheWpzIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmV4cG9ydCB7IElzRGF5anMgfSBmcm9tICdjbGFzcy12YWxpZGF0b3ItZXh0ZW5kZWQnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG9MaW5rLCBJbk1lbW9yeUNhY2hlIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBBUE9MTE9fT1BUSU9OUywgcHJvdmlkZUFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEhBU1VSQV9DT05GSUcsIEhhc3VyYUNvbmZpZywgcHJvdmlkZUhhc3VyYUNvbmZpZyB9IGZyb20gJy4vaGFzdXJhLmNvbmZpZyc7XG5pbXBvcnQgeyBHZXRIZWFkZXJzIH0gZnJvbSAnLi9saW5rcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgUHJvbWlzZU9yT2JzZXJ2YWJsZTxUPiA9IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+IHwgVDtcblxuZXhwb3J0IGNvbnN0IEdSQVBIUUxfSEVBREVSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHZXRIZWFkZXJzPignR1JBUEhRTF9IRUFERVJTJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+ICgpID0+ICh7fSksXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIYXN1cmFHZXRIZWFkZXJzKFxuICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiBQcm9taXNlT3JPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+LFxuKTogUHJvdmlkZXIge1xuICByZXR1cm4gW1xuICAgIHsgcHJvdmlkZTogR1JBUEhRTF9IRUFERVJTLCB1c2VGYWN0b3J5IH0sXG4gIF07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHByb3ZpZGVIYXN1cmFHZXRIZWFkZXJzIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVHcmFwaHFsSGVhZGVycyA9IHByb3ZpZGVIYXN1cmFHZXRIZWFkZXJzO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwb2xsb09wdGlvbnMoKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogQVBPTExPX09QVElPTlMsXG4gICAgdXNlRmFjdG9yeTogKGxpbms6IEFwb2xsb0xpbmspID0+ICh7IGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSgpLCBsaW5rIH0pLFxuICAgIGRlcHM6IFtBcG9sbG9MaW5rXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIYXN1cmEoY29uZmlnOiBIYXN1cmFDb25maWcpOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSB7XG4gIHJldHVybiBbXG4gICAgcHJvdmlkZUFwb2xsbygoKSA9PiAoe1xuICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG4gICAgICBsaW5rOiBpbmplY3QoQXBvbGxvTGluayksXG4gICAgfSkpLFxuICAgIHByb3ZpZGVIYXN1cmFDb25maWcoY29uZmlnKSxcbiAgXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUhhc3VyYVdpdGhXZWJTb2NrZXQoY29uZmlnOiBIYXN1cmFDb25maWcpOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSB7XG4gIHJldHVybiBbXG4gICAgcHJvdmlkZUFwb2xsbygoKSA9PiAoe1xuICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG4gICAgICBsaW5rOiBpbmplY3QoQXBvbGxvTGluayksXG4gICAgfSkpLFxuICAgIHByb3ZpZGVIYXN1cmFDb25maWcoY29uZmlnKSxcbiAgXVxufVxuXG4iXX0=","export class GetQueryPartBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(params) {\n const queryName = `${this.config.tableName}_by_pk`;\n const variableDefinitions = ['$id: String!'];\n const queryPart = `${queryName}(id: $id) { ${this.config.columns.join(' ')} }`;\n return { queryPart, variableDefinitions, variables: params, operationName: queryName };\n }\n buildMany() {\n const queryName = this.config.tableName;\n const queryPart = `${queryName} { ${this.config.columns.join(' ')} }`;\n return { queryPart, variableDefinitions: [], variables: {}, operationName: queryName };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL3F1ZXJpZXMvZ2V0LmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG1CQUFtQjtJQUNQO0lBQXZCLFlBQXVCLE1BQW1CO1FBQW5CLFdBQU0sR0FBTixNQUFNLENBQWE7SUFBSSxDQUFDO0lBRS9DLEtBQUssQ0FBQyxNQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxRQUFRLENBQUM7UUFDbkQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLEdBQUcsU0FBUyxlQUFlLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDekYsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxHQUFHLFNBQVMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN6RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZywgVHJhbnNhY3Rpb25RdWVyeVBhcnQgfSBmcm9tIFwiLi4vX21ldGEvZ3JhcGhxbC1xdWVyeS1wYXJ0XCI7XG5cbmV4cG9ydCBjbGFzcyBHZXRRdWVyeVBhcnRCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IgKHByb3RlY3RlZCBjb25maWc6IFRhYmxlQ29uZmlnKSB7IH1cblxuICBidWlsZChwYXJhbXM6IHtpZDogc3RyaW5nfSk6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0IHtcbiAgICBjb25zdCBxdWVyeU5hbWUgPSBgJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X2J5X3BrYDtcbiAgICBjb25zdCB2YXJpYWJsZURlZmluaXRpb25zID0gWyckaWQ6IFN0cmluZyEnXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHtxdWVyeU5hbWV9KGlkOiAkaWQpIHsgJHt0aGlzLmNvbmZpZy5jb2x1bW5zLmpvaW4oJyAnKX0gfWA7XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zLCB2YXJpYWJsZXM6IHBhcmFtcywgb3BlcmF0aW9uTmFtZTogcXVlcnlOYW1lIH07XG4gIH1cblxuICBidWlsZE1hbnkoKTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IHF1ZXJ5TmFtZSA9IHRoaXMuY29uZmlnLnRhYmxlTmFtZTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHtxdWVyeU5hbWV9IHsgJHt0aGlzLmNvbmZpZy5jb2x1bW5zLmpvaW4oJyAnKX0gfWA7XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zOiBbXSwgdmFyaWFibGVzOiB7fSwgb3BlcmF0aW9uTmFtZTogcXVlcnlOYW1lIH07XG4gIH1cbn1cbiJdfQ==","import { GetQueryPartBuilder } from \"./get.builder\";\nexport function makeSubscription(query) {\n const { kind, definitions } = query;\n const subscriptionDefinitions = definitions.map((definition) => {\n if (definition.kind === 'OperationDefinition' && definition.operation === 'query') {\n return {\n ...definition,\n operation: 'subscription',\n };\n }\n return definition;\n });\n return { kind, definitions: subscriptionDefinitions };\n}\nexport class QueriesBuilder {\n get;\n constructor(config) {\n this.get = new GetQueryPartBuilder(config);\n }\n makeSubscription(query) {\n return makeSubscription(query);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9idWlsZGVycy9wYXJ0cy9xdWVyaWVzL3F1ZXJpZXMuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQVU7SUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDcEMsTUFBTSx1QkFBdUIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7UUFDbEUsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLHFCQUFxQixJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEYsT0FBTztnQkFDTCxHQUFHLFVBQVU7Z0JBQ2IsU0FBUyxFQUFFLGNBQWM7YUFDMUIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sT0FBTyxjQUFjO0lBQ2hCLEdBQUcsQ0FBc0I7SUFFbEMsWUFBYSxNQUFtQjtRQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gXCIuLi9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnRcIjtcbmltcG9ydCB7IEdldFF1ZXJ5UGFydEJ1aWxkZXIgfSBmcm9tIFwiLi9nZXQuYnVpbGRlclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVN1YnNjcmlwdGlvbihxdWVyeTogYW55KSB7XG4gIGNvbnN0IHsga2luZCwgZGVmaW5pdGlvbnMgfSA9IHF1ZXJ5O1xuICBjb25zdCBzdWJzY3JpcHRpb25EZWZpbml0aW9ucyA9IGRlZmluaXRpb25zLm1hcCgoZGVmaW5pdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gJ09wZXJhdGlvbkRlZmluaXRpb24nICYmIGRlZmluaXRpb24ub3BlcmF0aW9uID09PSAncXVlcnknKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kZWZpbml0aW9uLFxuICAgICAgICBvcGVyYXRpb246ICdzdWJzY3JpcHRpb24nLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH0pO1xuICByZXR1cm4geyBraW5kLCBkZWZpbml0aW9uczogc3Vic2NyaXB0aW9uRGVmaW5pdGlvbnMgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXJpZXNCdWlsZGVyPEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4ge1xuICByZWFkb25seSBnZXQ6IEdldFF1ZXJ5UGFydEJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IgKGNvbmZpZzogVGFibGVDb25maWcpIHtcbiAgICB0aGlzLmdldCA9IG5ldyBHZXRRdWVyeVBhcnRCdWlsZGVyKGNvbmZpZyk7XG4gIH1cblxuICBtYWtlU3Vic2NyaXB0aW9uKHF1ZXJ5OiBhbnkpIHtcbiAgICByZXR1cm4gbWFrZVN1YnNjcmlwdGlvbihxdWVyeSk7XG4gIH1cbn0iXX0=","import { omitBy, pick, snakeCase } from 'lodash-es';\nexport class CreateMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(data, alias = 'create') {\n const object = this.convertToObject(data);\n const mutationName = `insert_${this.config.tableName}`;\n const variableDefinitions = [`$${alias}: ${this.config.tableName}_insert_input!`];\n const queryPart = `${alias}: ${mutationName}(objects: [$${alias}]) { affected_rows returning { ${this.config.columns.join(' ')} } }`;\n const variables = { [alias]: object };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n buildMany(data, alias = 'createMany') {\n const objects = this.convertToObjects(data);\n const mutationName = `insert_${this.config.tableName}`;\n const variableDefinitions = [`$${alias}: [${this.config.tableName}_insert_input!]!`];\n const queryPart = `${alias}: ${mutationName}(objects: $${alias}) { affected_rows returning { ${this.config.columns.join(' ')} } }`;\n const variables = { [alias]: objects };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n convertToObject(item) {\n const fields = Object.keys(item).map(snakeCase).filter((field) => !['created_at', 'updated_at'].includes(field));\n const picked = pick(item, [...fields]);\n return omitBy(picked, (value) => typeof value === 'undefined');\n }\n convertToObjects(items) {\n return items.map((item) => this.convertToObject(item));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy9jcmVhdGUuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNEO0lBQS9CLFlBQStCLE1BQW1CO1FBQW5CLFdBQU0sR0FBTixNQUFNLENBQWE7SUFBSSxDQUFDO0lBRXZELEtBQUssQ0FBQyxJQUFtQixFQUFFLEtBQUssR0FBRyxRQUFRO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRixNQUFNLFNBQVMsR0FBRyxHQUFHLEtBQUssS0FBSyxZQUFZLGVBQWUsS0FBSyxrQ0FBa0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDckksTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFxQixFQUFFLEtBQUssR0FBRyxZQUFZO1FBQ25ELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sU0FBUyxHQUFHLEdBQUcsS0FBSyxLQUFLLFlBQVksY0FBYyxLQUFLLGlDQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNuSSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRVMsZUFBZSxDQUFDLElBQW1CO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEtBQXNCO1FBQy9DLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29uZmlnLCBUcmFuc2FjdGlvblF1ZXJ5UGFydCB9IGZyb20gJy4uLy4uL3BhcnRzL19tZXRhL2dyYXBocWwtcXVlcnktcGFydCc7XG5pbXBvcnQgeyBvbWl0QnksIHBpY2ssIHNuYWtlQ2FzZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbnR5cGUgQ3JlYXRlRGF0YTxFPiA9IE9taXQ8RSwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+O1xuXG5leHBvcnQgY2xhc3MgQ3JlYXRlTXV0YXRpb25CdWlsZGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZzogVGFibGVDb25maWcpIHsgfVxuXG4gIGJ1aWxkKGRhdGE6IENyZWF0ZURhdGE8RT4sIGFsaWFzID0gJ2NyZWF0ZScpOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3Qgb2JqZWN0ID0gdGhpcy5jb252ZXJ0VG9PYmplY3QoZGF0YSk7XG4gICAgY29uc3QgbXV0YXRpb25OYW1lID0gYGluc2VydF8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1gO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfTogJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X2luc2VydF9pbnB1dCFgXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHthbGlhc306ICR7bXV0YXRpb25OYW1lfShvYmplY3RzOiBbJCR7YWxpYXN9XSkgeyBhZmZlY3RlZF9yb3dzIHJldHVybmluZyB7ICR7dGhpcy5jb25maWcuY29sdW1ucy5qb2luKCcgJyl9IH0gfWA7XG4gICAgY29uc3QgdmFyaWFibGVzID0geyBbYWxpYXNdOiBvYmplY3QgfTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlcywgb3BlcmF0aW9uTmFtZTogbXV0YXRpb25OYW1lLCBhbGlhcyB9O1xuICB9XG5cbiAgYnVpbGRNYW55KGRhdGE6IENyZWF0ZURhdGE8RT5bXSwgYWxpYXMgPSAnY3JlYXRlTWFueScpOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMuY29udmVydFRvT2JqZWN0cyhkYXRhKTtcbiAgICBjb25zdCBtdXRhdGlvbk5hbWUgPSBgaW5zZXJ0XyR7dGhpcy5jb25maWcudGFibGVOYW1lfWA7XG4gICAgY29uc3QgdmFyaWFibGVEZWZpbml0aW9ucyA9IFtgJCR7YWxpYXN9OiBbJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X2luc2VydF9pbnB1dCFdIWBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHttdXRhdGlvbk5hbWV9KG9iamVjdHM6ICQke2FsaWFzfSkgeyBhZmZlY3RlZF9yb3dzIHJldHVybmluZyB7ICR7dGhpcy5jb25maWcuY29sdW1ucy5qb2luKCcgJyl9IH0gfWA7XG4gICAgY29uc3QgdmFyaWFibGVzID0geyBbYWxpYXNdOiBvYmplY3RzIH07XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zLCB2YXJpYWJsZXMsIG9wZXJhdGlvbk5hbWU6IG11dGF0aW9uTmFtZSwgYWxpYXMgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0VG9PYmplY3QoaXRlbTogQ3JlYXRlRGF0YTxFPikge1xuICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5rZXlzKGl0ZW0pLm1hcChzbmFrZUNhc2UpLmZpbHRlcigoZmllbGQpID0+ICFbJ2NyZWF0ZWRfYXQnLCAndXBkYXRlZF9hdCddLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgY29uc3QgcGlja2VkID0gcGljayhpdGVtLCBbLi4uZmllbGRzXSk7XG4gICAgcmV0dXJuIG9taXRCeShwaWNrZWQsICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFRvT2JqZWN0cyhpdGVtczogQ3JlYXRlRGF0YTxFPltdKSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gdGhpcy5jb252ZXJ0VG9PYmplY3QoaXRlbSkpO1xuICB9XG59XG4iXX0=","export class DeleteMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build({ id }) {\n const operationName = `delete_${this.config.tableName}`;\n const queryPart = `${operationName}(where: {id: {_eq: $id}}) { affected_rows }`;\n const variableDefinitions = ['$id: String!'];\n return { queryPart, variableDefinitions, variables: { id }, operationName };\n }\n buildMany(params, alias = 'deleteMany') {\n const operationName = `delete_${this.config.tableName}`;\n const variableDefinitions = [`$${alias}: [String!]!`];\n const queryPart = `${alias}: ${operationName}(where: {id: {_in: $${alias}}}) { affected_rows }`;\n const variables = { [alias]: params.map((p) => p.id) };\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n buildAll(alias = 'deleteAll') {\n const operationName = `delete_${this.config.tableName}`;\n const uniqueAlias = `${alias}_${this.config.tableName}`;\n const variableDefinitions = [];\n const queryPart = `${uniqueAlias}: ${operationName}(where: {}) { affected_rows }`;\n const variables = {};\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy9kZWxldGUuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8scUJBQXFCO0lBQ0Q7SUFBL0IsWUFBK0IsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUFJLENBQUM7SUFFdkQsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ1YsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLEdBQUcsYUFBYSw2Q0FBNkMsQ0FBQztRQUNoRixNQUFNLG1CQUFtQixHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXdCLEVBQUUsS0FBSyxHQUFHLFlBQVk7UUFDdEQsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxLQUFLLEtBQUssYUFBYSx1QkFBdUIsS0FBSyx1QkFBdUIsQ0FBQztRQUNoRyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVc7UUFDMUIsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sV0FBVyxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsR0FBRyxXQUFXLEtBQUssYUFBYSwrQkFBK0IsQ0FBQztRQUNsRixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzdFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29uZmlnLCBUcmFuc2FjdGlvblF1ZXJ5UGFydCB9IGZyb20gJy4uLy4uL3BhcnRzL19tZXRhL2dyYXBocWwtcXVlcnktcGFydCc7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVNdXRhdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBUYWJsZUNvbmZpZykgeyB9XG5cbiAgYnVpbGQoeyBpZCB9KTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBgZGVsZXRlXyR7dGhpcy5jb25maWcudGFibGVOYW1lfWA7XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gYCR7b3BlcmF0aW9uTmFtZX0od2hlcmU6IHtpZDoge19lcTogJGlkfX0pIHsgYWZmZWN0ZWRfcm93cyB9YDtcbiAgICBjb25zdCB2YXJpYWJsZURlZmluaXRpb25zID0gWyckaWQ6IFN0cmluZyEnXTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlczogeyBpZCB9LCBvcGVyYXRpb25OYW1lIH07XG4gIH1cblxuICBidWlsZE1hbnkocGFyYW1zOiB7IGlkOiBzdHJpbmcgfVtdLCBhbGlhcyA9ICdkZWxldGVNYW55Jyk6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0IHtcbiAgICBjb25zdCBvcGVyYXRpb25OYW1lID0gYGRlbGV0ZV8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1gO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfTogW1N0cmluZyFdIWBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHtvcGVyYXRpb25OYW1lfSh3aGVyZToge2lkOiB7X2luOiAkJHthbGlhc319fSkgeyBhZmZlY3RlZF9yb3dzIH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2FsaWFzXTogcGFyYW1zLm1hcCgocCkgPT4gcC5pZCkgfTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlcywgb3BlcmF0aW9uTmFtZSwgYWxpYXMgfTtcbiAgfVxuXG4gIGJ1aWxkQWxsKGFsaWFzID0gJ2RlbGV0ZUFsbCcpOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IGBkZWxldGVfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YDtcbiAgICBjb25zdCB1bmlxdWVBbGlhcyA9IGAke2FsaWFzfV8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1gO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gYCR7dW5pcXVlQWxpYXN9OiAke29wZXJhdGlvbk5hbWV9KHdoZXJlOiB7fSkgeyBhZmZlY3RlZF9yb3dzIH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHt9O1xuICAgIHJldHVybiB7IHF1ZXJ5UGFydCwgdmFyaWFibGVEZWZpbml0aW9ucywgdmFyaWFibGVzLCBvcGVyYXRpb25OYW1lLCBhbGlhcyB9O1xuICB9XG59XG4iXX0=","import { omitBy, pick, snakeCase } from \"lodash-es\";\nexport class SaveMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(data, { operationName = `insert_${this.config.tableName}`, constraint = this.config.pk, columns = this.config.columns, returningColumns = this.config.columns, alias = operationName, } = {}) {\n const object = this.buildObject(data);\n const onConflict = this.buildOnConflict(data, constraint, columns);\n const variableDefinitions = [\n `$${alias}Object: ${this.config.tableName}_insert_input!`,\n `$${alias}OnConflict: ${this.config.tableName}_on_conflict!`\n ];\n const queryPart = `${alias}: ${operationName}( objects: [$${alias}Object] on_conflict: $${alias}OnConflict) { affected_rows returning { ${returningColumns.join(', ')} } }`;\n const variables = { [`${alias}Object`]: object, [`${alias}OnConflict`]: onConflict };\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n buildMany(entities, { operationName = `insert_${this.config.tableName}`, constraint = this.config.pk, columns = this.config.columns, returningColumns = this.config.columns, alias = 'save' } = {}) {\n const objects = this.buildObjects(entities);\n const onConflict = this.buildOnConflict(entities[0], constraint, columns);\n const variableDefinitions = [\n `$${alias}Objects: [${this.config.tableName}_insert_input!]!`,\n `$${alias}OnConflict: ${this.config.tableName}_on_conflict!`\n ];\n const queryPart = `${alias}: ${operationName}(objects: $${alias}Objects on_conflict: $${alias}OnConflict) {\n affected_rows returning { ${returningColumns.join(', ')} }\n }`;\n const variables = { [`${alias}Objects`]: objects, [`${alias}OnConflict`]: onConflict };\n return { queryPart, variableDefinitions, variables, operationName: operationName, alias };\n }\n buildObject(item) {\n const fields = Object.keys(item).map(snakeCase).filter((field) => !['created_at', 'updated_at'].includes(field));\n const picked = pick(item, [...fields]);\n return omitBy(picked, (value) => typeof value === 'undefined');\n }\n buildObjects(items) {\n return items.map((item) => this.buildObject(item));\n }\n buildOnConflict(data, constraint, columns) {\n const fields = Object.keys(this.buildObject(data));\n const updateColumns = fields.filter(column => columns.includes(column));\n return { constraint, update_columns: updateColumns };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9idWlsZGVycy9wYXJ0cy9tdXRhdGlvbnMvc2F2ZS5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVVwRCxNQUFNLE9BQU8sbUJBQW1CO0lBQ0M7SUFBL0IsWUFBK0IsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUFJLENBQUM7SUFFdkQsS0FBSyxDQUFDLElBQXdDLEVBQUUsRUFDOUMsYUFBYSxHQUFHLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFDakQsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQzdCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUN0QyxLQUFLLEdBQUcsYUFBYSxNQUNWLEVBQUU7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRSxNQUFNLG1CQUFtQixHQUFHO1lBQzFCLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxnQkFBZ0I7WUFDekQsSUFBSSxLQUFLLGVBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLGVBQWU7U0FDN0QsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLEdBQUcsS0FBSyxLQUFLLGFBQWEsZ0JBQWdCLEtBQUsseUJBQXlCLEtBQUssMkNB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RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZywgVHJhbnNhY3Rpb25RdWVyeVBhcnQgfSBmcm9tICcuLi8uLi9wYXJ0cy9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnQnO1xuaW1wb3J0IHsgb21pdEJ5LCBwaWNrLCBzbmFrZUNhc2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgb3BlcmF0aW9uTmFtZT86IHN0cmluZztcbiAgY29uc3RyYWludD86IHN0cmluZztcbiAgY29sdW1ucz86IHN0cmluZ1tdO1xuICByZXR1cm5pbmdDb2x1bW5zPzogc3RyaW5nW107XG4gIGFsaWFzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZU11dGF0aW9uQnVpbGRlcjxFID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IFRhYmxlQ29uZmlnKSB7IH1cblxuICBidWlsZChkYXRhOiBPbWl0PEUsICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+LCB7XG4gICAgb3BlcmF0aW9uTmFtZSA9IGBpbnNlcnRfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YCxcbiAgICBjb25zdHJhaW50ID0gdGhpcy5jb25maWcucGssXG4gICAgY29sdW1ucyA9IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgcmV0dXJuaW5nQ29sdW1ucyA9IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgYWxpYXMgPSBvcGVyYXRpb25OYW1lLFxuICB9OiBPcHRpb25zID0ge30pOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3Qgb2JqZWN0ID0gdGhpcy5idWlsZE9iamVjdChkYXRhKTtcbiAgICBjb25zdCBvbkNvbmZsaWN0ID0gdGhpcy5idWlsZE9uQ29uZmxpY3QoZGF0YSwgY29uc3RyYWludCwgY29sdW1ucyk7XG4gICAgY29uc3QgdmFyaWFibGVEZWZpbml0aW9ucyA9IFtcbiAgICAgIGAkJHthbGlhc31PYmplY3Q6ICR7dGhpcy5jb25maWcudGFibGVOYW1lfV9pbnNlcnRfaW5wdXQhYCxcbiAgICAgIGAkJHthbGlhc31PbkNvbmZsaWN0OiAke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1fb25fY29uZmxpY3QhYFxuICAgIF07XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gYCR7YWxpYXN9OiAke29wZXJhdGlvbk5hbWV9KCBvYmplY3RzOiBbJCR7YWxpYXN9T2JqZWN0XSBvbl9jb25mbGljdDogJCR7YWxpYXN9T25Db25mbGljdCkgeyBhZmZlY3RlZF9yb3dzIHJldHVybmluZyB7ICR7cmV0dXJuaW5nQ29sdW1ucy5qb2luKCcsICcpfSB9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2Ake2FsaWFzfU9iamVjdGBdOiBvYmplY3QsIFtgJHthbGlhc31PbkNvbmZsaWN0YF06IG9uQ29uZmxpY3QgfTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlcywgb3BlcmF0aW9uTmFtZSwgYWxpYXMgfTtcbiAgfVxuXG4gIGJ1aWxkTWFueShlbnRpdGllczogRVtdLCB7XG4gICAgb3BlcmF0aW9uTmFtZSA9IGBpbnNlcnRfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YCxcbiAgICBjb25zdHJhaW50ID0gdGhpcy5jb25maWcucGssXG4gICAgY29sdW1ucyA9IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgcmV0dXJuaW5nQ29sdW1ucyA9IHRoaXMuY29uZmlnLmNvbHVtbnMsXG4gICAgYWxpYXMgPSAnc2F2ZSdcbiAgfTogT3B0aW9ucyA9IHt9KTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLmJ1aWxkT2JqZWN0cyhlbnRpdGllcyk7XG4gICAgY29uc3Qgb25Db25mbGljdCA9IHRoaXMuYnVpbGRPbkNvbmZsaWN0KGVudGl0aWVzWzBdIGFzIGFueSwgY29uc3RyYWludCwgY29sdW1ucyk7XG4gICAgY29uc3QgdmFyaWFibGVEZWZpbml0aW9ucyA9IFtcbiAgICAgIGAkJHthbGlhc31PYmplY3RzOiBbJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X2luc2VydF9pbnB1dCFdIWAsXG4gICAgICBgJCR7YWxpYXN9T25Db25mbGljdDogJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X29uX2NvbmZsaWN0IWBcbiAgICBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHtvcGVyYXRpb25OYW1lfShvYmplY3RzOiAkJHthbGlhc31PYmplY3RzIG9uX2NvbmZsaWN0OiAkJHthbGlhc31PbkNvbmZsaWN0KSB7XG4gICAgICBhZmZlY3RlZF9yb3dzIHJldHVybmluZyB7ICR7cmV0dXJuaW5nQ29sdW1ucy5qb2luKCcsICcpfSB9XG4gICAgfWA7XG4gICAgY29uc3QgdmFyaWFibGVzID0geyBbYCR7YWxpYXN9T2JqZWN0c2BdOiBvYmplY3RzLCBbYCR7YWxpYXN9T25Db25mbGljdGBdOiBvbkNvbmZsaWN0IH07XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zLCB2YXJpYWJsZXMsIG9wZXJhdGlvbk5hbWU6IG9wZXJhdGlvbk5hbWUsIGFsaWFzIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3QoaXRlbTogT21pdDxFLCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPikge1xuICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5rZXlzKGl0ZW0pLm1hcChzbmFrZUNhc2UpLmZpbHRlcigoZmllbGQpID0+ICFbJ2NyZWF0ZWRfYXQnLCAndXBkYXRlZF9hdCddLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgY29uc3QgcGlja2VkID0gcGljayhpdGVtLCBbLi4uZmllbGRzXSk7XG4gICAgcmV0dXJuIG9taXRCeShwaWNrZWQsICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3RzKGl0ZW1zOiBPbWl0PEUsICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+W10pIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmJ1aWxkT2JqZWN0KGl0ZW0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZE9uQ29uZmxpY3QoZGF0YTogT21pdDxFLCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPiwgY29uc3RyYWludDogc3RyaW5nLCBjb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGZpZWxkcyA9IE9iamVjdC5rZXlzKHRoaXMuYnVpbGRPYmplY3QoZGF0YSkpO1xuICAgIGNvbnN0IHVwZGF0ZUNvbHVtbnMgPSBmaWVsZHMuZmlsdGVyKGNvbHVtbiA9PiBjb2x1bW5zLmluY2x1ZGVzKGNvbHVtbikpO1xuICAgIHJldHVybiB7IGNvbnN0cmFpbnQsIHVwZGF0ZV9jb2x1bW5zOiB1cGRhdGVDb2x1bW5zIH07XG4gIH1cbn0iXX0=","import { omitBy, pick, snakeCase } from \"lodash-es\";\nexport class UpdateMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(data, alias = 'update') {\n const mutationName = `update_${this.config.tableName}`;\n const object = this.buildObject(data);\n const variableDefinitions = [`$${alias}Id: String!`, `$${alias}Object: ${this.config.tableName}_set_input!`];\n const queryPart = `${alias}: ${mutationName}(where: {id: {_eq: $${alias}Id}} _set: $${alias}Object) { affected_rows returning { id } }`;\n const variables = { [`${alias}Id`]: data.id, [`${alias}Object`]: object };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n buildMany(data, alias = 'updateMany') {\n const mutationName = `update_${this.config.tableName}_many`;\n const objects = this.buildObjects(data);\n const variableDefinitions = [`$${alias}Objects: [${this.config.tableName}_updates!]!`];\n const queryPart = `${alias}: ${mutationName}(updates: $${alias}Objects) { affected_rows returning { id } }`;\n const variables = { [`${alias}Objects`]: objects };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n buildObject(item) {\n const fields = Object.keys(item).map(snakeCase).filter((field) => !['created_at', 'updated_at'].includes(field));\n const picked = pick(item, fields);\n return omitBy(picked, (value) => typeof value === 'undefined');\n }\n buildObjects(items) {\n return items.map((item) => ({ where: { id: { _eq: item.id } }, _set: this.buildObject(item) }));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy91cGRhdGUuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNEO0lBQS9CLFlBQStCLE1BQW1CO1FBQW5CLFdBQU0sR0FBTixNQUFNLENBQWE7SUFBSSxDQUFDO0lBRXZELEtBQUssQ0FBQyxJQUFpQyxFQUFFLEtBQUssR0FBRyxRQUFRO1FBQ3ZELE1BQU0sWUFBWSxHQUFHLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxhQUFhLENBQUMsQ0FBQztRQUM3RyxNQUFNLFNBQVMsR0FBRyxHQUFHLEtBQUssS0FBSyxZQUFZLHVCQUF1QixLQUFLLGVBQWUsS0FBSyw0Q0FBNEMsQ0FBQztRQUN4SSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRUQsU0FBUyxDQUNQLElBQWtCLEVBQ2xCLEtBQUssR0FBRyxZQUFZO1FBRXBCLE1BQU0sWUFBWSxHQUFHLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLE9BQU8sQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsYUFBYSxDQUFDLENBQUM7UUFDdkYsTUFBTSxTQUFTLEdBQUcsR0FBRyxLQUFLLEtBQUssWUFBWSxjQUFjLEtBQUssNkNBQTZDLENBQUM7UUFDNUcsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzNGLENBQUM7SUFFUyxXQUFXLENBQUMsSUFBZ0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQW1CO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZywgVHJhbnNhY3Rpb25RdWVyeVBhcnQgfSBmcm9tICcuLi8uLi9wYXJ0cy9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnQnO1xuaW1wb3J0IHsgb21pdEJ5LCBwaWNrLCBzbmFrZUNhc2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNdXRhdGlvbkJ1aWxkZXI8RSBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBUYWJsZUNvbmZpZykgeyB9XG5cbiAgYnVpbGQoZGF0YTogUGFydGlhbDxFPiAmIHsgaWQ6IHN0cmluZyB9LCBhbGlhcyA9ICd1cGRhdGUnKTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG11dGF0aW9uTmFtZSA9IGB1cGRhdGVfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YDtcbiAgICBjb25zdCBvYmplY3QgPSB0aGlzLmJ1aWxkT2JqZWN0KGRhdGEpO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfUlkOiBTdHJpbmchYCwgYCQke2FsaWFzfU9iamVjdDogJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X3NldF9pbnB1dCFgXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHthbGlhc306ICR7bXV0YXRpb25OYW1lfSh3aGVyZToge2lkOiB7X2VxOiAkJHthbGlhc31JZH19IF9zZXQ6ICQke2FsaWFzfU9iamVjdCkgeyBhZmZlY3RlZF9yb3dzIHJldHVybmluZyB7IGlkIH0gfWA7XG4gICAgY29uc3QgdmFyaWFibGVzID0geyBbYCR7YWxpYXN9SWRgXTogZGF0YS5pZCwgW2Ake2FsaWFzfU9iamVjdGBdOiBvYmplY3QgfTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlcywgb3BlcmF0aW9uTmFtZTogbXV0YXRpb25OYW1lLCBhbGlhcyB9O1xuICB9XG5cbiAgYnVpbGRNYW55KFxuICAgIGRhdGE6IFBhcnRpYWw8RT5bXSxcbiAgICBhbGlhcyA9ICd1cGRhdGVNYW55J1xuICApOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3QgbXV0YXRpb25OYW1lID0gYHVwZGF0ZV8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1fbWFueWA7XG4gICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMuYnVpbGRPYmplY3RzKGRhdGEpO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfU9iamVjdHM6IFske3RoaXMuY29uZmlnLnRhYmxlTmFtZX1fdXBkYXRlcyFdIWBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHttdXRhdGlvbk5hbWV9KHVwZGF0ZXM6ICQke2FsaWFzfU9iamVjdHMpIHsgYWZmZWN0ZWRfcm93cyByZXR1cm5pbmcgeyBpZCB9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2Ake2FsaWFzfU9iamVjdHNgXTogb2JqZWN0cyB9O1xuICAgIHJldHVybiB7IHF1ZXJ5UGFydCwgdmFyaWFibGVEZWZpbml0aW9ucywgdmFyaWFibGVzLCBvcGVyYXRpb25OYW1lOiBtdXRhdGlvbk5hbWUsIGFsaWFzIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3QoaXRlbTogUGFydGlhbDxFPik6IGFueSB7XG4gICAgY29uc3QgZmllbGRzID0gT2JqZWN0LmtleXMoaXRlbSkubWFwKHNuYWtlQ2FzZSkuZmlsdGVyKChmaWVsZCkgPT4gIVsnY3JlYXRlZF9hdCcsICd1cGRhdGVkX2F0J10uaW5jbHVkZXMoZmllbGQpKTtcbiAgICBjb25zdCBwaWNrZWQgPSBwaWNrKGl0ZW0sIGZpZWxkcyk7XG4gICAgcmV0dXJuIG9taXRCeShwaWNrZWQsICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3RzKGl0ZW1zOiBQYXJ0aWFsPEU+W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHsgd2hlcmU6IHsgaWQ6IHsgX2VxOiBpdGVtLmlkIH0gfSwgX3NldDogdGhpcy5idWlsZE9iamVjdChpdGVtKSB9KSk7XG4gIH1cbn1cbiJdfQ==","import { CreateMutationBuilder } from \"./create.builder\";\nimport { UpdateMutationBuilder } from \"./update.builder\";\nimport { SaveMutationBuilder } from \"./save.builder\";\nimport { DeleteMutationBuilder } from \"./delete.builder\";\nexport class HasuraMutationBuilder {\n create;\n update;\n save;\n delete_;\n constructor(config) {\n this.create = new CreateMutationBuilder(config);\n this.update = new UpdateMutationBuilder(config);\n this.save = new SaveMutationBuilder(config);\n this.delete_ = new DeleteMutationBuilder(config);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb25zLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy9tdXRhdGlvbnMuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE1BQU0sQ0FBMkI7SUFDakMsTUFBTSxDQUEyQjtJQUNqQyxJQUFJLENBQXlCO0lBQzdCLE9BQU8sQ0FBd0I7SUFFeEMsWUFBWSxNQUFtQjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlYXRlTXV0YXRpb25CdWlsZGVyIH0gZnJvbSBcIi4vY3JlYXRlLmJ1aWxkZXJcIjtcbmltcG9ydCB7IFVwZGF0ZU11dGF0aW9uQnVpbGRlciB9IGZyb20gXCIuL3VwZGF0ZS5idWlsZGVyXCI7XG5pbXBvcnQgeyBTYXZlTXV0YXRpb25CdWlsZGVyIH0gZnJvbSBcIi4vc2F2ZS5idWlsZGVyXCI7XG5pbXBvcnQgeyBEZWxldGVNdXRhdGlvbkJ1aWxkZXIgfSBmcm9tIFwiLi9kZWxldGUuYnVpbGRlclwiO1xuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tIFwiLi4vX21ldGEvZ3JhcGhxbC1xdWVyeS1wYXJ0XCI7XG5cbmV4cG9ydCBjbGFzcyBIYXN1cmFNdXRhdGlvbkJ1aWxkZXI8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PiB7XG4gIHJlYWRvbmx5IGNyZWF0ZTogQ3JlYXRlTXV0YXRpb25CdWlsZGVyPEU+O1xuICByZWFkb25seSB1cGRhdGU6IFVwZGF0ZU11dGF0aW9uQnVpbGRlcjxFPjtcbiAgcmVhZG9ubHkgc2F2ZTogU2F2ZU11dGF0aW9uQnVpbGRlcjxFPjtcbiAgcmVhZG9ubHkgZGVsZXRlXzogRGVsZXRlTXV0YXRpb25CdWlsZGVyO1xuICBcbiAgY29uc3RydWN0b3IoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMuY3JlYXRlID0gbmV3IENyZWF0ZU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICAgIHRoaXMudXBkYXRlID0gbmV3IFVwZGF0ZU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICAgIHRoaXMuc2F2ZSA9IG5ldyBTYXZlTXV0YXRpb25CdWlsZGVyKGNvbmZpZyk7XG4gICAgdGhpcy5kZWxldGVfID0gbmV3IERlbGV0ZU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICB9XG59XG4iXX0=","import { HasuraMutationBuilder } from './mutations';\nimport { QueriesBuilder } from \"./queries\";\nexport class HasuraQueryPartsBuilder {\n mutations;\n queries;\n constructor(config) {\n this.mutations = new HasuraMutationBuilder(config);\n this.queries = new QueriesBuilder(config);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydHMuYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYnVpbGRlcnMvcGFydHMvcGFydHMuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUczQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLFNBQVMsQ0FBMkI7SUFDcEMsT0FBTyxDQUFvQjtJQUVwQyxZQUFZLE1BQW1CO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc3VyYU11dGF0aW9uQnVpbGRlciB9IGZyb20gJy4vbXV0YXRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXNCdWlsZGVyIH0gZnJvbSBcIi4vcXVlcmllc1wiO1xuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tIFwiLi9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnRcIjtcblxuZXhwb3J0IGNsYXNzIEhhc3VyYVF1ZXJ5UGFydHNCdWlsZGVyPEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4ge1xuICByZWFkb25seSBtdXRhdGlvbnM6IEhhc3VyYU11dGF0aW9uQnVpbGRlcjxFPjtcbiAgcmVhZG9ubHkgcXVlcmllczogUXVlcmllc0J1aWxkZXI8RT47XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMubXV0YXRpb25zID0gbmV3IEhhc3VyYU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICAgIHRoaXMucXVlcmllcyA9IG5ldyBRdWVyaWVzQnVpbGRlcihjb25maWcpO1xuICB9XG59XG4iXX0=","import { HasuraQueryPartsBuilder } from './parts/parts.builder';\nexport class HasuraQueryBuilder {\n parts;\n constructor(config) {\n this.parts = new HasuraQueryPartsBuilder(config);\n }\n buildQuery(part) {\n const operationNameStr = part.operationName ? `${part.operationName} ` : '';\n const variablesStr = part.variableDefinitions?.length ? `(${part.variableDefinitions.join(', ')}) ` : '';\n return `query ${operationNameStr}${variablesStr}{ ${part.queryPart} }`;\n }\n static buildMutation(part) {\n const operationNameStr = part.operationName ? `${part.operationName} ` : '';\n const variablesStr = part.variableDefinitions?.length ? `(${part.variableDefinitions.join(', ')}) ` : '';\n return `mutation ${operationNameStr}${variablesStr} { ${part.queryPart} }`;\n }\n buildMutation(part) {\n return HasuraQueryBuilder.buildMutation(part);\n }\n buildTransactionQuery(parts) {\n const operationName = `Transaction`;\n const variableDefinitions = parts.reduce((acc, m) => [...acc, ...m.variableDefinitions], []);\n const mutationParts = parts.map(m => m.queryPart);\n const query = `mutation ${operationName} (${variableDefinitions.join(', ')}) { ${mutationParts.join('\\n')} }`;\n const variables = parts.reduce((acc, m) => ({ ...acc, ...m.variables }), {});\n return { query, variables };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYnVpbGRlcnMvcXVlcnktYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLEtBQUssQ0FBNEI7SUFFMUMsWUFBWSxNQUFtQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUdELFVBQVUsQ0FBQyxJQUEwQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxPQUFPLFNBQVMsZ0JBQWdCLEdBQUcsWUFBWSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQztJQUN6RSxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUEwQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxPQUFPLFlBQVksZ0JBQWdCLEdBQUcsWUFBWSxNQUFNLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQztJQUM3RSxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQTBCO1FBQ3RDLE9BQU8sa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUE2QjtRQUNqRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQWMsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsWUFBWSxhQUFhLEtBQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoSCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBeUIsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb25maWcsIFRyYW5zYWN0aW9uUXVlcnlQYXJ0IH0gZnJvbSAnLi9wYXJ0cy9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnQnO1xuaW1wb3J0IHsgSGFzdXJhUXVlcnlQYXJ0c0J1aWxkZXIgfSBmcm9tICcuL3BhcnRzL3BhcnRzLmJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgSGFzdXJhUXVlcnlCdWlsZGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+IHtcbiAgcmVhZG9ubHkgcGFydHM6IEhhc3VyYVF1ZXJ5UGFydHNCdWlsZGVyPEU+XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMucGFydHMgPSBuZXcgSGFzdXJhUXVlcnlQYXJ0c0J1aWxkZXIoY29uZmlnKTtcbiAgfVxuICBcblxuICBidWlsZFF1ZXJ5KHBhcnQ6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0KTogc3RyaW5nIHtcbiAgICBjb25zdCBvcGVyYXRpb25OYW1lU3RyID0gcGFydC5vcGVyYXRpb25OYW1lID8gYCR7cGFydC5vcGVyYXRpb25OYW1lfSBgIDogJyc7XG4gICAgY29uc3QgdmFyaWFibGVzU3RyID0gcGFydC52YXJpYWJsZURlZmluaXRpb25zPy5sZW5ndGggPyBgKCR7cGFydC52YXJpYWJsZURlZmluaXRpb25zLmpvaW4oJywgJyl9KSBgIDogJyc7XG4gICAgcmV0dXJuIGBxdWVyeSAke29wZXJhdGlvbk5hbWVTdHJ9JHt2YXJpYWJsZXNTdHJ9eyAke3BhcnQucXVlcnlQYXJ0fSB9YDtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZE11dGF0aW9uKHBhcnQ6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0KTogc3RyaW5nIHtcbiAgICBjb25zdCBvcGVyYXRpb25OYW1lU3RyID0gcGFydC5vcGVyYXRpb25OYW1lID8gYCR7cGFydC5vcGVyYXRpb25OYW1lfSBgIDogJyc7XG4gICAgY29uc3QgdmFyaWFibGVzU3RyID0gcGFydC52YXJpYWJsZURlZmluaXRpb25zPy5sZW5ndGggPyBgKCR7cGFydC52YXJpYWJsZURlZmluaXRpb25zLmpvaW4oJywgJyl9KSBgIDogJyc7XG4gICAgcmV0dXJuIGBtdXRhdGlvbiAke29wZXJhdGlvbk5hbWVTdHJ9JHt2YXJpYWJsZXNTdHJ9IHsgJHtwYXJ0LnF1ZXJ5UGFydH0gfWA7XG4gIH1cblxuICBidWlsZE11dGF0aW9uKHBhcnQ6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gSGFzdXJhUXVlcnlCdWlsZGVyLmJ1aWxkTXV0YXRpb24ocGFydCk7XG4gIH1cblxuICBidWlsZFRyYW5zYWN0aW9uUXVlcnkocGFydHM6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0W10pOiB7cXVlcnk6IHN0cmluZywgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+fSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IGBUcmFuc2FjdGlvbmA7XG4gICAgY29uc3QgdmFyaWFibGVEZWZpbml0aW9ucyA9IHBhcnRzLnJlZHVjZSgoYWNjLCBtKSA9PiBbLi4uYWNjLCAuLi5tLnZhcmlhYmxlRGVmaW5pdGlvbnNdLCBbXSBhcyBzdHJpbmdbXSk7XG4gICAgY29uc3QgbXV0YXRpb25QYXJ0cyA9IHBhcnRzLm1hcChtID0+IG0ucXVlcnlQYXJ0KTtcbiAgICBjb25zdCBxdWVyeSA9IGBtdXRhdGlvbiAke29wZXJhdGlvbk5hbWV9ICgkeyB2YXJpYWJsZURlZmluaXRpb25zLmpvaW4oJywgJykgfSkgeyAke211dGF0aW9uUGFydHMuam9pbignXFxuJyl9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHBhcnRzLnJlZHVjZSgoYWNjLCBtKSA9PiAoeyAuLi5hY2MsIC4uLm0udmFyaWFibGVzIH0pLCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KTtcbiAgICByZXR1cm4geyBxdWVyeSwgdmFyaWFibGVzIH07XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from \"@angular/core\";\nimport { gql } from \"apollo-angular\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport { lastValueFrom, switchMap } from \"rxjs\";\nimport { makeSubscription } from \"./builders/parts/queries\";\nimport { HasuraQueryBuilder } from \"./builders\";\nimport { ApolloClientManagerService } from \"./apollo/client-manager\";\nimport { GRAPHQL_HEADERS } from \"./hasura.di\";\nimport * as i0 from \"@angular/core\";\nexport class HasuraService {\n getHeaders = inject(GRAPHQL_HEADERS);\n apolloClientManager = inject(ApolloClientManagerService);\n config = inject(HASURA_CONFIG);\n getApolloClient() {\n return this.apolloClientManager.getClient(this.config.url, this.getHeaders);\n }\n subscribe({ query, variables, fetchPolicy = 'network-only', context }) {\n return this.getApolloClient().pipe(switchMap((client) => client.subscribe({\n query: makeSubscription(query),\n variables: variables,\n fetchPolicy: fetchPolicy,\n context\n })));\n }\n async mutate(...args) {\n const client = await lastValueFrom(this.getApolloClient());\n return lastValueFrom(client.mutate(...args)).catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n async mutateByQueryPart(part) {\n const mutation = HasuraQueryBuilder.buildMutation(part);\n return this.mutate({\n mutation: gql `${mutation}`,\n variables: part.variables,\n }).then((res) => {\n return res.data[part?.alias ?? part.operationName];\n });\n }\n async query(...args) {\n const client = await lastValueFrom(this.getApolloClient());\n // fetchPolicyが指定されていない場合はnetwork-onlyをデフォルトに\n const [options] = args;\n const queryOptions = {\n ...options,\n fetchPolicy: options?.fetchPolicy || 'network-only'\n };\n return lastValueFrom(client.query(queryOptions)).catch((error) => {\n console.error('[HasuraService] query error:', error);\n throw error;\n });\n }\n // Observable版のqueryメソッド(キャッシュ可能)\n watchQuery(options) {\n const { query, variables, fetchPolicy = 'cache-first' } = options;\n return this.getApolloClient().pipe(switchMap((client) => client.watchQuery({\n query: makeSubscription(query),\n variables: variables,\n fetchPolicy: fetchPolicy\n }).valueChanges));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2hhc3VyYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUF3QixNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUk5QyxNQUFNLE9BQU8sYUFBYTtJQUNMLFVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDekQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsU0FBUyxDQUdQLEVBQ0EsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEdBQUcsY0FBYyxFQUM1QixPQUFPLEVBTVI7UUFDQyxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBZ0I7WUFDcEQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQztZQUM5QixTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPO1NBQ1IsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFVLEdBQUcsSUFBc0M7UUFDN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDM0QsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDM0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkMsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQVUsSUFBMEI7UUFDekQsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBSTtZQUNwQixRQUFRLEVBQUUsR0FBRyxDQUFBLEdBQUcsUUFBUSxFQUFFO1lBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDMUIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQVUsR0FBRyxJQUFxQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMzRCw2Q0FBNkM7UUFDN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRztZQUNuQixHQUFHLE9BQU87WUFDVixXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjO1NBQ3BELENBQUM7UUFDRixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBa0MsQ0FBQztJQUN0QyxDQUFDO0lBRUQsaUNBQWlDO0lBQ2pDLFVBQVUsQ0FBc0UsT0FJL0U7UUFDQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEdBQUcsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FDaEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFnQjtZQUNyRCxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1lBQzlCLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFdBQVcsRUFBRSxXQUFXO1NBQ2xCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDeEIsQ0FBQztJQUNKLENBQUM7dUdBL0VVLGFBQWE7MkdBQWIsYUFBYSxjQURBLE1BQU07OzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBcG9sbG9CYXNlLCBncWwgfSBmcm9tIFwiYXBvbGxvLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEhBU1VSQV9DT05GSUcgfSBmcm9tIFwiLi9oYXN1cmEuY29uZmlnXCI7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSwgRmV0Y2hSZXN1bHQsIE9wZXJhdGlvblZhcmlhYmxlcywgQXBvbGxvUXVlcnlSZXN1bHQgfSBmcm9tIFwiQGFwb2xsby9jbGllbnQvY29yZVwiO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1ha2VTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9idWlsZGVycy9wYXJ0cy9xdWVyaWVzXCI7XG5pbXBvcnQgeyBIYXN1cmFRdWVyeUJ1aWxkZXIsIFRyYW5zYWN0aW9uUXVlcnlQYXJ0IH0gZnJvbSBcIi4vYnVpbGRlcnNcIjtcbmltcG9ydCB7IEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYXBvbGxvL2NsaWVudC1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBHUkFQSFFMX0hFQURFUlMgfSBmcm9tIFwiLi9oYXN1cmEuZGlcIjtcblxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEhhc3VyYVNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0SGVhZGVycyA9IGluamVjdChHUkFQSFFMX0hFQURFUlMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBvbGxvQ2xpZW50TWFuYWdlciA9IGluamVjdChBcG9sbG9DbGllbnRNYW5hZ2VyU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3QoSEFTVVJBX0NPTkZJRyk7XG5cbiAgZ2V0QXBvbGxvQ2xpZW50KCk6IE9ic2VydmFibGU8QXBvbGxvQmFzZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvQ2xpZW50TWFuYWdlci5nZXRDbGllbnQodGhpcy5jb25maWcudXJsLCB0aGlzLmdldEhlYWRlcnMpO1xuICB9XG5cbiAgc3Vic2NyaWJlPFxuICAgIFQgPSBhbnksXG4gICAgVFZhcmlhYmxlcyBleHRlbmRzIE9wZXJhdGlvblZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlc1xuICA+KHtcbiAgICBxdWVyeSxcbiAgICB2YXJpYWJsZXMsXG4gICAgZmV0Y2hQb2xpY3kgPSAnbmV0d29yay1vbmx5JyxcbiAgICBjb250ZXh0XG4gIH06IHtcbiAgICBxdWVyeTogYW55LFxuICAgIHZhcmlhYmxlczogVFZhcmlhYmxlcyxcbiAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5LFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICB9KTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldEFwb2xsb0NsaWVudCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNsaWVudCkgPT4gY2xpZW50LnN1YnNjcmliZTxULCBUVmFyaWFibGVzPih7XG4gICAgICAgIHF1ZXJ5OiBtYWtlU3Vic2NyaXB0aW9uKHF1ZXJ5KSxcbiAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgIGZldGNoUG9saWN5OiBmZXRjaFBvbGljeSxcbiAgICAgICAgY29udGV4dFxuICAgICAgfSkpLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBtdXRhdGU8VCA9IGFueT4oLi4uYXJnczogUGFyYW1ldGVyczxBcG9sbG9CYXNlWydtdXRhdGUnXT4pIHtcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0QXBvbGxvQ2xpZW50KCkpO1xuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKGNsaWVudC5tdXRhdGUoLi4uYXJncykpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvci5ncmFwaFFMRXJyb3JzKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbXV0YXRlQnlRdWVyeVBhcnQ8VCA9IGFueT4ocGFydDogVHJhbnNhY3Rpb25RdWVyeVBhcnQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBtdXRhdGlvbiA9IEhhc3VyYVF1ZXJ5QnVpbGRlci5idWlsZE11dGF0aW9uKHBhcnQpO1xuICAgIHJldHVybiB0aGlzLm11dGF0ZTxUPih7XG4gICAgICBtdXRhdGlvbjogZ3FsYCR7bXV0YXRpb259YCxcbiAgICAgIHZhcmlhYmxlczogcGFydC52YXJpYWJsZXMsXG4gICAgfSBhcyBhbnkpLnRoZW4oKHJlczogYW55KSA9PiB7XG4gICAgICByZXR1cm4gcmVzLmRhdGFbcGFydD8uYWxpYXMgPz8gcGFydC5vcGVyYXRpb25OYW1lXVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcXVlcnk8VCA9IGFueT4oLi4uYXJnczogUGFyYW1ldGVyczxBcG9sbG9CYXNlWydxdWVyeSddPik6IFByb21pc2U8QXBvbGxvUXVlcnlSZXN1bHQ8VD4+IHtcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0QXBvbGxvQ2xpZW50KCkpO1xuICAgIC8vIGZldGNoUG9saWN544GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE5aC05ZCI44GvbmV0d29yay1vbmx544KS44OH44OV44Kp44Or44OI44GrXG4gICAgY29uc3QgW29wdGlvbnNdID0gYXJncztcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZmV0Y2hQb2xpY3k6IG9wdGlvbnM/LmZldGNoUG9saWN5IHx8ICduZXR3b3JrLW9ubHknXG4gICAgfTtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShjbGllbnQucXVlcnkocXVlcnlPcHRpb25zKSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbSGFzdXJhU2VydmljZV0gcXVlcnkgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSkgYXMgUHJvbWlzZTxBcG9sbG9RdWVyeVJlc3VsdDxUPj47XG4gIH1cblxuICAvLyBPYnNlcnZhYmxl54mI44GucXVlcnnjg6Hjgr3jg4Pjg4nvvIjjgq3jg6Pjg4Pjgrfjg6Xlj6/og73vvIlcbiAgd2F0Y2hRdWVyeTxUID0gYW55LCBUVmFyaWFibGVzIGV4dGVuZHMgT3BlcmF0aW9uVmFyaWFibGVzID0gT3BlcmF0aW9uVmFyaWFibGVzPihvcHRpb25zOiB7XG4gICAgcXVlcnk6IGFueSxcbiAgICB2YXJpYWJsZXM/OiBUVmFyaWFibGVzLFxuICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3lcbiAgfSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgeyBxdWVyeSwgdmFyaWFibGVzLCBmZXRjaFBvbGljeSA9ICdjYWNoZS1maXJzdCcgfSA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXBvbGxvQ2xpZW50KCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoY2xpZW50KSA9PiBjbGllbnQud2F0Y2hRdWVyeTxULCBUVmFyaWFibGVzPih7XG4gICAgICAgIHF1ZXJ5OiBtYWtlU3Vic2NyaXB0aW9uKHF1ZXJ5KSxcbiAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgIGZldGNoUG9saWN5OiBmZXRjaFBvbGljeVxuICAgICAgfSBhcyBhbnkpLnZhbHVlQ2hhbmdlcylcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable, inject } from \"@angular/core\";\nimport { Repository } from \"@nx-ddd/common/domain\";\nimport { gql } from \"@apollo/client/core\";\nimport { map } from \"rxjs\";\nimport { getConverter } from \"./converter\";\nimport { HasuraService } from \"./hasura.service\";\nimport { HasuraQueryBuilder } from \"./builders\";\nimport { getFields, getTableName } from \"./decorators\";\nimport * as i0 from \"@angular/core\";\nexport class _HasuraRepository extends Repository {\n get pkey() {\n return `${this.tableName}_pkey`;\n }\n getQueryBuilder() {\n return new HasuraQueryBuilder({ tableName: this.tableName, pk: this.pkey, columns: this.updateColumns });\n }\n async get(params) {\n const part = this.getQueryBuilder().parts.queries.get.build({ id: params.id });\n return this.hasura.query({\n query: gql `${this.getQueryBuilder().buildQuery(part)}`,\n variables: part.variables,\n fetchPolicy: 'network-only',\n })\n .then((res) => this.converter.fromHasura(res.data[part.operationName]));\n }\n async list() {\n const part = this.getQueryBuilder().parts.queries.get.buildMany();\n return this.hasura.query({\n query: gql `${this.getQueryBuilder().buildQuery(part)}`,\n fetchPolicy: 'network-only'\n }).then((res) => this.converter.fromHasuraMany(res.data[part.operationName]));\n }\n listChanges() {\n const part = this.getQueryBuilder().parts.queries.get.buildMany();\n const query = this.getQueryBuilder().buildQuery(part);\n return this.hasura.subscribe({ query: gql `${query}`, variables: {} }).pipe(map((res) => this.converter.fromHasuraMany(res.data[part.operationName])));\n }\n async create(data) {\n const converted = this.converter.toHasura(data);\n const part = this.getQueryBuilder().parts.mutations.create.build(converted);\n return this.hasura.mutateByQueryPart(part).then(result => {\n return this.converter.fromHasura(result.returning[0]);\n });\n }\n async createMany(data) {\n const items = this.converter.toHasuraMany(data);\n const part = this.getQueryBuilder().parts.mutations.create.buildMany(items);\n return this.hasura.mutateByQueryPart(part).then((result) => {\n return this.converter.fromHasuraMany(result.returning);\n });\n }\n async update(data) {\n const item = this.converter.toHasura(data);\n const part = this.getQueryBuilder().parts.mutations.update.build(item);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n async updateMany(data) {\n const items = this.converter.toHasuraMany(data);\n const part = this.getQueryBuilder().parts.mutations.update.buildMany(items);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows).then(() => { });\n }\n async delete(params) {\n const part = this.getQueryBuilder().parts.mutations.delete_.build(params);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n async deleteMany(params) {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildMany(params);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows);\n }\n async deleteAll() {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildAll();\n console.debug('part:', part);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n async save(data) {\n const item = this.converter.toHasura(data);\n const part = this.getQueryBuilder().parts.mutations.save.build(item);\n return this.hasura.mutateByQueryPart(part).then((res) => res.returning[0]);\n }\n async saveMany(entities) {\n const items = this.converter.toHasuraMany(entities);\n const part = this.getQueryBuilder().parts.mutations.save.buildMany(items);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n}\nexport class HasuraRepository extends _HasuraRepository {\n hasura = inject(HasuraService);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraRepository, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraRepository });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraRepository, decorators: [{\n type: Injectable\n }] });\nexport function getHasuraRepository(Entity, deps) {\n class Repository extends _HasuraRepository {\n hasura = deps.hasura;\n converter = getConverter(Entity);\n tableName = getTableName(Entity);\n updateColumns = getFields(Entity, { case: 'snake' });\n }\n return new Repository();\n}\nexport function injectHasuraRepository(Entity) {\n return getHasuraRepository(Entity, { hasura: inject(HasuraService) });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2hhc3VyYS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV2RCxNQUFNLE9BQWdCLGlCQUEwQyxTQUFRLFVBQWE7SUFNbkYsSUFBSSxJQUFJO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFvQjtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUMsRUFB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MUIsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBMkIsTUFBZTtJQUM5RSxPQUFPLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSwgVHlwZSB9IGZyb20gXCJAbngtZGRkL2NvbW1vbi9kb21haW5cIjtcbmltcG9ydCB7IGdxbCB9IGZyb20gXCJAYXBvbGxvL2NsaWVudC9jb3JlXCI7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZ2V0Q29udmVydGVyLCBIYXN1cmFDb252ZXJ0ZXIgfSBmcm9tIFwiLi9jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IEhhc3VyYVNlcnZpY2UgfSBmcm9tIFwiLi9oYXN1cmEuc2VydmljZVwiO1xuaW1wb3J0IHsgSGFzdXJhUXVlcnlCdWlsZGVyIH0gZnJvbSBcIi4vYnVpbGRlcnNcIjtcbmltcG9ydCB7IGdldEZpZWxkcywgZ2V0VGFibGVOYW1lIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX0hhc3VyYVJlcG9zaXRvcnk8RSBleHRlbmRzIHtpZDogc3RyaW5nfT4gZXh0ZW5kcyBSZXBvc2l0b3J5PEU+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGhhc3VyYTogSGFzdXJhU2VydmljZTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNvbnZlcnRlcjogSGFzdXJhQ29udmVydGVyPEU+O1xuICByZWFkb25seSBhYnN0cmFjdCB1cGRhdGVDb2x1bW5zOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgYWJzdHJhY3QgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgZ2V0IHBrZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy50YWJsZU5hbWV9X3BrZXlgO1xuICB9XG5cbiAgZ2V0UXVlcnlCdWlsZGVyKCkge1xuICAgIHJldHVybiBuZXcgSGFzdXJhUXVlcnlCdWlsZGVyKHsgdGFibGVOYW1lOiB0aGlzLnRhYmxlTmFtZSwgcGs6IHRoaXMucGtleSwgY29sdW1uczogdGhpcy51cGRhdGVDb2x1bW5zIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0KHBhcmFtczoge2lkOiBzdHJpbmd9KSB7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMucXVlcmllcy5nZXQuYnVpbGQoe2lkOiBwYXJhbXMuaWR9KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEucXVlcnkoe1xuICAgICAgcXVlcnk6IGdxbGAke3RoaXMuZ2V0UXVlcnlCdWlsZGVyKCkuYnVpbGRRdWVyeShwYXJ0KX1gLFxuICAgICAgdmFyaWFibGVzOiBwYXJ0LnZhcmlhYmxlcyxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9IGFzIGFueSlcbiAgICAgIC50aGVuKChyZXM6IGFueSkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUhhc3VyYShyZXMuZGF0YVtwYXJ0Lm9wZXJhdGlvbk5hbWVdKSk7XG4gIH1cblxuICBhc3luYyBsaXN0KCk6IFByb21pc2U8RVtdPiB7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMucXVlcmllcy5nZXQuYnVpbGRNYW55KCk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBncWxgJHt0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLmJ1aWxkUXVlcnkocGFydCl9YCxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5J1xuICAgIH0gYXMgYW55KS50aGVuKChyZXM6IGFueSkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUhhc3VyYU1hbnkocmVzLmRhdGFbcGFydC5vcGVyYXRpb25OYW1lXSkpO1xuICB9XG5cbiAgbGlzdENoYW5nZXMoKTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5xdWVyaWVzLmdldC5idWlsZE1hbnkoKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkuYnVpbGRRdWVyeShwYXJ0KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEuc3Vic2NyaWJlKHsgcXVlcnk6IGdxbGAke3F1ZXJ5fWAsIHZhcmlhYmxlczoge30gfSkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHRoaXMuY29udmVydGVyLmZyb21IYXN1cmFNYW55KHJlcy5kYXRhW3BhcnQub3BlcmF0aW9uTmFtZV0pKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKGRhdGE6IE9taXQ8RSwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+ICYgUGFydGlhbDxQaWNrPEUsICdpZCc+Pik6IFByb21pc2U8RT4ge1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IHRoaXMuY29udmVydGVyLnRvSGFzdXJhKGRhdGEgYXMgRSk7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMubXV0YXRpb25zLmNyZWF0ZS5idWlsZChjb252ZXJ0ZWQgYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEubXV0YXRlQnlRdWVyeVBhcnQocGFydCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21IYXN1cmEocmVzdWx0LnJldHVybmluZ1swXSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVNYW55KGRhdGE6IE9taXQ8RSwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+W10pOiBQcm9taXNlPEVbXT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5jb252ZXJ0ZXIudG9IYXN1cmFNYW55KGRhdGEgYXMgRVtdKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuY3JlYXRlLmJ1aWxkTWFueShpdGVtcyBhcyBhbnlbXSk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLm11dGF0ZUJ5UXVlcnlQYXJ0KHBhcnQpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21IYXN1cmFNYW55KHJlc3VsdC5yZXR1cm5pbmcpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKGRhdGE6IFBhcnRpYWw8RT4gJiB7aWQ6IHN0cmluZ30pOiBQcm9taXNlPHZvaWQ+e1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmNvbnZlcnRlci50b0hhc3VyYShkYXRhIGFzIEUpO1xuICAgIGNvbnN0IHBhcnQgPSB0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLnBhcnRzLm11dGF0aW9ucy51cGRhdGUuYnVpbGQoaXRlbSBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmhhc3VyYS5tdXRhdGVCeVF1ZXJ5UGFydChwYXJ0KS50aGVuKCgpID0+IHt9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU1hbnkoZGF0YTogUGFydGlhbDxFPltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmNvbnZlcnRlci50b0hhc3VyYU1hbnkoZGF0YSBhcyBFW10pO1xuICAgIGNvbnN0IHBhcnQgPSB0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLnBhcnRzLm11dGF0aW9ucy51cGRhdGUuYnVpbGRNYW55KGl0ZW1zIGFzIGFueVtdKTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEubXV0YXRlQnlRdWVyeVBhcnQocGFydCkudGhlbigocmVzdWx0KSA9PiByZXN1bHQuYWZmZWN0ZWRfcm93cykudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBhc3luYyBkZWxldGUocGFyYW1zOiB7aWQ6IHN0cmluZ30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuZGVsZXRlXy5idWlsZChwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmhhc3VyYS5tdXRhdGVCeVF1ZXJ5UGFydChwYXJ0KS50aGVuKCgpID0+IHt9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU1hbnkocGFyYW1zOiB7aWQ6IHN0cmluZ31bXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMubXV0YXRpb25zLmRlbGV0ZV8uYnVpbGRNYW55KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLm11dGF0ZUJ5UXVlcnlQYXJ0KHBhcnQpLnRoZW4oKHJlc3VsdCkgPT4gcmVzdWx0LmFmZmVjdGVkX3Jvd3MpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhcnQgPSB0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLnBhcnRzLm11dGF0aW9ucy5kZWxldGVfLmJ1aWxkQWxsKCk7XG4gICAgY29uc29sZS5kZWJ1ZygncGFydDonLCBwYXJ0KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEubXV0YXRlQnlRdWVyeVBhcnQocGFydCkudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBhc3luYyBzYXZlKGRhdGE6IFBhcnRpYWw8RT4pIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5jb252ZXJ0ZXIudG9IYXN1cmEoZGF0YSBhcyBFKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuc2F2ZS5idWlsZChpdGVtIGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLm11dGF0ZUJ5UXVlcnlQYXJ0KHBhcnQpLnRoZW4oKHJlcykgPT4gcmVzLnJldHVybmluZ1swXSk7XG4gIH1cblxuICBhc3luYyBzYXZlTWFueShlbnRpdGllczogRVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmNvbnZlcnRlci50b0hhc3VyYU1hbnkoZW50aXRpZXMgYXMgRVtdKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuc2F2ZS5idWlsZE1hbnkoaXRlbXMgYXMgYW55W10pO1xuICAgIHJldHVybiB0aGlzLmhhc3VyYS5tdXRhdGVCeVF1ZXJ5UGFydChwYXJ0KS50aGVuKCgpID0+IHt9KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSGFzdXJhUmVwb3NpdG9yeTxFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiBleHRlbmRzIF9IYXN1cmFSZXBvc2l0b3J5PEU+IHtcbiAgcHJvdGVjdGVkIGhhc3VyYSA9IGluamVjdChIYXN1cmFTZXJ2aWNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhhc3VyYVJlcG9zaXRvcnk8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihFbnRpdHk6IFR5cGU8RT4sIGRlcHM6IHtoYXN1cmE6IEhhc3VyYVNlcnZpY2V9KTogX0hhc3VyYVJlcG9zaXRvcnk8RT4ge1xuICBjbGFzcyBSZXBvc2l0b3J5IGV4dGVuZHMgX0hhc3VyYVJlcG9zaXRvcnk8RT4ge1xuICAgIHByb3RlY3RlZCBoYXN1cmEgPSBkZXBzLmhhc3VyYTtcbiAgICBwcm90ZWN0ZWQgY29udmVydGVyID0gZ2V0Q29udmVydGVyPEU+KEVudGl0eSk7XG4gICAgcmVhZG9ubHkgdGFibGVOYW1lID0gZ2V0VGFibGVOYW1lKEVudGl0eSk7XG4gICAgcmVhZG9ubHkgdXBkYXRlQ29sdW1ucyA9IGdldEZpZWxkcyhFbnRpdHksIHsgY2FzZTogJ3NuYWtlJyB9KTtcbiAgfVxuICByZXR1cm4gbmV3IFJlcG9zaXRvcnkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEhhc3VyYVJlcG9zaXRvcnk8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihFbnRpdHk6IFR5cGU8RT4pOiBfSGFzdXJhUmVwb3NpdG9yeTxFPiB7XG4gIHJldHVybiBnZXRIYXN1cmFSZXBvc2l0b3J5KEVudGl0eSwgeyBoYXN1cmE6IGluamVjdChIYXN1cmFTZXJ2aWNlKSB9KTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWhhc3VyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvbngtZGRkLWhhc3VyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["ApolloLinkService","camelCase","typeConverters.toTimestamp","typeConverters.toDate","typeConverters.toNumber","typeConverters.toHasuraLocation","typeConverters.fromHasuraLocation","InMemoryCache","gql"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-hasura.mjs","sources":["../tmp-esm2022/apollo/multi/multi.service.js","../tmp-esm2022/apollo/link/links.js","../tmp-esm2022/apollo/link/link.service.js","../tmp-esm2022/apollo/client-manager/client-manager.service.js","../tmp-esm2022/decorators/decorators.js","../tmp-esm2022/converter/type-converters.js","../tmp-esm2022/converter/from-hasura.js","../tmp-esm2022/converter/case-converters.js","../tmp-esm2022/converter/to-hasura.js","../tmp-esm2022/converter/converter.js","../tmp-esm2022/hasura.interceptor.js","../tmp-esm2022/hasura.config.js","../tmp-esm2022/hasura.di.js","../tmp-esm2022/builders/parts/queries/get.builder.js","../tmp-esm2022/builders/parts/queries/queries.builder.js","../tmp-esm2022/builders/parts/mutations/create.builder.js","../tmp-esm2022/builders/parts/mutations/delete.builder.js","../tmp-esm2022/builders/parts/mutations/save.builder.js","../tmp-esm2022/builders/parts/mutations/update.builder.js","../tmp-esm2022/builders/parts/mutations/mutations.builder.js","../tmp-esm2022/builders/parts/parts.builder.js","../tmp-esm2022/builders/query-builder.js","../tmp-esm2022/hasura.service.js","../tmp-esm2022/hasura.repository.js","../tmp-esm2022/nx-ddd-hasura.js"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { makeDI } from '@nx-ddd/core';\nimport { ApolloLinkService } from '@nx-ddd/hasura/apollo/link';\nimport { Apollo } from 'apollo-angular';\nimport * as i0 from \"@angular/core\";\n/** @deprecated use ApolloClientManagerService instead */\nexport class ApolloMultiService {\n apollo = inject(Apollo);\n linkService = inject(ApolloLinkService);\n createClient(name, baseUrl, getHeaders) {\n this.apollo.removeClient(name);\n this.apollo.createNamed(name, {\n link: this.linkService.createLink(baseUrl, getHeaders),\n cache: new InMemoryCache()\n });\n }\n getClient(endpoint, getHeaders) {\n const name = endpoint;\n let client = this.apollo.use(name);\n console.debug('[ApolloMultiService] getClient:', name);\n if (!client) {\n this.createClient(name, endpoint, getHeaders);\n client = this.apollo.use(name);\n }\n return client;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloMultiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloMultiService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloMultiService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport const GET_APOLLO_CLIENT = makeDI('GET_APOLLO_CLIENT');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYXBvbGxvL211bHRpL211bHRpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFjLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLGdCQUFnQixDQUFDOztBQUlwRCx5REFBeUQ7QUFFekQsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2QsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRWpELFlBQVksQ0FBQyxJQUFZLEVBQUUsT0FBZSxFQUFFLFVBQXNCO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztZQUN0RCxLQUFLLEVBQUUsSUFBSSxhQUFhLEVBQUU7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFnQixFQUFFLFVBQXNCO1FBQ2hELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN0QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUM5QyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7dUdBckJVLGtCQUFrQjsyR0FBbEIsa0JBQWtCLGNBRE4sTUFBTTs7MkZBQ2xCLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7O0FBMkJoQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQXVCLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEluTWVtb3J5Q2FjaGUgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jYWNoZSc7XG5pbXBvcnQgeyBBcG9sbG9DbGllbnQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IG1ha2VESSB9IGZyb20gJ0BueC1kZGQvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG9MaW5rU2VydmljZSwgR2V0SGVhZGVycyB9IGZyb20gJ0BueC1kZGQvaGFzdXJhL2Fwb2xsby9saW5rJztcbmltcG9ydCB7IEFwb2xsbywgQXBvbGxvQmFzZSB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhhc3VyYUNvbmZpZyB9IGZyb20gJy4uLy4uL2hhc3VyYS5jb25maWcnO1xuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlIGluc3RlYWQgKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEFwb2xsb011bHRpU2VydmljZSB7XG4gIHJlYWRvbmx5IGFwb2xsbyA9IGluamVjdChBcG9sbG8pO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlua1NlcnZpY2UgPSBpbmplY3QoQXBvbGxvTGlua1NlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjcmVhdGVDbGllbnQobmFtZTogc3RyaW5nLCBiYXNlVXJsOiBzdHJpbmcsIGdldEhlYWRlcnM6IEdldEhlYWRlcnMpIHtcbiAgICB0aGlzLmFwb2xsby5yZW1vdmVDbGllbnQobmFtZSk7XG4gICAgdGhpcy5hcG9sbG8uY3JlYXRlTmFtZWQobmFtZSwge1xuICAgICAgbGluazogdGhpcy5saW5rU2VydmljZS5jcmVhdGVMaW5rKGJhc2VVcmwsIGdldEhlYWRlcnMpLFxuICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKClcbiAgICB9KTtcbiAgfVxuXG4gIGdldENsaWVudChlbmRwb2ludDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQXBvbGxvQmFzZSB7XG4gICAgY29uc3QgbmFtZSA9IGVuZHBvaW50O1xuICAgIGxldCBjbGllbnQgPSB0aGlzLmFwb2xsby51c2UobmFtZSk7XG4gICAgY29uc29sZS5kZWJ1ZygnW0Fwb2xsb011bHRpU2VydmljZV0gZ2V0Q2xpZW50OicsIG5hbWUpO1xuICAgIGlmICghY2xpZW50KSB7XG4gICAgICB0aGlzLmNyZWF0ZUNsaWVudChuYW1lLCBlbmRwb2ludCwgZ2V0SGVhZGVycyk7XG4gICAgICBjbGllbnQgPSB0aGlzLmFwb2xsby51c2UobmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgdHlwZSBHZXRBcG9sbG9DbGllbnQ8RSBleHRlbmRzIHtpZDogc3RyaW5nfT4gPSAoY29uZmlnOiBIYXN1cmFDb25maWcpID0+IEFwb2xsb0NsaWVudCB8IFByb21pc2U8QXBvbGxvQ2xpZW50PiB8IE9ic2VydmFibGU8QXBvbGxvQ2xpZW50PjtcbmV4cG9ydCBjb25zdCBHRVRfQVBPTExPX0NMSUVOVCA9IG1ha2VESTxHZXRBcG9sbG9DbGllbnQ8YW55Pj4oJ0dFVF9BUE9MTE9fQ0xJRU5UJyk7Il19","import { distinctUntilChanged, filter, from, isObservable, lastValueFrom, of, take } from 'rxjs';\nexport function wrap(obsOrPromiseOrValue) {\n if (isObservable(obsOrPromiseOrValue))\n return obsOrPromiseOrValue;\n if (obsOrPromiseOrValue instanceof Promise)\n return from(obsOrPromiseOrValue);\n return of(obsOrPromiseOrValue);\n}\nexport function resolve(getHeaders) {\n const headers$ = wrap(getHeaders());\n return lastValueFrom(headers$.pipe(filter((headers) => !!headers), take(1), distinctUntilChanged()));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2Fwb2xsby9saW5rL2xpbmtzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLElBQUksRUFBTyxNQUFNLE1BQU0sQ0FBQztBQUtsSCxNQUFNLFVBQVUsSUFBSSxDQUFJLG1CQUFtRDtJQUN6RSxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztRQUFFLE9BQU8sbUJBQW1CLENBQUM7SUFDbEUsSUFBSSxtQkFBbUIsWUFBWSxPQUFPO1FBQUUsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM3RSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFDLFVBQXNCO0lBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1Asb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQyxDQUFBO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIGZyb20sIGlzT2JzZXJ2YWJsZSwgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFByb21pc2VPck9ic2VydmFibGU8VD4gPSBQcm9taXNlPFQ+IHwgT2JzZXJ2YWJsZTxUPiB8IFQ7XG5leHBvcnQgdHlwZSBHZXRIZWFkZXJzID0gKCkgPT4gUHJvbWlzZU9yT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXA8VD4ob2JzT3JQcm9taXNlT3JWYWx1ZTogUHJvbWlzZTxUPiB8IE9ic2VydmFibGU8VD4gfCBUKTogT2JzZXJ2YWJsZTxUPiB7XG4gIGlmIChpc09ic2VydmFibGUob2JzT3JQcm9taXNlT3JWYWx1ZSkpIHJldHVybiBvYnNPclByb21pc2VPclZhbHVlO1xuICBpZiAob2JzT3JQcm9taXNlT3JWYWx1ZSBpbnN0YW5jZW9mIFByb21pc2UpIHJldHVybiBmcm9tKG9ic09yUHJvbWlzZU9yVmFsdWUpO1xuICByZXR1cm4gb2Yob2JzT3JQcm9taXNlT3JWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKGdldEhlYWRlcnM6IEdldEhlYWRlcnMpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgaGVhZGVycyQgPSB3cmFwKGdldEhlYWRlcnMoKSk7XG4gIHJldHVybiBsYXN0VmFsdWVGcm9tKGhlYWRlcnMkLnBpcGUoXG4gICAgZmlsdGVyKChoZWFkZXJzKSA9PiAhIWhlYWRlcnMpLFxuICAgIHRha2UoMSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgKSlcbn1cbiJdfQ==","import { Injectable, inject } from '@angular/core';\nimport { HttpLink } from 'apollo-angular/http';\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloLink, split } from '@apollo/client/core';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport { createClient } from 'graphql-ws';\nimport { resolve } from './links';\nimport { WEBSOCKET } from '@nx-ddd/common/infrastructure/externals/websocket/token';\nimport * as i0 from \"@angular/core\";\nfunction isSubscription(query) {\n const definition = getMainDefinition(query);\n return (definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription');\n}\nexport class ApolloLinkService {\n httpLink = inject(HttpLink);\n WebSocketImpl = WEBSOCKET.inject();\n createGraphQLWsClient(baseUrl, getHeaders) {\n return createClient({\n url: baseUrl.replace('http', 'ws'),\n webSocketImpl: this.WebSocketImpl,\n connectionParams: async () => {\n const headers = await resolve(getHeaders);\n return { headers };\n },\n lazy: true, // 必要時のみ接続を開始\n shouldRetry: () => true, // 再接続を有効化\n retryAttempts: 5, // 再接続試行回数を制限\n keepAlive: 30000, // 30秒ごとにキープアライブ\n });\n }\n createHttpLink(baseUrl, getHeaders) {\n return ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers };\n }),\n this.httpLink.create({ uri: baseUrl, }),\n ]);\n }\n createWebSocketLink(baseUrl, getHeaders) {\n return new GraphQLWsLink(this.createGraphQLWsClient(baseUrl, getHeaders));\n }\n createAutoSplitLink(baseUrl, getHeaders) {\n return split(({ query }) => isSubscription(query), this.createWebSocketLink(baseUrl, getHeaders), this.createHttpLink(baseUrl, getHeaders));\n }\n createLink(baseUrl, getHeaders) {\n return this.createAutoSplitLink(baseUrl, getHeaders);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloLinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloLinkService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloLinkService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9hcG9sbG8vbGluay9saW5rLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFnQixLQUFLLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFVLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7QUFFcEYsU0FBUyxjQUFjLENBQUMsS0FBbUI7SUFDekMsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsT0FBTyxDQUNMLFVBQVUsQ0FBQyxJQUFJLEtBQUsscUJBQXFCO1FBQ3pDLFVBQVUsQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUN4QyxDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBRXBDLHFCQUFxQixDQUFDLE9BQWUsRUFBRSxVQUFzQjtRQUNuRSxPQUFPLFlBQVksQ0FBQztZQUNsQixHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ2xDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxnQkFBZ0IsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDM0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNyQixDQUFDO1lBQ0QsSUFBSSxFQUFFLElBQUksRUFBRSxhQUFhO1lBQ3pCLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVTtZQUNuQyxhQUFhLEVBQUUsQ0FBQyxFQUFFLGFBQWE7WUFDL0IsU0FBUyxFQUFFLEtBQUssRUFBRSxnQkFBZ0I7U0FDbkMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDcEQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDcEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtZQUNwQixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxPQUFPLEdBQUcsQ0FBQztTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsT0FBZSxFQUFFLFVBQXNCO1FBQ3pELE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDekQsT0FBTyxLQUFLLENBQ1YsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEVBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLEVBQzdDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUN6QyxDQUFDO0lBQ0osQ0FBQztJQUVELFVBQVUsQ0FBQyxPQUFlLEVBQUUsVUFBc0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7dUdBM0NVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBREwsTUFBTTs7MkZBQ2xCLGlCQUFpQjtrQkFEN0IsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBMaW5rIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXIvaHR0cCc7XG5pbXBvcnQgeyBzZXRDb250ZXh0IH0gZnJvbSAnQGFwb2xsby9jbGllbnQvbGluay9jb250ZXh0JztcbmltcG9ydCB7IEFwb2xsb0xpbmssIERvY3VtZW50Tm9kZSwgc3BsaXQgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IGdldE1haW5EZWZpbml0aW9uIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvdXRpbGl0aWVzJztcbmltcG9ydCB7IEdyYXBoUUxXc0xpbmsgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9saW5rL3N1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgQ2xpZW50LCBjcmVhdGVDbGllbnQgfSBmcm9tICdncmFwaHFsLXdzJztcbmltcG9ydCB7IEdldEhlYWRlcnMsIHJlc29sdmUgfSBmcm9tICcuL2xpbmtzJztcbmltcG9ydCB7IFdFQlNPQ0tFVCB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy93ZWJzb2NrZXQvdG9rZW4nO1xuXG5mdW5jdGlvbiBpc1N1YnNjcmlwdGlvbihxdWVyeTogRG9jdW1lbnROb2RlKSB7XG4gIGNvbnN0IGRlZmluaXRpb24gPSBnZXRNYWluRGVmaW5pdGlvbihxdWVyeSk7XG4gIHJldHVybiAoXG4gICAgZGVmaW5pdGlvbi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiZcbiAgICBkZWZpbml0aW9uLm9wZXJhdGlvbiA9PT0gJ3N1YnNjcmlwdGlvbidcbiAgKTtcbn1cblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQXBvbGxvTGlua1NlcnZpY2Uge1xuICByZWFkb25seSBodHRwTGluayA9IGluamVjdChIdHRwTGluayk7XG4gIHJlYWRvbmx5IFdlYlNvY2tldEltcGwgPSBXRUJTT0NLRVQuaW5qZWN0KCk7XG5cbiAgcHJpdmF0ZSBjcmVhdGVHcmFwaFFMV3NDbGllbnQoYmFzZVVybDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQ2xpZW50IHtcbiAgICByZXR1cm4gY3JlYXRlQ2xpZW50KHtcbiAgICAgIHVybDogYmFzZVVybC5yZXBsYWNlKCdodHRwJywgJ3dzJyksXG4gICAgICB3ZWJTb2NrZXRJbXBsOiB0aGlzLldlYlNvY2tldEltcGwsXG4gICAgICBjb25uZWN0aW9uUGFyYW1zOiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBhd2FpdCByZXNvbHZlKGdldEhlYWRlcnMpO1xuICAgICAgICByZXR1cm4geyBoZWFkZXJzIH07XG4gICAgICB9LFxuICAgICAgbGF6eTogdHJ1ZSwgLy8g5b+F6KaB5pmC44Gu44G/5o6l57aa44KS6ZaL5aeLXG4gICAgICBzaG91bGRSZXRyeTogKCkgPT4gdHJ1ZSwgLy8g5YaN5o6l57aa44KS5pyJ5Yq55YyWXG4gICAgICByZXRyeUF0dGVtcHRzOiA1LCAvLyDlho3mjqXntproqabooYzlm57mlbDjgpLliLbpmZBcbiAgICAgIGtlZXBBbGl2ZTogMzAwMDAsIC8vIDMw56eS44GU44Go44Gr44Kt44O844OX44Ki44Op44Kk44OWXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGVIdHRwTGluayhiYXNlVXJsOiBzdHJpbmcsIGdldEhlYWRlcnM6IEdldEhlYWRlcnMpOiBBcG9sbG9MaW5rIHtcbiAgICByZXR1cm4gQXBvbGxvTGluay5mcm9tKFtcbiAgICAgIHNldENvbnRleHQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gYXdhaXQgcmVzb2x2ZShnZXRIZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIHsgaGVhZGVycyB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuaHR0cExpbmsuY3JlYXRlKHsgdXJpOiBiYXNlVXJsLCB9KSxcbiAgICBdKTtcbiAgfVxuXG4gIGNyZWF0ZVdlYlNvY2tldExpbmsoYmFzZVVybDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQXBvbGxvTGluayB7XG4gICAgcmV0dXJuIG5ldyBHcmFwaFFMV3NMaW5rKHRoaXMuY3JlYXRlR3JhcGhRTFdzQ2xpZW50KGJhc2VVcmwsIGdldEhlYWRlcnMpKTtcbiAgfVxuXG4gIGNyZWF0ZUF1dG9TcGxpdExpbmsoYmFzZVVybDogc3RyaW5nLCBnZXRIZWFkZXJzOiBHZXRIZWFkZXJzKTogQXBvbGxvTGluayB7XG4gICAgcmV0dXJuIHNwbGl0KFxuICAgICAgKHsgcXVlcnkgfSkgPT4gaXNTdWJzY3JpcHRpb24ocXVlcnkpLFxuICAgICAgdGhpcy5jcmVhdGVXZWJTb2NrZXRMaW5rKGJhc2VVcmwsIGdldEhlYWRlcnMpLFxuICAgICAgdGhpcy5jcmVhdGVIdHRwTGluayhiYXNlVXJsLCBnZXRIZWFkZXJzKVxuICAgICk7XG4gIH1cblxuICBjcmVhdGVMaW5rKGJhc2VVcmw6IHN0cmluZywgZ2V0SGVhZGVyczogR2V0SGVhZGVycyk6IEFwb2xsb0xpbmsge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUF1dG9TcGxpdExpbmsoYmFzZVVybCwgZ2V0SGVhZGVycyk7XG4gIH1cbn1cbiJdfQ==","import { inject, Injectable } from \"@angular/core\";\nimport { Apollo } from \"apollo-angular\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { ApolloLinkService, wrap } from \"../link\";\nimport { switchMap, take } from \"rxjs\";\nimport { CRYPTO } from \"@nx-ddd/common/infrastructure/externals/crypto/token\";\nimport * as i0 from \"@angular/core\";\nexport class ApolloClientManagerService {\n apollo = inject(Apollo);\n linkService = inject(ApolloLinkService);\n crypto = CRYPTO.inject() ?? globalThis.crypto;\n async buildClientName(endpoint, headers) {\n const data = new TextEncoder().encode(JSON.stringify(headers));\n // HTTP環境ではcrypto.subtleが使えないため、フォールバックを使用\n if (!this.crypto?.subtle) {\n const str = JSON.stringify(headers);\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash) + str.charCodeAt(i);\n hash |= 0;\n }\n return `${endpoint}?headers=${Math.abs(hash).toString(16)}`;\n }\n const arrayBuffer = await this.crypto.subtle.digest('SHA-256', data);\n const hash = Array.from(new Uint8Array(arrayBuffer)).map(b => b.toString(16).padStart(2, '0')).join('');\n return `${endpoint}?headers=${hash}`;\n }\n getClient(endpoint, getHeaders) {\n return wrap(getHeaders()).pipe(take(1), switchMap(async (headers) => {\n const name = await this.buildClientName(endpoint, headers);\n const client = this.apollo.use(name);\n if (!client) {\n this.apollo.removeClient(name);\n this.apollo.createNamed(name, {\n link: this.linkService.createLink(endpoint, getHeaders),\n cache: new InMemoryCache()\n });\n return this.apollo.use(name);\n }\n return client;\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloClientManagerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloClientManagerService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ApolloClientManagerService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYXBvbGxvL2NsaWVudC1tYW5hZ2VyL2NsaWVudC1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQWMsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlELE9BQU8sRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7QUFHOUUsTUFBTSxPQUFPLDBCQUEwQjtJQUM1QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2QsV0FBVyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUV2RCxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQWdCLEVBQUUsT0FBK0I7UUFDL0UsTUFBTSxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9ELDBDQUEwQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELElBQUksSUFBSSxDQUFDLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxHQUFHLFFBQVEsWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlELENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDckUsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RyxPQUFPLEdBQUcsUUFBUSxZQUFZLElBQUksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0IsRUFBRSxVQUFzQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDNUIsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDMUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVyQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtvQkFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUM7b0JBQ3ZELEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRTtpQkFDM0IsQ0FBQyxDQUFDO2dCQUNILE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3VHQXpDVSwwQkFBMEI7MkdBQTFCLDBCQUEwQixjQURkLE1BQU07OzJGQUNsQiwwQkFBMEI7a0JBRHRDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFwb2xsbywgQXBvbGxvQmFzZSB9IGZyb20gXCJhcG9sbG8tYW5ndWxhclwiO1xuaW1wb3J0IHsgSW5NZW1vcnlDYWNoZSB9IGZyb20gXCJAYXBvbGxvL2NsaWVudC9jYWNoZVwiO1xuaW1wb3J0IHsgQXBvbGxvTGlua1NlcnZpY2UsIEdldEhlYWRlcnMsIHdyYXAgfSBmcm9tIFwiLi4vbGlua1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IENSWVBUTyB9IGZyb20gXCJAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvY3J5cHRvL3Rva2VuXCI7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYXBvbGxvID0gaW5qZWN0KEFwb2xsbyk7XG4gIHByb3RlY3RlZCByZWFkb25seSBsaW5rU2VydmljZSA9IGluamVjdChBcG9sbG9MaW5rU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjcnlwdG8gPSBDUllQVE8uaW5qZWN0KCkgPz8gZ2xvYmFsVGhpcy5jcnlwdG87XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkQ2xpZW50TmFtZShlbmRwb2ludDogc3RyaW5nLCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBkYXRhID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKEpTT04uc3RyaW5naWZ5KGhlYWRlcnMpKTtcbiAgICAvLyBIVFRQ55Kw5aKD44Gn44GvY3J5cHRvLnN1YnRsZeOBjOS9v+OBiOOBquOBhOOBn+OCgeOAgeODleOCqeODvOODq+ODkOODg+OCr+OCkuS9v+eUqFxuICAgIGlmICghdGhpcy5jcnlwdG8/LnN1YnRsZSkge1xuICAgICAgY29uc3Qgc3RyID0gSlNPTi5zdHJpbmdpZnkoaGVhZGVycyk7XG4gICAgICBsZXQgaGFzaCA9IDA7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBoYXNoID0gKChoYXNoIDw8IDUpIC0gaGFzaCkgKyBzdHIuY2hhckNvZGVBdChpKTtcbiAgICAgICAgaGFzaCB8PSAwO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAke2VuZHBvaW50fT9oZWFkZXJzPSR7TWF0aC5hYnMoaGFzaCkudG9TdHJpbmcoMTYpfWA7XG4gICAgfVxuICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgdGhpcy5jcnlwdG8uc3VidGxlLmRpZ2VzdCgnU0hBLTI1NicsIGRhdGEpO1xuICAgIGNvbnN0IGhhc2ggPSBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGFycmF5QnVmZmVyKSkubWFwKGIgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgJzAnKSkuam9pbignJyk7XG4gICAgcmV0dXJuIGAke2VuZHBvaW50fT9oZWFkZXJzPSR7aGFzaH1gO1xuICB9XG5cbiAgZ2V0Q2xpZW50KGVuZHBvaW50OiBzdHJpbmcsIGdldEhlYWRlcnM6IEdldEhlYWRlcnMpOiBPYnNlcnZhYmxlPEFwb2xsb0Jhc2U8YW55Pj4ge1xuICAgIHJldHVybiB3cmFwKGdldEhlYWRlcnMoKSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoYXN5bmMgKGhlYWRlcnMpID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IGF3YWl0IHRoaXMuYnVpbGRDbGllbnROYW1lKGVuZHBvaW50LCBoZWFkZXJzKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gdGhpcy5hcG9sbG8udXNlKG5hbWUpO1xuXG4gICAgICAgIGlmICghY2xpZW50KSB7XG4gICAgICAgICAgdGhpcy5hcG9sbG8ucmVtb3ZlQ2xpZW50KG5hbWUpO1xuICAgICAgICAgIHRoaXMuYXBvbGxvLmNyZWF0ZU5hbWVkKG5hbWUsIHtcbiAgICAgICAgICAgIGxpbms6IHRoaXMubGlua1NlcnZpY2UuY3JlYXRlTGluayhlbmRwb2ludCwgZ2V0SGVhZGVycyksXG4gICAgICAgICAgICBjYWNoZTogbmV3IEluTWVtb3J5Q2FjaGUoKVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiB0aGlzLmFwb2xsby51c2UobmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2xpZW50O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19","import { makeDecoratorFactories } from \"@nx-ddd/core\";\nimport { camelCase, snakeCase } from 'lodash-es';\nconst { createDecorator, \n// createClassDecorator,\naddAnnotation, getAnnotations, } = makeDecoratorFactories((type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }), '[@nx-ddd/hasura] annotations');\nexport function getFieldAnnotationMap(T, prefix = '') {\n const annotations = Hasura.getAnnotations(T);\n return (annotations ?? []).reduce((acc, annotation) => {\n const currentKey = prefix ? camelCase(`${prefix}_${annotation.fieldName}`) : annotation.fieldName;\n return { ...acc, [currentKey]: annotation };\n }, {});\n}\nexport function getFlattenFieldAnnotations(T, prefix = '') {\n const annotations = Hasura.getAnnotations(T);\n return (annotations ?? []).reduce((acc, annotation) => {\n const currentKey = prefix ? camelCase(`${prefix}_${annotation.fieldName}`) : annotation.fieldName;\n if (annotation.childType) {\n return {\n ...acc,\n ...getFlattenFieldAnnotations(annotation.childType(), currentKey)\n };\n }\n return {\n ...acc,\n [currentKey]: annotation\n };\n }, {});\n}\nexport function getFields(T, options = {\n prefix: '',\n case: 'snake'\n}) {\n const annotations = Hasura.getAnnotations(T).filter((annotation) => annotation.type !== 'table');\n const changeCase = options?.case === 'snake' ? snakeCase : camelCase;\n const fields = (annotations ?? []).flatMap((annotation) => {\n const currentKey = changeCase(options?.prefix ? `${options?.prefix}_${annotation.fieldName}` : annotation.fieldName);\n if (annotation.childType) {\n return [\n ...getFields(annotation.childType(), {\n prefix: currentKey,\n case: options?.case,\n })\n ];\n }\n return [currentKey];\n });\n return fields;\n}\nfunction createClassDecorator(type) {\n return (nameOrProps) => {\n const props = typeof nameOrProps === 'string' ? { name: nameOrProps } : nameOrProps;\n return (target) => {\n const name = props?.name || target.name;\n const annotation = { type, name };\n addAnnotation(target, annotation);\n };\n };\n}\nexport function getTableName(target) {\n const annotations = getAnnotations(target);\n const annotation = annotations.find((annotation) => annotation.type === 'table');\n return annotation.name;\n}\nexport const Hasura = {\n Table: createClassDecorator('table'),\n Text: createDecorator('text'),\n Timestamp: createDecorator('timestamp'),\n Date: createDecorator('date'),\n Integer: createDecorator('integer'),\n Numeric: createDecorator('numeric'),\n Boolean: createDecorator('boolean'),\n Map: (childType) => createDecorator('map', { childType })(),\n JSON: createDecorator('json'),\n Location: createDecorator('location'),\n addAnnotation,\n createDecorator,\n getAnnotations,\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvZGVjb3JhdG9ycy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqRCxNQUFNLEVBQ0osZUFBZTtBQUNmLHdCQUF3QjtBQUN4QixhQUFhLEVBQ2IsY0FBYyxHQUNmLEdBQUcsc0JBQXNCLENBQ3hCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUNyRyw4QkFBOEIsQ0FDL0IsQ0FBQztBQUVGLE1BQU0sVUFBVSxxQkFBcUIsQ0FBYSxDQUFNLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxPQUFPLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsRUFBRTtRQUNwRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztRQUNsRyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUM5QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7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R0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQWUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztJQUN0RixPQUFRLFVBQWtCLENBQUMsSUFBSSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUc7SUFDcEIsS0FBSyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQztJQUNwQyxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUM3QixTQUFTLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUM3QixPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxPQUFPLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxHQUFHLEVBQUUsQ0FBQyxTQUFvQixFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBRTtJQUNwRSxJQUFJLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztJQUM3QixRQUFRLEVBQUUsZUFBZSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxhQUFhO0lBQ2IsZUFBZTtJQUNmLGNBQWM7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFrZURlY29yYXRvckZhY3RvcmllcyB9IGZyb20gXCJAbngtZGRkL2NvcmVcIjtcbmltcG9ydCB7IGNhbWVsQ2FzZSwgc25ha2VDYXNlIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3Qge1xuICBjcmVhdGVEZWNvcmF0b3IsXG4gIC8vIGNyZWF0ZUNsYXNzRGVjb3JhdG9yLFxuICBhZGRBbm5vdGF0aW9uLFxuICBnZXRBbm5vdGF0aW9ucyxcbn0gPSBtYWtlRGVjb3JhdG9yRmFjdG9yaWVzKFxuICAodHlwZSwgZmllbGROYW1lLCBwcm9wTmFtZSwgb3B0aW9ucykgPT4gKHsgdHlwZSwgZmllbGROYW1lLCBwcm9wTmFtZSwgY2hpbGRUeXBlOiBvcHRpb25zLmNoaWxkVHlwZSB9KSxcbiAgJ1tAbngtZGRkL2hhc3VyYV0gYW5ub3RhdGlvbnMnXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRBbm5vdGF0aW9uTWFwPEFubm90YXRpb24+KFQ6IGFueSwgcHJlZml4ID0gJycpOiBSZWNvcmQ8c3RyaW5nLCBBbm5vdGF0aW9uPiB7XG4gIGNvbnN0IGFubm90YXRpb25zID0gSGFzdXJhLmdldEFubm90YXRpb25zKFQpO1xuICByZXR1cm4gKGFubm90YXRpb25zID8/IFtdKS5yZWR1Y2UoKGFjYywgYW5ub3RhdGlvbikgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRLZXkgPSBwcmVmaXggPyBjYW1lbENhc2UoYCR7cHJlZml4fV8ke2Fubm90YXRpb24uZmllbGROYW1lfWApIDogYW5ub3RhdGlvbi5maWVsZE5hbWU7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbY3VycmVudEtleV06IGFubm90YXRpb24gfTtcbiAgfSwge30pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmxhdHRlbkZpZWxkQW5ub3RhdGlvbnM8QW5ub3RhdGlvbj4oVDogYW55LCBwcmVmaXggPSAnJyk6IFJlY29yZDxzdHJpbmcsIEFubm90YXRpb24+IHtcbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBIYXN1cmEuZ2V0QW5ub3RhdGlvbnMoVCk7XG4gIHJldHVybiAoYW5ub3RhdGlvbnMgPz8gW10pLnJlZHVjZSgoYWNjLCBhbm5vdGF0aW9uKSA9PiB7XG4gICAgY29uc3QgY3VycmVudEtleSA9IHByZWZpeCA/IGNhbWVsQ2FzZShgJHtwcmVmaXh9XyR7YW5ub3RhdGlvbi5maWVsZE5hbWV9YCkgOiBhbm5vdGF0aW9uLmZpZWxkTmFtZTtcbiAgICBpZiAoYW5ub3RhdGlvbi5jaGlsZFR5cGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4uZ2V0RmxhdHRlbkZpZWxkQW5ub3RhdGlvbnMoYW5ub3RhdGlvbi5jaGlsZFR5cGUoKSwgY3VycmVudEtleSlcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAuLi5hY2MsXG4gICAgICBbY3VycmVudEtleV06IGFubm90YXRpb25cbiAgICB9O1xuICB9LCB7fSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHMoVDogYW55LCBvcHRpb25zOiB7XG4gIHByZWZpeD86IHN0cmluZztcbiAgY2FzZT86ICdzbmFrZScgfCAnY2FtZWwnO1xufSA9IHtcbiAgcHJlZml4OiAnJyxcbiAgY2FzZTogJ3NuYWtlJ1xufSk6IHN0cmluZ1tdIHtcbiAgY29uc3QgYW5ub3RhdGlvbnMgPSBIYXN1cmEuZ2V0QW5ub3RhdGlvbnMoVCkuZmlsdGVyKChhbm5vdGF0aW9uOiBhbnkpID0+IGFubm90YXRpb24udHlwZSAhPT0gJ3RhYmxlJyk7XG4gIGNvbnN0IGNoYW5nZUNhc2UgPSBvcHRpb25zPy5jYXNlID09PSAnc25ha2UnID8gc25ha2VDYXNlIDogY2FtZWxDYXNlO1xuICBjb25zdCBmaWVsZHMgPSAoYW5ub3RhdGlvbnMgPz8gW10pLmZsYXRNYXAoKGFubm90YXRpb24pID0+IHtcbiAgICBjb25zdCBjdXJyZW50S2V5ID0gY2hhbmdlQ2FzZShvcHRpb25zPy5wcmVmaXggPyBgJHtvcHRpb25zPy5wcmVmaXh9XyR7YW5ub3RhdGlvbi5maWVsZE5hbWV9YCA6IGFubm90YXRpb24uZmllbGROYW1lKTtcbiAgICBpZiAoYW5ub3RhdGlvbi5jaGlsZFR5cGUpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmdldEZpZWxkcyhhbm5vdGF0aW9uLmNoaWxkVHlwZSgpLCB7XG4gICAgICAgICAgcHJlZml4OiBjdXJyZW50S2V5LFxuICAgICAgICAgIGNhc2U6IG9wdGlvbnM/LmNhc2UsXG4gICAgICAgIH0pXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW2N1cnJlbnRLZXldO1xuICB9KTtcbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2xhc3NEZWNvcmF0b3IodHlwZTogc3RyaW5nKSB7XG4gIHJldHVybiAobmFtZU9yUHJvcHM6IHsgbmFtZTogc3RyaW5nIH0gfCBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBwcm9wcyA9IHR5cGVvZiBuYW1lT3JQcm9wcyA9PT0gJ3N0cmluZycgPyB7IG5hbWU6IG5hbWVPclByb3BzIH0gOiBuYW1lT3JQcm9wcztcbiAgICByZXR1cm4gKHRhcmdldDogYW55KSA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gcHJvcHM/Lm5hbWUgfHwgdGFyZ2V0Lm5hbWU7XG4gICAgICBjb25zdCBhbm5vdGF0aW9uID0geyB0eXBlLCBuYW1lIH07XG4gICAgICBhZGRBbm5vdGF0aW9uKHRhcmdldCwgYW5ub3RhdGlvbiBhcyBhbnkpO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWUodGFyZ2V0OiBhbnkpOiBzdHJpbmcge1xuICBjb25zdCBhbm5vdGF0aW9ucyA9IGdldEFubm90YXRpb25zKHRhcmdldCk7XG4gIGNvbnN0IGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5maW5kKChhbm5vdGF0aW9uOiBhbnkpID0+IGFubm90YXRpb24udHlwZSA9PT0gJ3RhYmxlJyk7XG4gIHJldHVybiAoYW5ub3RhdGlvbiBhcyBhbnkpLm5hbWU7XG59XG5cbmV4cG9ydCBjb25zdCBIYXN1cmEgPSB7XG4gIFRhYmxlOiBjcmVhdGVDbGFzc0RlY29yYXRvcigndGFibGUnKSxcbiAgVGV4dDogY3JlYXRlRGVjb3JhdG9yKCd0ZXh0JyksXG4gIFRpbWVzdGFtcDogY3JlYXRlRGVjb3JhdG9yKCd0aW1lc3RhbXAnKSxcbiAgRGF0ZTogY3JlYXRlRGVjb3JhdG9yKCdkYXRlJyksXG4gIEludGVnZXI6IGNyZWF0ZURlY29yYXRvcignaW50ZWdlcicpLFxuICBOdW1lcmljOiBjcmVhdGVEZWNvcmF0b3IoJ251bWVyaWMnKSxcbiAgQm9vbGVhbjogY3JlYXRlRGVjb3JhdG9yKCdib29sZWFuJyksXG4gIE1hcDogKGNoaWxkVHlwZTogKCkgPT4gYW55KSA9PiBjcmVhdGVEZWNvcmF0b3IoJ21hcCcsIHtjaGlsZFR5cGV9KSgpLFxuICBKU09OOiBjcmVhdGVEZWNvcmF0b3IoJ2pzb24nKSxcbiAgTG9jYXRpb246IGNyZWF0ZURlY29yYXRvcignbG9jYXRpb24nKSxcbiAgYWRkQW5ub3RhdGlvbixcbiAgY3JlYXRlRGVjb3JhdG9yLFxuICBnZXRBbm5vdGF0aW9ucyxcbn07XG4iXX0=","import dayjs from 'dayjs';\nimport { format } from 'date-fns';\nimport { formatInTimeZone } from 'date-fns-tz';\n/**\n * Converts a Date or dayjs object to Hasura timestamp format\n */\nexport function toTimestamp(date) {\n if (dayjs.isDayjs(date)) {\n return date.toISOString();\n }\n else if (date instanceof Date) {\n return format(date, 'yyyy-MM-dd HH:mm:ss');\n }\n else {\n return null;\n }\n}\n/**\n * Converts a Date, dayjs, or string to Hasura date format\n */\nexport function toDate(date) {\n if (typeof date === 'undefined') {\n return undefined;\n }\n else if (dayjs.isDayjs(date)) {\n return date.format('YYYY-MM-DD');\n }\n else if (date instanceof Date) {\n return formatInTimeZone(date, Intl.DateTimeFormat().resolvedOptions().timeZone, 'yyyy-MM-dd');\n }\n else if (typeof date === 'string') {\n return date;\n }\n else {\n return null;\n }\n}\n/**\n * Converts a value to a number, handling various input types\n */\nexport function toNumber(value) {\n if (typeof value === 'undefined')\n return undefined;\n if (value === null)\n return null;\n if (value === '' || (typeof value === 'string' && value.trim() === ''))\n return null;\n return isNaN(Number(value)) ? null : Number(value);\n}\n/**\n * Converts a lat/lng position to Hasura GeoJSON Point format\n */\nexport function toHasuraLocation(position) {\n if (!(position?.lat && position?.lng))\n return null;\n return {\n type: 'Point',\n crs: {\n type: 'name',\n properties: { name: 'urn:ogc:def:crs:EPSG::4326' }\n },\n coordinates: [position.lng, position.lat]\n };\n}\n/**\n * Converts a Hasura GeoJSON Point to a lat/lng object\n */\nexport function fromHasuraLocation(location) {\n if (!location)\n return null;\n return {\n lat: location.coordinates?.[1],\n lng: location.coordinates?.[0],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1jb252ZXJ0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvdHlwZS1jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBK0I7SUFDekQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDNUIsQ0FBQztTQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxJQUFvRDtJQUN6RSxJQUFJLE9BQU8sSUFBSSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7U0FBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkMsQ0FBQztTQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ2hDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDaEcsQ0FBQztTQUFNLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBVTtJQUNqQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDaEMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUNwRixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQXVEO0lBQ3RGLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksUUFBUSxFQUFFLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ25ELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxNQUFNO1lBQ1osVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1NBQ25EO1FBQ0QsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDO0tBQzFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsUUFTbEM7SUFDQyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzNCLE9BQU87UUFDTCxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM5QixHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUMvQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBmb3JtYXQgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBmb3JtYXRJblRpbWVab25lIH0gZnJvbSAnZGF0ZS1mbnMtdHonO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgRGF0ZSBvciBkYXlqcyBvYmplY3QgdG8gSGFzdXJhIHRpbWVzdGFtcCBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVGltZXN0YW1wKGRhdGU6IGRheWpzLkRheWpzIHwgRGF0ZSB8IG51bGwpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKGRheWpzLmlzRGF5anMoZGF0ZSkpIHtcbiAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpO1xuICB9IGVsc2UgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGZvcm1hdChkYXRlLCAneXl5eS1NTS1kZCBISDptbTpzcycpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBEYXRlLCBkYXlqcywgb3Igc3RyaW5nIHRvIEhhc3VyYSBkYXRlIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRlKGRhdGU6IGRheWpzLkRheWpzIHwgRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBkYXRlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSBpZiAoZGF5anMuaXNEYXlqcyhkYXRlKSkge1xuICAgIHJldHVybiBkYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xuICB9IGVsc2UgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgcmV0dXJuIGZvcm1hdEluVGltZVpvbmUoZGF0ZSwgSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLCAneXl5eS1NTS1kZCcpO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBkYXRlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbi8qKlxuICogQ29udmVydHMgYSB2YWx1ZSB0byBhIG51bWJlciwgaGFuZGxpbmcgdmFyaW91cyBpbnB1dCB0eXBlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWU6IGFueSk6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgaWYgKHZhbHVlID09PSAnJyB8fCAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgPT09ICcnKSkgcmV0dXJuIG51bGw7XG4gIHJldHVybiBpc05hTihOdW1iZXIodmFsdWUpKSA/IG51bGwgOiBOdW1iZXIodmFsdWUpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgbGF0L2xuZyBwb3NpdGlvbiB0byBIYXN1cmEgR2VvSlNPTiBQb2ludCBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGFzdXJhTG9jYXRpb24ocG9zaXRpb246IHtsYXQ6IG51bWJlciwgbG5nOiBudW1iZXJ9IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICBpZiAoIShwb3NpdGlvbj8ubGF0ICYmIHBvc2l0aW9uPy5sbmcpKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAnUG9pbnQnLFxuICAgIGNyczoge1xuICAgICAgdHlwZTogJ25hbWUnLFxuICAgICAgcHJvcGVydGllczogeyBuYW1lOiAndXJuOm9nYzpkZWY6Y3JzOkVQU0c6OjQzMjYnIH1cbiAgICB9LFxuICAgIGNvb3JkaW5hdGVzOiBbcG9zaXRpb24ubG5nLCBwb3NpdGlvbi5sYXRdXG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBIYXN1cmEgR2VvSlNPTiBQb2ludCB0byBhIGxhdC9sbmcgb2JqZWN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSGFzdXJhTG9jYXRpb24obG9jYXRpb246IHtcbiAgdHlwZTogJ1BvaW50JyxcbiAgY3JzOiB7XG4gICAgdHlwZTogJ25hbWUnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG5hbWU6ICd1cm46b2djOmRlZjpjcnM6RVBTRzo6NDMyNidcbiAgICB9XG4gIH0sXG4gIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdXG59KSB7XG4gIGlmICghbG9jYXRpb24pIHJldHVybiBudWxsO1xuICByZXR1cm4ge1xuICAgIGxhdDogbG9jYXRpb24uY29vcmRpbmF0ZXM/LlsxXSxcbiAgICBsbmc6IGxvY2F0aW9uLmNvb3JkaW5hdGVzPy5bMF0sXG4gIH07XG59XG4iXX0=","import { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { get, snakeCase } from 'lodash-es';\nimport { parse } from 'date-fns';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { fromHasuraLocation } from './type-converters';\n/**\n * Extracts nested map fields recursively from a flattened Hasura object\n */\nfunction extractNestedMap(mapKey, childType, object) {\n const childFieldMap = getFieldAnnotationMap(childType);\n const childFields = {};\n Object.entries(childFieldMap).forEach(([childKey, childAnnotation]) => {\n if (childAnnotation.type === 'map') {\n const nested = extractNestedMap(`${mapKey}_${childKey}`, childAnnotation.childType(), object);\n if (nested && Object.keys(nested).length > 0) {\n childFields[childAnnotation.fieldName] = nested;\n }\n }\n else {\n const flattenedKey = `${mapKey}_${childKey}`;\n const value = get(object, snakeCase(flattenedKey));\n if (typeof value !== 'undefined') {\n childFields[childAnnotation.fieldName] = value;\n }\n }\n });\n return childFields;\n}\n/**\n * Converts a Hasura object to an entity instance\n */\nexport function fromHasura(_object, type) {\n const fieldMap = getFieldAnnotationMap(type);\n // First extract any flattened map fields (e.g., profile_bio)\n const nestedObjects = {};\n Object.entries(fieldMap).forEach(([key, annotation]) => {\n if (annotation.type === 'map') {\n const childType = annotation.childType();\n const nested = extractNestedMap(key, childType, _object);\n if (nested && Object.keys(nested).length > 0) {\n nestedObjects[annotation.fieldName] = nested;\n }\n }\n });\n // Now process all fields normally\n const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {\n // For map types, use our previously extracted nested objects\n if (annotation.type === 'map') {\n const nestedObj = nestedObjects[annotation.fieldName];\n if (nestedObj) {\n return { ...acc, [annotation.fieldName]: nestedObj };\n }\n return acc;\n }\n const value = get(_object, snakeCase(key));\n if (typeof value === 'undefined')\n return acc;\n switch (annotation.type) {\n case 'text':\n return { ...acc, [annotation.fieldName]: value };\n case 'timestamp':\n return { ...acc, [annotation.fieldName]: value === null ? null : parse(value, 'yyyy-MM-dd HH:mm:ss', new Date()) };\n case 'date': {\n const parsedDate = value === null ? null : parse(value, 'yyyy-MM-dd', new Date());\n return { ...acc, [annotation.fieldName]: parsedDate };\n }\n case 'numeric':\n return { ...acc, [annotation.fieldName]: value };\n case 'integer':\n return { ...acc, [annotation.fieldName]: value };\n case 'json':\n return { ...acc, [annotation.fieldName]: value };\n case 'location':\n return { ...acc, [annotation.fieldName]: fromHasuraLocation(value) };\n default:\n return { ...acc, [annotation.fieldName]: value };\n }\n }, {});\n return plainToInstanceWithValid(type, obj);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1oYXN1cmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2NvbnZlcnRlci9mcm9tLWhhc3VyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFeEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXdkQ7O0dBRUc7QUFDSCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxTQUFjLEVBQUUsTUFBVztJQUNuRSxNQUFNLGFBQWEsR0FBRyxxQkFBcUIsQ0FBa0IsU0FBUyxDQUFDLENBQUM7SUFDeEUsTUFBTSxXQUFXLEdBQXdCLEVBQUUsQ0FBQztJQUU1QyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxFQUFFLEVBQUU7UUFDcEUsSUFBSSxlQUFlLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsTUFBTSxJQUFJLFFBQVEsRUFBRSxFQUFFLGVBQWUsQ0FBQyxTQUFVLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvRixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUM7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QUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEYsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ3hELENBQUM7WUFDRCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ25ELEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkQsS0FBSyxNQUFNO2dCQUNULE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUNuRCxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdkU7Z0JBQ0UsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JELENBQUM7SUFDSCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFUCxPQUFPLHdCQUF3QixDQUFDLElBQVcsRUFBRSxHQUFHLENBQU0sQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGxhaW5Ub0luc3RhbmNlV2l0aFZhbGlkIH0gZnJvbSAnQG54LWRkZC9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4nO1xuaW1wb3J0IHsgZ2V0LCBzbmFrZUNhc2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBnZXRGaWVsZEFubm90YXRpb25NYXAgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcbmltcG9ydCB7IGZyb21IYXN1cmFMb2NhdGlvbiB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXJzJztcblxuLyoqXG4gKiBGaWVsZCBhbm5vdGF0aW9uIHR5cGUgZm9yIEhhc3VyYSBkZWNvcmF0b3JzXG4gKi9cbmludGVyZmFjZSBGaWVsZEFubm90YXRpb24ge1xuICB0eXBlOiAndGV4dCcgfCAndGltZXN0YW1wJyB8ICdkYXRlJyB8ICdudW1lcmljJyB8ICdpbnRlZ2VyJyB8ICdqc29uJyB8ICdtYXAnIHwgJ2xvY2F0aW9uJztcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIGNoaWxkVHlwZT86ICgpID0+IGFueTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQgbWFwIGZpZWxkcyByZWN1cnNpdmVseSBmcm9tIGEgZmxhdHRlbmVkIEhhc3VyYSBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZXh0cmFjdE5lc3RlZE1hcChtYXBLZXk6IHN0cmluZywgY2hpbGRUeXBlOiBhbnksIG9iamVjdDogYW55KTogYW55IHtcbiAgY29uc3QgY2hpbGRGaWVsZE1hcCA9IGdldEZpZWxkQW5ub3RhdGlvbk1hcDxGaWVsZEFubm90YXRpb24+KGNoaWxkVHlwZSk7XG4gIGNvbnN0IGNoaWxkRmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgT2JqZWN0LmVudHJpZXMoY2hpbGRGaWVsZE1hcCkuZm9yRWFjaCgoW2NoaWxkS2V5LCBjaGlsZEFubm90YXRpb25dKSA9PiB7XG4gICAgaWYgKGNoaWxkQW5ub3RhdGlvbi50eXBlID09PSAnbWFwJykge1xuICAgICAgY29uc3QgbmVzdGVkID0gZXh0cmFjdE5lc3RlZE1hcChgJHttYXBLZXl9XyR7Y2hpbGRLZXl9YCwgY2hpbGRBbm5vdGF0aW9uLmNoaWxkVHlwZSEoKSwgb2JqZWN0KTtcbiAgICAgIGlmIChuZXN0ZWQgJiYgT2JqZWN0LmtleXMobmVzdGVkKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoaWxkRmllbGRzW2NoaWxkQW5ub3RhdGlvbi5maWVsZE5hbWVdID0gbmVzdGVkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBmbGF0dGVuZWRLZXkgPSBgJHttYXBLZXl9XyR7Y2hpbGRLZXl9YDtcbiAgICAgIGNvbnN0IHZhbHVlID0gZ2V0KG9iamVjdCwgc25ha2VDYXNlKGZsYXR0ZW5lZEtleSkpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY2hpbGRGaWVsZHNbY2hpbGRBbm5vdGF0aW9uLmZpZWxkTmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjaGlsZEZpZWxkcztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIEhhc3VyYSBvYmplY3QgdG8gYW4gZW50aXR5IGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmcm9tSGFzdXJhPFQ+KF9vYmplY3Q6IGFueSwgdHlwZTogVHlwZTxUPik6IFQge1xuICBjb25zdCBmaWVsZE1hcCA9IGdldEZpZWxkQW5ub3RhdGlvbk1hcDxGaWVsZEFubm90YXRpb24+KHR5cGUpO1xuXG4gIC8vIEZpcnN0IGV4dHJhY3QgYW55IGZsYXR0ZW5lZCBtYXAgZmllbGRzIChlLmcuLCBwcm9maWxlX2JpbylcbiAgY29uc3QgbmVzdGVkT2JqZWN0czogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4gPSB7fTtcbiAgT2JqZWN0LmVudHJpZXMoZmllbGRNYXApLmZvckVhY2goKFtrZXksIGFubm90YXRpb25dKSA9PiB7XG4gICAgaWYgKGFubm90YXRpb24udHlwZSA9PT0gJ21hcCcpIHtcbiAgICAgIGNvbnN0IGNoaWxkVHlwZSA9IGFubm90YXRpb24uY2hpbGRUeXBlISgpO1xuICAgICAgY29uc3QgbmVzdGVkID0gZXh0cmFjdE5lc3RlZE1hcChrZXksIGNoaWxkVHlwZSwgX29iamVjdCk7XG4gICAgICBpZiAobmVzdGVkICYmIE9iamVjdC5rZXlzKG5lc3RlZCkubGVuZ3RoID4gMCkge1xuICAgICAgICBuZXN0ZWRPYmplY3RzW2Fubm90YXRpb24uZmllbGROYW1lXSA9IG5lc3RlZDtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIC8vIE5vdyBwcm9jZXNzIGFsbCBmaWVsZHMgbm9ybWFsbHlcbiAgY29uc3Qgb2JqID0gT2JqZWN0LmVudHJpZXMoZmllbGRNYXApLnJlZHVjZSgoYWNjLCBba2V5LCBhbm5vdGF0aW9uXSkgPT4ge1xuICAgIC8vIEZvciBtYXAgdHlwZXMsIHVzZSBvdXIgcHJldmlvdXNseSBleHRyYWN0ZWQgbmVzdGVkIG9iamVjdHNcbiAgICBpZiAoYW5ub3RhdGlvbi50eXBlID09PSAnbWFwJykge1xuICAgICAgY29uc3QgbmVzdGVkT2JqID0gbmVzdGVkT2JqZWN0c1thbm5vdGF0aW9uLmZpZWxkTmFtZV07XG4gICAgICBpZiAobmVzdGVkT2JqKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2Fubm90YXRpb24uZmllbGROYW1lXTogbmVzdGVkT2JqIH07XG4gICAgICB9XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gZ2V0KF9vYmplY3QsIHNuYWtlQ2FzZShrZXkpKTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuIGFjYztcblxuICAgIHN3aXRjaCAoYW5ub3RhdGlvbi50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiB2YWx1ZSB9O1xuICAgICAgY2FzZSAndGltZXN0YW1wJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiB2YWx1ZSA9PT0gbnVsbCA/IG51bGwgOiBwYXJzZSh2YWx1ZSwgJ3l5eXktTU0tZGQgSEg6bW06c3MnLCBuZXcgRGF0ZSgpKSB9O1xuICAgICAgY2FzZSAnZGF0ZSc6IHtcbiAgICAgICAgY29uc3QgcGFyc2VkRGF0ZSA9IHZhbHVlID09PSBudWxsID8gbnVsbCA6IHBhcnNlKHZhbHVlLCAneXl5eS1NTS1kZCcsIG5ldyBEYXRlKCkpO1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFthbm5vdGF0aW9uLmZpZWxkTmFtZV06IHBhcnNlZERhdGUgfTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ251bWVyaWMnOlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFthbm5vdGF0aW9uLmZpZWxkTmFtZV06IHZhbHVlIH07XG4gICAgICBjYXNlICdpbnRlZ2VyJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiB2YWx1ZSB9O1xuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2Fubm90YXRpb24uZmllbGROYW1lXTogdmFsdWUgfTtcbiAgICAgIGNhc2UgJ2xvY2F0aW9uJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbYW5ub3RhdGlvbi5maWVsZE5hbWVdOiBmcm9tSGFzdXJhTG9jYXRpb24odmFsdWUpIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFthbm5vdGF0aW9uLmZpZWxkTmFtZV06IHZhbHVlIH07XG4gICAgfVxuICB9LCB7fSk7XG5cbiAgcmV0dXJuIHBsYWluVG9JbnN0YW5jZVdpdGhWYWxpZCh0eXBlIGFzIGFueSwgb2JqKSBhcyBUO1xufVxuIl19","import { snakeCase } from 'lodash-es';\n/**\n * Recursively converts object keys from camelCase to snake_case\n */\nexport function deepCamelToSnakeCase(obj) {\n if (Array.isArray(obj))\n return obj.map(deepCamelToSnakeCase);\n if (obj instanceof Date)\n return obj;\n if (obj && typeof obj === \"object\") {\n const result = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n result[snakeCase(key)] = deepCamelToSnakeCase(obj[key]);\n }\n return result;\n }\n return obj;\n}\n/**\n * Converts snake_case string to camelCase\n */\nfunction camelCase(str) {\n return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n/**\n * Recursively converts object keys from snake_case to camelCase\n */\nexport function deepSnakeToCamelCase(obj) {\n if (Array.isArray(obj))\n return obj.map(deepSnakeToCamelCase);\n if (obj instanceof Date)\n return obj;\n if (obj && typeof obj === \"object\") {\n const result = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[camelCase(key)] = deepSnakeToCamelCase(obj[key]);\n }\n }\n return result;\n }\n return obj;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1jb252ZXJ0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvY2FzZS1jb252ZXJ0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFvQnRDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEdBQU07SUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBd0IsQ0FBQztJQUNwRixJQUFJLEdBQUcsWUFBWSxJQUFJO1FBQUUsT0FBTyxHQUEwQixDQUFDO0lBQzNELElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7Z0JBQ2hELE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxvQkFBb0IsQ0FBRSxHQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sR0FBMEIsQ0FBQztBQUNwQyxDQUFDO0FBa0JEOztHQUVHO0FBQ0gsU0FBUyxTQUFTLENBQUMsR0FBVztJQUM1QixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFJLEdBQU07SUFDNUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBd0IsQ0FBQztJQUNwRixJQUFJLEdBQUcsWUFBWSxJQUFJO1FBQUUsT0FBTyxHQUEwQixDQUFDO0lBQzNELElBQUksR0FBRyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsb0JBQW9CLENBQUUsR0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QsT0FBTyxHQUEwQixDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzbmFrZUNhc2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG4vKipcbiAqIFR5cGUgZGVmaW5pdGlvbnMgZm9yIGNhbWVsQ2FzZSB0byBzbmFrZV9jYXNlIGNvbnZlcnNpb25cbiAqL1xudHlwZSBDYW1lbFRvU25ha2VDYXNlPFMgZXh0ZW5kcyBzdHJpbmc+ID1cbiAgUyBleHRlbmRzIGAke2luZmVyIFR9JHtpbmZlciBVfWBcbiAgICA/IFUgZXh0ZW5kcyBVbmNhcGl0YWxpemU8VT5cbiAgICAgID8gYCR7TG93ZXJjYXNlPFQ+fSR7Q2FtZWxUb1NuYWtlQ2FzZTxVPn1gXG4gICAgICA6IGAke0xvd2VyY2FzZTxUPn1fJHtDYW1lbFRvU25ha2VDYXNlPFU+fWBcbiAgICA6IFM7XG5cbnR5cGUgRGVlcENhbWVsVG9TbmFrZTxUPiA9IFQgZXh0ZW5kcyBEYXRlXG4gID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPlxuICA/IERlZXBDYW1lbFRvU25ha2U8VT5bXVxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgPyB7IFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIHN0cmluZyA/IENhbWVsVG9TbmFrZUNhc2U8Sz4gOiBLXTogRGVlcENhbWVsVG9TbmFrZTxUW0tdPiB9XG4gIDogVDtcblxuLyoqXG4gKiBSZWN1cnNpdmVseSBjb252ZXJ0cyBvYmplY3Qga2V5cyBmcm9tIGNhbWVsQ2FzZSB0byBzbmFrZV9jYXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwQ2FtZWxUb1NuYWtlQ2FzZTxUPihvYmo6IFQpOiBEZWVwQ2FtZWxUb1NuYWtlPFQ+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkgcmV0dXJuIG9iai5tYXAoZGVlcENhbWVsVG9TbmFrZUNhc2UpIGFzIERlZXBDYW1lbFRvU25ha2U8VD47XG4gIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSByZXR1cm4gb2JqIGFzIERlZXBDYW1lbFRvU25ha2U8VD47XG4gIGlmIChvYmogJiYgdHlwZW9mIG9iaiA9PT0gXCJvYmplY3RcIikge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KSlcbiAgICAgICAgcmVzdWx0W3NuYWtlQ2FzZShrZXkpXSA9IGRlZXBDYW1lbFRvU25ha2VDYXNlKChvYmogYXMgYW55KVtrZXldKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gb2JqIGFzIERlZXBDYW1lbFRvU25ha2U8VD47XG59XG5cbi8qKlxuICogVHlwZSBkZWZpbml0aW9ucyBmb3Igc25ha2VfY2FzZSB0byBjYW1lbENhc2UgY29udmVyc2lvblxuICovXG50eXBlIFNuYWtlVG9DYW1lbENhc2U8UyBleHRlbmRzIHN0cmluZz4gPVxuICBTIGV4dGVuZHMgYCR7aW5mZXIgVH1fJHtpbmZlciBVfWBcbiAgICA/IGAke1R9JHtDYXBpdGFsaXplPFNuYWtlVG9DYW1lbENhc2U8VT4+fWBcbiAgICA6IFM7XG5cbnR5cGUgRGVlcFNuYWtlVG9DYW1lbDxUPiA9IFQgZXh0ZW5kcyBEYXRlXG4gID8gVFxuICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPlxuICA/IERlZXBTbmFrZVRvQ2FtZWw8VT5bXVxuICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgPyB7IFtLIGluIGtleW9mIFQgYXMgSyBleHRlbmRzIHN0cmluZyA/IFNuYWtlVG9DYW1lbENhc2U8Sz4gOiBLXTogRGVlcFNuYWtlVG9DYW1lbDxUW0tdPiB9XG4gIDogVDtcblxuLyoqXG4gKiBDb252ZXJ0cyBzbmFrZV9jYXNlIHN0cmluZyB0byBjYW1lbENhc2VcbiAqL1xuZnVuY3Rpb24gY2FtZWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9fKFthLXpdKS9nLCAoXywgbGV0dGVyKSA9PiBsZXR0ZXIudG9VcHBlckNhc2UoKSk7XG59XG5cbi8qKlxuICogUmVjdXJzaXZlbHkgY29udmVydHMgb2JqZWN0IGtleXMgZnJvbSBzbmFrZV9jYXNlIHRvIGNhbWVsQ2FzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcFNuYWtlVG9DYW1lbENhc2U8VD4ob2JqOiBUKTogRGVlcFNuYWtlVG9DYW1lbDxUPiB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHJldHVybiBvYmoubWFwKGRlZXBTbmFrZVRvQ2FtZWxDYXNlKSBhcyBEZWVwU25ha2VUb0NhbWVsPFQ+O1xuICBpZiAob2JqIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIG9iaiBhcyBEZWVwU25ha2VUb0NhbWVsPFQ+O1xuICBpZiAob2JqICYmIHR5cGVvZiBvYmogPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2NhbWVsQ2FzZShrZXkpXSA9IGRlZXBTbmFrZVRvQ2FtZWxDYXNlKChvYmogYXMgYW55KVtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICByZXR1cm4gb2JqIGFzIERlZXBTbmFrZVRvQ2FtZWw8VD47XG59XG4iXX0=","import { get } from 'lodash-es';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { deepCamelToSnakeCase } from './case-converters';\nimport { toTimestamp, toDate, toNumber, toHasuraLocation } from './type-converters';\n/**\n * Converts an entity to Hasura format\n */\nexport function toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {\n const fieldMap = getFieldAnnotationMap(type);\n const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {\n const value = get(object, annotation.fieldName);\n if (typeof value === 'undefined')\n return acc;\n switch (annotation.type) {\n case 'text':\n return { ...acc, [key]: value };\n case 'timestamp':\n return { ...acc, [key]: toTimestamp(value) };\n case 'date':\n return { ...acc, [key]: toDate(value) };\n case 'numeric':\n return { ...acc, [key]: toNumber(value) };\n case 'integer':\n return { ...acc, [key]: toNumber(value) };\n case 'json':\n return { ...acc, [key]: value };\n case 'map': {\n const childObj = toHasura(value, annotation.childType(), { extraFunc });\n const flattenedObj = Object.entries(childObj).reduce((childAcc, [childKey, childValue]) => ({\n ...childAcc,\n [`${key}_${childKey}`]: childValue\n }), {});\n return { ...acc, ...flattenedObj };\n }\n case 'location':\n return { ...acc, [key]: toHasuraLocation(value) };\n default:\n return { ...acc, [key]: value };\n }\n }, {});\n return extraFunc(obj);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8taGFzdXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvdG8taGFzdXJhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBa0JwRjs7R0FFRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE1BQVMsRUFDVCxJQUFhLEVBQ2IsRUFBRSxTQUFTLEdBQUcsb0JBQW9CLEtBQXNCLEVBQUU7SUFFMUQsTUFBTSxRQUFRLEdBQUcscUJBQXFCLENBQWtCLElBQUksQ0FBQyxDQUFDO0lBRTlELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7UUFDckUsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO1lBQUUsT0FBTyxHQUFHLENBQUM7UUFFN0MsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2xDLEtBQUssV0FBVztnQkFDZCxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUMsS0FBSyxTQUFTO2dCQUNaLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVDLEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbEMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLFNBQVUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDekUsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFGLEdBQUcsUUFBUTtvQkFDWCxDQUFDLEdBQUcsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVTtpQkFDbkMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNSLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFDO1lBQ3JDLENBQUM7WUFDRCxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRDtnQkFDRSxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4nO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IGdldEZpZWxkQW5ub3RhdGlvbk1hcCB9IGZyb20gJy4uL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgZGVlcENhbWVsVG9TbmFrZUNhc2UgfSBmcm9tICcuL2Nhc2UtY29udmVydGVycyc7XG5pbXBvcnQgeyB0b1RpbWVzdGFtcCwgdG9EYXRlLCB0b051bWJlciwgdG9IYXN1cmFMb2NhdGlvbiB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXJzJztcblxuLyoqXG4gKiBGaWVsZCBhbm5vdGF0aW9uIHR5cGUgZm9yIEhhc3VyYSBkZWNvcmF0b3JzXG4gKi9cbmludGVyZmFjZSBGaWVsZEFubm90YXRpb24ge1xuICB0eXBlOiAndGV4dCcgfCAndGltZXN0YW1wJyB8ICdkYXRlJyB8ICdudW1lcmljJyB8ICdpbnRlZ2VyJyB8ICdqc29uJyB8ICdtYXAnIHwgJ2xvY2F0aW9uJztcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIGNoaWxkVHlwZT86ICgpID0+IGFueTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0b0hhc3VyYSBjb252ZXJzaW9uXG4gKi9cbmludGVyZmFjZSBUb0hhc3VyYU9wdGlvbnMge1xuICBleHRyYUZ1bmM/OiAob2JqOiBhbnkpID0+IGFueTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBlbnRpdHkgdG8gSGFzdXJhIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9IYXN1cmE8RT4oXG4gIG9iamVjdDogRSxcbiAgdHlwZTogVHlwZTxFPixcbiAgeyBleHRyYUZ1bmMgPSBkZWVwQ2FtZWxUb1NuYWtlQ2FzZSB9OiBUb0hhc3VyYU9wdGlvbnMgPSB7fVxuKSB7XG4gIGNvbnN0IGZpZWxkTWFwID0gZ2V0RmllbGRBbm5vdGF0aW9uTWFwPEZpZWxkQW5ub3RhdGlvbj4odHlwZSk7XG5cbiAgY29uc3Qgb2JqID0gT2JqZWN0LmVudHJpZXMoZmllbGRNYXApLnJlZHVjZSgoYWNjLCBba2V5LCBhbm5vdGF0aW9uXSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlID0gZ2V0KG9iamVjdCwgYW5ub3RhdGlvbi5maWVsZE5hbWUpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gYWNjO1xuXG4gICAgc3dpdGNoIChhbm5vdGF0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiB2YWx1ZSB9O1xuICAgICAgY2FzZSAndGltZXN0YW1wJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdG9UaW1lc3RhbXAodmFsdWUpIH07XG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdG9EYXRlKHZhbHVlKSB9O1xuICAgICAgY2FzZSAnbnVtZXJpYyc6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHRvTnVtYmVyKHZhbHVlKSB9O1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHRvTnVtYmVyKHZhbHVlKSB9O1xuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHZhbHVlIH07XG4gICAgICBjYXNlICdtYXAnOiB7XG4gICAgICAgIGNvbnN0IGNoaWxkT2JqID0gdG9IYXN1cmEodmFsdWUsIGFubm90YXRpb24uY2hpbGRUeXBlISgpLCB7IGV4dHJhRnVuYyB9KTtcbiAgICAgICAgY29uc3QgZmxhdHRlbmVkT2JqID0gT2JqZWN0LmVudHJpZXMoY2hpbGRPYmopLnJlZHVjZSgoY2hpbGRBY2MsIFtjaGlsZEtleSwgY2hpbGRWYWx1ZV0pID0+ICh7XG4gICAgICAgICAgLi4uY2hpbGRBY2MsXG4gICAgICAgICAgW2Ake2tleX1fJHtjaGlsZEtleX1gXTogY2hpbGRWYWx1ZVxuICAgICAgICB9KSwge30pO1xuICAgICAgICByZXR1cm4geyAuLi5hY2MsIC4uLmZsYXR0ZW5lZE9iaiB9O1xuICAgICAgfVxuICAgICAgY2FzZSAnbG9jYXRpb24nOlxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiB0b0hhc3VyYUxvY2F0aW9uKHZhbHVlKSB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdmFsdWUgfTtcbiAgICB9XG4gIH0sIHt9KTtcblxuICByZXR1cm4gZXh0cmFGdW5jKG9iaik7XG59XG4iXX0=","import { fromHasura } from './from-hasura';\nimport { toHasura } from './to-hasura';\nimport * as typeConverters from './type-converters';\nexport { deepCamelToSnakeCase, deepSnakeToCamelCase } from './case-converters';\nexport { toTimestamp, toDate, toNumber, toHasuraLocation, fromHasuraLocation } from './type-converters';\nexport { fromHasura } from './from-hasura';\nexport { toHasura } from './to-hasura';\n/**\n * Creates a HasuraConverter for the given entity type\n */\nexport function getConverter(type) {\n return {\n toHasura(entity) {\n return toHasura(entity, type);\n },\n toHasuraMany(entities) {\n return entities.map((entity) => this.toHasura(entity));\n },\n fromHasura(entity) {\n return fromHasura(entity, type);\n },\n fromHasuraMany(entities) {\n return entities.map((entity) => this.fromHasura(entity));\n },\n };\n}\n/** @deprecated use `getConverter` instead */\nexport const makeConverter = getConverter;\n/**\n * @deprecated Use individual functions instead\n * HasuraUtils is kept for backward compatibility\n */\nexport class HasuraUtils {\n static toTimestamp = typeConverters.toTimestamp;\n static toDate = typeConverters.toDate;\n static toNumber = typeConverters.toNumber;\n static toHasuraLocation = typeConverters.toHasuraLocation;\n static fromHasuraLocation = typeConverters.fromHasuraLocation;\n static fromHasura = fromHasura;\n static toHasura = toHasura;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9jb252ZXJ0ZXIvY29udmVydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2QyxPQUFPLEtBQUssY0FBYyxNQUFNLG1CQUFtQixDQUFDO0FBSXBELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUksSUFBYTtJQUMzQyxPQUFPO1FBQ0wsUUFBUSxDQUFDLE1BQVM7WUFDaEIsT0FBTyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxZQUFZLENBQUMsUUFBYTtZQUN4QixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQ0QsVUFBVSxDQUFDLE1BQWM7WUFDdkIsT0FBTyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBTSxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxjQUFjLENBQUMsUUFBa0I7WUFDL0IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUM7QUFFMUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDdEIsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBQ2hELE1BQU0sQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxNQUFNLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7SUFDMUMsTUFBTSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxRCxNQUFNLENBQUMsa0JBQWtCLEdBQUcsY0FBYyxDQUFDLGtCQUFrQixDQUFDO0lBQzlELE1BQU0sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5pbXBvcnQgeyBIYXN1cmFDb252ZXJ0ZXIgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGZyb21IYXN1cmEgfSBmcm9tICcuL2Zyb20taGFzdXJhJztcbmltcG9ydCB7IHRvSGFzdXJhIH0gZnJvbSAnLi90by1oYXN1cmEnO1xuaW1wb3J0ICogYXMgdHlwZUNvbnZlcnRlcnMgZnJvbSAnLi90eXBlLWNvbnZlcnRlcnMnO1xuXG4vLyBSZS1leHBvcnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7IEhhc3VyYUNvbnZlcnRlciB9IGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0IHsgZGVlcENhbWVsVG9TbmFrZUNhc2UsIGRlZXBTbmFrZVRvQ2FtZWxDYXNlIH0gZnJvbSAnLi9jYXNlLWNvbnZlcnRlcnMnO1xuZXhwb3J0IHsgdG9UaW1lc3RhbXAsIHRvRGF0ZSwgdG9OdW1iZXIsIHRvSGFzdXJhTG9jYXRpb24sIGZyb21IYXN1cmFMb2NhdGlvbiB9IGZyb20gJy4vdHlwZS1jb252ZXJ0ZXJzJztcbmV4cG9ydCB7IGZyb21IYXN1cmEgfSBmcm9tICcuL2Zyb20taGFzdXJhJztcbmV4cG9ydCB7IHRvSGFzdXJhIH0gZnJvbSAnLi90by1oYXN1cmEnO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBIYXN1cmFDb252ZXJ0ZXIgZm9yIHRoZSBnaXZlbiBlbnRpdHkgdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udmVydGVyPFQ+KHR5cGU6IFR5cGU8VD4pOiBIYXN1cmFDb252ZXJ0ZXI8VD4ge1xuICByZXR1cm4ge1xuICAgIHRvSGFzdXJhKGVudGl0eTogVCkge1xuICAgICAgcmV0dXJuIHRvSGFzdXJhKGVudGl0eSwgdHlwZSk7XG4gICAgfSxcbiAgICB0b0hhc3VyYU1hbnkoZW50aXRpZXM6IFRbXSkge1xuICAgICAgcmV0dXJuIGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiB0aGlzLnRvSGFzdXJhKGVudGl0eSkpO1xuICAgIH0sXG4gICAgZnJvbUhhc3VyYShlbnRpdHk6IG9iamVjdCkge1xuICAgICAgcmV0dXJuIGZyb21IYXN1cmEoZW50aXR5LCB0eXBlKSBhcyBUO1xuICAgIH0sXG4gICAgZnJvbUhhc3VyYU1hbnkoZW50aXRpZXM6IG9iamVjdFtdKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKChlbnRpdHkpID0+IHRoaXMuZnJvbUhhc3VyYShlbnRpdHkpKTtcbiAgICB9LFxuICB9O1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGBnZXRDb252ZXJ0ZXJgIGluc3RlYWQgKi9cbmV4cG9ydCBjb25zdCBtYWtlQ29udmVydGVyID0gZ2V0Q29udmVydGVyO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBpbmRpdmlkdWFsIGZ1bmN0aW9ucyBpbnN0ZWFkXG4gKiBIYXN1cmFVdGlscyBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gKi9cbmV4cG9ydCBjbGFzcyBIYXN1cmFVdGlscyB7XG4gIHN0YXRpYyB0b1RpbWVzdGFtcCA9IHR5cGVDb252ZXJ0ZXJzLnRvVGltZXN0YW1wO1xuICBzdGF0aWMgdG9EYXRlID0gdHlwZUNvbnZlcnRlcnMudG9EYXRlO1xuICBzdGF0aWMgdG9OdW1iZXIgPSB0eXBlQ29udmVydGVycy50b051bWJlcjtcbiAgc3RhdGljIHRvSGFzdXJhTG9jYXRpb24gPSB0eXBlQ29udmVydGVycy50b0hhc3VyYUxvY2F0aW9uO1xuICBzdGF0aWMgZnJvbUhhc3VyYUxvY2F0aW9uID0gdHlwZUNvbnZlcnRlcnMuZnJvbUhhc3VyYUxvY2F0aW9uO1xuICBzdGF0aWMgZnJvbUhhc3VyYSA9IGZyb21IYXN1cmE7XG4gIHN0YXRpYyB0b0hhc3VyYSA9IHRvSGFzdXJhO1xufVxuIl19","import { Injectable, inject } from \"@angular/core\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport * as i0 from \"@angular/core\";\nexport class HasuraInterceptor {\n config = inject(HASURA_CONFIG);\n intercept(req, next) {\n if (req.url.startsWith(this.config.url) && this.config.adminSecret) {\n return next.handle(req.clone({\n headers: req.headers.set('x-hasura-admin-secret', this.config.adminSecret),\n }));\n }\n return next.handle(req);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraInterceptor });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraInterceptor, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9oYXN1cmEuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdoRCxNQUFNLE9BQU8saUJBQWlCO0lBQ3BCLE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFdkMsU0FBUyxDQUFDLEdBQXFCLEVBQUUsSUFBaUI7UUFDaEQsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUMzRSxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQzt1R0FWVSxpQkFBaUI7MkdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEhBU1VSQV9DT05GSUcgfSBmcm9tIFwiLi9oYXN1cmEuY29uZmlnXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIYXN1cmFJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KEhBU1VSQV9DT05GSUcpO1xuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgIGlmIChyZXEudXJsLnN0YXJ0c1dpdGgodGhpcy5jb25maWcudXJsKSAmJiB0aGlzLmNvbmZpZy5hZG1pblNlY3JldCkge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcS5jbG9uZSh7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLnNldCgneC1oYXN1cmEtYWRtaW4tc2VjcmV0JywgdGhpcy5jb25maWcuYWRtaW5TZWNyZXQpLFxuICAgICAgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgfVxufSJdfQ==","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { InjectionToken } from \"@angular/core\";\nimport { HasuraInterceptor } from \"./hasura.interceptor\";\nexport const HASURA_CONFIG = new InjectionToken('HASURA_CONFIG');\nexport function provideHasuraConfig(config) {\n return [\n { provide: HASURA_CONFIG, useValue: config },\n config.adminSecret ? { provide: HTTP_INTERCEPTORS, useClass: HasuraInterceptor, multi: true } : [],\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvaGFzdXJhLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBT3pELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGNBQWMsQ0FBZSxlQUFlLENBQUMsQ0FBQztBQUUvRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBb0I7SUFDdEQsT0FBTztRQUNMLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDbEcsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSGFzdXJhSW50ZXJjZXB0b3IgfSBmcm9tIFwiLi9oYXN1cmEuaW50ZXJjZXB0b3JcIjtcblxuZXhwb3J0IGludGVyZmFjZSBIYXN1cmFDb25maWcge1xuICBhZG1pblNlY3JldD86IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBIQVNVUkFfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEhhc3VyYUNvbmZpZz4oJ0hBU1VSQV9DT05GSUcnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIYXN1cmFDb25maWcoY29uZmlnOiBIYXN1cmFDb25maWcpOiBQcm92aWRlcltdIHtcbiAgcmV0dXJuIFtcbiAgICB7IHByb3ZpZGU6IEhBU1VSQV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcbiAgICBjb25maWcuYWRtaW5TZWNyZXQgPyB7IHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLCB1c2VDbGFzczogSGFzdXJhSW50ZXJjZXB0b3IsIG11bHRpOiB0cnVlfSA6IFtdLFxuICBdO1xufVxuIl19","export { TransformToDayjs } from '@nx-ddd/common/domain';\nexport { IsDayjs } from 'class-validator-extended';\nimport { InjectionToken, inject } from '@angular/core';\nimport { ApolloLink, InMemoryCache } from '@apollo/client/core';\nimport { APOLLO_OPTIONS, provideApollo } from 'apollo-angular';\nimport { provideHasuraConfig } from './hasura.config';\nexport const GRAPHQL_HEADERS = new InjectionToken('GRAPHQL_HEADERS', {\n providedIn: 'root',\n factory: () => () => ({}),\n});\nexport function provideHasuraGetHeaders(useFactory) {\n return [\n { provide: GRAPHQL_HEADERS, useFactory },\n ];\n}\n/**\n * @deprecated use provideHasuraGetHeaders instead\n */\nexport const provideGraphqlHeaders = provideHasuraGetHeaders;\nexport function provideApolloOptions() {\n return {\n provide: APOLLO_OPTIONS,\n useFactory: (link) => ({ cache: new InMemoryCache(), link }),\n deps: [ApolloLink],\n };\n}\nexport function provideHasura(config) {\n return [\n provideApollo(() => ({\n cache: new InMemoryCache(),\n link: inject(ApolloLink),\n })),\n provideHasuraConfig(config),\n ];\n}\nexport function provideHasuraWithWebSocket(config) {\n return [\n provideApollo(() => ({\n cache: new InMemoryCache(),\n link: inject(ApolloLink),\n })),\n provideHasuraConfig(config),\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLmRpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9oYXN1cmEuZGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBd0IsY0FBYyxFQUFZLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUErQixtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBTW5GLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBYSxpQkFBaUIsRUFBRTtJQUMvRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDMUIsQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxVQUFtRTtJQUVuRSxPQUFPO1FBQ0wsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRTtLQUN6QyxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFFN0QsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPO1FBQ0wsT0FBTyxFQUFFLGNBQWM7UUFDdkIsVUFBVSxFQUFFLENBQUMsSUFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3hFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBb0I7SUFDaEQsT0FBTztRQUNMLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRTtZQUMxQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7S0FDNUIsQ0FBQTtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsMEJBQTBCLENBQUMsTUFBb0I7SUFDN0QsT0FBTztRQUNMLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ25CLEtBQUssRUFBRSxJQUFJLGFBQWEsRUFBRTtZQUMxQixJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7S0FDNUIsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEZWVwUGFydGlhbCB9IGZyb20gJ0BueC1kZGQvY29tbW9uL2RvbWFpbic7XG5leHBvcnQgeyBUcmFuc2Zvcm1Ub0RheWpzIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluJztcbmV4cG9ydCB7IElzRGF5anMgfSBmcm9tICdjbGFzcy12YWxpZGF0b3ItZXh0ZW5kZWQnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEluamVjdGlvblRva2VuLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcG9sbG9MaW5rLCBJbk1lbW9yeUNhY2hlIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBBUE9MTE9fT1BUSU9OUywgcHJvdmlkZUFwb2xsbyB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEhBU1VSQV9DT05GSUcsIEhhc3VyYUNvbmZpZywgcHJvdmlkZUhhc3VyYUNvbmZpZyB9IGZyb20gJy4vaGFzdXJhLmNvbmZpZyc7XG5pbXBvcnQgeyBHZXRIZWFkZXJzIH0gZnJvbSAnLi9saW5rcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbnR5cGUgUHJvbWlzZU9yT2JzZXJ2YWJsZTxUPiA9IFByb21pc2U8VD4gfCBPYnNlcnZhYmxlPFQ+IHwgVDtcblxuZXhwb3J0IGNvbnN0IEdSQVBIUUxfSEVBREVSUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHZXRIZWFkZXJzPignR1JBUEhRTF9IRUFERVJTJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+ICgpID0+ICh7fSksXG59KTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIYXN1cmFHZXRIZWFkZXJzKFxuICB1c2VGYWN0b3J5OiAoKSA9PiAoKSA9PiBQcm9taXNlT3JPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+LFxuKTogUHJvdmlkZXIge1xuICByZXR1cm4gW1xuICAgIHsgcHJvdmlkZTogR1JBUEhRTF9IRUFERVJTLCB1c2VGYWN0b3J5IH0sXG4gIF07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgdXNlIHByb3ZpZGVIYXN1cmFHZXRIZWFkZXJzIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVHcmFwaHFsSGVhZGVycyA9IHByb3ZpZGVIYXN1cmFHZXRIZWFkZXJzO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwb2xsb09wdGlvbnMoKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogQVBPTExPX09QVElPTlMsXG4gICAgdXNlRmFjdG9yeTogKGxpbms6IEFwb2xsb0xpbmspID0+ICh7IGNhY2hlOiBuZXcgSW5NZW1vcnlDYWNoZSgpLCBsaW5rIH0pLFxuICAgIGRlcHM6IFtBcG9sbG9MaW5rXSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVIYXN1cmEoY29uZmlnOiBIYXN1cmFDb25maWcpOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSB7XG4gIHJldHVybiBbXG4gICAgcHJvdmlkZUFwb2xsbygoKSA9PiAoe1xuICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG4gICAgICBsaW5rOiBpbmplY3QoQXBvbGxvTGluayksXG4gICAgfSkpLFxuICAgIHByb3ZpZGVIYXN1cmFDb25maWcoY29uZmlnKSxcbiAgXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUhhc3VyYVdpdGhXZWJTb2NrZXQoY29uZmlnOiBIYXN1cmFDb25maWcpOiAoUHJvdmlkZXIgfCBFbnZpcm9ubWVudFByb3ZpZGVycylbXSB7XG4gIHJldHVybiBbXG4gICAgcHJvdmlkZUFwb2xsbygoKSA9PiAoe1xuICAgICAgY2FjaGU6IG5ldyBJbk1lbW9yeUNhY2hlKCksXG4gICAgICBsaW5rOiBpbmplY3QoQXBvbGxvTGluayksXG4gICAgfSkpLFxuICAgIHByb3ZpZGVIYXN1cmFDb25maWcoY29uZmlnKSxcbiAgXVxufVxuXG4iXX0=","export class GetQueryPartBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(params) {\n const queryName = `${this.config.tableName}_by_pk`;\n const variableDefinitions = ['$id: String!'];\n const queryPart = `${queryName}(id: $id) { ${this.config.columns.join(' ')} }`;\n return { queryPart, variableDefinitions, variables: params, operationName: queryName };\n }\n buildMany() {\n const queryName = this.config.tableName;\n const queryPart = `${queryName} { ${this.config.columns.join(' ')} }`;\n return { queryPart, variableDefinitions: [], variables: {}, operationName: queryName };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL3F1ZXJpZXMvZ2V0LmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG1CQUFtQjtJQUNQO0lBQXZCLFlBQXVCLE1BQW1CO1FBQW5CLFdBQU0sR0FBTixNQUFNLENBQWE7SUFBSSxDQUFDO0lBRS9DLEtBQUssQ0FBQyxNQUFvQjtRQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxRQUFRLENBQUM7UUFDbkQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sU0FBUyxHQUFHLEdBQUcsU0FBUyxlQUFlLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDekYsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxHQUFHLFNBQVMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztRQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUN6RixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZywgVHJhbnNhY3Rpb25RdWVyeVBhcnQgfSBmcm9tIFwiLi4vX21ldGEvZ3JhcGhxbC1xdWVyeS1wYXJ0XCI7XG5cbmV4cG9ydCBjbGFzcyBHZXRRdWVyeVBhcnRCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IgKHByb3RlY3RlZCBjb25maWc6IFRhYmxlQ29uZmlnKSB7IH1cblxuICBidWlsZChwYXJhbXM6IHtpZDogc3RyaW5nfSk6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0IHtcbiAgICBjb25zdCBxdWVyeU5hbWUgPSBgJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X2J5X3BrYDtcbiAgICBjb25zdCB2YXJpYWJsZURlZmluaXRpb25zID0gWyckaWQ6IFN0cmluZyEnXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHtxdWVyeU5hbWV9KGlkOiAkaWQpIHsgJHt0aGlzLmNvbmZpZy5jb2x1bW5zLmpvaW4oJyAnKX0gfWA7XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zLCB2YXJpYWJsZXM6IHBhcmFtcywgb3BlcmF0aW9uTmFtZTogcXVlcnlOYW1lIH07XG4gIH1cblxuICBidWlsZE1hbnkoKTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IHF1ZXJ5TmFtZSA9IHRoaXMuY29uZmlnLnRhYmxlTmFtZTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHtxdWVyeU5hbWV9IHsgJHt0aGlzLmNvbmZpZy5jb2x1bW5zLmpvaW4oJyAnKX0gfWA7XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zOiBbXSwgdmFyaWFibGVzOiB7fSwgb3BlcmF0aW9uTmFtZTogcXVlcnlOYW1lIH07XG4gIH1cbn1cbiJdfQ==","import { GetQueryPartBuilder } from \"./get.builder\";\nexport function makeSubscription(query) {\n const { kind, definitions } = query;\n const subscriptionDefinitions = definitions.map((definition) => {\n if (definition.kind === 'OperationDefinition' && definition.operation === 'query') {\n return {\n ...definition,\n operation: 'subscription',\n };\n }\n return definition;\n });\n return { kind, definitions: subscriptionDefinitions };\n}\nexport class QueriesBuilder {\n get;\n constructor(config) {\n this.get = new GetQueryPartBuilder(config);\n }\n makeSubscription(query) {\n return makeSubscription(query);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9idWlsZGVycy9wYXJ0cy9xdWVyaWVzL3F1ZXJpZXMuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQVU7SUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDcEMsTUFBTSx1QkFBdUIsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUU7UUFDbEUsSUFBSSxVQUFVLENBQUMsSUFBSSxLQUFLLHFCQUFxQixJQUFJLFVBQVUsQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEYsT0FBTztnQkFDTCxHQUFHLFVBQVU7Z0JBQ2IsU0FBUyxFQUFFLGNBQWM7YUFDMUIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sT0FBTyxjQUFjO0lBQ2hCLEdBQUcsQ0FBc0I7SUFFbEMsWUFBYSxNQUFtQjtRQUM5QixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZyB9IGZyb20gXCIuLi9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnRcIjtcbmltcG9ydCB7IEdldFF1ZXJ5UGFydEJ1aWxkZXIgfSBmcm9tIFwiLi9nZXQuYnVpbGRlclwiO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFrZVN1YnNjcmlwdGlvbihxdWVyeTogYW55KSB7XG4gIGNvbnN0IHsga2luZCwgZGVmaW5pdGlvbnMgfSA9IHF1ZXJ5O1xuICBjb25zdCBzdWJzY3JpcHRpb25EZWZpbml0aW9ucyA9IGRlZmluaXRpb25zLm1hcCgoZGVmaW5pdGlvbjogYW55KSA9PiB7XG4gICAgaWYgKGRlZmluaXRpb24ua2luZCA9PT0gJ09wZXJhdGlvbkRlZmluaXRpb24nICYmIGRlZmluaXRpb24ub3BlcmF0aW9uID09PSAncXVlcnknKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kZWZpbml0aW9uLFxuICAgICAgICBvcGVyYXRpb246ICdzdWJzY3JpcHRpb24nLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH0pO1xuICByZXR1cm4geyBraW5kLCBkZWZpbml0aW9uczogc3Vic2NyaXB0aW9uRGVmaW5pdGlvbnMgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFF1ZXJpZXNCdWlsZGVyPEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4ge1xuICByZWFkb25seSBnZXQ6IEdldFF1ZXJ5UGFydEJ1aWxkZXI7XG5cbiAgY29uc3RydWN0b3IgKGNvbmZpZzogVGFibGVDb25maWcpIHtcbiAgICB0aGlzLmdldCA9IG5ldyBHZXRRdWVyeVBhcnRCdWlsZGVyKGNvbmZpZyk7XG4gIH1cblxuICBtYWtlU3Vic2NyaXB0aW9uKHF1ZXJ5OiBhbnkpIHtcbiAgICByZXR1cm4gbWFrZVN1YnNjcmlwdGlvbihxdWVyeSk7XG4gIH1cbn0iXX0=","import { omitBy, pick, snakeCase } from 'lodash-es';\nexport class CreateMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(data, alias = 'create') {\n const object = this.convertToObject(data);\n const mutationName = `insert_${this.config.tableName}`;\n const variableDefinitions = [`$${alias}: ${this.config.tableName}_insert_input!`];\n const queryPart = `${alias}: ${mutationName}(objects: [$${alias}]) { affected_rows returning { ${this.config.columns.join(' ')} } }`;\n const variables = { [alias]: object };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n buildMany(data, alias = 'createMany') {\n const objects = this.convertToObjects(data);\n const mutationName = `insert_${this.config.tableName}`;\n const variableDefinitions = [`$${alias}: [${this.config.tableName}_insert_input!]!`];\n const queryPart = `${alias}: ${mutationName}(objects: $${alias}) { affected_rows returning { ${this.config.columns.join(' ')} } }`;\n const variables = { [alias]: objects };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n convertToObject(item) {\n const fields = Object.keys(item).map(snakeCase).filter((field) => !['created_at', 'updated_at'].includes(field));\n const picked = pick(item, [...fields]);\n return omitBy(picked, (value) => typeof value === 'undefined');\n }\n convertToObjects(items) {\n return items.map((item) => this.convertToObject(item));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy9jcmVhdGUuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNEO0lBQS9CLFlBQStCLE1BQW1CO1FBQW5CLFdBQU0sR0FBTixNQUFNLENBQWE7SUFBSSxDQUFDO0lBRXZELEtBQUssQ0FBQyxJQUFtQixFQUFFLEtBQUssR0FBRyxRQUFRO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxZQUFZLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRixNQUFNLFNBQVMsR0FBRyxHQUFHLEtBQUssS0FBSyxZQUFZLGVBQWUsS0FBSyxrQ0FBa0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDckksTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFxQixFQUFFLEtBQUssR0FBRyxZQUFZO1FBQ25ELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxVQUFVLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkQsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sU0FBUyxHQUFHLEdBQUcsS0FBSyxLQUFLLFlBQVksY0FBYyxLQUFLLGlDQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUNuSSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRVMsZUFBZSxDQUFDLElBQW1CO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssV0FBVyxDQUEyQixDQUFDO0lBQzNGLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxLQUFzQjtRQUMvQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZywgVHJhbnNhY3Rpb25RdWVyeVBhcnQgfSBmcm9tICcuLi8uLi9wYXJ0cy9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnQnO1xuaW1wb3J0IHsgb21pdEJ5LCBwaWNrLCBzbmFrZUNhc2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG50eXBlIENyZWF0ZURhdGE8RT4gPSBPbWl0PEUsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPjtcblxuZXhwb3J0IGNsYXNzIENyZWF0ZU11dGF0aW9uQnVpbGRlcjxFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IFRhYmxlQ29uZmlnKSB7IH1cblxuICBidWlsZChkYXRhOiBDcmVhdGVEYXRhPEU+LCBhbGlhcyA9ICdjcmVhdGUnKTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG9iamVjdCA9IHRoaXMuY29udmVydFRvT2JqZWN0KGRhdGEpO1xuICAgIGNvbnN0IG11dGF0aW9uTmFtZSA9IGBpbnNlcnRfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YDtcbiAgICBjb25zdCB2YXJpYWJsZURlZmluaXRpb25zID0gW2AkJHthbGlhc306ICR7dGhpcy5jb25maWcudGFibGVOYW1lfV9pbnNlcnRfaW5wdXQhYF07XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gYCR7YWxpYXN9OiAke211dGF0aW9uTmFtZX0ob2JqZWN0czogWyQke2FsaWFzfV0pIHsgYWZmZWN0ZWRfcm93cyByZXR1cm5pbmcgeyAke3RoaXMuY29uZmlnLmNvbHVtbnMuam9pbignICcpfSB9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2FsaWFzXTogb2JqZWN0IH07XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zLCB2YXJpYWJsZXMsIG9wZXJhdGlvbk5hbWU6IG11dGF0aW9uTmFtZSwgYWxpYXMgfTtcbiAgfVxuXG4gIGJ1aWxkTWFueShkYXRhOiBDcmVhdGVEYXRhPEU+W10sIGFsaWFzID0gJ2NyZWF0ZU1hbnknKTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG9iamVjdHMgPSB0aGlzLmNvbnZlcnRUb09iamVjdHMoZGF0YSk7XG4gICAgY29uc3QgbXV0YXRpb25OYW1lID0gYGluc2VydF8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1gO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfTogWyR7dGhpcy5jb25maWcudGFibGVOYW1lfV9pbnNlcnRfaW5wdXQhXSFgXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHthbGlhc306ICR7bXV0YXRpb25OYW1lfShvYmplY3RzOiAkJHthbGlhc30pIHsgYWZmZWN0ZWRfcm93cyByZXR1cm5pbmcgeyAke3RoaXMuY29uZmlnLmNvbHVtbnMuam9pbignICcpfSB9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2FsaWFzXTogb2JqZWN0cyB9O1xuICAgIHJldHVybiB7IHF1ZXJ5UGFydCwgdmFyaWFibGVEZWZpbml0aW9ucywgdmFyaWFibGVzLCBvcGVyYXRpb25OYW1lOiBtdXRhdGlvbk5hbWUsIGFsaWFzIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFRvT2JqZWN0KGl0ZW06IENyZWF0ZURhdGE8RT4pOiBQYXJ0aWFsPENyZWF0ZURhdGE8RT4+IHtcbiAgICBjb25zdCBmaWVsZHMgPSBPYmplY3Qua2V5cyhpdGVtKS5tYXAoc25ha2VDYXNlKS5maWx0ZXIoKGZpZWxkKSA9PiAhWydjcmVhdGVkX2F0JywgJ3VwZGF0ZWRfYXQnXS5pbmNsdWRlcyhmaWVsZCkpO1xuICAgIGNvbnN0IHBpY2tlZCA9IHBpY2soaXRlbSwgWy4uLmZpZWxkc10pO1xuICAgIHJldHVybiBvbWl0QnkocGlja2VkLCAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGFzIFBhcnRpYWw8Q3JlYXRlRGF0YTxFPj47XG4gIH1cblxuICBwcm90ZWN0ZWQgY29udmVydFRvT2JqZWN0cyhpdGVtczogQ3JlYXRlRGF0YTxFPltdKTogUGFydGlhbDxDcmVhdGVEYXRhPEU+PltdIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiB0aGlzLmNvbnZlcnRUb09iamVjdChpdGVtKSk7XG4gIH1cbn1cbiJdfQ==","export class DeleteMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build({ id }) {\n const operationName = `delete_${this.config.tableName}`;\n const queryPart = `${operationName}(where: {id: {_eq: $id}}) { affected_rows }`;\n const variableDefinitions = ['$id: String!'];\n return { queryPart, variableDefinitions, variables: { id }, operationName };\n }\n buildMany(params, alias = 'deleteMany') {\n const operationName = `delete_${this.config.tableName}`;\n const variableDefinitions = [`$${alias}: [String!]!`];\n const queryPart = `${alias}: ${operationName}(where: {id: {_in: $${alias}}}) { affected_rows }`;\n const variables = { [alias]: params.map((p) => p.id) };\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n buildAll(alias = 'deleteAll') {\n const operationName = `delete_${this.config.tableName}`;\n const uniqueAlias = `${alias}_${this.config.tableName}`;\n const variableDefinitions = [];\n const queryPart = `${uniqueAlias}: ${operationName}(where: {}) { affected_rows }`;\n const variables = {};\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy9kZWxldGUuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8scUJBQXFCO0lBQ0Q7SUFBL0IsWUFBK0IsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUFJLENBQUM7SUFFdkQsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ1YsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLEdBQUcsYUFBYSw2Q0FBNkMsQ0FBQztRQUNoRixNQUFNLG1CQUFtQixHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXdCLEVBQUUsS0FBSyxHQUFHLFlBQVk7UUFDdEQsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssY0FBYyxDQUFDLENBQUM7UUFDdEQsTUFBTSxTQUFTLEdBQUcsR0FBRyxLQUFLLEtBQUssYUFBYSx1QkFBdUIsS0FBSyx1QkFBdUIsQ0FBQztRQUNoRyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzdFLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSyxHQUFHLFdBQVc7UUFDMUIsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hELE1BQU0sV0FBVyxHQUFHLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxtQkFBbUIsR0FBYSxFQUFFLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsR0FBRyxXQUFXLEtBQUssYUFBYSwrQkFBK0IsQ0FBQztRQUNsRixNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDckIsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzdFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlQ29uZmlnLCBUcmFuc2FjdGlvblF1ZXJ5UGFydCB9IGZyb20gJy4uLy4uL3BhcnRzL19tZXRhL2dyYXBocWwtcXVlcnktcGFydCc7XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVNdXRhdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBUYWJsZUNvbmZpZykgeyB9XG5cbiAgYnVpbGQoeyBpZCB9KTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG9wZXJhdGlvbk5hbWUgPSBgZGVsZXRlXyR7dGhpcy5jb25maWcudGFibGVOYW1lfWA7XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gYCR7b3BlcmF0aW9uTmFtZX0od2hlcmU6IHtpZDoge19lcTogJGlkfX0pIHsgYWZmZWN0ZWRfcm93cyB9YDtcbiAgICBjb25zdCB2YXJpYWJsZURlZmluaXRpb25zID0gWyckaWQ6IFN0cmluZyEnXTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlczogeyBpZCB9LCBvcGVyYXRpb25OYW1lIH07XG4gIH1cblxuICBidWlsZE1hbnkocGFyYW1zOiB7IGlkOiBzdHJpbmcgfVtdLCBhbGlhcyA9ICdkZWxldGVNYW55Jyk6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0IHtcbiAgICBjb25zdCBvcGVyYXRpb25OYW1lID0gYGRlbGV0ZV8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1gO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfTogW1N0cmluZyFdIWBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHtvcGVyYXRpb25OYW1lfSh3aGVyZToge2lkOiB7X2luOiAkJHthbGlhc319fSkgeyBhZmZlY3RlZF9yb3dzIH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2FsaWFzXTogcGFyYW1zLm1hcCgocCkgPT4gcC5pZCkgfTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlcywgb3BlcmF0aW9uTmFtZSwgYWxpYXMgfTtcbiAgfVxuXG4gIGJ1aWxkQWxsKGFsaWFzID0gJ2RlbGV0ZUFsbCcpOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IGBkZWxldGVfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YDtcbiAgICBjb25zdCB1bmlxdWVBbGlhcyA9IGAke2FsaWFzfV8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1gO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3QgcXVlcnlQYXJ0ID0gYCR7dW5pcXVlQWxpYXN9OiAke29wZXJhdGlvbk5hbWV9KHdoZXJlOiB7fSkgeyBhZmZlY3RlZF9yb3dzIH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHt9O1xuICAgIHJldHVybiB7IHF1ZXJ5UGFydCwgdmFyaWFibGVEZWZpbml0aW9ucywgdmFyaWFibGVzLCBvcGVyYXRpb25OYW1lLCBhbGlhcyB9O1xuICB9XG59XG4iXX0=","import { omitBy, pick, snakeCase } from \"lodash-es\";\nexport class SaveMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(data, { operationName = `insert_${this.config.tableName}`, constraint = this.config.pk, columns = this.config.columns, returningColumns = this.config.columns, alias = operationName, } = {}) {\n const object = this.buildObject(data);\n const onConflict = this.buildOnConflict(data, constraint, columns);\n const variableDefinitions = [\n `$${alias}Object: ${this.config.tableName}_insert_input!`,\n `$${alias}OnConflict: ${this.config.tableName}_on_conflict!`\n ];\n const queryPart = `${alias}: ${operationName}( objects: [$${alias}Object] on_conflict: $${alias}OnConflict) { affected_rows returning { ${returningColumns.join(', ')} } }`;\n const variables = { [`${alias}Object`]: object, [`${alias}OnConflict`]: onConflict };\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n buildMany(entities, { operationName = `insert_${this.config.tableName}`, constraint = this.config.pk, columns = this.config.columns, returningColumns = this.config.columns, alias = 'save' } = {}) {\n const objects = this.buildObjects(entities);\n const onConflict = this.buildOnConflict(entities[0], constraint, columns);\n const variableDefinitions = [\n `$${alias}Objects: [${this.config.tableName}_insert_input!]!`,\n `$${alias}OnConflict: ${this.config.tableName}_on_conflict!`\n ];\n const queryPart = `${alias}: ${operationName}(objects: $${alias}Objects on_conflict: $${alias}OnConflict) {\n affected_rows returning { ${returningColumns.join(', ')} }\n }`;\n const variables = { [`${alias}Objects`]: objects, [`${alias}OnConflict`]: onConflict };\n return { queryPart, variableDefinitions, variables, operationName: operationName, alias };\n }\n buildObject(item) {\n const fields = Object.keys(item).map(snakeCase).filter((field) => !['created_at', 'updated_at'].includes(field));\n const picked = pick(item, [...fields]);\n return omitBy(picked, (value) => typeof value === 'undefined');\n }\n buildObjects(items) {\n return items.map((item) => this.buildObject(item));\n }\n buildOnConflict(data, constraint, columns) {\n const fields = Object.keys(this.buildObject(data));\n const updateColumns = fields.filter(column => columns.includes(column));\n return { constraint, update_columns: updateColumns };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9oYXN1cmEvc3JjL2xpYi9idWlsZGVycy9wYXJ0cy9tdXRhdGlvbnMvc2F2ZS5idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVVwRCxNQUFNLE9BQU8sbUJBQW1CO0lBQ0M7SUFBL0IsWUFBK0IsTUFBbUI7UUFBbkIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUFJLENBQUM7SUFFdkQsS0FBSyxDQUFDLElBQXdDLEVBQUUsRUFDOUMsYUFBYSxHQUFHLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsRUFDakQsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUMzQixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQzdCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUN0QyxLQUFLLEdBQUcsYUFBYSxNQUNWLEVBQUU7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRSxNQUFNLG1CQUFtQixHQUFHO1lBQzFCLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxnQkFBZ0I7WUFDekQsSUFBSSxLQUFLLGVBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLGVBQWU7U0FDN0QsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLEdBQUcsS0FBSyxLQUFLLGFBQWEsZ0JBQWdCLEtBQUsseUJBQXlCLEtBQUssMkNB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eEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb25maWcsIFRyYW5zYWN0aW9uUXVlcnlQYXJ0IH0gZnJvbSAnLi4vLi4vcGFydHMvX21ldGEvZ3JhcGhxbC1xdWVyeS1wYXJ0JztcbmltcG9ydCB7IG9taXRCeSwgcGljaywgc25ha2VDYXNlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIG9wZXJhdGlvbk5hbWU/OiBzdHJpbmc7XG4gIGNvbnN0cmFpbnQ/OiBzdHJpbmc7XG4gIGNvbHVtbnM/OiBzdHJpbmdbXTtcbiAgcmV0dXJuaW5nQ29sdW1ucz86IHN0cmluZ1tdO1xuICBhbGlhcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVNdXRhdGlvbkJ1aWxkZXI8RSA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBUYWJsZUNvbmZpZykgeyB9XG5cbiAgYnVpbGQoZGF0YTogT21pdDxFLCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPiwge1xuICAgIG9wZXJhdGlvbk5hbWUgPSBgaW5zZXJ0XyR7dGhpcy5jb25maWcudGFibGVOYW1lfWAsXG4gICAgY29uc3RyYWludCA9IHRoaXMuY29uZmlnLnBrLFxuICAgIGNvbHVtbnMgPSB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgIHJldHVybmluZ0NvbHVtbnMgPSB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgIGFsaWFzID0gb3BlcmF0aW9uTmFtZSxcbiAgfTogT3B0aW9ucyA9IHt9KTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG9iamVjdCA9IHRoaXMuYnVpbGRPYmplY3QoZGF0YSk7XG4gICAgY29uc3Qgb25Db25mbGljdCA9IHRoaXMuYnVpbGRPbkNvbmZsaWN0KGRhdGEsIGNvbnN0cmFpbnQsIGNvbHVtbnMpO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbXG4gICAgICBgJCR7YWxpYXN9T2JqZWN0OiAke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1faW5zZXJ0X2lucHV0IWAsXG4gICAgICBgJCR7YWxpYXN9T25Db25mbGljdDogJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X29uX2NvbmZsaWN0IWBcbiAgICBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHtvcGVyYXRpb25OYW1lfSggb2JqZWN0czogWyQke2FsaWFzfU9iamVjdF0gb25fY29uZmxpY3Q6ICQke2FsaWFzfU9uQ29uZmxpY3QpIHsgYWZmZWN0ZWRfcm93cyByZXR1cm5pbmcgeyAke3JldHVybmluZ0NvbHVtbnMuam9pbignLCAnKX0gfSB9YDtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSB7IFtgJHthbGlhc31PYmplY3RgXTogb2JqZWN0LCBbYCR7YWxpYXN9T25Db25mbGljdGBdOiBvbkNvbmZsaWN0IH07XG4gICAgcmV0dXJuIHsgcXVlcnlQYXJ0LCB2YXJpYWJsZURlZmluaXRpb25zLCB2YXJpYWJsZXMsIG9wZXJhdGlvbk5hbWUsIGFsaWFzIH07XG4gIH1cblxuICBidWlsZE1hbnkoZW50aXRpZXM6IEVbXSwge1xuICAgIG9wZXJhdGlvbk5hbWUgPSBgaW5zZXJ0XyR7dGhpcy5jb25maWcudGFibGVOYW1lfWAsXG4gICAgY29uc3RyYWludCA9IHRoaXMuY29uZmlnLnBrLFxuICAgIGNvbHVtbnMgPSB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgIHJldHVybmluZ0NvbHVtbnMgPSB0aGlzLmNvbmZpZy5jb2x1bW5zLFxuICAgIGFsaWFzID0gJ3NhdmUnXG4gIH06IE9wdGlvbnMgPSB7fSk6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0IHtcbiAgICBjb25zdCBvYmplY3RzID0gdGhpcy5idWlsZE9iamVjdHMoZW50aXRpZXMpO1xuICAgIGNvbnN0IG9uQ29uZmxpY3QgPSB0aGlzLmJ1aWxkT25Db25mbGljdChlbnRpdGllc1swXSBhcyBhbnksIGNvbnN0cmFpbnQsIGNvbHVtbnMpO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbXG4gICAgICBgJCR7YWxpYXN9T2JqZWN0czogWyR7dGhpcy5jb25maWcudGFibGVOYW1lfV9pbnNlcnRfaW5wdXQhXSFgLFxuICAgICAgYCQke2FsaWFzfU9uQ29uZmxpY3Q6ICR7dGhpcy5jb25maWcudGFibGVOYW1lfV9vbl9jb25mbGljdCFgXG4gICAgXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHthbGlhc306ICR7b3BlcmF0aW9uTmFtZX0ob2JqZWN0czogJCR7YWxpYXN9T2JqZWN0cyBvbl9jb25mbGljdDogJCR7YWxpYXN9T25Db25mbGljdCkge1xuICAgICAgYWZmZWN0ZWRfcm93cyByZXR1cm5pbmcgeyAke3JldHVybmluZ0NvbHVtbnMuam9pbignLCAnKX0gfVxuICAgIH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2Ake2FsaWFzfU9iamVjdHNgXTogb2JqZWN0cywgW2Ake2FsaWFzfU9uQ29uZmxpY3RgXTogb25Db25mbGljdCB9O1xuICAgIHJldHVybiB7IHF1ZXJ5UGFydCwgdmFyaWFibGVEZWZpbml0aW9ucywgdmFyaWFibGVzLCBvcGVyYXRpb25OYW1lOiBvcGVyYXRpb25OYW1lLCBhbGlhcyB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkT2JqZWN0KGl0ZW06IE9taXQ8RSwgJ2NyZWF0ZWRBdCcgfCAndXBkYXRlZEF0Jz4pOiBQYXJ0aWFsPE9taXQ8RSwgJ2NyZWF0ZWRBdCcgfCAndXBkYXRlZEF0Jz4+IHtcbiAgICBjb25zdCBmaWVsZHMgPSBPYmplY3Qua2V5cyhpdGVtKS5tYXAoc25ha2VDYXNlKS5maWx0ZXIoKGZpZWxkKSA9PiAhWydjcmVhdGVkX2F0JywgJ3VwZGF0ZWRfYXQnXS5pbmNsdWRlcyhmaWVsZCkpO1xuICAgIGNvbnN0IHBpY2tlZCA9IHBpY2soaXRlbSwgWy4uLmZpZWxkc10pO1xuICAgIHJldHVybiBvbWl0QnkocGlja2VkLCAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGFzIFBhcnRpYWw8T21pdDxFLCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPj47XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3RzKGl0ZW1zOiBPbWl0PEUsICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+W10pOiBQYXJ0aWFsPE9taXQ8RSwgJ2NyZWF0ZWRBdCcgfCAndXBkYXRlZEF0Jz4+W10ge1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0pID0+IHRoaXMuYnVpbGRPYmplY3QoaXRlbSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkT25Db25mbGljdChkYXRhOiBPbWl0PEUsICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+LCBjb25zdHJhaW50OiBzdHJpbmcsIGNvbHVtbnM6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgZmllbGRzID0gT2JqZWN0LmtleXModGhpcy5idWlsZE9iamVjdChkYXRhKSk7XG4gICAgY29uc3QgdXBkYXRlQ29sdW1ucyA9IGZpZWxkcy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbnMuaW5jbHVkZXMoY29sdW1uKSk7XG4gICAgcmV0dXJuIHsgY29uc3RyYWludCwgdXBkYXRlX2NvbHVtbnM6IHVwZGF0ZUNvbHVtbnMgfTtcbiAgfVxufSJdfQ==","import { omitBy, pick, snakeCase } from \"lodash-es\";\nexport class UpdateMutationBuilder {\n config;\n constructor(config) {\n this.config = config;\n }\n build(data, alias = 'update') {\n const mutationName = `update_${this.config.tableName}`;\n const object = this.buildObject(data);\n const variableDefinitions = [`$${alias}Id: String!`, `$${alias}Object: ${this.config.tableName}_set_input!`];\n const queryPart = `${alias}: ${mutationName}(where: {id: {_eq: $${alias}Id}} _set: $${alias}Object) { affected_rows returning { id } }`;\n const variables = { [`${alias}Id`]: data.id, [`${alias}Object`]: object };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n buildMany(data, alias = 'updateMany') {\n const mutationName = `update_${this.config.tableName}_many`;\n const objects = this.buildObjects(data);\n const variableDefinitions = [`$${alias}Objects: [${this.config.tableName}_updates!]!`];\n const queryPart = `${alias}: ${mutationName}(updates: $${alias}Objects) { affected_rows returning { id } }`;\n const variables = { [`${alias}Objects`]: objects };\n return { queryPart, variableDefinitions, variables, operationName: mutationName, alias };\n }\n buildObject(item) {\n const fields = Object.keys(item).map(snakeCase).filter((field) => !['created_at', 'updated_at'].includes(field));\n const picked = pick(item, fields);\n return omitBy(picked, (value) => typeof value === 'undefined');\n }\n buildObjects(items) {\n return items.map((item) => ({ where: { id: { _eq: item.id } }, _set: this.buildObject(item) }));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy91cGRhdGUuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEQsTUFBTSxPQUFPLHFCQUFxQjtJQUNEO0lBQS9CLFlBQStCLE1BQW1CO1FBQW5CLFdBQU0sR0FBTixNQUFNLENBQWE7SUFBSSxDQUFDO0lBRXZELEtBQUssQ0FBQyxJQUFpQyxFQUFFLEtBQUssR0FBRyxRQUFRO1FBQ3ZELE1BQU0sWUFBWSxHQUFHLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFLElBQUksS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxhQUFhLENBQUMsQ0FBQztRQUM3RyxNQUFNLFNBQVMsR0FBRyxHQUFHLEtBQUssS0FBSyxZQUFZLHVCQUF1QixLQUFLLGVBQWUsS0FBSyw0Q0FBNEMsQ0FBQztRQUN4SSxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzRixDQUFDO0lBRUQsU0FBUyxDQUNQLElBQWtCLEVBQ2xCLEtBQUssR0FBRyxZQUFZO1FBRXBCLE1BQU0sWUFBWSxHQUFHLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLE9BQU8sQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsYUFBYSxDQUFDLENBQUM7UUFDdkYsTUFBTSxTQUFTLEdBQUcsR0FBRyxLQUFLLEtBQUssWUFBWSxjQUFjLEtBQUssNkNBQTZDLENBQUM7UUFDNUcsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEdBQUcsS0FBSyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzNGLENBQUM7SUFFUyxXQUFXLENBQUMsSUFBZ0I7UUFDcEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pILE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQW1CO1FBQ3hDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJsZUNvbmZpZywgVHJhbnNhY3Rpb25RdWVyeVBhcnQgfSBmcm9tICcuLi8uLi9wYXJ0cy9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnQnO1xuaW1wb3J0IHsgb21pdEJ5LCBwaWNrLCBzbmFrZUNhc2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVNdXRhdGlvbkJ1aWxkZXI8RSBleHRlbmRzIHtpZDogc3RyaW5nfSA9IGFueT4ge1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBUYWJsZUNvbmZpZykgeyB9XG5cbiAgYnVpbGQoZGF0YTogUGFydGlhbDxFPiAmIHsgaWQ6IHN0cmluZyB9LCBhbGlhcyA9ICd1cGRhdGUnKTogVHJhbnNhY3Rpb25RdWVyeVBhcnQge1xuICAgIGNvbnN0IG11dGF0aW9uTmFtZSA9IGB1cGRhdGVfJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9YDtcbiAgICBjb25zdCBvYmplY3QgPSB0aGlzLmJ1aWxkT2JqZWN0KGRhdGEpO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfUlkOiBTdHJpbmchYCwgYCQke2FsaWFzfU9iamVjdDogJHt0aGlzLmNvbmZpZy50YWJsZU5hbWV9X3NldF9pbnB1dCFgXTtcbiAgICBjb25zdCBxdWVyeVBhcnQgPSBgJHthbGlhc306ICR7bXV0YXRpb25OYW1lfSh3aGVyZToge2lkOiB7X2VxOiAkJHthbGlhc31JZH19IF9zZXQ6ICQke2FsaWFzfU9iamVjdCkgeyBhZmZlY3RlZF9yb3dzIHJldHVybmluZyB7IGlkIH0gfWA7XG4gICAgY29uc3QgdmFyaWFibGVzID0geyBbYCR7YWxpYXN9SWRgXTogZGF0YS5pZCwgW2Ake2FsaWFzfU9iamVjdGBdOiBvYmplY3QgfTtcbiAgICByZXR1cm4geyBxdWVyeVBhcnQsIHZhcmlhYmxlRGVmaW5pdGlvbnMsIHZhcmlhYmxlcywgb3BlcmF0aW9uTmFtZTogbXV0YXRpb25OYW1lLCBhbGlhcyB9O1xuICB9XG5cbiAgYnVpbGRNYW55KFxuICAgIGRhdGE6IFBhcnRpYWw8RT5bXSxcbiAgICBhbGlhcyA9ICd1cGRhdGVNYW55J1xuICApOiBUcmFuc2FjdGlvblF1ZXJ5UGFydCB7XG4gICAgY29uc3QgbXV0YXRpb25OYW1lID0gYHVwZGF0ZV8ke3RoaXMuY29uZmlnLnRhYmxlTmFtZX1fbWFueWA7XG4gICAgY29uc3Qgb2JqZWN0cyA9IHRoaXMuYnVpbGRPYmplY3RzKGRhdGEpO1xuICAgIGNvbnN0IHZhcmlhYmxlRGVmaW5pdGlvbnMgPSBbYCQke2FsaWFzfU9iamVjdHM6IFske3RoaXMuY29uZmlnLnRhYmxlTmFtZX1fdXBkYXRlcyFdIWBdO1xuICAgIGNvbnN0IHF1ZXJ5UGFydCA9IGAke2FsaWFzfTogJHttdXRhdGlvbk5hbWV9KHVwZGF0ZXM6ICQke2FsaWFzfU9iamVjdHMpIHsgYWZmZWN0ZWRfcm93cyByZXR1cm5pbmcgeyBpZCB9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHsgW2Ake2FsaWFzfU9iamVjdHNgXTogb2JqZWN0cyB9O1xuICAgIHJldHVybiB7IHF1ZXJ5UGFydCwgdmFyaWFibGVEZWZpbml0aW9ucywgdmFyaWFibGVzLCBvcGVyYXRpb25OYW1lOiBtdXRhdGlvbk5hbWUsIGFsaWFzIH07XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3QoaXRlbTogUGFydGlhbDxFPik6IGFueSB7XG4gICAgY29uc3QgZmllbGRzID0gT2JqZWN0LmtleXMoaXRlbSkubWFwKHNuYWtlQ2FzZSkuZmlsdGVyKChmaWVsZCkgPT4gIVsnY3JlYXRlZF9hdCcsICd1cGRhdGVkX2F0J10uaW5jbHVkZXMoZmllbGQpKTtcbiAgICBjb25zdCBwaWNrZWQgPSBwaWNrKGl0ZW0sIGZpZWxkcyk7XG4gICAgcmV0dXJuIG9taXRCeShwaWNrZWQsICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRPYmplY3RzKGl0ZW1zOiBQYXJ0aWFsPEU+W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHsgd2hlcmU6IHsgaWQ6IHsgX2VxOiBpdGVtLmlkIH0gfSwgX3NldDogdGhpcy5idWlsZE9iamVjdChpdGVtKSB9KSk7XG4gIH1cbn1cbiJdfQ==","import { CreateMutationBuilder } from \"./create.builder\";\nimport { UpdateMutationBuilder } from \"./update.builder\";\nimport { SaveMutationBuilder } from \"./save.builder\";\nimport { DeleteMutationBuilder } from \"./delete.builder\";\nexport class HasuraMutationBuilder {\n create;\n update;\n save;\n delete_;\n constructor(config) {\n this.create = new CreateMutationBuilder(config);\n this.update = new UpdateMutationBuilder(config);\n this.save = new SaveMutationBuilder(config);\n this.delete_ = new DeleteMutationBuilder(config);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb25zLmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2J1aWxkZXJzL3BhcnRzL211dGF0aW9ucy9tdXRhdGlvbnMuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUd6RCxNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE1BQU0sQ0FBMkI7SUFDakMsTUFBTSxDQUEyQjtJQUNqQyxJQUFJLENBQXlCO0lBQzdCLE9BQU8sQ0FBd0I7SUFFeEMsWUFBWSxNQUFtQjtRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUkscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlYXRlTXV0YXRpb25CdWlsZGVyIH0gZnJvbSBcIi4vY3JlYXRlLmJ1aWxkZXJcIjtcbmltcG9ydCB7IFVwZGF0ZU11dGF0aW9uQnVpbGRlciB9IGZyb20gXCIuL3VwZGF0ZS5idWlsZGVyXCI7XG5pbXBvcnQgeyBTYXZlTXV0YXRpb25CdWlsZGVyIH0gZnJvbSBcIi4vc2F2ZS5idWlsZGVyXCI7XG5pbXBvcnQgeyBEZWxldGVNdXRhdGlvbkJ1aWxkZXIgfSBmcm9tIFwiLi9kZWxldGUuYnVpbGRlclwiO1xuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tIFwiLi4vX21ldGEvZ3JhcGhxbC1xdWVyeS1wYXJ0XCI7XG5cbmV4cG9ydCBjbGFzcyBIYXN1cmFNdXRhdGlvbkJ1aWxkZXI8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PiB7XG4gIHJlYWRvbmx5IGNyZWF0ZTogQ3JlYXRlTXV0YXRpb25CdWlsZGVyPEU+O1xuICByZWFkb25seSB1cGRhdGU6IFVwZGF0ZU11dGF0aW9uQnVpbGRlcjxFPjtcbiAgcmVhZG9ubHkgc2F2ZTogU2F2ZU11dGF0aW9uQnVpbGRlcjxFPjtcbiAgcmVhZG9ubHkgZGVsZXRlXzogRGVsZXRlTXV0YXRpb25CdWlsZGVyO1xuICBcbiAgY29uc3RydWN0b3IoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMuY3JlYXRlID0gbmV3IENyZWF0ZU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICAgIHRoaXMudXBkYXRlID0gbmV3IFVwZGF0ZU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICAgIHRoaXMuc2F2ZSA9IG5ldyBTYXZlTXV0YXRpb25CdWlsZGVyKGNvbmZpZyk7XG4gICAgdGhpcy5kZWxldGVfID0gbmV3IERlbGV0ZU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICB9XG59XG4iXX0=","import { HasuraMutationBuilder } from './mutations';\nimport { QueriesBuilder } from \"./queries\";\nexport class HasuraQueryPartsBuilder {\n mutations;\n queries;\n constructor(config) {\n this.mutations = new HasuraMutationBuilder(config);\n this.queries = new QueriesBuilder(config);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydHMuYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYnVpbGRlcnMvcGFydHMvcGFydHMuYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUczQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ3pCLFNBQVMsQ0FBMkI7SUFDcEMsT0FBTyxDQUFvQjtJQUVwQyxZQUFZLE1BQW1CO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhhc3VyYU11dGF0aW9uQnVpbGRlciB9IGZyb20gJy4vbXV0YXRpb25zJztcbmltcG9ydCB7IFF1ZXJpZXNCdWlsZGVyIH0gZnJvbSBcIi4vcXVlcmllc1wiO1xuaW1wb3J0IHsgVGFibGVDb25maWcgfSBmcm9tIFwiLi9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnRcIjtcblxuZXhwb3J0IGNsYXNzIEhhc3VyYVF1ZXJ5UGFydHNCdWlsZGVyPEUgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfT4ge1xuICByZWFkb25seSBtdXRhdGlvbnM6IEhhc3VyYU11dGF0aW9uQnVpbGRlcjxFPjtcbiAgcmVhZG9ubHkgcXVlcmllczogUXVlcmllc0J1aWxkZXI8RT47XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMubXV0YXRpb25zID0gbmV3IEhhc3VyYU11dGF0aW9uQnVpbGRlcihjb25maWcpO1xuICAgIHRoaXMucXVlcmllcyA9IG5ldyBRdWVyaWVzQnVpbGRlcihjb25maWcpO1xuICB9XG59XG4iXX0=","import { HasuraQueryPartsBuilder } from './parts/parts.builder';\nexport class HasuraQueryBuilder {\n parts;\n constructor(config) {\n this.parts = new HasuraQueryPartsBuilder(config);\n }\n buildQuery(part) {\n const operationNameStr = part.operationName ? `${part.operationName} ` : '';\n const variablesStr = part.variableDefinitions?.length ? `(${part.variableDefinitions.join(', ')}) ` : '';\n return `query ${operationNameStr}${variablesStr}{ ${part.queryPart} }`;\n }\n static buildMutation(part) {\n const operationNameStr = part.operationName ? `${part.operationName} ` : '';\n const variablesStr = part.variableDefinitions?.length ? `(${part.variableDefinitions.join(', ')}) ` : '';\n return `mutation ${operationNameStr}${variablesStr} { ${part.queryPart} }`;\n }\n buildMutation(part) {\n return HasuraQueryBuilder.buildMutation(part);\n }\n buildTransactionQuery(parts) {\n const operationName = `Transaction`;\n const variableDefinitions = parts.reduce((acc, m) => [...acc, ...m.variableDefinitions], []);\n const mutationParts = parts.map(m => m.queryPart);\n const query = `mutation ${operationName} (${variableDefinitions.join(', ')}) { ${mutationParts.join('\\n')} }`;\n const variables = parts.reduce((acc, m) => ({ ...acc, ...m.variables }), {});\n return { query, variables };\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvYnVpbGRlcnMvcXVlcnktYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRSxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLEtBQUssQ0FBNEI7SUFFMUMsWUFBWSxNQUFtQjtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUdELFVBQVUsQ0FBQyxJQUEwQjtRQUNuQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxPQUFPLFNBQVMsZ0JBQWdCLEdBQUcsWUFBWSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQztJQUN6RSxDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUEwQjtRQUM3QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDNUUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RyxPQUFPLFlBQVksZ0JBQWdCLEdBQUcsWUFBWSxNQUFNLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQztJQUM3RSxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQTBCO1FBQ3RDLE9BQU8sa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUE2QjtRQUNqRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQWMsQ0FBQyxDQUFDO1FBQ3pHLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsTUFBTSxLQUFLLEdBQUcsWUFBWSxhQUFhLEtBQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNoSCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBeUIsQ0FBQyxDQUFDO1FBQ3BHLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFibGVDb25maWcsIFRyYW5zYWN0aW9uUXVlcnlQYXJ0IH0gZnJvbSAnLi9wYXJ0cy9fbWV0YS9ncmFwaHFsLXF1ZXJ5LXBhcnQnO1xuaW1wb3J0IHsgSGFzdXJhUXVlcnlQYXJ0c0J1aWxkZXIgfSBmcm9tICcuL3BhcnRzL3BhcnRzLmJ1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgSGFzdXJhUXVlcnlCdWlsZGVyPEUgZXh0ZW5kcyB7aWQ6IHN0cmluZ30+IHtcbiAgcmVhZG9ubHkgcGFydHM6IEhhc3VyYVF1ZXJ5UGFydHNCdWlsZGVyPEU+XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBUYWJsZUNvbmZpZykge1xuICAgIHRoaXMucGFydHMgPSBuZXcgSGFzdXJhUXVlcnlQYXJ0c0J1aWxkZXIoY29uZmlnKTtcbiAgfVxuICBcblxuICBidWlsZFF1ZXJ5KHBhcnQ6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0KTogc3RyaW5nIHtcbiAgICBjb25zdCBvcGVyYXRpb25OYW1lU3RyID0gcGFydC5vcGVyYXRpb25OYW1lID8gYCR7cGFydC5vcGVyYXRpb25OYW1lfSBgIDogJyc7XG4gICAgY29uc3QgdmFyaWFibGVzU3RyID0gcGFydC52YXJpYWJsZURlZmluaXRpb25zPy5sZW5ndGggPyBgKCR7cGFydC52YXJpYWJsZURlZmluaXRpb25zLmpvaW4oJywgJyl9KSBgIDogJyc7XG4gICAgcmV0dXJuIGBxdWVyeSAke29wZXJhdGlvbk5hbWVTdHJ9JHt2YXJpYWJsZXNTdHJ9eyAke3BhcnQucXVlcnlQYXJ0fSB9YDtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZE11dGF0aW9uKHBhcnQ6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0KTogc3RyaW5nIHtcbiAgICBjb25zdCBvcGVyYXRpb25OYW1lU3RyID0gcGFydC5vcGVyYXRpb25OYW1lID8gYCR7cGFydC5vcGVyYXRpb25OYW1lfSBgIDogJyc7XG4gICAgY29uc3QgdmFyaWFibGVzU3RyID0gcGFydC52YXJpYWJsZURlZmluaXRpb25zPy5sZW5ndGggPyBgKCR7cGFydC52YXJpYWJsZURlZmluaXRpb25zLmpvaW4oJywgJyl9KSBgIDogJyc7XG4gICAgcmV0dXJuIGBtdXRhdGlvbiAke29wZXJhdGlvbk5hbWVTdHJ9JHt2YXJpYWJsZXNTdHJ9IHsgJHtwYXJ0LnF1ZXJ5UGFydH0gfWA7XG4gIH1cblxuICBidWlsZE11dGF0aW9uKHBhcnQ6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gSGFzdXJhUXVlcnlCdWlsZGVyLmJ1aWxkTXV0YXRpb24ocGFydCk7XG4gIH1cblxuICBidWlsZFRyYW5zYWN0aW9uUXVlcnkocGFydHM6IFRyYW5zYWN0aW9uUXVlcnlQYXJ0W10pOiB7cXVlcnk6IHN0cmluZywgdmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+fSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uTmFtZSA9IGBUcmFuc2FjdGlvbmA7XG4gICAgY29uc3QgdmFyaWFibGVEZWZpbml0aW9ucyA9IHBhcnRzLnJlZHVjZSgoYWNjLCBtKSA9PiBbLi4uYWNjLCAuLi5tLnZhcmlhYmxlRGVmaW5pdGlvbnNdLCBbXSBhcyBzdHJpbmdbXSk7XG4gICAgY29uc3QgbXV0YXRpb25QYXJ0cyA9IHBhcnRzLm1hcChtID0+IG0ucXVlcnlQYXJ0KTtcbiAgICBjb25zdCBxdWVyeSA9IGBtdXRhdGlvbiAke29wZXJhdGlvbk5hbWV9ICgkeyB2YXJpYWJsZURlZmluaXRpb25zLmpvaW4oJywgJykgfSkgeyAke211dGF0aW9uUGFydHMuam9pbignXFxuJyl9IH1gO1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHBhcnRzLnJlZHVjZSgoYWNjLCBtKSA9PiAoeyAuLi5hY2MsIC4uLm0udmFyaWFibGVzIH0pLCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KTtcbiAgICByZXR1cm4geyBxdWVyeSwgdmFyaWFibGVzIH07XG4gIH1cbn1cbiJdfQ==","import { Injectable, inject } from \"@angular/core\";\nimport { gql } from \"apollo-angular\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport { lastValueFrom, switchMap } from \"rxjs\";\nimport { makeSubscription } from \"./builders/parts/queries\";\nimport { HasuraQueryBuilder } from \"./builders\";\nimport { ApolloClientManagerService } from \"./apollo/client-manager\";\nimport { GRAPHQL_HEADERS } from \"./hasura.di\";\nimport * as i0 from \"@angular/core\";\nexport class HasuraService {\n getHeaders = inject(GRAPHQL_HEADERS);\n apolloClientManager = inject(ApolloClientManagerService);\n config = inject(HASURA_CONFIG);\n getApolloClient() {\n return this.apolloClientManager.getClient(this.config.url, this.getHeaders);\n }\n subscribe({ query, variables, fetchPolicy = 'network-only', context }) {\n return this.getApolloClient().pipe(switchMap((client) => client.subscribe({\n query: makeSubscription(query),\n variables: variables,\n fetchPolicy: fetchPolicy,\n context\n })));\n }\n async mutate(...args) {\n const client = await lastValueFrom(this.getApolloClient());\n return lastValueFrom(client.mutate(...args)).catch((error) => {\n console.error(error.graphQLErrors);\n throw error;\n });\n }\n async mutateByQueryPart(part) {\n const mutation = HasuraQueryBuilder.buildMutation(part);\n return this.mutate({\n mutation: gql `${mutation}`,\n variables: part.variables,\n }).then((res) => {\n return res.data[part?.alias ?? part.operationName];\n });\n }\n async query(...args) {\n const client = await lastValueFrom(this.getApolloClient());\n // fetchPolicyが指定されていない場合はnetwork-onlyをデフォルトに\n const [options] = args;\n const queryOptions = {\n ...options,\n fetchPolicy: options?.fetchPolicy || 'network-only'\n };\n return lastValueFrom(client.query(queryOptions)).catch((error) => {\n console.error('[HasuraService] query error:', error);\n throw error;\n });\n }\n // Observable版のqueryメソッド(HTTP経由)\n watchQuery(options) {\n const { query, variables, fetchPolicy = 'no-cache' } = options;\n return this.getApolloClient().pipe(switchMap((client) => client.watchQuery({\n query,\n variables,\n fetchPolicy\n }).valueChanges));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2hhc3VyYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUF3QixNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUk5QyxNQUFNLE9BQU8sYUFBYTtJQUNMLFVBQVUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDekQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsU0FBUyxDQUdQLEVBQ0EsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEdBQUcsY0FBYyxFQUM1QixPQUFPLEVBTVI7UUFDQyxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQ2hDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBZ0I7WUFDcEQsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUssQ0FBQztZQUM5QixTQUFTLEVBQUUsU0FBUztZQUNwQixXQUFXLEVBQUUsV0FBVztZQUN4QixPQUFPO1NBQ1IsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFVLEdBQUcsSUFBc0M7UUFDN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDM0QsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDM0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkMsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQVUsSUFBMEI7UUFDekQsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBSTtZQUNwQixRQUFRLEVBQUUsR0FBRyxDQUFBLEdBQUcsUUFBUSxFQUFFO1lBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztTQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDMUIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLLENBQVUsR0FBRyxJQUFxQztRQUMzRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUMzRCw2Q0FBNkM7UUFDN0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRztZQUNuQixHQUFHLE9BQU87WUFDVixXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsSUFBSSxjQUFjO1NBQ3BELENBQUM7UUFDRixPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0QsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyRCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBa0MsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFVBQVUsQ0FBc0UsT0FJL0U7UUFDQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxXQUFXLEdBQUcsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FDaEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ3RDLEtBQUs7WUFDTCxTQUFTO1lBQ1QsV0FBVztTQUNMLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDeEIsQ0FBQztJQUNKLENBQUM7dUdBL0VVLGFBQWE7MkdBQWIsYUFBYSxjQURBLE1BQU07OzJGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBcG9sbG9CYXNlLCBncWwgfSBmcm9tIFwiYXBvbGxvLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEhBU1VSQV9DT05GSUcgfSBmcm9tIFwiLi9oYXN1cmEuY29uZmlnXCI7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSwgRmV0Y2hSZXN1bHQsIE9wZXJhdGlvblZhcmlhYmxlcywgQXBvbGxvUXVlcnlSZXN1bHQgfSBmcm9tIFwiQGFwb2xsby9jbGllbnQvY29yZVwiO1xuaW1wb3J0IHsgbGFzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1ha2VTdWJzY3JpcHRpb24gfSBmcm9tIFwiLi9idWlsZGVycy9wYXJ0cy9xdWVyaWVzXCI7XG5pbXBvcnQgeyBIYXN1cmFRdWVyeUJ1aWxkZXIsIFRyYW5zYWN0aW9uUXVlcnlQYXJ0IH0gZnJvbSBcIi4vYnVpbGRlcnNcIjtcbmltcG9ydCB7IEFwb2xsb0NsaWVudE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSBcIi4vYXBvbGxvL2NsaWVudC1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBHUkFQSFFMX0hFQURFUlMgfSBmcm9tIFwiLi9oYXN1cmEuZGlcIjtcblxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEhhc3VyYVNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2V0SGVhZGVycyA9IGluamVjdChHUkFQSFFMX0hFQURFUlMpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXBvbGxvQ2xpZW50TWFuYWdlciA9IGluamVjdChBcG9sbG9DbGllbnRNYW5hZ2VyU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWcgPSBpbmplY3QoSEFTVVJBX0NPTkZJRyk7XG5cbiAgZ2V0QXBvbGxvQ2xpZW50KCk6IE9ic2VydmFibGU8QXBvbGxvQmFzZTxhbnk+PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBvbGxvQ2xpZW50TWFuYWdlci5nZXRDbGllbnQodGhpcy5jb25maWcudXJsLCB0aGlzLmdldEhlYWRlcnMpO1xuICB9XG5cbiAgc3Vic2NyaWJlPFxuICAgIFQgPSBhbnksXG4gICAgVFZhcmlhYmxlcyBleHRlbmRzIE9wZXJhdGlvblZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlc1xuICA+KHtcbiAgICBxdWVyeSxcbiAgICB2YXJpYWJsZXMsXG4gICAgZmV0Y2hQb2xpY3kgPSAnbmV0d29yay1vbmx5JyxcbiAgICBjb250ZXh0XG4gIH06IHtcbiAgICBxdWVyeTogYW55LFxuICAgIHZhcmlhYmxlczogVFZhcmlhYmxlcyxcbiAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5LFxuICAgIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICB9KTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdDxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldEFwb2xsb0NsaWVudCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNsaWVudCkgPT4gY2xpZW50LnN1YnNjcmliZTxULCBUVmFyaWFibGVzPih7XG4gICAgICAgIHF1ZXJ5OiBtYWtlU3Vic2NyaXB0aW9uKHF1ZXJ5KSxcbiAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXMsXG4gICAgICAgIGZldGNoUG9saWN5OiBmZXRjaFBvbGljeSxcbiAgICAgICAgY29udGV4dFxuICAgICAgfSkpLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBtdXRhdGU8VCA9IGFueT4oLi4uYXJnczogUGFyYW1ldGVyczxBcG9sbG9CYXNlWydtdXRhdGUnXT4pIHtcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0QXBvbGxvQ2xpZW50KCkpO1xuICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKGNsaWVudC5tdXRhdGUoLi4uYXJncykpLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvci5ncmFwaFFMRXJyb3JzKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgbXV0YXRlQnlRdWVyeVBhcnQ8VCA9IGFueT4ocGFydDogVHJhbnNhY3Rpb25RdWVyeVBhcnQpOiBQcm9taXNlPFQ+IHtcbiAgICBjb25zdCBtdXRhdGlvbiA9IEhhc3VyYVF1ZXJ5QnVpbGRlci5idWlsZE11dGF0aW9uKHBhcnQpO1xuICAgIHJldHVybiB0aGlzLm11dGF0ZTxUPih7XG4gICAgICBtdXRhdGlvbjogZ3FsYCR7bXV0YXRpb259YCxcbiAgICAgIHZhcmlhYmxlczogcGFydC52YXJpYWJsZXMsXG4gICAgfSBhcyBhbnkpLnRoZW4oKHJlczogYW55KSA9PiB7XG4gICAgICByZXR1cm4gcmVzLmRhdGFbcGFydD8uYWxpYXMgPz8gcGFydC5vcGVyYXRpb25OYW1lXVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcXVlcnk8VCA9IGFueT4oLi4uYXJnczogUGFyYW1ldGVyczxBcG9sbG9CYXNlWydxdWVyeSddPik6IFByb21pc2U8QXBvbGxvUXVlcnlSZXN1bHQ8VD4+IHtcbiAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMuZ2V0QXBvbGxvQ2xpZW50KCkpO1xuICAgIC8vIGZldGNoUG9saWN544GM5oyH5a6a44GV44KM44Gm44GE44Gq44GE5aC05ZCI44GvbmV0d29yay1vbmx544KS44OH44OV44Kp44Or44OI44GrXG4gICAgY29uc3QgW29wdGlvbnNdID0gYXJncztcbiAgICBjb25zdCBxdWVyeU9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZmV0Y2hQb2xpY3k6IG9wdGlvbnM/LmZldGNoUG9saWN5IHx8ICduZXR3b3JrLW9ubHknXG4gICAgfTtcbiAgICByZXR1cm4gbGFzdFZhbHVlRnJvbShjbGllbnQucXVlcnkocXVlcnlPcHRpb25zKSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdbSGFzdXJhU2VydmljZV0gcXVlcnkgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSkgYXMgUHJvbWlzZTxBcG9sbG9RdWVyeVJlc3VsdDxUPj47XG4gIH1cblxuICAvLyBPYnNlcnZhYmxl54mI44GucXVlcnnjg6Hjgr3jg4Pjg4nvvIhIVFRQ57WM55Sx77yJXG4gIHdhdGNoUXVlcnk8VCA9IGFueSwgVFZhcmlhYmxlcyBleHRlbmRzIE9wZXJhdGlvblZhcmlhYmxlcyA9IE9wZXJhdGlvblZhcmlhYmxlcz4ob3B0aW9uczoge1xuICAgIHF1ZXJ5OiBhbnksXG4gICAgdmFyaWFibGVzPzogVFZhcmlhYmxlcyxcbiAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5XG4gIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHsgcXVlcnksIHZhcmlhYmxlcywgZmV0Y2hQb2xpY3kgPSAnbm8tY2FjaGUnIH0gPSBvcHRpb25zO1xuICAgIHJldHVybiB0aGlzLmdldEFwb2xsb0NsaWVudCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNsaWVudCkgPT4gY2xpZW50LndhdGNoUXVlcnkoe1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgdmFyaWFibGVzLFxuICAgICAgICBmZXRjaFBvbGljeVxuICAgICAgfSBhcyBhbnkpLnZhbHVlQ2hhbmdlcylcbiAgICApO1xuICB9XG59XG4iXX0=","import { Injectable, inject } from \"@angular/core\";\nimport { Repository } from \"@nx-ddd/common/domain\";\nimport { gql } from \"@apollo/client/core\";\nimport { map } from \"rxjs\";\nimport { getConverter } from \"./converter\";\nimport { HasuraService } from \"./hasura.service\";\nimport { HasuraQueryBuilder } from \"./builders\";\nimport { getFields, getTableName } from \"./decorators\";\nimport * as i0 from \"@angular/core\";\nexport class _HasuraRepository extends Repository {\n get pkey() {\n return `${this.tableName}_pkey`;\n }\n getQueryBuilder() {\n return new HasuraQueryBuilder({ tableName: this.tableName, pk: this.pkey, columns: this.updateColumns });\n }\n async get(params) {\n const part = this.getQueryBuilder().parts.queries.get.build({ id: params.id });\n return this.hasura.query({\n query: gql `${this.getQueryBuilder().buildQuery(part)}`,\n variables: part.variables,\n fetchPolicy: 'network-only',\n })\n .then((res) => this.converter.fromHasura(res.data[part.operationName]));\n }\n async list() {\n const part = this.getQueryBuilder().parts.queries.get.buildMany();\n return this.hasura.query({\n query: gql `${this.getQueryBuilder().buildQuery(part)}`,\n fetchPolicy: 'network-only'\n }).then((res) => this.converter.fromHasuraMany(res.data[part.operationName]));\n }\n listChanges() {\n const part = this.getQueryBuilder().parts.queries.get.buildMany();\n const query = this.getQueryBuilder().buildQuery(part);\n return this.hasura.subscribe({ query: gql `${query}`, variables: {} }).pipe(map((res) => this.converter.fromHasuraMany(res.data[part.operationName])));\n }\n async create(data) {\n const converted = this.converter.toHasura(data);\n const part = this.getQueryBuilder().parts.mutations.create.build(converted);\n return this.hasura.mutateByQueryPart(part).then(result => {\n return this.converter.fromHasura(result.returning[0]);\n });\n }\n async createMany(data) {\n const items = this.converter.toHasuraMany(data);\n const part = this.getQueryBuilder().parts.mutations.create.buildMany(items);\n return this.hasura.mutateByQueryPart(part).then((result) => {\n return this.converter.fromHasuraMany(result.returning);\n });\n }\n async update(data) {\n const item = this.converter.toHasura(data);\n const part = this.getQueryBuilder().parts.mutations.update.build(item);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n async updateMany(data) {\n const items = this.converter.toHasuraMany(data);\n const part = this.getQueryBuilder().parts.mutations.update.buildMany(items);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows).then(() => { });\n }\n async delete(params) {\n const part = this.getQueryBuilder().parts.mutations.delete_.build(params);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n async deleteMany(params) {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildMany(params);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows);\n }\n async deleteAll() {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildAll();\n console.debug('part:', part);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n async save(data) {\n const item = this.converter.toHasura(data);\n const part = this.getQueryBuilder().parts.mutations.save.build(item);\n return this.hasura.mutateByQueryPart(part).then((res) => res.returning[0]);\n }\n async saveMany(entities) {\n const items = this.converter.toHasuraMany(entities);\n const part = this.getQueryBuilder().parts.mutations.save.buildMany(items);\n return this.hasura.mutateByQueryPart(part).then(() => { });\n }\n}\nexport class HasuraRepository extends _HasuraRepository {\n hasura = inject(HasuraService);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraRepository, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraRepository });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: HasuraRepository, decorators: [{\n type: Injectable\n }] });\nexport function getHasuraRepository(Entity, deps) {\n class Repository extends _HasuraRepository {\n hasura = deps.hasura;\n converter = getConverter(Entity);\n tableName = getTableName(Entity);\n updateColumns = getFields(Entity, { case: 'snake' });\n }\n return new Repository();\n}\nexport function injectHasuraRepository(Entity) {\n return getHasuraRepository(Entity, { hasura: inject(HasuraService) });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2hhc3VyYS9zcmMvbGliL2hhc3VyYS5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsWUFBWSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUV2RCxNQUFNLE9BQWdCLGlCQUEwQyxTQUFRLFVBQWE7SUFNbkYsSUFBSSxJQUFJO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFvQjtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUMsRUFB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MUIsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBMkIsTUFBZTtJQUM5RSxPQUFPLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSwgVHlwZSB9IGZyb20gXCJAbngtZGRkL2NvbW1vbi9kb21haW5cIjtcbmltcG9ydCB7IGdxbCB9IGZyb20gXCJAYXBvbGxvL2NsaWVudC9jb3JlXCI7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZ2V0Q29udmVydGVyLCBIYXN1cmFDb252ZXJ0ZXIgfSBmcm9tIFwiLi9jb252ZXJ0ZXJcIjtcbmltcG9ydCB7IEhhc3VyYVNlcnZpY2UgfSBmcm9tIFwiLi9oYXN1cmEuc2VydmljZVwiO1xuaW1wb3J0IHsgSGFzdXJhUXVlcnlCdWlsZGVyIH0gZnJvbSBcIi4vYnVpbGRlcnNcIjtcbmltcG9ydCB7IGdldEZpZWxkcywgZ2V0VGFibGVOYW1lIH0gZnJvbSBcIi4vZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgX0hhc3VyYVJlcG9zaXRvcnk8RSBleHRlbmRzIHtpZDogc3RyaW5nfT4gZXh0ZW5kcyBSZXBvc2l0b3J5PEU+IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGhhc3VyYTogSGFzdXJhU2VydmljZTtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNvbnZlcnRlcjogSGFzdXJhQ29udmVydGVyPEU+O1xuICByZWFkb25seSBhYnN0cmFjdCB1cGRhdGVDb2x1bW5zOiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgYWJzdHJhY3QgdGFibGVOYW1lOiBzdHJpbmc7XG5cbiAgZ2V0IHBrZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy50YWJsZU5hbWV9X3BrZXlgO1xuICB9XG5cbiAgZ2V0UXVlcnlCdWlsZGVyKCkge1xuICAgIHJldHVybiBuZXcgSGFzdXJhUXVlcnlCdWlsZGVyKHsgdGFibGVOYW1lOiB0aGlzLnRhYmxlTmFtZSwgcGs6IHRoaXMucGtleSwgY29sdW1uczogdGhpcy51cGRhdGVDb2x1bW5zIH0pO1xuICB9XG5cbiAgYXN5bmMgZ2V0KHBhcmFtczoge2lkOiBzdHJpbmd9KSB7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMucXVlcmllcy5nZXQuYnVpbGQoe2lkOiBwYXJhbXMuaWR9KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEucXVlcnkoe1xuICAgICAgcXVlcnk6IGdxbGAke3RoaXMuZ2V0UXVlcnlCdWlsZGVyKCkuYnVpbGRRdWVyeShwYXJ0KX1gLFxuICAgICAgdmFyaWFibGVzOiBwYXJ0LnZhcmlhYmxlcyxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9IGFzIGFueSlcbiAgICAgIC50aGVuKChyZXM6IGFueSkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUhhc3VyYShyZXMuZGF0YVtwYXJ0Lm9wZXJhdGlvbk5hbWVdKSk7XG4gIH1cblxuICBhc3luYyBsaXN0KCk6IFByb21pc2U8RVtdPiB7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMucXVlcmllcy5nZXQuYnVpbGRNYW55KCk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLnF1ZXJ5KHtcbiAgICAgIHF1ZXJ5OiBncWxgJHt0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLmJ1aWxkUXVlcnkocGFydCl9YCxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5J1xuICAgIH0gYXMgYW55KS50aGVuKChyZXM6IGFueSkgPT4gdGhpcy5jb252ZXJ0ZXIuZnJvbUhhc3VyYU1hbnkocmVzLmRhdGFbcGFydC5vcGVyYXRpb25OYW1lXSkpO1xuICB9XG5cbiAgbGlzdENoYW5nZXMoKTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5xdWVyaWVzLmdldC5idWlsZE1hbnkoKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkuYnVpbGRRdWVyeShwYXJ0KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEuc3Vic2NyaWJlKHsgcXVlcnk6IGdxbGAke3F1ZXJ5fWAsIHZhcmlhYmxlczoge30gfSkucGlwZShcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHRoaXMuY29udmVydGVyLmZyb21IYXN1cmFNYW55KHJlcy5kYXRhW3BhcnQub3BlcmF0aW9uTmFtZV0pKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlKGRhdGE6IE9taXQ8RSwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+ICYgUGFydGlhbDxQaWNrPEUsICdpZCc+Pik6IFByb21pc2U8RT4ge1xuICAgIGNvbnN0IGNvbnZlcnRlZCA9IHRoaXMuY29udmVydGVyLnRvSGFzdXJhKGRhdGEgYXMgRSk7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMubXV0YXRpb25zLmNyZWF0ZS5idWlsZChjb252ZXJ0ZWQgYXMgYW55KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEubXV0YXRlQnlRdWVyeVBhcnQocGFydCkudGhlbihyZXN1bHQgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21IYXN1cmEocmVzdWx0LnJldHVybmluZ1swXSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBjcmVhdGVNYW55KGRhdGE6IE9taXQ8RSwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+W10pOiBQcm9taXNlPEVbXT4ge1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5jb252ZXJ0ZXIudG9IYXN1cmFNYW55KGRhdGEgYXMgRVtdKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuY3JlYXRlLmJ1aWxkTWFueShpdGVtcyBhcyBhbnlbXSk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLm11dGF0ZUJ5UXVlcnlQYXJ0KHBhcnQpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29udmVydGVyLmZyb21IYXN1cmFNYW55KHJlc3VsdC5yZXR1cm5pbmcpO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlKGRhdGE6IFBhcnRpYWw8RT4gJiB7aWQ6IHN0cmluZ30pOiBQcm9taXNlPHZvaWQ+e1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmNvbnZlcnRlci50b0hhc3VyYShkYXRhIGFzIEUpO1xuICAgIGNvbnN0IHBhcnQgPSB0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLnBhcnRzLm11dGF0aW9ucy51cGRhdGUuYnVpbGQoaXRlbSBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmhhc3VyYS5tdXRhdGVCeVF1ZXJ5UGFydChwYXJ0KS50aGVuKCgpID0+IHt9KTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZU1hbnkoZGF0YTogUGFydGlhbDxFPltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmNvbnZlcnRlci50b0hhc3VyYU1hbnkoZGF0YSBhcyBFW10pO1xuICAgIGNvbnN0IHBhcnQgPSB0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLnBhcnRzLm11dGF0aW9ucy51cGRhdGUuYnVpbGRNYW55KGl0ZW1zIGFzIGFueVtdKTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEubXV0YXRlQnlRdWVyeVBhcnQocGFydCkudGhlbigocmVzdWx0KSA9PiByZXN1bHQuYWZmZWN0ZWRfcm93cykudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBhc3luYyBkZWxldGUocGFyYW1zOiB7aWQ6IHN0cmluZ30pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuZGVsZXRlXy5idWlsZChwYXJhbXMpO1xuICAgIHJldHVybiB0aGlzLmhhc3VyYS5tdXRhdGVCeVF1ZXJ5UGFydChwYXJ0KS50aGVuKCgpID0+IHt9KTtcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZU1hbnkocGFyYW1zOiB7aWQ6IHN0cmluZ31bXSk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgcGFydCA9IHRoaXMuZ2V0UXVlcnlCdWlsZGVyKCkucGFydHMubXV0YXRpb25zLmRlbGV0ZV8uYnVpbGRNYW55KHBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLm11dGF0ZUJ5UXVlcnlQYXJ0KHBhcnQpLnRoZW4oKHJlc3VsdCkgPT4gcmVzdWx0LmFmZmVjdGVkX3Jvd3MpO1xuICB9XG5cbiAgYXN5bmMgZGVsZXRlQWxsKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHBhcnQgPSB0aGlzLmdldFF1ZXJ5QnVpbGRlcigpLnBhcnRzLm11dGF0aW9ucy5kZWxldGVfLmJ1aWxkQWxsKCk7XG4gICAgY29uc29sZS5kZWJ1ZygncGFydDonLCBwYXJ0KTtcbiAgICByZXR1cm4gdGhpcy5oYXN1cmEubXV0YXRlQnlRdWVyeVBhcnQocGFydCkudGhlbigoKSA9PiB7fSk7XG4gIH1cblxuICBhc3luYyBzYXZlKGRhdGE6IFBhcnRpYWw8RT4pIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5jb252ZXJ0ZXIudG9IYXN1cmEoZGF0YSBhcyBFKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuc2F2ZS5idWlsZChpdGVtIGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuaGFzdXJhLm11dGF0ZUJ5UXVlcnlQYXJ0KHBhcnQpLnRoZW4oKHJlcykgPT4gcmVzLnJldHVybmluZ1swXSk7XG4gIH1cblxuICBhc3luYyBzYXZlTWFueShlbnRpdGllczogRVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmNvbnZlcnRlci50b0hhc3VyYU1hbnkoZW50aXRpZXMgYXMgRVtdKTtcbiAgICBjb25zdCBwYXJ0ID0gdGhpcy5nZXRRdWVyeUJ1aWxkZXIoKS5wYXJ0cy5tdXRhdGlvbnMuc2F2ZS5idWlsZE1hbnkoaXRlbXMgYXMgYW55W10pO1xuICAgIHJldHVybiB0aGlzLmhhc3VyYS5tdXRhdGVCeVF1ZXJ5UGFydChwYXJ0KS50aGVuKCgpID0+IHt9KTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSGFzdXJhUmVwb3NpdG9yeTxFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiBleHRlbmRzIF9IYXN1cmFSZXBvc2l0b3J5PEU+IHtcbiAgcHJvdGVjdGVkIGhhc3VyYSA9IGluamVjdChIYXN1cmFTZXJ2aWNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhhc3VyYVJlcG9zaXRvcnk8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihFbnRpdHk6IFR5cGU8RT4sIGRlcHM6IHtoYXN1cmE6IEhhc3VyYVNlcnZpY2V9KTogX0hhc3VyYVJlcG9zaXRvcnk8RT4ge1xuICBjbGFzcyBSZXBvc2l0b3J5IGV4dGVuZHMgX0hhc3VyYVJlcG9zaXRvcnk8RT4ge1xuICAgIHByb3RlY3RlZCBoYXN1cmEgPSBkZXBzLmhhc3VyYTtcbiAgICBwcm90ZWN0ZWQgY29udmVydGVyID0gZ2V0Q29udmVydGVyPEU+KEVudGl0eSk7XG4gICAgcmVhZG9ubHkgdGFibGVOYW1lID0gZ2V0VGFibGVOYW1lKEVudGl0eSk7XG4gICAgcmVhZG9ubHkgdXBkYXRlQ29sdW1ucyA9IGdldEZpZWxkcyhFbnRpdHksIHsgY2FzZTogJ3NuYWtlJyB9KTtcbiAgfVxuICByZXR1cm4gbmV3IFJlcG9zaXRvcnkoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEhhc3VyYVJlcG9zaXRvcnk8RSBleHRlbmRzIHsgaWQ6IHN0cmluZyB9PihFbnRpdHk6IFR5cGU8RT4pOiBfSGFzdXJhUmVwb3NpdG9yeTxFPiB7XG4gIHJldHVybiBnZXRIYXN1cmFSZXBvc2l0b3J5KEVudGl0eSwgeyBoYXN1cmE6IGluamVjdChIYXN1cmFTZXJ2aWNlKSB9KTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWhhc3VyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvaGFzdXJhL3NyYy9saWIvbngtZGRkLWhhc3VyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["ApolloLinkService","camelCase","typeConverters.toTimestamp","typeConverters.toDate","typeConverters.toNumber","typeConverters.toHasuraLocation","typeConverters.fromHasuraLocation","InMemoryCache","gql"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -12,7 +12,6 @@ export { DeepPartial, TransformToDayjs } from '@nx-ddd/common/domain';
|
|
|
12
12
|
import dayjs from 'dayjs';
|
|
13
13
|
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
|
|
14
14
|
import * as _nx_ddd_hasura from '@nx-ddd/hasura';
|
|
15
|
-
import * as lodash from 'lodash';
|
|
16
15
|
export { IsDayjs } from 'class-validator-extended';
|
|
17
16
|
|
|
18
17
|
interface HasuraConfig {
|
|
@@ -283,8 +282,8 @@ declare class CreateMutationBuilder<E extends {
|
|
|
283
282
|
constructor(config: TableConfig);
|
|
284
283
|
build(data: CreateData<E>, alias?: string): TransactionQueryPart;
|
|
285
284
|
buildMany(data: CreateData<E>[], alias?: string): TransactionQueryPart;
|
|
286
|
-
protected convertToObject(item: CreateData<E>):
|
|
287
|
-
protected convertToObjects(items: CreateData<E>[]):
|
|
285
|
+
protected convertToObject(item: CreateData<E>): Partial<CreateData<E>>;
|
|
286
|
+
protected convertToObjects(items: CreateData<E>[]): Partial<CreateData<E>>[];
|
|
288
287
|
}
|
|
289
288
|
|
|
290
289
|
declare class DeleteMutationBuilder {
|
|
@@ -311,8 +310,8 @@ declare class SaveMutationBuilder<E = any> {
|
|
|
311
310
|
constructor(config: TableConfig);
|
|
312
311
|
build(data: Omit<E, 'createdAt' | 'updatedAt'>, { operationName, constraint, columns, returningColumns, alias, }?: Options): TransactionQueryPart;
|
|
313
312
|
buildMany(entities: E[], { operationName, constraint, columns, returningColumns, alias }?: Options): TransactionQueryPart;
|
|
314
|
-
protected buildObject(item: Omit<E, 'createdAt' | 'updatedAt'>):
|
|
315
|
-
protected buildObjects(items: Omit<E, 'createdAt' | 'updatedAt'>[]):
|
|
313
|
+
protected buildObject(item: Omit<E, 'createdAt' | 'updatedAt'>): Partial<Omit<E, 'createdAt' | 'updatedAt'>>;
|
|
314
|
+
protected buildObjects(items: Omit<E, 'createdAt' | 'updatedAt'>[]): Partial<Omit<E, 'createdAt' | 'updatedAt'>>[];
|
|
316
315
|
protected buildOnConflict(data: Omit<E, 'createdAt' | 'updatedAt'>, constraint: string, columns: string[]): {
|
|
317
316
|
constraint: string;
|
|
318
317
|
update_columns: string[];
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/multi/multi.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/links.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/link.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/client-manager/client-manager.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/types.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/from-hasura.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/to-hasura.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/type-converters.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/case-converters.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/converter.ts","../../../../packages/@nx-ddd/hasura/src/lib/decorators/decorators.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/_meta/graphql-query-part.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/create.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/delete.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/save.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/update.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/mutations.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/queries/get.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/queries/queries.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/parts.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/query-builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.repository.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/multi/multi.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/links.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/link/link.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/apollo/client-manager/client-manager.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/types.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/from-hasura.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/to-hasura.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/type-converters.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/case-converters.ts","../../../../packages/@nx-ddd/hasura/src/lib/converter/converter.ts","../../../../packages/@nx-ddd/hasura/src/lib/decorators/decorators.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/_meta/graphql-query-part.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/create.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/delete.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/save.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/update.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/mutations/mutations.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/queries/get.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/queries/queries.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/parts/parts.builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/builders/query-builder.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.service.ts","../../../../packages/@nx-ddd/hasura/src/lib/hasura.repository.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAQC;AAED;AAEA;;ACHA;AACA;;AAGE;AAEA;;;;AAkBD;AAGK;;AAA4C;AAClD;;ACnCA;AACM;AAEN;AAMA;;ACOA;;AAGE;;;;;;;AAA4C;AAE5C;;;;;;;AAwCD;;ACxDD;;AAGE;AACA;AAEgB;AAiBhB;;;AAoBD;;AClDD;;AAEG;AACG;AACJ;;AAEA;;AAED;;ACiCD;;AAEG;AACH;;AC7BA;;AAEG;AACH;;AAEC;AAED;;AAEG;AACH;;ACrBA;;AAEG;AACH;AAUA;;AAEG;AACH;AAcA;;AAEG;AACH;AAOA;;AAEG;AACH;;;;;;;;;;;;AAUC;AAED;;AAEG;AACH;;AAEE;;AAEE;;;;AAIF;AACD;;;AAMA;;AC3ED;;AAEG;AACH;AAOA;;AAK4F;AAG5F;;AAEG;AACH;AAcA;;AAEG;AACH;AAKA;;AAK4F;AAU5F;;AAEG;AACH;;AClDA;;AAEG;AACH;AAiBA;AACA;AAEA;;;AAGG;AACH;;;;;;;;AAQC;;ACnCD;AAQA;AAiBA;;AAEE;;AAiCF;AAMA;AAhBuB;;;;;;;;;;;;;;;;;;;;;AAwBJ;;;;;;;;;;;;;;;;;;;;;;;;AC7EnB;AAEA;AAKA;AAQA;;AAEG;AACH;AAEA;;;;;;;AAMC;AAED;AAUA;;AC3CA;;AAIE;;;AAQD;;;;;ACdC;;;AAID;;;;;AAOA;;ACXD;AAEA;;AAAyD;AAC3C;AAAmB;;AAW/B;AASA;AAMA;AAGD;;ACjCD;AACc;AAAmB;;;AAEnB;;;AAOoB;AAQhC;AAQD;;ACzBD;;;AAGE;AACA;;AAED;AAED;AACc;AAAmB;;;;;;;;;AAuDhC;;AChED;;AAAyD;AAC3C;AAAmB;AAE/B;;;AASA;;AAkBA;AAGD;;AC9BD;;AAA2D;AACzD;AACA;AACA;AACA;AAEY;AAMb;;AChBD;;AACyB;;;AAEG;AAO1B;AAKD;;ACAD;;AAAoD;AAClD;AAEa;;;;;AAOd;;ACvBD;;AAA6D;AAC3D;AACA;AAEY;AAIb;;ACTD;;AAAsD;AACpD;AAEY;AAKZ;AAMA;AAMA;AAIA;;AAAsE;AAA+B;AAQtG;;ACxBD;AAEE;AACA;AACA;AAEA;;;;;;AAiBC;AAWK;AAQA;;AAyBN;;;;;;;AAcD;;ACnFD;;AAA8D;AAC5D;;AAEA;AACA;;;;;;;AAU8B;AAUxB;AAQN;;AAgBM;AAQA;;;AAMA;;;;;;AAW+B;AAK/B;AAMA;;AAWP;AAED;;AAC6D;;;;AAE5D;AAED;;;;AAA4G;AAU5G;;;;;"}
|