@nx-ddd/hasura 19.51.0 → 19.80.0

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.
@@ -30,17 +30,19 @@ class ApolloLinkService {
30
30
  httpLink = inject(HttpLink);
31
31
  WebSocketImpl = WEBSOCKET.inject();
32
32
  createGraphQLWsClient(baseUrl, getHeaders) {
33
+ const wsUrl = baseUrl.replace('http', 'ws');
33
34
  return createClient({
34
- url: baseUrl.replace('http', 'ws'),
35
+ url: wsUrl,
35
36
  webSocketImpl: this.WebSocketImpl,
36
37
  connectionParams: async () => {
37
38
  const headers = await resolve(getHeaders);
38
39
  return { headers };
39
40
  },
40
- lazy: true, // 必要時のみ接続を開始
41
- shouldRetry: () => true, // 再接続を有効化
42
- retryAttempts: 5, // 再接続試行回数を制限
43
- keepAlive: 30000, // 30秒ごとにキープアライブ
41
+ lazy: true,
42
+ lazyCloseTimeout: 30_000,
43
+ shouldRetry: () => true,
44
+ retryAttempts: 5,
45
+ keepAlive: 30000,
44
46
  });
45
47
  }
46
48
  createHttpLink(baseUrl, getHeaders) {
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura-apollo-link.mjs","sources":["../../../../../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/link/nx-ddd-hasura-apollo-link.ts"],"sourcesContent":["import { distinctUntilChanged, filter, from, isObservable, lastValueFrom, Observable, of, take, tap } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\nexport type GetHeaders = () => PromiseOrObservable<Record<string, string>>;\n\nexport function wrap<T>(obsOrPromiseOrValue: Promise<T> | Observable<T> | T): Observable<T> {\n if (isObservable(obsOrPromiseOrValue)) return obsOrPromiseOrValue;\n if (obsOrPromiseOrValue instanceof Promise) return from(obsOrPromiseOrValue);\n return of(obsOrPromiseOrValue);\n}\n\nexport function resolve(getHeaders: GetHeaders): Promise<Record<string, string>> {\n const headers$ = wrap(getHeaders());\n return lastValueFrom(headers$.pipe(\n filter((headers) => !!headers),\n take(1),\n distinctUntilChanged(),\n ))\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpLink } from 'apollo-angular/http';\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloLink, DocumentNode, split } from '@apollo/client/core';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport { Client, createClient } from 'graphql-ws';\nimport { GetHeaders, resolve } from './links';\nimport { WEBSOCKET } from '@nx-ddd/common/infrastructure/externals/websocket/token';\n\nfunction isSubscription(query: DocumentNode) {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n}\n\n@Injectable({providedIn: 'root'})\nexport class ApolloLinkService {\n readonly httpLink = inject(HttpLink);\n readonly WebSocketImpl = WEBSOCKET.inject();\n\n private createGraphQLWsClient(baseUrl: string, getHeaders: GetHeaders): Client {\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\n createHttpLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers }\n }),\n this.httpLink.create({ uri: baseUrl, }) as unknown as ApolloLink,\n ]);\n }\n\n createWebSocketLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return new GraphQLWsLink(this.createGraphQLWsClient(baseUrl, getHeaders));\n }\n\n createAutoSplitLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return split(\n ({ query }) => isSubscription(query),\n this.createWebSocketLink(baseUrl, getHeaders),\n this.createHttpLink(baseUrl, getHeaders)\n );\n }\n\n createLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return this.createAutoSplitLink(baseUrl, getHeaders);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nx-ddd-hasura-apollo-link.mjs","sources":["../../../../../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/link/nx-ddd-hasura-apollo-link.ts"],"sourcesContent":["import { distinctUntilChanged, filter, from, isObservable, lastValueFrom, Observable, of, take, tap } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\nexport type GetHeaders = () => PromiseOrObservable<Record<string, string>>;\n\nexport function wrap<T>(obsOrPromiseOrValue: Promise<T> | Observable<T> | T): Observable<T> {\n if (isObservable(obsOrPromiseOrValue)) return obsOrPromiseOrValue;\n if (obsOrPromiseOrValue instanceof Promise) return from(obsOrPromiseOrValue);\n return of(obsOrPromiseOrValue);\n}\n\nexport function resolve(getHeaders: GetHeaders): Promise<Record<string, string>> {\n const headers$ = wrap(getHeaders());\n return lastValueFrom(headers$.pipe(\n filter((headers) => !!headers),\n take(1),\n distinctUntilChanged(),\n ))\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpLink } from 'apollo-angular/http';\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloLink, DocumentNode, split } from '@apollo/client/core';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport { Client, createClient } from 'graphql-ws';\nimport { GetHeaders, resolve } from './links';\nimport { WEBSOCKET } from '@nx-ddd/common/infrastructure/externals/websocket/token';\n\nfunction isSubscription(query: DocumentNode) {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n}\n\n@Injectable({providedIn: 'root'})\nexport class ApolloLinkService {\n readonly httpLink = inject(HttpLink);\n readonly WebSocketImpl = WEBSOCKET.inject();\n\n private createGraphQLWsClient(baseUrl: string, getHeaders: GetHeaders): Client {\n const wsUrl = baseUrl.replace('http', 'ws');\n return createClient({\n url: wsUrl,\n webSocketImpl: this.WebSocketImpl,\n connectionParams: async () => {\n const headers = await resolve(getHeaders);\n return { headers };\n },\n lazy: true,\n lazyCloseTimeout: 30_000,\n shouldRetry: () => true,\n retryAttempts: 5,\n keepAlive: 30000,\n });\n }\n\n createHttpLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers }\n }),\n this.httpLink.create({ uri: baseUrl, }) as unknown as ApolloLink,\n ]);\n }\n\n createWebSocketLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return new GraphQLWsLink(this.createGraphQLWsClient(baseUrl, getHeaders));\n }\n\n createAutoSplitLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return split(\n ({ query }) => isSubscription(query),\n this.createWebSocketLink(baseUrl, getHeaders),\n this.createHttpLink(baseUrl, getHeaders)\n );\n }\n\n createLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return this.createAutoSplitLink(baseUrl, getHeaders);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
1
  import { provideWebSocket } from '@nx-ddd/common/infrastructure/externals/websocket/impl/browser';
2
2
  import { provideCrypto } from '@nx-ddd/common/infrastructure/externals/crypto/impl/browser';
3
3
 
4
- /**
5
- * Provides all necessary dependencies for Hasura in browser environments
6
- */
7
4
  function provideHasuraBrowser() {
8
5
  return [
9
6
  ...provideWebSocket(),
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura-browser.mjs","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/browser/providers.ts","../../../../../packages/@nx-ddd/hasura/src/lib/browser/nx-ddd-hasura-browser.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { provideWebSocket } from '@nx-ddd/common/infrastructure/externals/websocket/impl/browser';\nimport { provideCrypto } from '@nx-ddd/common/infrastructure/externals/crypto/impl/browser';\n\n/**\n * Provides all necessary dependencies for Hasura in browser environments\n */\nexport function provideHasuraBrowser(): Provider[] {\n return [\n ...provideWebSocket(),\n provideCrypto(),\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAIA;;AAEG;SACa,oBAAoB,GAAA;IAClC,OAAO;AACL,QAAA,GAAG,gBAAgB,EAAE;AACrB,QAAA,aAAa,EAAE;KAChB;AACH;;ACZA;;AAEG;;;;"}
1
+ {"version":3,"file":"nx-ddd-hasura-browser.mjs","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/browser/providers.ts","../../../../../packages/@nx-ddd/hasura/src/lib/browser/nx-ddd-hasura-browser.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { provideWebSocket } from '@nx-ddd/common/infrastructure/externals/websocket/impl/browser';\nimport { provideCrypto } from '@nx-ddd/common/infrastructure/externals/crypto/impl/browser';\n\n\nexport function provideHasuraBrowser(): Provider[] {\n return [\n ...provideWebSocket(),\n provideCrypto(),\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAKgB,oBAAoB,GAAA;IAClC,OAAO;AACL,QAAA,GAAG,gBAAgB,EAAE;AACrB,QAAA,aAAa,EAAE;KAChB;AACH;;ACVA;;AAEG;;;;"}
@@ -1,9 +1,6 @@
1
1
  import { provideCrypto } from '@nx-ddd/common/infrastructure/externals/crypto/impl/server';
2
2
  import { provideWebSocket } from '@nx-ddd/common/infrastructure/externals/websocket/impl/server';
3
3
 
4
- /**
5
- * Provides all necessary dependencies for Hasura in Node.js/server environments
6
- */
7
4
  function provideHasuraServer() {
8
5
  return [
9
6
  ...provideWebSocket(),
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura-server.mjs","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/server/providers.ts","../../../../../packages/@nx-ddd/hasura/src/lib/server/nx-ddd-hasura-server.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { provideCrypto } from '@nx-ddd/common/infrastructure/externals/crypto/impl/server';\nimport { provideWebSocket } from '@nx-ddd/common/infrastructure/externals/websocket/impl/server';\n\n/**\n * Provides all necessary dependencies for Hasura in Node.js/server environments\n */\nexport function provideHasuraServer(): Provider[] {\n return [\n ...provideWebSocket(),\n provideCrypto(),\n ];\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAIA;;AAEG;SACa,mBAAmB,GAAA;IACjC,OAAO;AACL,QAAA,GAAG,gBAAgB,EAAE;AACrB,QAAA,aAAa,EAAE;KAChB;AACH;;ACZA;;AAEG;;;;"}
1
+ {"version":3,"file":"nx-ddd-hasura-server.mjs","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/server/providers.ts","../../../../../packages/@nx-ddd/hasura/src/lib/server/nx-ddd-hasura-server.ts"],"sourcesContent":["import { Provider } from '@angular/core';\nimport { provideCrypto } from '@nx-ddd/common/infrastructure/externals/crypto/impl/server';\nimport { provideWebSocket } from '@nx-ddd/common/infrastructure/externals/websocket/impl/server';\n\n\nexport function provideHasuraServer(): Provider[] {\n return [\n ...provideWebSocket(),\n provideCrypto(),\n ];\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;SAKgB,mBAAmB,GAAA;IACjC,OAAO;AACL,QAAA,GAAG,gBAAgB,EAAE;AACrB,QAAA,aAAa,EAAE;KAChB;AACH;;ACVA;;AAEG;;;;"}
@@ -22,7 +22,6 @@ import { Repository } from '@nx-ddd/common/domain';
22
22
  export { TransformToDayjs } from '@nx-ddd/common/domain';
23
23
  export { IsDayjs } from 'class-validator-extended';
24
24
 
25
- /** @deprecated use ApolloClientManagerService instead */
26
25
  class ApolloMultiService {
27
26
  apollo = inject(Apollo);
28
27
  linkService = inject(ApolloLinkService$1);
@@ -73,17 +72,19 @@ class ApolloLinkService {
73
72
  httpLink = inject(HttpLink);
74
73
  WebSocketImpl = WEBSOCKET.inject();
75
74
  createGraphQLWsClient(baseUrl, getHeaders) {
75
+ const wsUrl = baseUrl.replace('http', 'ws');
76
76
  return createClient({
77
- url: baseUrl.replace('http', 'ws'),
77
+ url: wsUrl,
78
78
  webSocketImpl: this.WebSocketImpl,
79
79
  connectionParams: async () => {
80
80
  const headers = await resolve(getHeaders);
81
81
  return { headers };
82
82
  },
83
- lazy: true, // 必要時のみ接続を開始
84
- shouldRetry: () => true, // 再接続を有効化
85
- retryAttempts: 5, // 再接続試行回数を制限
86
- keepAlive: 30000, // 30秒ごとにキープアライブ
83
+ lazy: true,
84
+ lazyCloseTimeout: 30_000,
85
+ shouldRetry: () => true,
86
+ retryAttempts: 5,
87
+ keepAlive: 30000,
87
88
  });
88
89
  }
89
90
  createHttpLink(baseUrl, getHeaders) {
@@ -118,7 +119,6 @@ class ApolloClientManagerService {
118
119
  crypto = CRYPTO.inject() ?? globalThis.crypto;
119
120
  async buildClientName(endpoint, headers) {
120
121
  const data = new TextEncoder().encode(JSON.stringify(headers));
121
- // HTTP環境ではcrypto.subtleが使えないため、フォールバックを使用
122
122
  if (!this.crypto?.subtle) {
123
123
  const str = JSON.stringify(headers);
124
124
  let hash = 0;
@@ -155,9 +155,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
155
155
  args: [{ providedIn: 'root' }]
156
156
  }] });
157
157
 
158
- const { createDecorator,
159
- // createClassDecorator,
160
- addAnnotation, getAnnotations, } = makeDecoratorFactories((type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }), '[@nx-ddd/hasura] annotations');
158
+ const { createDecorator, addAnnotation, getAnnotations, } = makeDecoratorFactories((type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }), '[@nx-ddd/hasura] annotations');
161
159
  function getFieldAnnotationMap(T, prefix = '') {
162
160
  const annotations = Hasura.getAnnotations(T);
163
161
  return (annotations ?? []).reduce((acc, annotation) => {
@@ -232,9 +230,6 @@ const Hasura = {
232
230
  getAnnotations,
233
231
  };
234
232
 
235
- /**
236
- * Converts a Date or dayjs object to Hasura timestamp format
237
- */
238
233
  function toTimestamp(date) {
239
234
  if (dayjs.isDayjs(date)) {
240
235
  return date.toISOString();
@@ -246,9 +241,6 @@ function toTimestamp(date) {
246
241
  return null;
247
242
  }
248
243
  }
249
- /**
250
- * Converts a Date, dayjs, or string to Hasura date format
251
- */
252
244
  function toDate(date) {
253
245
  if (typeof date === 'undefined') {
254
246
  return undefined;
@@ -266,9 +258,6 @@ function toDate(date) {
266
258
  return null;
267
259
  }
268
260
  }
269
- /**
270
- * Converts a value to a number, handling various input types
271
- */
272
261
  function toNumber(value) {
273
262
  if (typeof value === 'undefined')
274
263
  return undefined;
@@ -278,9 +267,6 @@ function toNumber(value) {
278
267
  return null;
279
268
  return isNaN(Number(value)) ? null : Number(value);
280
269
  }
281
- /**
282
- * Converts a lat/lng position to Hasura GeoJSON Point format
283
- */
284
270
  function toHasuraLocation(position) {
285
271
  if (!(position?.lat && position?.lng))
286
272
  return null;
@@ -293,9 +279,6 @@ function toHasuraLocation(position) {
293
279
  coordinates: [position.lng, position.lat]
294
280
  };
295
281
  }
296
- /**
297
- * Converts a Hasura GeoJSON Point to a lat/lng object
298
- */
299
282
  function fromHasuraLocation(location) {
300
283
  if (!location)
301
284
  return null;
@@ -305,9 +288,6 @@ function fromHasuraLocation(location) {
305
288
  };
306
289
  }
307
290
 
308
- /**
309
- * Extracts nested map fields recursively from a flattened Hasura object
310
- */
311
291
  function extractNestedMap(mapKey, childType, object) {
312
292
  const childFieldMap = getFieldAnnotationMap(childType);
313
293
  const childFields = {};
@@ -328,12 +308,8 @@ function extractNestedMap(mapKey, childType, object) {
328
308
  });
329
309
  return childFields;
330
310
  }
331
- /**
332
- * Converts a Hasura object to an entity instance
333
- */
334
311
  function fromHasura(_object, type) {
335
312
  const fieldMap = getFieldAnnotationMap(type);
336
- // First extract any flattened map fields (e.g., profile_bio)
337
313
  const nestedObjects = {};
338
314
  Object.entries(fieldMap).forEach(([key, annotation]) => {
339
315
  if (annotation.type === 'map') {
@@ -344,9 +320,7 @@ function fromHasura(_object, type) {
344
320
  }
345
321
  }
346
322
  });
347
- // Now process all fields normally
348
323
  const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {
349
- // For map types, use our previously extracted nested objects
350
324
  if (annotation.type === 'map') {
351
325
  const nestedObj = nestedObjects[annotation.fieldName];
352
326
  if (nestedObj) {
@@ -381,9 +355,6 @@ function fromHasura(_object, type) {
381
355
  return plainToInstanceWithValid(type, obj);
382
356
  }
383
357
 
384
- /**
385
- * Recursively converts object keys from camelCase to snake_case
386
- */
387
358
  function deepCamelToSnakeCase(obj) {
388
359
  if (Array.isArray(obj))
389
360
  return obj.map(deepCamelToSnakeCase);
@@ -399,15 +370,9 @@ function deepCamelToSnakeCase(obj) {
399
370
  }
400
371
  return obj;
401
372
  }
402
- /**
403
- * Converts snake_case string to camelCase
404
- */
405
373
  function camelCase(str) {
406
374
  return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
407
375
  }
408
- /**
409
- * Recursively converts object keys from snake_case to camelCase
410
- */
411
376
  function deepSnakeToCamelCase(obj) {
412
377
  if (Array.isArray(obj))
413
378
  return obj.map(deepSnakeToCamelCase);
@@ -425,9 +390,6 @@ function deepSnakeToCamelCase(obj) {
425
390
  return obj;
426
391
  }
427
392
 
428
- /**
429
- * Converts an entity to Hasura format
430
- */
431
393
  function toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {
432
394
  const fieldMap = getFieldAnnotationMap(type);
433
395
  const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {
@@ -464,9 +426,6 @@ function toHasura(object, type, { extraFunc = deepCamelToSnakeCase } = {}) {
464
426
  return extraFunc(obj);
465
427
  }
466
428
 
467
- /**
468
- * Creates a HasuraConverter for the given entity type
469
- */
470
429
  function getConverter(type) {
471
430
  return {
472
431
  toHasura(entity) {
@@ -483,12 +442,7 @@ function getConverter(type) {
483
442
  },
484
443
  };
485
444
  }
486
- /** @deprecated use `getConverter` instead */
487
445
  const makeConverter = getConverter;
488
- /**
489
- * @deprecated Use individual functions instead
490
- * HasuraUtils is kept for backward compatibility
491
- */
492
446
  class HasuraUtils {
493
447
  static toTimestamp = toTimestamp;
494
448
  static toDate = toDate;
@@ -533,11 +487,7 @@ function provideHasuraGetHeaders(useFactory) {
533
487
  { provide: GRAPHQL_HEADERS, useFactory },
534
488
  ];
535
489
  }
536
- /**
537
- * @deprecated use provideHasuraGetHeaders instead
538
- */
539
490
  const provideGraphqlHeaders = provideHasuraGetHeaders;
540
- /** @deprecated */
541
491
  function provideApolloOptions() {
542
492
  return {
543
493
  provide: APOLLO_OPTIONS,
@@ -829,7 +779,6 @@ class HasuraService {
829
779
  }
830
780
  async query(...args) {
831
781
  const client = await lastValueFrom(this.getApolloClient());
832
- // fetchPolicyが指定されていない場合はnetwork-onlyをデフォルトに
833
782
  const [options] = args;
834
783
  const queryOptions = {
835
784
  ...options,
@@ -840,7 +789,6 @@ class HasuraService {
840
789
  throw error;
841
790
  });
842
791
  }
843
- // Observable版のqueryメソッド(HTTP経由)
844
792
  watchQuery(options) {
845
793
  const { query, variables, fetchPolicy = 'no-cache' } = options;
846
794
  return this.getApolloClient().pipe(switchMap((client) => client.watchQuery({
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura.mjs","sources":["../../../../../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/decorators/decorators.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/type-converters.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/from-hasura.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/case-converters.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/to-hasura.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/converter.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.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/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/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","../../../../../packages/@nx-ddd/hasura/src/lib/nx-ddd-hasura.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { ApolloClient } from '@apollo/client/core';\nimport { makeDI } from '@nx-ddd/core';\nimport { ApolloLinkService, GetHeaders } from '@nx-ddd/hasura/apollo/link';\nimport { Apollo, ApolloBase } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { HasuraConfig } from '../../hasura.config';\n\n/** @deprecated use ApolloClientManagerService instead */\n@Injectable({providedIn: 'root'})\nexport class ApolloMultiService {\n readonly apollo = inject(Apollo);\n protected readonly linkService = inject(ApolloLinkService);\n\n protected createClient(name: string, baseUrl: string, getHeaders: 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\n getClient(endpoint: string, getHeaders: GetHeaders): ApolloBase {\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}\n\n\nexport type GetApolloClient<E extends {id: string}> = (config: HasuraConfig) => ApolloClient | Promise<ApolloClient> | Observable<ApolloClient>;\nexport const GET_APOLLO_CLIENT = makeDI<GetApolloClient<any>>('GET_APOLLO_CLIENT');","import { distinctUntilChanged, filter, from, isObservable, lastValueFrom, Observable, of, take, tap } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\nexport type GetHeaders = () => PromiseOrObservable<Record<string, string>>;\n\nexport function wrap<T>(obsOrPromiseOrValue: Promise<T> | Observable<T> | T): Observable<T> {\n if (isObservable(obsOrPromiseOrValue)) return obsOrPromiseOrValue;\n if (obsOrPromiseOrValue instanceof Promise) return from(obsOrPromiseOrValue);\n return of(obsOrPromiseOrValue);\n}\n\nexport function resolve(getHeaders: GetHeaders): Promise<Record<string, string>> {\n const headers$ = wrap(getHeaders());\n return lastValueFrom(headers$.pipe(\n filter((headers) => !!headers),\n take(1),\n distinctUntilChanged(),\n ))\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpLink } from 'apollo-angular/http';\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloLink, DocumentNode, split } from '@apollo/client/core';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport { Client, createClient } from 'graphql-ws';\nimport { GetHeaders, resolve } from './links';\nimport { WEBSOCKET } from '@nx-ddd/common/infrastructure/externals/websocket/token';\n\nfunction isSubscription(query: DocumentNode) {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n}\n\n@Injectable({providedIn: 'root'})\nexport class ApolloLinkService {\n readonly httpLink = inject(HttpLink);\n readonly WebSocketImpl = WEBSOCKET.inject();\n\n private createGraphQLWsClient(baseUrl: string, getHeaders: GetHeaders): Client {\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\n createHttpLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers }\n }),\n this.httpLink.create({ uri: baseUrl, }) as unknown as ApolloLink,\n ]);\n }\n\n createWebSocketLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return new GraphQLWsLink(this.createGraphQLWsClient(baseUrl, getHeaders));\n }\n\n createAutoSplitLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return split(\n ({ query }) => isSubscription(query),\n this.createWebSocketLink(baseUrl, getHeaders),\n this.createHttpLink(baseUrl, getHeaders)\n );\n }\n\n createLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return this.createAutoSplitLink(baseUrl, getHeaders);\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { Apollo, ApolloBase } from \"apollo-angular\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { ApolloLinkService, GetHeaders, wrap } from \"../link\";\nimport { Observable, switchMap, take } from \"rxjs\";\nimport { CRYPTO } from \"@nx-ddd/common/infrastructure/externals/crypto/token\";\n\n@Injectable({providedIn: 'root'})\nexport class ApolloClientManagerService {\n readonly apollo = inject(Apollo);\n protected readonly linkService = inject(ApolloLinkService);\n protected readonly crypto = CRYPTO.inject() ?? globalThis.crypto;\n\n protected async buildClientName(endpoint: string, headers: Record<string, string>): Promise<string> {\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\n getClient(endpoint: string, getHeaders: GetHeaders): Observable<ApolloBase<any>> {\n return wrap(getHeaders()).pipe(\n take(1),\n switchMap(async (headers) => {\n const name = await this.buildClientName(endpoint, headers);\n const client = this.apollo.use(name);\n\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\n return client;\n }),\n );\n }\n}\n","import { makeDecoratorFactories } from \"@nx-ddd/core\";\nimport { camelCase, snakeCase } from 'lodash-es';\n\nconst {\n createDecorator,\n // createClassDecorator,\n addAnnotation,\n getAnnotations,\n} = makeDecoratorFactories(\n (type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }),\n '[@nx-ddd/hasura] annotations'\n);\n\nexport function getFieldAnnotationMap<Annotation>(T: any, prefix = ''): Record<string, Annotation> {\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}\n\nexport function getFlattenFieldAnnotations<Annotation>(T: any, prefix = ''): Record<string, Annotation> {\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}\n\nexport function getFields(T: any, options: {\n prefix?: string;\n case?: 'snake' | 'camel';\n} = {\n prefix: '',\n case: 'snake'\n}): string[] {\n const annotations = Hasura.getAnnotations(T).filter((annotation: any) => 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}\n\nfunction createClassDecorator(type: string) {\n return (nameOrProps: { name: string } | string) => {\n const props = typeof nameOrProps === 'string' ? { name: nameOrProps } : nameOrProps;\n return (target: any) => {\n const name = props?.name || target.name;\n const annotation = { type, name };\n addAnnotation(target, annotation as any);\n };\n };\n}\n\nexport function getTableName(target: any): string {\n const annotations = getAnnotations(target);\n const annotation = annotations.find((annotation: any) => annotation.type === 'table');\n return (annotation as any).name;\n}\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: () => any) => createDecorator('map', {childType})(),\n JSON: createDecorator('json'),\n Location: createDecorator('location'),\n addAnnotation,\n createDecorator,\n getAnnotations,\n};\n","import dayjs from 'dayjs';\nimport { format } from 'date-fns';\nimport { formatInTimeZone } from 'date-fns-tz';\n\n/**\n * Converts a Date or dayjs object to Hasura timestamp format\n */\nexport function toTimestamp(date: dayjs.Dayjs | Date | null): string | null {\n if (dayjs.isDayjs(date)) {\n return date.toISOString();\n } else if (date instanceof Date) {\n return format(date, 'yyyy-MM-dd HH:mm:ss');\n } else {\n return null;\n }\n}\n\n/**\n * Converts a Date, dayjs, or string to Hasura date format\n */\nexport function toDate(date: dayjs.Dayjs | Date | string | null | undefined): string | null | undefined {\n if (typeof date === 'undefined') {\n return undefined;\n } else if (dayjs.isDayjs(date)) {\n return date.format('YYYY-MM-DD');\n } else if (date instanceof Date) {\n return formatInTimeZone(date, Intl.DateTimeFormat().resolvedOptions().timeZone, 'yyyy-MM-dd');\n } else if (typeof date === 'string') {\n return date;\n } else {\n return null;\n }\n}\n\n/**\n * Converts a value to a number, handling various input types\n */\nexport function toNumber(value: any): number | null | undefined {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return null;\n if (value === '' || (typeof value === 'string' && value.trim() === '')) return null;\n return isNaN(Number(value)) ? null : Number(value);\n}\n\n/**\n * Converts a lat/lng position to Hasura GeoJSON Point format\n */\nexport function toHasuraLocation(position: {lat: number, lng: number} | null | undefined) {\n if (!(position?.lat && position?.lng)) 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/**\n * Converts a Hasura GeoJSON Point to a lat/lng object\n */\nexport function fromHasuraLocation(location: {\n type: 'Point',\n crs: {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::4326'\n }\n },\n coordinates: [number, number]\n}) {\n if (!location) return null;\n return {\n lat: location.coordinates?.[1],\n lng: location.coordinates?.[0],\n };\n}\n","import { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { Type } from '@nx-ddd/common/domain';\nimport { get, snakeCase } from 'lodash-es';\nimport { parse } from 'date-fns';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { fromHasuraLocation } from './type-converters';\n\n/**\n * Field annotation type for Hasura decorators\n */\ninterface FieldAnnotation {\n type: 'text' | 'timestamp' | 'date' | 'numeric' | 'integer' | 'json' | 'map' | 'location';\n fieldName: string;\n childType?: () => any;\n}\n\n/**\n * Extracts nested map fields recursively from a flattened Hasura object\n */\nfunction extractNestedMap(mapKey: string, childType: any, object: any): any {\n const childFieldMap = getFieldAnnotationMap<FieldAnnotation>(childType);\n const childFields: Record<string, any> = {};\n\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 } 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\n return childFields;\n}\n\n/**\n * Converts a Hasura object to an entity instance\n */\nexport function fromHasura<T>(_object: any, type: Type<T>): T {\n const fieldMap = getFieldAnnotationMap<FieldAnnotation>(type);\n\n // First extract any flattened map fields (e.g., profile_bio)\n const nestedObjects: Record<string, Record<string, any>> = {};\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\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\n const value = get(_object, snakeCase(key));\n if (typeof value === 'undefined') return acc;\n\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\n return plainToInstanceWithValid(type as any, obj) as T;\n}\n","import { snakeCase } from 'lodash-es';\n\n/**\n * Type definitions for camelCase to snake_case conversion\n */\ntype CamelToSnakeCase<S extends string> =\n S extends `${infer T}${infer U}`\n ? U extends Uncapitalize<U>\n ? `${Lowercase<T>}${CamelToSnakeCase<U>}`\n : `${Lowercase<T>}_${CamelToSnakeCase<U>}`\n : S;\n\ntype DeepCamelToSnake<T> = T extends Date\n ? T\n : T extends Array<infer U>\n ? DeepCamelToSnake<U>[]\n : T extends object\n ? { [K in keyof T as K extends string ? CamelToSnakeCase<K> : K]: DeepCamelToSnake<T[K]> }\n : T;\n\n/**\n * Recursively converts object keys from camelCase to snake_case\n */\nexport function deepCamelToSnakeCase<T>(obj: T): DeepCamelToSnake<T> {\n if (Array.isArray(obj)) return obj.map(deepCamelToSnakeCase) as DeepCamelToSnake<T>;\n if (obj instanceof Date) return obj as DeepCamelToSnake<T>;\n if (obj && typeof obj === \"object\") {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n result[snakeCase(key)] = deepCamelToSnakeCase((obj as any)[key]);\n }\n return result;\n }\n return obj as DeepCamelToSnake<T>;\n}\n\n/**\n * Type definitions for snake_case to camelCase conversion\n */\ntype SnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<SnakeToCamelCase<U>>}`\n : S;\n\ntype DeepSnakeToCamel<T> = T extends Date\n ? T\n : T extends Array<infer U>\n ? DeepSnakeToCamel<U>[]\n : T extends object\n ? { [K in keyof T as K extends string ? SnakeToCamelCase<K> : K]: DeepSnakeToCamel<T[K]> }\n : T;\n\n/**\n * Converts snake_case string to camelCase\n */\nfunction camelCase(str: string): string {\n return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\n/**\n * Recursively converts object keys from snake_case to camelCase\n */\nexport function deepSnakeToCamelCase<T>(obj: T): DeepSnakeToCamel<T> {\n if (Array.isArray(obj)) return obj.map(deepSnakeToCamelCase) as DeepSnakeToCamel<T>;\n if (obj instanceof Date) return obj as DeepSnakeToCamel<T>;\n if (obj && typeof obj === \"object\") {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[camelCase(key)] = deepSnakeToCamelCase((obj as any)[key]);\n }\n }\n return result;\n }\n return obj as DeepSnakeToCamel<T>;\n}\n","import { Type } from '@nx-ddd/common/domain';\nimport { get } from 'lodash-es';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { deepCamelToSnakeCase } from './case-converters';\nimport { toTimestamp, toDate, toNumber, toHasuraLocation } from './type-converters';\n\n/**\n * Field annotation type for Hasura decorators\n */\ninterface FieldAnnotation {\n type: 'text' | 'timestamp' | 'date' | 'numeric' | 'integer' | 'json' | 'map' | 'location';\n fieldName: string;\n childType?: () => any;\n}\n\n/**\n * Options for toHasura conversion\n */\ninterface ToHasuraOptions {\n extraFunc?: (obj: any) => any;\n}\n\n/**\n * Converts an entity to Hasura format\n */\nexport function toHasura<E>(\n object: E,\n type: Type<E>,\n { extraFunc = deepCamelToSnakeCase }: ToHasuraOptions = {}\n): Record<string, unknown> {\n const fieldMap = getFieldAnnotationMap<FieldAnnotation>(type);\n\n const obj: Record<string, unknown> = Object.entries(fieldMap).reduce<Record<string, unknown>>((acc, [key, annotation]) => {\n const value = get(object, annotation.fieldName);\n if (typeof value === 'undefined') return acc;\n\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\n return extraFunc(obj);\n}\n","import { Type } from '@nx-ddd/common/domain';\nimport { HasuraConverter } from './types';\nimport { fromHasura } from './from-hasura';\nimport { toHasura } from './to-hasura';\nimport * as typeConverters from './type-converters';\n\n// Re-export for backward compatibility\nexport type { HasuraConverter } from './types';\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/**\n * Creates a HasuraConverter for the given entity type\n */\nexport function getConverter<T>(type: Type<T>): HasuraConverter<T> {\n return {\n toHasura(entity: T) {\n return toHasura(entity, type);\n },\n toHasuraMany(entities: T[]) {\n return entities.map((entity) => this.toHasura(entity));\n },\n fromHasura(entity: object) {\n return fromHasura(entity, type) as T;\n },\n fromHasuraMany(entities: object[]) {\n return entities.map((entity) => this.fromHasura(entity));\n },\n };\n}\n\n/** @deprecated use `getConverter` instead */\nexport const makeConverter = getConverter;\n\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","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\n\n@Injectable()\nexport class HasuraInterceptor implements HttpInterceptor {\n private config = inject(HASURA_CONFIG);\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\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}","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { InjectionToken } from \"@angular/core\";\nimport { Provider } from \"@angular/core\";\nimport { HasuraInterceptor } from \"./hasura.interceptor\";\n\nexport interface HasuraConfig {\n adminSecret?: string;\n url: string;\n}\n\nexport const HASURA_CONFIG = new InjectionToken<HasuraConfig>('HASURA_CONFIG');\n\nexport function provideHasuraConfig(config: HasuraConfig): Provider[] {\n return [\n { provide: HASURA_CONFIG, useValue: config },\n config.adminSecret ? { provide: HTTP_INTERCEPTORS, useClass: HasuraInterceptor, multi: true} : [],\n ];\n}\n","export type { DeepPartial } from '@nx-ddd/common/domain';\nexport { TransformToDayjs } from '@nx-ddd/common/domain';\nexport { IsDayjs } from 'class-validator-extended';\nimport { EnvironmentProviders, inject, InjectionToken, Provider } from '@angular/core';\nimport { InMemoryCache } from '@apollo/client/core';\nimport { APOLLO_OPTIONS, provideApollo } from 'apollo-angular';\nimport { HASURA_CONFIG, HasuraConfig, provideHasuraConfig } from './hasura.config';\nimport { ApolloLinkService } from './apollo/link/link.service';\nimport { GetHeaders } from './links';\nimport { Observable } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\n\nexport const GRAPHQL_HEADERS = new InjectionToken<GetHeaders>('GRAPHQL_HEADERS', {\n providedIn: 'root',\n factory: () => () => ({}),\n});\n\nexport function provideHasuraGetHeaders(\n useFactory: () => () => PromiseOrObservable<Record<string, string>>,\n): Provider {\n return [\n { provide: GRAPHQL_HEADERS, useFactory },\n ];\n}\n\n/**\n * @deprecated use provideHasuraGetHeaders instead\n */\nexport const provideGraphqlHeaders = provideHasuraGetHeaders;\n\n/** @deprecated */\nexport function provideApolloOptions() {\n return {\n provide: APOLLO_OPTIONS,\n useFactory: () => ({ cache: new InMemoryCache() }),\n };\n}\n\nexport function provideHasura(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n provideApollo(() => {\n const linkService = inject(ApolloLinkService);\n const getHeaders = inject(GRAPHQL_HEADERS);\n return {\n cache: new InMemoryCache(),\n link: linkService.createLink(config.url, getHeaders),\n };\n }),\n provideHasuraConfig(config),\n ]\n}\n\nexport function provideHasuraWithWebSocket(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n provideApollo(() => {\n const linkService = inject(ApolloLinkService);\n const getHeaders = inject(GRAPHQL_HEADERS);\n return {\n cache: new InMemoryCache(),\n link: linkService.createLink(config.url, getHeaders),\n };\n }),\n provideHasuraConfig(config),\n ]\n}\n","import { TableConfig, TransactionQueryPart } from \"../_meta/graphql-query-part\";\n\nexport class GetQueryPartBuilder {\n constructor (protected config: TableConfig) { }\n\n build(params: {id: string}): TransactionQueryPart {\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\n buildMany(): TransactionQueryPart {\n const queryName = this.config.tableName;\n const queryPart = `${queryName} { ${this.config.columns.join(' ')} }`;\n return { queryPart, variableDefinitions: [], variables: {}, operationName: queryName };\n }\n}\n","import { TableConfig } from \"../_meta/graphql-query-part\";\nimport { GetQueryPartBuilder } from \"./get.builder\";\n\nexport function makeSubscription(query: any) {\n const { kind, definitions } = query;\n const subscriptionDefinitions = definitions.map((definition: any) => {\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}\n\nexport class QueriesBuilder<E extends { id: string }> {\n readonly get: GetQueryPartBuilder;\n\n constructor (config: TableConfig) {\n this.get = new GetQueryPartBuilder(config);\n }\n\n makeSubscription(query: any) {\n return makeSubscription(query);\n }\n}","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\nimport { omitBy, pick, snakeCase } from 'lodash-es';\n\ntype CreateData<E> = Omit<E, 'id' | 'createdAt' | 'updatedAt'>;\n\nexport class CreateMutationBuilder<E extends {id: string}> {\n constructor(protected readonly config: TableConfig) { }\n\n build(data: CreateData<E>, alias = 'create'): TransactionQueryPart {\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\n buildMany(data: CreateData<E>[], alias = 'createMany'): TransactionQueryPart {\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\n protected convertToObject(item: CreateData<E>): Partial<CreateData<E>> {\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') as Partial<CreateData<E>>;\n }\n\n protected convertToObjects(items: CreateData<E>[]): Partial<CreateData<E>>[] {\n return items.map((item) => this.convertToObject(item));\n }\n}\n","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\n\nexport class DeleteMutationBuilder {\n constructor(protected readonly config: TableConfig) { }\n\n build({ id }: { id: string }): TransactionQueryPart {\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\n buildMany(params: { id: string }[], alias = 'deleteMany'): TransactionQueryPart {\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\n buildAll(alias = 'deleteAll'): TransactionQueryPart {\n const operationName = `delete_${this.config.tableName}`;\n const uniqueAlias = `${alias}_${this.config.tableName}`;\n const variableDefinitions: string[] = [];\n const queryPart = `${uniqueAlias}: ${operationName}(where: {}) { affected_rows }`;\n const variables = {};\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n}\n","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\nimport { omitBy, pick, snakeCase } from \"lodash-es\";\n\ninterface Options {\n operationName?: string;\n constraint?: string;\n columns?: string[];\n returningColumns?: string[];\n alias?: string;\n}\n\nexport class SaveMutationBuilder<E = any> {\n constructor(protected readonly config: TableConfig) { }\n\n build(data: Omit<E, 'createdAt' | 'updatedAt'>, {\n operationName = `insert_${this.config.tableName}`,\n constraint = this.config.pk,\n columns = this.config.columns,\n returningColumns = this.config.columns,\n alias = operationName,\n }: Options = {}): TransactionQueryPart {\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\n buildMany(entities: E[], {\n operationName = `insert_${this.config.tableName}`,\n constraint = this.config.pk,\n columns = this.config.columns,\n returningColumns = this.config.columns,\n alias = 'save'\n }: Options = {}): TransactionQueryPart {\n const objects = this.buildObjects(entities);\n const onConflict = this.buildOnConflict(entities[0] as any, 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\n protected buildObject(item: Omit<E, 'createdAt' | 'updatedAt'>): Partial<Omit<E, 'createdAt' | 'updatedAt'>> {\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') as Partial<Omit<E, 'createdAt' | 'updatedAt'>>;\n }\n\n protected buildObjects(items: Omit<E, 'createdAt' | 'updatedAt'>[]): Partial<Omit<E, 'createdAt' | 'updatedAt'>>[] {\n return items.map((item) => this.buildObject(item));\n }\n\n protected buildOnConflict(data: Omit<E, 'createdAt' | 'updatedAt'>, constraint: string, columns: string[]) {\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}","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\nimport { omitBy, pick, snakeCase } from \"lodash-es\";\n\nexport class UpdateMutationBuilder<E extends {id: string} = any> {\n constructor(protected readonly config: TableConfig) { }\n\n build(data: Partial<E> & { id: string }, alias = 'update'): TransactionQueryPart {\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\n buildMany(\n data: Partial<E>[],\n alias = 'updateMany'\n ): TransactionQueryPart {\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\n protected buildObject(item: Partial<E>): any {\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\n protected buildObjects(items: Partial<E>[]): any[] {\n return items.map((item) => ({ where: { id: { _eq: item.id } }, _set: this.buildObject(item) }));\n }\n}\n","import { CreateMutationBuilder } from \"./create.builder\";\nimport { UpdateMutationBuilder } from \"./update.builder\";\nimport { SaveMutationBuilder } from \"./save.builder\";\nimport { DeleteMutationBuilder } from \"./delete.builder\";\nimport { TableConfig } from \"../_meta/graphql-query-part\";\n\nexport class HasuraMutationBuilder<E extends { id: string }> {\n readonly create: CreateMutationBuilder<E>;\n readonly update: UpdateMutationBuilder<E>;\n readonly save: SaveMutationBuilder<E>;\n readonly delete_: DeleteMutationBuilder;\n \n constructor(config: TableConfig) {\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","import { HasuraMutationBuilder } from './mutations';\nimport { QueriesBuilder } from \"./queries\";\nimport { TableConfig } from \"./_meta/graphql-query-part\";\n\nexport class HasuraQueryPartsBuilder<E extends { id: string }> {\n readonly mutations: HasuraMutationBuilder<E>;\n readonly queries: QueriesBuilder<E>;\n\n constructor(config: TableConfig) {\n this.mutations = new HasuraMutationBuilder(config);\n this.queries = new QueriesBuilder(config);\n }\n}\n","import { TableConfig, TransactionQueryPart } from './parts/_meta/graphql-query-part';\nimport { HasuraQueryPartsBuilder } from './parts/parts.builder';\n\nexport class HasuraQueryBuilder<E extends {id: string}> {\n readonly parts: HasuraQueryPartsBuilder<E>\n\n constructor(config: TableConfig) {\n this.parts = new HasuraQueryPartsBuilder(config);\n }\n \n\n buildQuery(part: TransactionQueryPart): string {\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\n static buildMutation(part: TransactionQueryPart): string {\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\n buildMutation(part: TransactionQueryPart): string {\n return HasuraQueryBuilder.buildMutation(part);\n }\n\n buildTransactionQuery(parts: TransactionQueryPart[]): {query: string, variables: Record<string, any>} {\n const operationName = `Transaction`;\n const variableDefinitions = parts.reduce((acc, m) => [...acc, ...m.variableDefinitions], [] as string[]);\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 }), {} as Record<string, any>);\n return { query, variables };\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { ApolloBase, gql } from \"apollo-angular\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport { FetchPolicy, FetchResult, OperationVariables, ApolloQueryResult } from \"@apollo/client/core\";\nimport { lastValueFrom, Observable, switchMap } from \"rxjs\";\nimport { makeSubscription } from \"./builders/parts/queries\";\nimport { HasuraQueryBuilder, TransactionQueryPart } from \"./builders\";\nimport { ApolloClientManagerService } from \"./apollo/client-manager\";\nimport { GRAPHQL_HEADERS } from \"./hasura.di\";\n\n\n@Injectable({ providedIn: 'root' })\nexport class HasuraService {\n protected readonly getHeaders = inject(GRAPHQL_HEADERS);\n protected readonly apolloClientManager = inject(ApolloClientManagerService);\n protected readonly config = inject(HASURA_CONFIG);\n\n getApolloClient(): Observable<ApolloBase<any>> {\n return this.apolloClientManager.getClient(this.config.url, this.getHeaders);\n }\n\n subscribe<\n T = any,\n TVariables extends OperationVariables = OperationVariables\n >({\n query,\n variables,\n fetchPolicy = 'network-only',\n context\n }: {\n query: any,\n variables: TVariables,\n fetchPolicy?: FetchPolicy,\n context?: Record<string, unknown>\n }): Observable<FetchResult<T>> {\n return this.getApolloClient().pipe(\n switchMap((client) => client.subscribe<T, TVariables>({\n query: makeSubscription(query),\n variables: variables,\n fetchPolicy: fetchPolicy,\n context\n })),\n );\n }\n\n async mutate<T = any>(...args: Parameters<ApolloBase['mutate']>) {\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\n async mutateByQueryPart<T = any>(part: TransactionQueryPart): Promise<T> {\n const mutation = HasuraQueryBuilder.buildMutation(part);\n return this.mutate<T>({\n mutation: gql`${mutation}`,\n variables: part.variables,\n } as any).then((res: any) => {\n return res.data[part?.alias ?? part.operationName]\n });\n }\n\n async query<T = any>(...args: Parameters<ApolloBase['query']>): Promise<ApolloQueryResult<T>> {\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 }) as Promise<ApolloQueryResult<T>>;\n }\n\n // Observable版のqueryメソッド(HTTP経由)\n watchQuery<T = any, TVariables extends OperationVariables = OperationVariables>(options: {\n query: any,\n variables?: TVariables,\n fetchPolicy?: FetchPolicy\n }): Observable<any> {\n const { query, variables, fetchPolicy = 'no-cache' } = options;\n return this.getApolloClient().pipe(\n switchMap((client) => client.watchQuery({\n query,\n variables,\n fetchPolicy\n } as any).valueChanges)\n );\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { Repository, Type } from \"@nx-ddd/common/domain\";\nimport { gql } from \"@apollo/client/core\";\nimport { map, Observable } from \"rxjs\";\nimport { getConverter, HasuraConverter } from \"./converter\";\nimport { HasuraService } from \"./hasura.service\";\nimport { HasuraQueryBuilder } from \"./builders\";\nimport { getFields, getTableName } from \"./decorators\";\n\nexport abstract class _HasuraRepository<E extends {id: string}> extends Repository<E> {\n protected abstract hasura: HasuraService;\n protected abstract converter: HasuraConverter<E>;\n readonly abstract updateColumns: string[];\n readonly abstract tableName: string;\n\n get pkey(): string {\n return `${this.tableName}_pkey`;\n }\n\n getQueryBuilder() {\n return new HasuraQueryBuilder({ tableName: this.tableName, pk: this.pkey, columns: this.updateColumns });\n }\n\n async get(params: {id: string}) {\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 } as any)\n .then((res: any) => this.converter.fromHasura(res.data[part.operationName]));\n }\n\n async list(): Promise<E[]> {\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 } as any).then((res: any) => this.converter.fromHasuraMany(res.data[part.operationName]));\n }\n\n listChanges(): Observable<E[]> {\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(\n map((res: any) => this.converter.fromHasuraMany(res.data[part.operationName])),\n );\n }\n\n async create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E> {\n const converted = this.converter.toHasura(data as E);\n const part = this.getQueryBuilder().parts.mutations.create.build(converted as any);\n return this.hasura.mutateByQueryPart(part).then(result => {\n return this.converter.fromHasura(result.returning[0]);\n });\n }\n\n async createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]> {\n const items = this.converter.toHasuraMany(data as E[]);\n const part = this.getQueryBuilder().parts.mutations.create.buildMany(items as any[]);\n return this.hasura.mutateByQueryPart(part).then((result) => {\n return this.converter.fromHasuraMany(result.returning);\n });\n }\n\n async update(data: Partial<E> & {id: string}): Promise<void>{\n const item = this.converter.toHasura(data as E);\n const part = this.getQueryBuilder().parts.mutations.update.build(item as any);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n\n async updateMany(data: Partial<E>[]): Promise<void> {\n const items = this.converter.toHasuraMany(data as E[]);\n const part = this.getQueryBuilder().parts.mutations.update.buildMany(items as any[]);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows).then(() => {});\n }\n\n async delete(params: {id: string}): Promise<void> {\n const part = this.getQueryBuilder().parts.mutations.delete_.build(params);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n\n async deleteMany(params: {id: string}[]): Promise<number> {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildMany(params);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows);\n }\n\n async deleteAll(): Promise<void> {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildAll();\n console.debug('part:', part);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n\n async save(data: Partial<E>) {\n const item = this.converter.toHasura(data as E);\n const part = this.getQueryBuilder().parts.mutations.save.build(item as any);\n return this.hasura.mutateByQueryPart(part).then((res) => res.returning[0]);\n }\n\n async saveMany(entities: E[]): Promise<void> {\n const items = this.converter.toHasuraMany(entities as E[]);\n const part = this.getQueryBuilder().parts.mutations.save.buildMany(items as any[]);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n}\n\n@Injectable()\nexport abstract class HasuraRepository<E extends {id: string}> extends _HasuraRepository<E> {\n protected hasura = inject(HasuraService);\n}\n\nexport function getHasuraRepository<E extends { id: string }>(Entity: Type<E>, deps: {hasura: HasuraService}): _HasuraRepository<E> {\n class Repository extends _HasuraRepository<E> {\n protected hasura = deps.hasura;\n protected converter = getConverter<E>(Entity);\n readonly tableName = getTableName(Entity);\n readonly updateColumns = getFields(Entity, { case: 'snake' });\n }\n return new Repository();\n}\n\nexport function injectHasuraRepository<E extends { id: string }>(Entity: Type<E>): _HasuraRepository<E> {\n return getHasuraRepository(Entity, { hasura: inject(HasuraService) });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"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":["../../../../../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/decorators/decorators.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/type-converters.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/from-hasura.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/case-converters.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/to-hasura.ts","../../../../../packages/@nx-ddd/hasura/src/lib/converter/converter.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.interceptor.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.config.ts","../../../../../packages/@nx-ddd/hasura/src/lib/hasura.di.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/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/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","../../../../../packages/@nx-ddd/hasura/src/lib/nx-ddd-hasura.ts"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { InMemoryCache } from '@apollo/client/cache';\nimport { ApolloClient } from '@apollo/client/core';\nimport { makeDI } from '@nx-ddd/core';\nimport { ApolloLinkService, GetHeaders } from '@nx-ddd/hasura/apollo/link';\nimport { Apollo, ApolloBase } from 'apollo-angular';\nimport { Observable } from 'rxjs';\nimport { HasuraConfig } from '../../hasura.config';\n\n\n@Injectable({providedIn: 'root'})\nexport class ApolloMultiService {\n readonly apollo = inject(Apollo);\n protected readonly linkService = inject(ApolloLinkService);\n\n protected createClient(name: string, baseUrl: string, getHeaders: 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\n getClient(endpoint: string, getHeaders: GetHeaders): ApolloBase {\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}\n\n\nexport type GetApolloClient<E extends {id: string}> = (config: HasuraConfig) => ApolloClient | Promise<ApolloClient> | Observable<ApolloClient>;\nexport const GET_APOLLO_CLIENT = makeDI<GetApolloClient<any>>('GET_APOLLO_CLIENT');","import { distinctUntilChanged, filter, from, isObservable, lastValueFrom, Observable, of, take, tap } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\nexport type GetHeaders = () => PromiseOrObservable<Record<string, string>>;\n\nexport function wrap<T>(obsOrPromiseOrValue: Promise<T> | Observable<T> | T): Observable<T> {\n if (isObservable(obsOrPromiseOrValue)) return obsOrPromiseOrValue;\n if (obsOrPromiseOrValue instanceof Promise) return from(obsOrPromiseOrValue);\n return of(obsOrPromiseOrValue);\n}\n\nexport function resolve(getHeaders: GetHeaders): Promise<Record<string, string>> {\n const headers$ = wrap(getHeaders());\n return lastValueFrom(headers$.pipe(\n filter((headers) => !!headers),\n take(1),\n distinctUntilChanged(),\n ))\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpLink } from 'apollo-angular/http';\nimport { setContext } from '@apollo/client/link/context';\nimport { ApolloLink, DocumentNode, split } from '@apollo/client/core';\nimport { getMainDefinition } from '@apollo/client/utilities';\nimport { GraphQLWsLink } from '@apollo/client/link/subscriptions';\nimport { Client, createClient } from 'graphql-ws';\nimport { GetHeaders, resolve } from './links';\nimport { WEBSOCKET } from '@nx-ddd/common/infrastructure/externals/websocket/token';\n\nfunction isSubscription(query: DocumentNode) {\n const definition = getMainDefinition(query);\n return (\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'subscription'\n );\n}\n\n@Injectable({providedIn: 'root'})\nexport class ApolloLinkService {\n readonly httpLink = inject(HttpLink);\n readonly WebSocketImpl = WEBSOCKET.inject();\n\n private createGraphQLWsClient(baseUrl: string, getHeaders: GetHeaders): Client {\n const wsUrl = baseUrl.replace('http', 'ws');\n return createClient({\n url: wsUrl,\n webSocketImpl: this.WebSocketImpl,\n connectionParams: async () => {\n const headers = await resolve(getHeaders);\n return { headers };\n },\n lazy: true,\n lazyCloseTimeout: 30_000,\n shouldRetry: () => true,\n retryAttempts: 5,\n keepAlive: 30000,\n });\n }\n\n createHttpLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return ApolloLink.from([\n setContext(async () => {\n const headers = await resolve(getHeaders);\n return { headers }\n }),\n this.httpLink.create({ uri: baseUrl, }) as unknown as ApolloLink,\n ]);\n }\n\n createWebSocketLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return new GraphQLWsLink(this.createGraphQLWsClient(baseUrl, getHeaders));\n }\n\n createAutoSplitLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return split(\n ({ query }) => isSubscription(query),\n this.createWebSocketLink(baseUrl, getHeaders),\n this.createHttpLink(baseUrl, getHeaders)\n );\n }\n\n createLink(baseUrl: string, getHeaders: GetHeaders): ApolloLink {\n return this.createAutoSplitLink(baseUrl, getHeaders);\n }\n}\n","import { inject, Injectable } from \"@angular/core\";\nimport { Apollo, ApolloBase } from \"apollo-angular\";\nimport { InMemoryCache } from \"@apollo/client/cache\";\nimport { ApolloLinkService, GetHeaders, wrap } from \"../link\";\nimport { Observable, switchMap, take } from \"rxjs\";\nimport { CRYPTO } from \"@nx-ddd/common/infrastructure/externals/crypto/token\";\n\n@Injectable({providedIn: 'root'})\nexport class ApolloClientManagerService {\n readonly apollo = inject(Apollo);\n protected readonly linkService = inject(ApolloLinkService);\n protected readonly crypto = CRYPTO.inject() ?? globalThis.crypto;\n\n protected async buildClientName(endpoint: string, headers: Record<string, string>): Promise<string> {\n const data = new TextEncoder().encode(JSON.stringify(headers));\n \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\n getClient(endpoint: string, getHeaders: GetHeaders): Observable<ApolloBase<any>> {\n return wrap(getHeaders()).pipe(\n take(1),\n switchMap(async (headers) => {\n const name = await this.buildClientName(endpoint, headers);\n const client = this.apollo.use(name);\n\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\n return client;\n }),\n );\n }\n}\n","import { makeDecoratorFactories } from \"@nx-ddd/core\";\nimport { camelCase, snakeCase } from 'lodash-es';\n\nconst {\n createDecorator,\n \n addAnnotation,\n getAnnotations,\n} = makeDecoratorFactories(\n (type, fieldName, propName, options) => ({ type, fieldName, propName, childType: options.childType }),\n '[@nx-ddd/hasura] annotations'\n);\n\nexport function getFieldAnnotationMap<Annotation>(T: any, prefix = ''): Record<string, Annotation> {\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}\n\nexport function getFlattenFieldAnnotations<Annotation>(T: any, prefix = ''): Record<string, Annotation> {\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}\n\nexport function getFields(T: any, options: {\n prefix?: string;\n case?: 'snake' | 'camel';\n} = {\n prefix: '',\n case: 'snake'\n}): string[] {\n const annotations = Hasura.getAnnotations(T).filter((annotation: any) => 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}\n\nfunction createClassDecorator(type: string) {\n return (nameOrProps: { name: string } | string) => {\n const props = typeof nameOrProps === 'string' ? { name: nameOrProps } : nameOrProps;\n return (target: any) => {\n const name = props?.name || target.name;\n const annotation = { type, name };\n addAnnotation(target, annotation as any);\n };\n };\n}\n\nexport function getTableName(target: any): string {\n const annotations = getAnnotations(target);\n const annotation = annotations.find((annotation: any) => annotation.type === 'table');\n return (annotation as any).name;\n}\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: () => any) => createDecorator('map', {childType})(),\n JSON: createDecorator('json'),\n Location: createDecorator('location'),\n addAnnotation,\n createDecorator,\n getAnnotations,\n};\n","import dayjs from 'dayjs';\nimport { format } from 'date-fns';\nimport { formatInTimeZone } from 'date-fns-tz';\n\n\nexport function toTimestamp(date: dayjs.Dayjs | Date | null): string | null {\n if (dayjs.isDayjs(date)) {\n return date.toISOString();\n } else if (date instanceof Date) {\n return format(date, 'yyyy-MM-dd HH:mm:ss');\n } else {\n return null;\n }\n}\n\n\nexport function toDate(date: dayjs.Dayjs | Date | string | null | undefined): string | null | undefined {\n if (typeof date === 'undefined') {\n return undefined;\n } else if (dayjs.isDayjs(date)) {\n return date.format('YYYY-MM-DD');\n } else if (date instanceof Date) {\n return formatInTimeZone(date, Intl.DateTimeFormat().resolvedOptions().timeZone, 'yyyy-MM-dd');\n } else if (typeof date === 'string') {\n return date;\n } else {\n return null;\n }\n}\n\n\nexport function toNumber(value: any): number | null | undefined {\n if (typeof value === 'undefined') return undefined;\n if (value === null) return null;\n if (value === '' || (typeof value === 'string' && value.trim() === '')) return null;\n return isNaN(Number(value)) ? null : Number(value);\n}\n\n\nexport function toHasuraLocation(position: {lat: number, lng: number} | null | undefined) {\n if (!(position?.lat && position?.lng)) 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\nexport function fromHasuraLocation(location: {\n type: 'Point',\n crs: {\n type: 'name',\n properties: {\n name: 'urn:ogc:def:crs:EPSG::4326'\n }\n },\n coordinates: [number, number]\n}) {\n if (!location) return null;\n return {\n lat: location.coordinates?.[1],\n lng: location.coordinates?.[0],\n };\n}\n","import { plainToInstanceWithValid } from '@nx-ddd/core';\nimport { Type } from '@nx-ddd/common/domain';\nimport { get, snakeCase } from 'lodash-es';\nimport { parse } from 'date-fns';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { fromHasuraLocation } from './type-converters';\n\n\ninterface FieldAnnotation {\n type: 'text' | 'timestamp' | 'date' | 'numeric' | 'integer' | 'json' | 'map' | 'location';\n fieldName: string;\n childType?: () => any;\n}\n\n\nfunction extractNestedMap(mapKey: string, childType: any, object: any): any {\n const childFieldMap = getFieldAnnotationMap<FieldAnnotation>(childType);\n const childFields: Record<string, any> = {};\n\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 } 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\n return childFields;\n}\n\n\nexport function fromHasura<T>(_object: any, type: Type<T>): T {\n const fieldMap = getFieldAnnotationMap<FieldAnnotation>(type);\n\n \n const nestedObjects: Record<string, Record<string, any>> = {};\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\n \n const obj = Object.entries(fieldMap).reduce((acc, [key, annotation]) => {\n \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\n const value = get(_object, snakeCase(key));\n if (typeof value === 'undefined') return acc;\n\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\n return plainToInstanceWithValid(type as any, obj) as T;\n}\n","import { snakeCase } from 'lodash-es';\n\n\ntype CamelToSnakeCase<S extends string> =\n S extends `${infer T}${infer U}`\n ? U extends Uncapitalize<U>\n ? `${Lowercase<T>}${CamelToSnakeCase<U>}`\n : `${Lowercase<T>}_${CamelToSnakeCase<U>}`\n : S;\n\ntype DeepCamelToSnake<T> = T extends Date\n ? T\n : T extends Array<infer U>\n ? DeepCamelToSnake<U>[]\n : T extends object\n ? { [K in keyof T as K extends string ? CamelToSnakeCase<K> : K]: DeepCamelToSnake<T[K]> }\n : T;\n\n\nexport function deepCamelToSnakeCase<T>(obj: T): DeepCamelToSnake<T> {\n if (Array.isArray(obj)) return obj.map(deepCamelToSnakeCase) as DeepCamelToSnake<T>;\n if (obj instanceof Date) return obj as DeepCamelToSnake<T>;\n if (obj && typeof obj === \"object\") {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key))\n result[snakeCase(key)] = deepCamelToSnakeCase((obj as any)[key]);\n }\n return result;\n }\n return obj as DeepCamelToSnake<T>;\n}\n\n\ntype SnakeToCamelCase<S extends string> =\n S extends `${infer T}_${infer U}`\n ? `${T}${Capitalize<SnakeToCamelCase<U>>}`\n : S;\n\ntype DeepSnakeToCamel<T> = T extends Date\n ? T\n : T extends Array<infer U>\n ? DeepSnakeToCamel<U>[]\n : T extends object\n ? { [K in keyof T as K extends string ? SnakeToCamelCase<K> : K]: DeepSnakeToCamel<T[K]> }\n : T;\n\n\nfunction camelCase(str: string): string {\n return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n\n\nexport function deepSnakeToCamelCase<T>(obj: T): DeepSnakeToCamel<T> {\n if (Array.isArray(obj)) return obj.map(deepSnakeToCamelCase) as DeepSnakeToCamel<T>;\n if (obj instanceof Date) return obj as DeepSnakeToCamel<T>;\n if (obj && typeof obj === \"object\") {\n const result: any = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n result[camelCase(key)] = deepSnakeToCamelCase((obj as any)[key]);\n }\n }\n return result;\n }\n return obj as DeepSnakeToCamel<T>;\n}\n","import { Type } from '@nx-ddd/common/domain';\nimport { get } from 'lodash-es';\nimport { getFieldAnnotationMap } from '../decorators';\nimport { deepCamelToSnakeCase } from './case-converters';\nimport { toTimestamp, toDate, toNumber, toHasuraLocation } from './type-converters';\n\n\ninterface FieldAnnotation {\n type: 'text' | 'timestamp' | 'date' | 'numeric' | 'integer' | 'json' | 'map' | 'location';\n fieldName: string;\n childType?: () => any;\n}\n\n\ninterface ToHasuraOptions {\n extraFunc?: (obj: any) => any;\n}\n\n\nexport function toHasura<E>(\n object: E,\n type: Type<E>,\n { extraFunc = deepCamelToSnakeCase }: ToHasuraOptions = {}\n): Record<string, unknown> {\n const fieldMap = getFieldAnnotationMap<FieldAnnotation>(type);\n\n const obj: Record<string, unknown> = Object.entries(fieldMap).reduce<Record<string, unknown>>((acc, [key, annotation]) => {\n const value = get(object, annotation.fieldName);\n if (typeof value === 'undefined') return acc;\n\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\n return extraFunc(obj);\n}\n","import { Type } from '@nx-ddd/common/domain';\nimport { HasuraConverter } from './types';\nimport { fromHasura } from './from-hasura';\nimport { toHasura } from './to-hasura';\nimport * as typeConverters from './type-converters';\n\n\nexport type { HasuraConverter } from './types';\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\nexport function getConverter<T>(type: Type<T>): HasuraConverter<T> {\n return {\n toHasura(entity: T) {\n return toHasura(entity, type);\n },\n toHasuraMany(entities: T[]) {\n return entities.map((entity) => this.toHasura(entity));\n },\n fromHasura(entity: object) {\n return fromHasura(entity, type) as T;\n },\n fromHasuraMany(entities: object[]) {\n return entities.map((entity) => this.fromHasura(entity));\n },\n };\n}\n\n\nexport const makeConverter = getConverter;\n\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","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\n\n@Injectable()\nexport class HasuraInterceptor implements HttpInterceptor {\n private config = inject(HASURA_CONFIG);\n\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\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}","import { HTTP_INTERCEPTORS } from \"@angular/common/http\";\nimport { InjectionToken } from \"@angular/core\";\nimport { Provider } from \"@angular/core\";\nimport { HasuraInterceptor } from \"./hasura.interceptor\";\n\nexport interface HasuraConfig {\n adminSecret?: string;\n url: string;\n}\n\nexport const HASURA_CONFIG = new InjectionToken<HasuraConfig>('HASURA_CONFIG');\n\nexport function provideHasuraConfig(config: HasuraConfig): Provider[] {\n return [\n { provide: HASURA_CONFIG, useValue: config },\n config.adminSecret ? { provide: HTTP_INTERCEPTORS, useClass: HasuraInterceptor, multi: true} : [],\n ];\n}\n","export type { DeepPartial } from '@nx-ddd/common/domain';\nexport { TransformToDayjs } from '@nx-ddd/common/domain';\nexport { IsDayjs } from 'class-validator-extended';\nimport { EnvironmentProviders, inject, InjectionToken, Provider } from '@angular/core';\nimport { InMemoryCache } from '@apollo/client/core';\nimport { APOLLO_OPTIONS, provideApollo } from 'apollo-angular';\nimport { HASURA_CONFIG, HasuraConfig, provideHasuraConfig } from './hasura.config';\nimport { ApolloLinkService } from './apollo/link/link.service';\nimport { GetHeaders } from './links';\nimport { Observable } from 'rxjs';\n\ntype PromiseOrObservable<T> = Promise<T> | Observable<T> | T;\n\nexport const GRAPHQL_HEADERS = new InjectionToken<GetHeaders>('GRAPHQL_HEADERS', {\n providedIn: 'root',\n factory: () => () => ({}),\n});\n\nexport function provideHasuraGetHeaders(\n useFactory: () => () => PromiseOrObservable<Record<string, string>>,\n): Provider {\n return [\n { provide: GRAPHQL_HEADERS, useFactory },\n ];\n}\n\n\nexport const provideGraphqlHeaders = provideHasuraGetHeaders;\n\n\nexport function provideApolloOptions() {\n return {\n provide: APOLLO_OPTIONS,\n useFactory: () => ({ cache: new InMemoryCache() }),\n };\n}\n\nexport function provideHasura(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n provideApollo(() => {\n const linkService = inject(ApolloLinkService);\n const getHeaders = inject(GRAPHQL_HEADERS);\n return {\n cache: new InMemoryCache(),\n link: linkService.createLink(config.url, getHeaders),\n };\n }),\n provideHasuraConfig(config),\n ]\n}\n\nexport function provideHasuraWithWebSocket(config: HasuraConfig): (Provider | EnvironmentProviders)[] {\n return [\n provideApollo(() => {\n const linkService = inject(ApolloLinkService);\n const getHeaders = inject(GRAPHQL_HEADERS);\n return {\n cache: new InMemoryCache(),\n link: linkService.createLink(config.url, getHeaders),\n };\n }),\n provideHasuraConfig(config),\n ]\n}\n","import { TableConfig, TransactionQueryPart } from \"../_meta/graphql-query-part\";\n\nexport class GetQueryPartBuilder {\n constructor (protected config: TableConfig) { }\n\n build(params: {id: string}): TransactionQueryPart {\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\n buildMany(): TransactionQueryPart {\n const queryName = this.config.tableName;\n const queryPart = `${queryName} { ${this.config.columns.join(' ')} }`;\n return { queryPart, variableDefinitions: [], variables: {}, operationName: queryName };\n }\n}\n","import { TableConfig } from \"../_meta/graphql-query-part\";\nimport { GetQueryPartBuilder } from \"./get.builder\";\n\nexport function makeSubscription(query: any) {\n const { kind, definitions } = query;\n const subscriptionDefinitions = definitions.map((definition: any) => {\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}\n\nexport class QueriesBuilder<E extends { id: string }> {\n readonly get: GetQueryPartBuilder;\n\n constructor (config: TableConfig) {\n this.get = new GetQueryPartBuilder(config);\n }\n\n makeSubscription(query: any) {\n return makeSubscription(query);\n }\n}","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\nimport { omitBy, pick, snakeCase } from 'lodash-es';\n\ntype CreateData<E> = Omit<E, 'id' | 'createdAt' | 'updatedAt'>;\n\nexport class CreateMutationBuilder<E extends {id: string}> {\n constructor(protected readonly config: TableConfig) { }\n\n build(data: CreateData<E>, alias = 'create'): TransactionQueryPart {\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\n buildMany(data: CreateData<E>[], alias = 'createMany'): TransactionQueryPart {\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\n protected convertToObject(item: CreateData<E>): Partial<CreateData<E>> {\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') as Partial<CreateData<E>>;\n }\n\n protected convertToObjects(items: CreateData<E>[]): Partial<CreateData<E>>[] {\n return items.map((item) => this.convertToObject(item));\n }\n}\n","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\n\nexport class DeleteMutationBuilder {\n constructor(protected readonly config: TableConfig) { }\n\n build({ id }: { id: string }): TransactionQueryPart {\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\n buildMany(params: { id: string }[], alias = 'deleteMany'): TransactionQueryPart {\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\n buildAll(alias = 'deleteAll'): TransactionQueryPart {\n const operationName = `delete_${this.config.tableName}`;\n const uniqueAlias = `${alias}_${this.config.tableName}`;\n const variableDefinitions: string[] = [];\n const queryPart = `${uniqueAlias}: ${operationName}(where: {}) { affected_rows }`;\n const variables = {};\n return { queryPart, variableDefinitions, variables, operationName, alias };\n }\n}\n","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\nimport { omitBy, pick, snakeCase } from \"lodash-es\";\n\ninterface Options {\n operationName?: string;\n constraint?: string;\n columns?: string[];\n returningColumns?: string[];\n alias?: string;\n}\n\nexport class SaveMutationBuilder<E = any> {\n constructor(protected readonly config: TableConfig) { }\n\n build(data: Omit<E, 'createdAt' | 'updatedAt'>, {\n operationName = `insert_${this.config.tableName}`,\n constraint = this.config.pk,\n columns = this.config.columns,\n returningColumns = this.config.columns,\n alias = operationName,\n }: Options = {}): TransactionQueryPart {\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\n buildMany(entities: E[], {\n operationName = `insert_${this.config.tableName}`,\n constraint = this.config.pk,\n columns = this.config.columns,\n returningColumns = this.config.columns,\n alias = 'save'\n }: Options = {}): TransactionQueryPart {\n const objects = this.buildObjects(entities);\n const onConflict = this.buildOnConflict(entities[0] as any, 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\n protected buildObject(item: Omit<E, 'createdAt' | 'updatedAt'>): Partial<Omit<E, 'createdAt' | 'updatedAt'>> {\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') as Partial<Omit<E, 'createdAt' | 'updatedAt'>>;\n }\n\n protected buildObjects(items: Omit<E, 'createdAt' | 'updatedAt'>[]): Partial<Omit<E, 'createdAt' | 'updatedAt'>>[] {\n return items.map((item) => this.buildObject(item));\n }\n\n protected buildOnConflict(data: Omit<E, 'createdAt' | 'updatedAt'>, constraint: string, columns: string[]) {\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}","import { TableConfig, TransactionQueryPart } from '../../parts/_meta/graphql-query-part';\nimport { omitBy, pick, snakeCase } from \"lodash-es\";\n\nexport class UpdateMutationBuilder<E extends {id: string} = any> {\n constructor(protected readonly config: TableConfig) { }\n\n build(data: Partial<E> & { id: string }, alias = 'update'): TransactionQueryPart {\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\n buildMany(\n data: Partial<E>[],\n alias = 'updateMany'\n ): TransactionQueryPart {\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\n protected buildObject(item: Partial<E>): any {\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\n protected buildObjects(items: Partial<E>[]): any[] {\n return items.map((item) => ({ where: { id: { _eq: item.id } }, _set: this.buildObject(item) }));\n }\n}\n","import { CreateMutationBuilder } from \"./create.builder\";\nimport { UpdateMutationBuilder } from \"./update.builder\";\nimport { SaveMutationBuilder } from \"./save.builder\";\nimport { DeleteMutationBuilder } from \"./delete.builder\";\nimport { TableConfig } from \"../_meta/graphql-query-part\";\n\nexport class HasuraMutationBuilder<E extends { id: string }> {\n readonly create: CreateMutationBuilder<E>;\n readonly update: UpdateMutationBuilder<E>;\n readonly save: SaveMutationBuilder<E>;\n readonly delete_: DeleteMutationBuilder;\n \n constructor(config: TableConfig) {\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","import { HasuraMutationBuilder } from './mutations';\nimport { QueriesBuilder } from \"./queries\";\nimport { TableConfig } from \"./_meta/graphql-query-part\";\n\nexport class HasuraQueryPartsBuilder<E extends { id: string }> {\n readonly mutations: HasuraMutationBuilder<E>;\n readonly queries: QueriesBuilder<E>;\n\n constructor(config: TableConfig) {\n this.mutations = new HasuraMutationBuilder(config);\n this.queries = new QueriesBuilder(config);\n }\n}\n","import { TableConfig, TransactionQueryPart } from './parts/_meta/graphql-query-part';\nimport { HasuraQueryPartsBuilder } from './parts/parts.builder';\n\nexport class HasuraQueryBuilder<E extends {id: string}> {\n readonly parts: HasuraQueryPartsBuilder<E>\n\n constructor(config: TableConfig) {\n this.parts = new HasuraQueryPartsBuilder(config);\n }\n \n\n buildQuery(part: TransactionQueryPart): string {\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\n static buildMutation(part: TransactionQueryPart): string {\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\n buildMutation(part: TransactionQueryPart): string {\n return HasuraQueryBuilder.buildMutation(part);\n }\n\n buildTransactionQuery(parts: TransactionQueryPart[]): {query: string, variables: Record<string, any>} {\n const operationName = `Transaction`;\n const variableDefinitions = parts.reduce((acc, m) => [...acc, ...m.variableDefinitions], [] as string[]);\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 }), {} as Record<string, any>);\n return { query, variables };\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { ApolloBase, gql } from \"apollo-angular\";\nimport { HASURA_CONFIG } from \"./hasura.config\";\nimport { FetchPolicy, FetchResult, OperationVariables, ApolloQueryResult } from \"@apollo/client/core\";\nimport { lastValueFrom, Observable, switchMap } from \"rxjs\";\nimport { makeSubscription } from \"./builders/parts/queries\";\nimport { HasuraQueryBuilder, TransactionQueryPart } from \"./builders\";\nimport { ApolloClientManagerService } from \"./apollo/client-manager\";\nimport { GRAPHQL_HEADERS } from \"./hasura.di\";\n\n\n@Injectable({ providedIn: 'root' })\nexport class HasuraService {\n protected readonly getHeaders = inject(GRAPHQL_HEADERS);\n protected readonly apolloClientManager = inject(ApolloClientManagerService);\n protected readonly config = inject(HASURA_CONFIG);\n\n getApolloClient(): Observable<ApolloBase<any>> {\n return this.apolloClientManager.getClient(this.config.url, this.getHeaders);\n }\n\n subscribe<\n T = any,\n TVariables extends OperationVariables = OperationVariables\n >({\n query,\n variables,\n fetchPolicy = 'network-only',\n context\n }: {\n query: any,\n variables: TVariables,\n fetchPolicy?: FetchPolicy,\n context?: Record<string, unknown>\n }): Observable<FetchResult<T>> {\n return this.getApolloClient().pipe(\n switchMap((client) => client.subscribe<T, TVariables>({\n query: makeSubscription(query),\n variables: variables,\n fetchPolicy: fetchPolicy,\n context\n })),\n );\n }\n\n async mutate<T = any>(...args: Parameters<ApolloBase['mutate']>) {\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\n async mutateByQueryPart<T = any>(part: TransactionQueryPart): Promise<T> {\n const mutation = HasuraQueryBuilder.buildMutation(part);\n return this.mutate<T>({\n mutation: gql`${mutation}`,\n variables: part.variables,\n } as any).then((res: any) => {\n return res.data[part?.alias ?? part.operationName]\n });\n }\n\n async query<T = any>(...args: Parameters<ApolloBase['query']>): Promise<ApolloQueryResult<T>> {\n const client = await lastValueFrom(this.getApolloClient());\n \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 }) as Promise<ApolloQueryResult<T>>;\n }\n\n \n watchQuery<T = any, TVariables extends OperationVariables = OperationVariables>(options: {\n query: any,\n variables?: TVariables,\n fetchPolicy?: FetchPolicy\n }): Observable<any> {\n const { query, variables, fetchPolicy = 'no-cache' } = options;\n return this.getApolloClient().pipe(\n switchMap((client) => client.watchQuery({\n query,\n variables,\n fetchPolicy\n } as any).valueChanges)\n );\n }\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { Repository, Type } from \"@nx-ddd/common/domain\";\nimport { gql } from \"@apollo/client/core\";\nimport { map, Observable } from \"rxjs\";\nimport { getConverter, HasuraConverter } from \"./converter\";\nimport { HasuraService } from \"./hasura.service\";\nimport { HasuraQueryBuilder } from \"./builders\";\nimport { getFields, getTableName } from \"./decorators\";\n\nexport abstract class _HasuraRepository<E extends {id: string}> extends Repository<E> {\n protected abstract hasura: HasuraService;\n protected abstract converter: HasuraConverter<E>;\n readonly abstract updateColumns: string[];\n readonly abstract tableName: string;\n\n get pkey(): string {\n return `${this.tableName}_pkey`;\n }\n\n getQueryBuilder() {\n return new HasuraQueryBuilder({ tableName: this.tableName, pk: this.pkey, columns: this.updateColumns });\n }\n\n async get(params: {id: string}) {\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 } as any)\n .then((res: any) => this.converter.fromHasura(res.data[part.operationName]));\n }\n\n async list(): Promise<E[]> {\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 } as any).then((res: any) => this.converter.fromHasuraMany(res.data[part.operationName]));\n }\n\n listChanges(): Observable<E[]> {\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(\n map((res: any) => this.converter.fromHasuraMany(res.data[part.operationName])),\n );\n }\n\n async create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E> {\n const converted = this.converter.toHasura(data as E);\n const part = this.getQueryBuilder().parts.mutations.create.build(converted as any);\n return this.hasura.mutateByQueryPart(part).then(result => {\n return this.converter.fromHasura(result.returning[0]);\n });\n }\n\n async createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]> {\n const items = this.converter.toHasuraMany(data as E[]);\n const part = this.getQueryBuilder().parts.mutations.create.buildMany(items as any[]);\n return this.hasura.mutateByQueryPart(part).then((result) => {\n return this.converter.fromHasuraMany(result.returning);\n });\n }\n\n async update(data: Partial<E> & {id: string}): Promise<void>{\n const item = this.converter.toHasura(data as E);\n const part = this.getQueryBuilder().parts.mutations.update.build(item as any);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n\n async updateMany(data: Partial<E>[]): Promise<void> {\n const items = this.converter.toHasuraMany(data as E[]);\n const part = this.getQueryBuilder().parts.mutations.update.buildMany(items as any[]);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows).then(() => {});\n }\n\n async delete(params: {id: string}): Promise<void> {\n const part = this.getQueryBuilder().parts.mutations.delete_.build(params);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n\n async deleteMany(params: {id: string}[]): Promise<number> {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildMany(params);\n return this.hasura.mutateByQueryPart(part).then((result) => result.affected_rows);\n }\n\n async deleteAll(): Promise<void> {\n const part = this.getQueryBuilder().parts.mutations.delete_.buildAll();\n console.debug('part:', part);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n\n async save(data: Partial<E>) {\n const item = this.converter.toHasura(data as E);\n const part = this.getQueryBuilder().parts.mutations.save.build(item as any);\n return this.hasura.mutateByQueryPart(part).then((res) => res.returning[0]);\n }\n\n async saveMany(entities: E[]): Promise<void> {\n const items = this.converter.toHasuraMany(entities as E[]);\n const part = this.getQueryBuilder().parts.mutations.save.buildMany(items as any[]);\n return this.hasura.mutateByQueryPart(part).then(() => {});\n }\n}\n\n@Injectable()\nexport abstract class HasuraRepository<E extends {id: string}> extends _HasuraRepository<E> {\n protected hasura = inject(HasuraService);\n}\n\nexport function getHasuraRepository<E extends { id: string }>(Entity: Type<E>, deps: {hasura: HasuraService}): _HasuraRepository<E> {\n class Repository extends _HasuraRepository<E> {\n protected hasura = deps.hasura;\n protected converter = getConverter<E>(Entity);\n readonly tableName = getTableName(Entity);\n readonly updateColumns = getFields(Entity, { case: 'snake' });\n }\n return new Repository();\n}\n\nexport function injectHasuraRepository<E extends { id: string }>(Entity: Type<E>): _HasuraRepository<E> {\n return getHasuraRepository(Entity, { hasura: inject(HasuraService) });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ApolloLinkService","camelCase","typeConverters.toTimestamp","typeConverters.toDate","typeConverters.toNumber","typeConverters.toHasuraLocation","typeConverters.fromHasuraLocation","InMemoryCache","gql"],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@nx-ddd/hasura",
3
- "version": "19.51.0",
3
+ "version": "19.80.0",
4
4
  "license": "MIT",
5
5
  "peerDependencies": {
6
- "@nx-ddd/core": "19.51.0"
6
+ "@nx-ddd/core": "19.80.0"
7
7
  },
8
8
  "dependencies": {
9
9
  "tslib": "^2.3.0"
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura-apollo-link.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;;;"}
1
+ {"version":3,"file":"nx-ddd-hasura-apollo-link.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;;;;;;;AA0CD;;;"}
@@ -1,8 +1,5 @@
1
1
  import { Provider } from '@angular/core';
2
2
 
3
- /**
4
- * Provides all necessary dependencies for Hasura in browser environments
5
- */
6
3
  declare function provideHasuraBrowser(): Provider[];
7
4
 
8
5
  export { provideHasuraBrowser };
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura-browser.d.ts","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/browser/providers.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;;AAEG;AACH,iBAAA,oBAAA,IAAA,QAAA;;;;"}
1
+ {"version":3,"file":"nx-ddd-hasura-browser.d.ts","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/browser/providers.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,iBAAA,oBAAA,IAAA,QAAA;;;;"}
@@ -1,8 +1,5 @@
1
1
  import { Provider } from '@angular/core';
2
2
 
3
- /**
4
- * Provides all necessary dependencies for Hasura in Node.js/server environments
5
- */
6
3
  declare function provideHasuraServer(): Provider[];
7
4
 
8
5
  export { provideHasuraServer };
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura-server.d.ts","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/server/providers.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA;;AAEG;AACH,iBAAA,mBAAA,IAAA,QAAA;;;;"}
1
+ {"version":3,"file":"nx-ddd-hasura-server.d.ts","sources":["../../../../../packages/@nx-ddd/hasura/src/lib/server/providers.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKA,iBAAA,mBAAA,IAAA,QAAA;;;;"}
@@ -21,7 +21,6 @@ interface HasuraConfig {
21
21
  declare const HASURA_CONFIG: InjectionToken<HasuraConfig>;
22
22
  declare function provideHasuraConfig(config: HasuraConfig): Provider[];
23
23
 
24
- /** @deprecated use ApolloClientManagerService instead */
25
24
  declare class ApolloMultiService {
26
25
  readonly apollo: Apollo;
27
26
  protected readonly linkService: ApolloLinkService$1;
@@ -62,16 +61,13 @@ declare class ApolloLinkService {
62
61
  declare class ApolloClientManagerService {
63
62
  readonly apollo: Apollo;
64
63
  protected readonly linkService: ApolloLinkService;
65
- protected readonly crypto: any;
64
+ protected readonly crypto: Crypto;
66
65
  protected buildClientName(endpoint: string, headers: Record<string, string>): Promise<string>;
67
66
  getClient(endpoint: string, getHeaders: GetHeaders): Observable<ApolloBase<any>>;
68
67
  static ɵfac: i0.ɵɵFactoryDeclaration<ApolloClientManagerService, never>;
69
68
  static ɵprov: i0.ɵɵInjectableDeclaration<ApolloClientManagerService>;
70
69
  }
71
70
 
72
- /**
73
- * Hasura converter interface for entity transformation
74
- */
75
71
  interface HasuraConverter<E> {
76
72
  toHasura(entity: E): object;
77
73
  toHasuraMany(entities: E[]): object[];
@@ -79,37 +75,16 @@ interface HasuraConverter<E> {
79
75
  fromHasuraMany(entities: object[]): E[];
80
76
  }
81
77
 
82
- /**
83
- * Converts a Hasura object to an entity instance
84
- */
85
78
  declare function fromHasura<T>(_object: any, type: Type<T>): T;
86
79
 
87
- /**
88
- * Options for toHasura conversion
89
- */
90
80
  interface ToHasuraOptions {
91
81
  extraFunc?: (obj: any) => any;
92
82
  }
93
- /**
94
- * Converts an entity to Hasura format
95
- */
96
83
  declare function toHasura<E>(object: E, type: Type<E>, { extraFunc }?: ToHasuraOptions): Record<string, unknown>;
97
84
 
98
- /**
99
- * Converts a Date or dayjs object to Hasura timestamp format
100
- */
101
85
  declare function toTimestamp(date: dayjs.Dayjs | Date | null): string | null;
102
- /**
103
- * Converts a Date, dayjs, or string to Hasura date format
104
- */
105
86
  declare function toDate(date: dayjs.Dayjs | Date | string | null | undefined): string | null | undefined;
106
- /**
107
- * Converts a value to a number, handling various input types
108
- */
109
87
  declare function toNumber(value: any): number | null | undefined;
110
- /**
111
- * Converts a lat/lng position to Hasura GeoJSON Point format
112
- */
113
88
  declare function toHasuraLocation(position: {
114
89
  lat: number;
115
90
  lng: number;
@@ -123,9 +98,6 @@ declare function toHasuraLocation(position: {
123
98
  };
124
99
  coordinates: number[];
125
100
  } | null;
126
- /**
127
- * Converts a Hasura GeoJSON Point to a lat/lng object
128
- */
129
101
  declare function fromHasuraLocation(location: {
130
102
  type: 'Point';
131
103
  crs: {
@@ -140,39 +112,19 @@ declare function fromHasuraLocation(location: {
140
112
  lng: number;
141
113
  } | null;
142
114
 
143
- /**
144
- * Type definitions for camelCase to snake_case conversion
145
- */
146
115
  type CamelToSnakeCase<S extends string> = S extends `${infer T}${infer U}` ? U extends Uncapitalize<U> ? `${Lowercase<T>}${CamelToSnakeCase<U>}` : `${Lowercase<T>}_${CamelToSnakeCase<U>}` : S;
147
116
  type DeepCamelToSnake<T> = T extends Date ? T : T extends Array<infer U> ? DeepCamelToSnake<U>[] : T extends object ? {
148
117
  [K in keyof T as K extends string ? CamelToSnakeCase<K> : K]: DeepCamelToSnake<T[K]>;
149
118
  } : T;
150
- /**
151
- * Recursively converts object keys from camelCase to snake_case
152
- */
153
119
  declare function deepCamelToSnakeCase<T>(obj: T): DeepCamelToSnake<T>;
154
- /**
155
- * Type definitions for snake_case to camelCase conversion
156
- */
157
120
  type SnakeToCamelCase<S extends string> = S extends `${infer T}_${infer U}` ? `${T}${Capitalize<SnakeToCamelCase<U>>}` : S;
158
121
  type DeepSnakeToCamel<T> = T extends Date ? T : T extends Array<infer U> ? DeepSnakeToCamel<U>[] : T extends object ? {
159
122
  [K in keyof T as K extends string ? SnakeToCamelCase<K> : K]: DeepSnakeToCamel<T[K]>;
160
123
  } : T;
161
- /**
162
- * Recursively converts object keys from snake_case to camelCase
163
- */
164
124
  declare function deepSnakeToCamelCase<T>(obj: T): DeepSnakeToCamel<T>;
165
125
 
166
- /**
167
- * Creates a HasuraConverter for the given entity type
168
- */
169
126
  declare function getConverter<T>(type: Type<T>): HasuraConverter<T>;
170
- /** @deprecated use `getConverter` instead */
171
127
  declare const makeConverter: typeof getConverter;
172
- /**
173
- * @deprecated Use individual functions instead
174
- * HasuraUtils is kept for backward compatibility
175
- */
176
128
  declare class HasuraUtils {
177
129
  static toTimestamp: typeof toTimestamp;
178
130
  static toDate: typeof toDate;
@@ -239,11 +191,7 @@ declare const Hasura: {
239
191
  type PromiseOrObservable<T> = Promise<T> | Observable<T> | T;
240
192
  declare const GRAPHQL_HEADERS: InjectionToken<GetHeaders>;
241
193
  declare function provideHasuraGetHeaders(useFactory: () => () => PromiseOrObservable<Record<string, string>>): Provider;
242
- /**
243
- * @deprecated use provideHasuraGetHeaders instead
244
- */
245
194
  declare const provideGraphqlHeaders: typeof provideHasuraGetHeaders;
246
- /** @deprecated */
247
195
  declare function provideApolloOptions(): {
248
196
  provide: InjectionToken<any>;
249
197
  useFactory: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"nx-ddd-hasura.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;;;;;;;;;;;;;;;;;;;;;;;;AC5EnB;AAEA;AAKA;AAQA;;AAEG;AACH;AAEA;AACA;;;;;AAKC;AAED;AAcA;;AChDA;;AAIE;;;AAQD;;;;;ACdC;;;AAID;;;;;AAOA;;ACXD;AAEA;;AAAyD;AAC3C;AAAmB;;AAW/B;AASA;AAMA;AAGD;;ACjCD;AACc;AAAmB;AAE/B;;AAA4B;;;AAOI;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;;;;;"}
1
+ {"version":3,"file":"nx-ddd-hasura.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;;ACFA;;AAGE;AAEA;;;;AAkBD;AAGK;;AAA4C;AAClD;;ACnCA;AACM;AAEN;AAMA;;ACOA;;AAGE;;;;;;;AAA4C;AAE5C;;;;;;;AA0CD;;AC1DD;;AAGE;AACA;AAEgB;AAiBhB;;;AAoBD;;ACjDK;AACJ;;AAEA;;AAED;;ACgCD;;ACxBA;;AAEC;AAGD;;ACdA;AAWA;AAeA;AAQA;;;;;;;;;;;;AAUC;AAGD;;AAEE;;AAEE;;;;AAIF;AACD;;;AAMA;;AChED;AAOA;;AAK4F;AAI5F;AAeA;AAKA;;AAK4F;AAS5F;;ACvCA;AAkBA;AAGA;;;;;;;;AAQC;;AC9BD;AAQA;AAiBA;;AAEE;;AAiCF;AAMA;AAhBuB;;;;;;;;;;;;;;;;;;;;;AAwBJ;;;;;;;;;;;;;;;;;;;;;;;;AC5EnB;AAEA;AAKA;AASA;AAGA;;;;;AAKC;AAED;AAcA;;AC9CA;;AAIE;;;AAQD;;;;;ACdC;;;AAID;;;;;AAOA;;ACXD;AAEA;;AAAyD;AAC3C;AAAmB;;AAW/B;AASA;AAMA;AAGD;;ACjCD;AACc;AAAmB;AAE/B;;AAA4B;;;AAOI;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;;;;;"}