@nx-ddd/common 19.0.0-preview.8 → 19.1.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.
Files changed (182) hide show
  1. package/domain/index.d.ts +117 -2
  2. package/fesm2022/nx-ddd-common-domain.mjs +262 -0
  3. package/fesm2022/nx-ddd-common-domain.mjs.map +1 -0
  4. package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-impl.mjs +89 -0
  5. package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-impl.mjs.map +1 -0
  6. package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-token.mjs +10 -0
  7. package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-token.mjs.map +1 -0
  8. package/fesm2022/nx-ddd-common-infrastructure-externals-chromium.mjs +10 -0
  9. package/fesm2022/nx-ddd-common-infrastructure-externals-chromium.mjs.map +1 -0
  10. package/fesm2022/nx-ddd-common-infrastructure-externals-cloud-storage.mjs +46 -0
  11. package/fesm2022/nx-ddd-common-infrastructure-externals-cloud-storage.mjs.map +1 -0
  12. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto-impl-browser.mjs +12 -0
  13. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto-impl-browser.mjs.map +1 -0
  14. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto-impl-server.mjs +13 -0
  15. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto-impl-server.mjs.map +1 -0
  16. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto-token.mjs +10 -0
  17. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto-token.mjs.map +1 -0
  18. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto.mjs +10 -0
  19. package/fesm2022/nx-ddd-common-infrastructure-externals-crypto.mjs.map +1 -0
  20. package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs +16 -0
  21. package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs.map +1 -0
  22. package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs +10 -0
  23. package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs.map +1 -0
  24. package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin.mjs +13 -0
  25. package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin.mjs.map +1 -0
  26. package/fesm2022/nx-ddd-common-infrastructure-externals-openai-impl.mjs +37 -0
  27. package/fesm2022/nx-ddd-common-infrastructure-externals-openai-impl.mjs.map +1 -0
  28. package/fesm2022/nx-ddd-common-infrastructure-externals-openai-token.mjs +10 -0
  29. package/fesm2022/nx-ddd-common-infrastructure-externals-openai-token.mjs.map +1 -0
  30. package/fesm2022/nx-ddd-common-infrastructure-externals-openai.mjs +14 -0
  31. package/fesm2022/nx-ddd-common-infrastructure-externals-openai.mjs.map +1 -0
  32. package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-impl.mjs +33 -0
  33. package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-impl.mjs.map +1 -0
  34. package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-token.mjs +10 -0
  35. package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-token.mjs.map +1 -0
  36. package/fesm2022/nx-ddd-common-infrastructure-externals-stripe.mjs +13 -0
  37. package/fesm2022/nx-ddd-common-infrastructure-externals-stripe.mjs.map +1 -0
  38. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket-impl-browser.mjs +15 -0
  39. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket-impl-browser.mjs.map +1 -0
  40. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket-impl-server.mjs +21 -0
  41. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket-impl-server.mjs.map +1 -0
  42. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket-token.mjs +11 -0
  43. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket-token.mjs.map +1 -0
  44. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket.mjs +11 -0
  45. package/fesm2022/nx-ddd-common-infrastructure-externals-websocket.mjs.map +1 -0
  46. package/fesm2022/nx-ddd-common-infrastructure-logging.mjs +129 -0
  47. package/fesm2022/nx-ddd-common-infrastructure-logging.mjs.map +1 -0
  48. package/fesm2022/nx-ddd-common-infrastructure-queries.mjs +54 -0
  49. package/fesm2022/nx-ddd-common-infrastructure-queries.mjs.map +1 -0
  50. package/fesm2022/nx-ddd-common-infrastructure.mjs +31 -0
  51. package/fesm2022/nx-ddd-common-infrastructure.mjs.map +1 -0
  52. package/fesm2022/nx-ddd-common.mjs +58 -0
  53. package/fesm2022/nx-ddd-common.mjs.map +1 -0
  54. package/index.d.ts +8 -1
  55. package/infrastructure/externals/chromium/impl/index.d.ts +21 -0
  56. package/infrastructure/externals/chromium/index.d.ts +6 -1
  57. package/infrastructure/externals/chromium/token/index.d.ts +5 -0
  58. package/infrastructure/externals/cloud-storage/index.d.ts +19 -1
  59. package/infrastructure/externals/crypto/impl/browser/index.d.ts +5 -0
  60. package/infrastructure/externals/crypto/impl/server/index.d.ts +5 -0
  61. package/infrastructure/externals/crypto/index.d.ts +6 -0
  62. package/infrastructure/externals/crypto/token/index.d.ts +6 -0
  63. package/infrastructure/externals/firebase-admin/impl/index.d.ts +10 -0
  64. package/infrastructure/externals/firebase-admin/index.d.ts +5 -1
  65. package/infrastructure/externals/firebase-admin/token/index.d.ts +12 -0
  66. package/infrastructure/externals/openai/impl/index.d.ts +18 -0
  67. package/infrastructure/externals/openai/index.d.ts +7 -2
  68. package/infrastructure/externals/openai/token/index.d.ts +5 -0
  69. package/infrastructure/externals/stripe/impl/index.d.ts +28 -0
  70. package/infrastructure/externals/stripe/index.d.ts +5 -2
  71. package/infrastructure/externals/stripe/token/index.d.ts +5 -0
  72. package/infrastructure/externals/websocket/impl/browser/index.d.ts +5 -0
  73. package/infrastructure/externals/websocket/impl/server/index.d.ts +5 -0
  74. package/infrastructure/externals/websocket/index.d.ts +13 -0
  75. package/infrastructure/externals/websocket/token/index.d.ts +13 -0
  76. package/infrastructure/index.d.ts +37 -3
  77. package/infrastructure/logging/index.d.ts +114 -0
  78. package/infrastructure/queries/index.d.ts +50 -1
  79. package/package.json +118 -27
  80. package/README.md +0 -40
  81. package/domain/index.js +0 -6
  82. package/domain/index.js.map +0 -1
  83. package/domain/models.d.ts +0 -70
  84. package/domain/models.js +0 -129
  85. package/domain/models.js.map +0 -1
  86. package/domain/repository.d.ts +0 -11
  87. package/domain/repository.js +0 -27
  88. package/domain/repository.js.map +0 -1
  89. package/domain/resolver.d.ts +0 -8
  90. package/domain/resolver.js +0 -25
  91. package/domain/resolver.js.map +0 -1
  92. package/index.js +0 -5
  93. package/index.js.map +0 -1
  94. package/infrastructure/converter.d.ts +0 -4
  95. package/infrastructure/converter.js +0 -7
  96. package/infrastructure/converter.js.map +0 -1
  97. package/infrastructure/externals/backup/backup.service.d.ts +0 -24
  98. package/infrastructure/externals/backup/backup.service.js +0 -67
  99. package/infrastructure/externals/backup/backup.service.js.map +0 -1
  100. package/infrastructure/externals/backup/index.d.ts +0 -1
  101. package/infrastructure/externals/backup/index.js +0 -5
  102. package/infrastructure/externals/backup/index.js.map +0 -1
  103. package/infrastructure/externals/chromium/chromium.service.impl.d.ts +0 -18
  104. package/infrastructure/externals/chromium/chromium.service.impl.js +0 -58
  105. package/infrastructure/externals/chromium/chromium.service.impl.js.map +0 -1
  106. package/infrastructure/externals/chromium/chromuim.service.d.ts +0 -9
  107. package/infrastructure/externals/chromium/chromuim.service.js +0 -6
  108. package/infrastructure/externals/chromium/chromuim.service.js.map +0 -1
  109. package/infrastructure/externals/chromium/index.js +0 -5
  110. package/infrastructure/externals/chromium/index.js.map +0 -1
  111. package/infrastructure/externals/cloud-storage/cloud-storage.service.d.ts +0 -13
  112. package/infrastructure/externals/cloud-storage/cloud-storage.service.js +0 -43
  113. package/infrastructure/externals/cloud-storage/cloud-storage.service.js.map +0 -1
  114. package/infrastructure/externals/cloud-storage/index.js +0 -5
  115. package/infrastructure/externals/cloud-storage/index.js.map +0 -1
  116. package/infrastructure/externals/firebase-admin/firebase-admin.service.d.ts +0 -9
  117. package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.d.ts +0 -5
  118. package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.js +0 -13
  119. package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.js.map +0 -1
  120. package/infrastructure/externals/firebase-admin/firebase-admin.service.js +0 -11
  121. package/infrastructure/externals/firebase-admin/firebase-admin.service.js.map +0 -1
  122. package/infrastructure/externals/firebase-admin/index.js +0 -5
  123. package/infrastructure/externals/firebase-admin/index.js.map +0 -1
  124. package/infrastructure/externals/openai/index.js +0 -6
  125. package/infrastructure/externals/openai/index.js.map +0 -1
  126. package/infrastructure/externals/openai/open-ai.config.d.ts +0 -7
  127. package/infrastructure/externals/openai/open-ai.config.js +0 -19
  128. package/infrastructure/externals/openai/open-ai.config.js.map +0 -1
  129. package/infrastructure/externals/openai/open-ai.service.d.ts +0 -4
  130. package/infrastructure/externals/openai/open-ai.service.impl.d.ts +0 -4
  131. package/infrastructure/externals/openai/open-ai.service.impl.js +0 -18
  132. package/infrastructure/externals/openai/open-ai.service.impl.js.map +0 -1
  133. package/infrastructure/externals/openai/open-ai.service.js +0 -11
  134. package/infrastructure/externals/openai/open-ai.service.js.map +0 -1
  135. package/infrastructure/externals/stripe/index.js +0 -6
  136. package/infrastructure/externals/stripe/index.js.map +0 -1
  137. package/infrastructure/externals/stripe/stripe.config.d.ts +0 -17
  138. package/infrastructure/externals/stripe/stripe.config.js +0 -15
  139. package/infrastructure/externals/stripe/stripe.config.js.map +0 -1
  140. package/infrastructure/externals/stripe/stripe.service.d.ts +0 -4
  141. package/infrastructure/externals/stripe/stripe.service.impl.d.ts +0 -5
  142. package/infrastructure/externals/stripe/stripe.service.impl.js +0 -44
  143. package/infrastructure/externals/stripe/stripe.service.impl.js.map +0 -1
  144. package/infrastructure/externals/stripe/stripe.service.js +0 -11
  145. package/infrastructure/externals/stripe/stripe.service.js.map +0 -1
  146. package/infrastructure/index.js +0 -7
  147. package/infrastructure/index.js.map +0 -1
  148. package/infrastructure/queries/cached-query.d.ts +0 -45
  149. package/infrastructure/queries/cached-query.js +0 -47
  150. package/infrastructure/queries/cached-query.js.map +0 -1
  151. package/infrastructure/queries/index.js +0 -5
  152. package/infrastructure/queries/index.js.map +0 -1
  153. package/infrastructure/repo/excel/excel.converter.d.ts +0 -29
  154. package/infrastructure/repo/excel/excel.converter.js +0 -71
  155. package/infrastructure/repo/excel/excel.converter.js.map +0 -1
  156. package/infrastructure/repo/excel/excel.decorators.d.ts +0 -29
  157. package/infrastructure/repo/excel/excel.decorators.js +0 -55
  158. package/infrastructure/repo/excel/excel.decorators.js.map +0 -1
  159. package/infrastructure/repo/excel/excel.repository.d.ts +0 -14
  160. package/infrastructure/repo/excel/excel.repository.js +0 -32
  161. package/infrastructure/repo/excel/excel.repository.js.map +0 -1
  162. package/infrastructure/repo/excel/excel.service.impl.d.ts +0 -17
  163. package/infrastructure/repo/excel/excel.service.impl.js +0 -61
  164. package/infrastructure/repo/excel/excel.service.impl.js.map +0 -1
  165. package/infrastructure/repo/excel/index.d.ts +0 -3
  166. package/infrastructure/repo/excel/index.js +0 -7
  167. package/infrastructure/repo/excel/index.js.map +0 -1
  168. package/infrastructure/synchronizer.d.ts +0 -16
  169. package/infrastructure/synchronizer.js +0 -18
  170. package/infrastructure/synchronizer.js.map +0 -1
  171. package/utilities/generate-id.d.ts +0 -1
  172. package/utilities/generate-id.js +0 -23
  173. package/utilities/generate-id.js.map +0 -1
  174. package/utilities/index.d.ts +0 -2
  175. package/utilities/index.js +0 -6
  176. package/utilities/index.js.map +0 -1
  177. package/utilities/message.d.ts +0 -1
  178. package/utilities/message.js +0 -26
  179. package/utilities/message.js.map +0 -1
  180. package/utilities/to-object.d.ts +0 -1
  181. package/utilities/to-object.js +0 -14
  182. package/utilities/to-object.js.map +0 -1
package/domain/index.d.ts CHANGED
@@ -1,2 +1,117 @@
1
- export * from './models';
2
- export * from './resolver';
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+
4
+ type Type<E> = {
5
+ new (...args: any[]): E;
6
+ };
7
+ type DomainLangMap<Entity> = Partial<{
8
+ [K in keyof Entity]: string;
9
+ }>;
10
+ interface Target {
11
+ constructor: {
12
+ [Domain.ANNOTATIONS]?: DomainAnnotation[];
13
+ };
14
+ }
15
+ type OmitGetter<T> = {
16
+ [P in keyof T as string extends P ? never : number extends P ? never : P]: T[P];
17
+ };
18
+ type DeepPartial<T> = {
19
+ [P in keyof T]?: DeepPartial<T[P]>;
20
+ };
21
+ interface BaseDomainAnnotation {
22
+ type: 'model:lang' | 'prop:lang' | 'prop:type';
23
+ }
24
+ interface DomainModelLangAnnotation extends BaseDomainAnnotation {
25
+ type: 'model:lang';
26
+ modelName: string;
27
+ name: string;
28
+ typeFactory?: () => any;
29
+ }
30
+ interface DomainPropLangAnnotation extends BaseDomainAnnotation {
31
+ type: 'prop:lang';
32
+ propName: string;
33
+ name: string;
34
+ }
35
+ interface DomainPropTypeAnnotation extends BaseDomainAnnotation {
36
+ type: 'prop:type';
37
+ propName: string;
38
+ typeFactory: () => any;
39
+ }
40
+ type DomainAnnotation = DomainModelLangAnnotation | DomainPropLangAnnotation | DomainPropTypeAnnotation;
41
+ declare function getAnnotations<E>(target: Type<E>): DomainAnnotation[];
42
+ declare class Domain {
43
+ static readonly ANNOTATIONS: unique symbol;
44
+ static Lang(name: string): (target: any, propName: string) => void;
45
+ static Type<T>(typeFactory?: () => T): (target: any, propName: string) => void;
46
+ static Entity(propsOrName: {
47
+ name: string;
48
+ } | string): (target: any) => void;
49
+ static registerAnnotation(constructor: Target['constructor'], annotation: DomainAnnotation): void;
50
+ }
51
+
52
+ interface Entity<Id = string> {
53
+ id: Id | null;
54
+ }
55
+ declare class Entity {
56
+ static fromObj<T extends Entity = Entity>(obj: object): T;
57
+ static toObj(entity: Entity): Entity;
58
+ }
59
+
60
+ declare function getEntityName<E>(target: Type<E>): string;
61
+
62
+ type LangMap<E> = Partial<Record<keyof E | string, string>>;
63
+ declare function getLangMap<E>(domain: Type<E>, mergeObj?: object): LangMap<E>;
64
+
65
+ declare function getModelName<E>(target: Type<E>): string;
66
+
67
+ declare function getProps<E>(target: Type<E>, deps?: number, path?: string): string[];
68
+
69
+ declare function TransformToDayjs(): PropertyDecorator;
70
+ declare function TransformToDate(): PropertyDecorator;
71
+
72
+ type PartialWithId<E extends Entity> = Pick<E, 'id'> & Partial<E>;
73
+ declare abstract class Repository<E extends {
74
+ id: string;
75
+ }> {
76
+ abstract get(params: {
77
+ id: string;
78
+ }): Promise<E>;
79
+ abstract list(): Promise<E[]>;
80
+ abstract listChanges(): Observable<E[]>;
81
+ abstract create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E>;
82
+ abstract createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]>;
83
+ abstract update(data: Partial<E> & {
84
+ id: string;
85
+ }): Promise<void>;
86
+ abstract updateMany(data: Partial<E>[]): Promise<void>;
87
+ abstract save(data: Partial<E>): Promise<boolean | [E, boolean]>;
88
+ abstract saveMany(entities: E[]): Promise<void>;
89
+ abstract delete(params: {
90
+ id: string;
91
+ }): Promise<void>;
92
+ abstract deleteMany(params: {
93
+ id: string;
94
+ }[]): Promise<number>;
95
+ abstract deleteAll(): Promise<void>;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<Repository<any>, never>;
97
+ static ɵprov: i0.ɵɵInjectableDeclaration<Repository<any>>;
98
+ }
99
+
100
+ declare abstract class BaseResolver<E> {
101
+ protected entiityMap: Map<string, Map<string, any>>;
102
+ protected makeEntityMap(entities: E[], key: keyof E): Map<string, E>;
103
+ protected setEntityMap(name: string, entityMap: Map<string, E>): void;
104
+ protected getEntityMap(name: string): Map<string, E>;
105
+ protected registerEntityMap(name: string, entities: E[], key: keyof E): void;
106
+ protected getEntity(name: string, key: string): E;
107
+ abstract resolve(entity: any): any;
108
+ abstract resolveMany(entities: any[]): any[];
109
+ }
110
+ declare class Resolver<E> extends BaseResolver<E> {
111
+ constructor(params?: Record<string, any[]>);
112
+ resolve(entity: any): any;
113
+ resolveMany(entities: any[]): any[];
114
+ }
115
+
116
+ export { BaseResolver, Domain, Entity, Repository, Resolver, TransformToDate, TransformToDayjs, getAnnotations, getEntityName, getLangMap, getModelName, getProps };
117
+ export type { DeepPartial, DomainAnnotation, DomainLangMap, DomainModelLangAnnotation, DomainPropLangAnnotation, DomainPropTypeAnnotation, LangMap, OmitGetter, PartialWithId, Type };
@@ -0,0 +1,262 @@
1
+ import 'reflect-metadata';
2
+ import { toObject } from '@nx-ddd/common';
3
+ import { flatten } from 'flat';
4
+ import { merge } from 'lodash-es';
5
+ import { Transform } from 'class-transformer';
6
+ import { parseISO } from 'date-fns';
7
+ import dayjs from 'dayjs';
8
+ import * as i0 from '@angular/core';
9
+ import { Injectable } from '@angular/core';
10
+
11
+ function getAnnotations(target) {
12
+ return target?.[Domain.ANNOTATIONS] ?? [];
13
+ }
14
+ class Domain {
15
+ static ANNOTATIONS = Symbol('annotations');
16
+ static Lang(name) {
17
+ return (target, propName) => {
18
+ this.registerAnnotation(target.constructor, { propName, type: 'prop:lang', name });
19
+ };
20
+ }
21
+ static Type(typeFactory) {
22
+ return (target, propName) => {
23
+ if (!typeFactory) {
24
+ const type = Reflect.getMetadata('design:type', target, propName);
25
+ typeFactory = () => type;
26
+ }
27
+ this.registerAnnotation(target.constructor, { propName, typeFactory, type: 'prop:type' });
28
+ };
29
+ }
30
+ // classをデコレートしてnameをアノテーションする
31
+ static Entity(propsOrName) {
32
+ const props = typeof propsOrName === 'string' ? { name: propsOrName } : propsOrName;
33
+ return (target) => {
34
+ this.registerAnnotation(target, { name: props.name, type: 'model:lang', modelName: target.name });
35
+ };
36
+ }
37
+ static registerAnnotation(constructor, annotation) {
38
+ constructor[this.ANNOTATIONS] ??= [];
39
+ constructor[this.ANNOTATIONS].push(annotation);
40
+ }
41
+ }
42
+
43
+ class Entity {
44
+ static fromObj(obj) {
45
+ return Object.assign(new this(), {
46
+ id: null,
47
+ createdAt: null,
48
+ updatedAt: null,
49
+ ...obj
50
+ });
51
+ }
52
+ static toObj(entity) {
53
+ return toObject(entity);
54
+ }
55
+ }
56
+
57
+ function getEntityName(target) {
58
+ return getAnnotations(target).find(annotation => {
59
+ return annotation.type === 'model:lang';
60
+ })?.name ?? target.name;
61
+ }
62
+
63
+ function getLangMap(domain, mergeObj = {}) {
64
+ return flatten(merge(_getLangMap(domain), mergeObj));
65
+ }
66
+ function _getLangMap(target) {
67
+ // エンティティ名を取得
68
+ const entityAnnotation = getAnnotations(target).find(a => a.type === 'model:lang');
69
+ const entityName = entityAnnotation?.name || '';
70
+ const result = getAnnotations(target).reduce((acc, annotation) => {
71
+ switch (annotation.type) {
72
+ case 'prop:lang': {
73
+ acc[annotation.propName] = annotation.name;
74
+ break;
75
+ }
76
+ case 'prop:type': {
77
+ if (annotation.typeFactory) {
78
+ const type = annotation.typeFactory();
79
+ if (type) {
80
+ const childTypeAnnotation = getAnnotations(type).find(a => a.type === 'model:lang');
81
+ const childEntityName = childTypeAnnotation?.name || '';
82
+ // 子タイプのプロパティを取得
83
+ const childProps = _getLangMap(type);
84
+ // 子プロパティを親プロパティ名でネスト
85
+ for (const [childKey, childValue] of Object.entries(childProps)) {
86
+ if (childEntityName && typeof childValue === 'string') {
87
+ acc[`${annotation.propName}.${childKey}`] = `${childEntityName} / ${childValue}`;
88
+ }
89
+ else {
90
+ acc[`${annotation.propName}.${childKey}`] = childValue;
91
+ }
92
+ }
93
+ }
94
+ }
95
+ break;
96
+ }
97
+ }
98
+ return acc;
99
+ }, {});
100
+ return result;
101
+ }
102
+
103
+ function getModelName(target) {
104
+ return getAnnotations(target).find(annotation => {
105
+ return annotation.type === 'model:lang';
106
+ })?.name ?? target.name;
107
+ }
108
+
109
+ function getProps(target, deps = 3, path = '') {
110
+ return getAnnotations(target).map((annotation) => {
111
+ switch (annotation.type) {
112
+ case 'prop:lang': {
113
+ return `${path}${annotation.propName}`;
114
+ }
115
+ case 'prop:type': {
116
+ if (deps > 0) {
117
+ const type = annotation.typeFactory?.();
118
+ return getProps(type, deps - 1, `${path}${annotation.propName}.`);
119
+ }
120
+ return [];
121
+ }
122
+ default: return [];
123
+ }
124
+ }).flat();
125
+ }
126
+
127
+ function TransformToDayjs() {
128
+ return Transform(({ value }) => {
129
+ if (typeof value === 'undefined')
130
+ return undefined;
131
+ if (dayjs(value).isValid())
132
+ return dayjs(value);
133
+ return value;
134
+ }, {});
135
+ }
136
+ function TransformToDate() {
137
+ return Transform(({ value }) => {
138
+ if (typeof value === 'undefined')
139
+ return undefined;
140
+ if (value === null)
141
+ return null;
142
+ if (value instanceof Date)
143
+ return value;
144
+ const date = parseISO(value);
145
+ return date;
146
+ }, {});
147
+ }
148
+
149
+ class Repository {
150
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: Repository, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
151
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: Repository });
152
+ }
153
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: Repository, decorators: [{
154
+ type: Injectable
155
+ }] });
156
+
157
+ class BaseResolver {
158
+ entiityMap = new Map();
159
+ makeEntityMap(entities, key) {
160
+ return new Map(entities.map((entity) => [entity[key], entity]));
161
+ }
162
+ setEntityMap(name, entityMap) {
163
+ this.entiityMap.set(name, entityMap);
164
+ }
165
+ getEntityMap(name) {
166
+ return this.entiityMap.get(name);
167
+ }
168
+ registerEntityMap(name, entities, key) {
169
+ this.setEntityMap(name, this.makeEntityMap(entities, key));
170
+ }
171
+ getEntity(name, key) {
172
+ return this.getEntityMap(name).get(key);
173
+ }
174
+ }
175
+ class Resolver extends BaseResolver {
176
+ constructor(params = {}) {
177
+ super();
178
+ // Register entity maps for each entity type in the params
179
+ console.debug('[Resolver] params', params);
180
+ Object.entries(params).forEach(([entityName, entities]) => {
181
+ if (entities && Array.isArray(entities) && entities.length > 0) {
182
+ this.registerEntityMap(entityName, entities, 'id');
183
+ }
184
+ });
185
+ }
186
+ resolve(entity) {
187
+ const result = { ...entity };
188
+ // Look for properties that end with 'Ids' or 'Id' to resolve related entities
189
+ Object.keys(entity).forEach(key => {
190
+ // Handle plural relationships (e.g., invoiceIds -> invoices)
191
+ if (key.endsWith('Ids') && Array.isArray(entity[key])) {
192
+ const baseName = key.replace(/Ids$/, '');
193
+ // 英語の複数形ルールを考慮する
194
+ let entityName;
195
+ // companyのような語尾がyで終わる場合はiesに変換
196
+ if (baseName.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(baseName.charAt(baseName.length - 2))) {
197
+ entityName = baseName.slice(0, -1) + 'ies';
198
+ }
199
+ // すでに語尾がsやxなどの場合はesを追加
200
+ else if (['s', 'x', 'z', 'ch', 'sh'].some(ending => baseName.endsWith(ending))) {
201
+ entityName = baseName + 'es';
202
+ }
203
+ // それ以外は単純にsを追加
204
+ else {
205
+ entityName = baseName + 's';
206
+ }
207
+ const entityMap = this.getEntityMap(entityName);
208
+ if (entityMap) {
209
+ const resolvedEntities = entity[key].map((id) => this.getEntity(entityName, id));
210
+ result[entityName] = resolvedEntities;
211
+ }
212
+ }
213
+ // Handle singular relationships (e.g., addressId -> address)
214
+ else if (key.endsWith('Id') && !key.endsWith('Ids') && typeof entity[key] === 'string') {
215
+ const baseName = key.replace(/Id$/, '');
216
+ // 英語の複数形ルールを考慮して複数形を生成
217
+ let pluralEntityName;
218
+ // companyのような語尾がyで終わる場合はiesに変換
219
+ if (baseName.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(baseName.charAt(baseName.length - 2))) {
220
+ pluralEntityName = baseName.slice(0, -1) + 'ies';
221
+ }
222
+ // すでに語尾がsやxなどの場合はesを追加
223
+ else if (['s', 'x', 'z', 'ch', 'sh'].some(ending => baseName.endsWith(ending))) {
224
+ pluralEntityName = baseName + 'es';
225
+ }
226
+ // それ以外は単純にsを追加
227
+ else {
228
+ pluralEntityName = baseName + 's';
229
+ }
230
+ // まず複数形でエンティティを探す
231
+ let entityMap = this.getEntityMap(pluralEntityName);
232
+ if (entityMap) {
233
+ const resolvedEntity = this.getEntity(pluralEntityName, entity[key]);
234
+ if (resolvedEntity) {
235
+ result[baseName] = resolvedEntity;
236
+ }
237
+ }
238
+ else {
239
+ // 複数形で見つからない場合は単数形を試す
240
+ entityMap = this.getEntityMap(baseName);
241
+ if (entityMap) {
242
+ const resolvedEntity = this.getEntity(baseName, entity[key]);
243
+ if (resolvedEntity) {
244
+ result[baseName] = resolvedEntity;
245
+ }
246
+ }
247
+ }
248
+ }
249
+ });
250
+ return result;
251
+ }
252
+ resolveMany(entities) {
253
+ return entities.map(entity => this.resolve(entity));
254
+ }
255
+ }
256
+
257
+ /**
258
+ * Generated bundle index. Do not edit.
259
+ */
260
+
261
+ export { BaseResolver, Domain, Entity, Repository, Resolver, TransformToDate, TransformToDayjs, getAnnotations, getEntityName, getLangMap, getModelName, getProps };
262
+ //# sourceMappingURL=nx-ddd-common-domain.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-common-domain.mjs","sources":["../tmp-esm2022/domain/models/decorators/decorators.js","../tmp-esm2022/domain/models/entity/entity.js","../tmp-esm2022/domain/models/get-entity-name/get-entity-name.js","../tmp-esm2022/domain/models/get-lang-map/get-lang-map.js","../tmp-esm2022/domain/models/get-model-name/get-model-name.js","../tmp-esm2022/domain/models/get-props/get-props.js","../tmp-esm2022/domain/models/transformers/index.js","../tmp-esm2022/domain/repository.js","../tmp-esm2022/domain/resolver/resolver.js","../tmp-esm2022/domain/nx-ddd-common-domain.js"],"sourcesContent":["export function getAnnotations(target) {\n return target?.[Domain.ANNOTATIONS] ?? [];\n}\nexport class Domain {\n static ANNOTATIONS = Symbol('annotations');\n static Lang(name) {\n return (target, propName) => {\n this.registerAnnotation(target.constructor, { propName, type: 'prop:lang', name });\n };\n }\n static Type(typeFactory) {\n return (target, propName) => {\n if (!typeFactory) {\n const type = Reflect.getMetadata('design:type', target, propName);\n typeFactory = () => type;\n }\n this.registerAnnotation(target.constructor, { propName, typeFactory, type: 'prop:type' });\n };\n }\n // classをデコレートしてnameをアノテーションする\n static Entity(propsOrName) {\n const props = typeof propsOrName === 'string' ? { name: propsOrName } : propsOrName;\n return (target) => {\n this.registerAnnotation(target, { name: props.name, type: 'model:lang', modelName: target.name });\n };\n }\n static registerAnnotation(constructor, annotation) {\n constructor[this.ANNOTATIONS] ??= [];\n constructor[this.ANNOTATIONS].push(annotation);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvY29tbW9uL3NyYy9saWIvZG9tYWluL21vZGVscy9kZWNvcmF0b3JzL2RlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkNBLE1BQU0sVUFBVSxjQUFjLENBQUksTUFBZTtJQUMvQyxPQUFRLE1BQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDckQsQ0FBQztBQUdELE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE1BQU0sQ0FBVSxXQUFXLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBRXBELE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBWTtRQUN0QixPQUFPLENBQUMsTUFBVyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUksV0FBcUI7UUFDbEMsT0FBTyxDQUFDLE1BQVcsRUFBRSxRQUFnQixFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3pFLFdBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsOEJBQThCO0lBQzlCLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBb0M7UUFDaEQsTUFBTSxLQUFLLEdBQUcsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQ2xGLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBQyxDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxXQUFrQyxFQUFFLFVBQTRCO1FBQ3hGLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBUeXBlPEU+ID0geyBuZXcoLi4uYXJnczogYW55W10pOiBFfTtcbmV4cG9ydCB0eXBlIERvbWFpbkxhbmdNYXA8RW50aXR5PiA9ICBQYXJ0aWFsPHtbSyBpbiBrZXlvZiBFbnRpdHldOiBzdHJpbmd9PlxuXG5pbnRlcmZhY2UgVGFyZ2V0IHtcbiAgY29uc3RydWN0b3I6IHtcbiAgICBbRG9tYWluLkFOTk9UQVRJT05TXT86IERvbWFpbkFubm90YXRpb25bXTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBPbWl0R2V0dGVyPFQ+ID0ge1xuICBbUCBpbiBrZXlvZiBUIGFzIHN0cmluZyBleHRlbmRzIFAgPyBuZXZlciA6IG51bWJlciBleHRlbmRzIFAgPyBuZXZlciA6IFBdOiBUW1BdO1xufTtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtQXT47XG59O1xuXG5pbnRlcmZhY2UgQmFzZURvbWFpbkFubm90YXRpb24ge1xuICB0eXBlOiAnbW9kZWw6bGFuZycgfCAncHJvcDpsYW5nJyB8ICdwcm9wOnR5cGUnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbk1vZGVsTGFuZ0Fubm90YXRpb24gZXh0ZW5kcyBCYXNlRG9tYWluQW5ub3RhdGlvbiB7XG4gIHR5cGU6ICdtb2RlbDpsYW5nJztcbiAgbW9kZWxOYW1lOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZUZhY3Rvcnk/OiAoKSA9PiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9tYWluUHJvcExhbmdBbm5vdGF0aW9uIGV4dGVuZHMgQmFzZURvbWFpbkFubm90YXRpb24ge1xuICB0eXBlOiAncHJvcDpsYW5nJztcbiAgcHJvcE5hbWU6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpblByb3BUeXBlQW5ub3RhdGlvbiBleHRlbmRzIEJhc2VEb21haW5Bbm5vdGF0aW9uIHtcbiAgdHlwZTogJ3Byb3A6dHlwZSc7XG4gIHByb3BOYW1lOiBzdHJpbmc7XG4gIHR5cGVGYWN0b3J5OiAoKSA9PiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIERvbWFpbkFubm90YXRpb24gPSBEb21haW5Nb2RlbExhbmdBbm5vdGF0aW9uXG4gIHwgRG9tYWluUHJvcExhbmdBbm5vdGF0aW9uXG4gIHwgRG9tYWluUHJvcFR5cGVBbm5vdGF0aW9uO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbm5vdGF0aW9uczxFPih0YXJnZXQ6IFR5cGU8RT4pOiBEb21haW5Bbm5vdGF0aW9uW10ge1xuICByZXR1cm4gKHRhcmdldCBhcyBhbnkpPy5bRG9tYWluLkFOTk9UQVRJT05TXSA/PyBbXTtcbn1cblxuXG5leHBvcnQgY2xhc3MgRG9tYWluIHtcbiAgc3RhdGljIHJlYWRvbmx5IEFOTk9UQVRJT05TID0gU3ltYm9sKCdhbm5vdGF0aW9ucycpO1xuXG4gIHN0YXRpYyBMYW5nKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAodGFyZ2V0OiBhbnksIHByb3BOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMucmVnaXN0ZXJBbm5vdGF0aW9uKHRhcmdldC5jb25zdHJ1Y3Rvciwge3Byb3BOYW1lLCB0eXBlOiAncHJvcDpsYW5nJywgbmFtZX0pO1xuICAgIH07XG4gIH1cblxuICBzdGF0aWMgVHlwZTxUPih0eXBlRmFjdG9yeT86ICgpID0+IFQpIHtcbiAgICByZXR1cm4gKHRhcmdldDogYW55LCBwcm9wTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoIXR5cGVGYWN0b3J5KSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBSZWZsZWN0LmdldE1ldGFkYXRhKCdkZXNpZ246dHlwZScsIHRhcmdldCBhcyBhbnksIHByb3BOYW1lKTtcbiAgICAgICAgdHlwZUZhY3RvcnkgPSAoKSA9PiB0eXBlO1xuICAgICAgfVxuICAgICAgdGhpcy5yZWdpc3RlckFubm90YXRpb24odGFyZ2V0LmNvbnN0cnVjdG9yLCB7cHJvcE5hbWUsIHR5cGVGYWN0b3J5LCB0eXBlOiAncHJvcDp0eXBlJ30pO1xuICAgIH07XG4gIH1cblxuICAvLyBjbGFzc+OCkuODh+OCs+ODrOODvOODiOOBl+OBpm5hbWXjgpLjgqLjg47jg4bjg7zjgrfjg6fjg7PjgZnjgotcbiAgc3RhdGljIEVudGl0eShwcm9wc09yTmFtZToge25hbWU6IHN0cmluZ30gfCBzdHJpbmcpIHtcbiAgICBjb25zdCBwcm9wcyA9IHR5cGVvZiBwcm9wc09yTmFtZSA9PT0gJ3N0cmluZycgPyB7bmFtZTogcHJvcHNPck5hbWV9IDogcHJvcHNPck5hbWU7XG4gICAgcmV0dXJuICh0YXJnZXQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5yZWdpc3RlckFubm90YXRpb24odGFyZ2V0LCB7bmFtZTogcHJvcHMubmFtZSwgdHlwZTogJ21vZGVsOmxhbmcnLCBtb2RlbE5hbWU6IHRhcmdldC5uYW1lfSk7XG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlckFubm90YXRpb24oY29uc3RydWN0b3I6IFRhcmdldFsnY29uc3RydWN0b3InXSwgYW5ub3RhdGlvbjogRG9tYWluQW5ub3RhdGlvbikge1xuICAgIGNvbnN0cnVjdG9yW3RoaXMuQU5OT1RBVElPTlNdID8/PSBbXTtcbiAgICBjb25zdHJ1Y3Rvclt0aGlzLkFOTk9UQVRJT05TXS5wdXNoKGFubm90YXRpb24pO1xuICB9XG59Il19","import { toObject } from '@nx-ddd/common';\nexport class Entity {\n static fromObj(obj) {\n return Object.assign(new this(), {\n id: null,\n createdAt: null,\n updatedAt: null,\n ...obj\n });\n }\n static toObj(entity) {\n return toObject(entity);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9kb21haW4vbW9kZWxzL2VudGl0eS9lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTFDLE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE1BQU0sQ0FBQyxPQUFPLENBQTRCLEdBQVc7UUFDbkQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUU7WUFDL0IsRUFBRSxFQUFFLElBQUk7WUFDUixTQUFTLEVBQUUsSUFBSTtZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsR0FBRyxHQUFHO1NBQ1AsQ0FBZSxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQWM7UUFDekIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFXLENBQUM7SUFDcEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9PYmplY3QgfSBmcm9tICdAbngtZGRkL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5PElkID0gc3RyaW5nPiB7XG4gIGlkOiBJZCB8IG51bGw7XG59XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHkgeyBcbiAgc3RhdGljIGZyb21PYmo8VCBleHRlbmRzIEVudGl0eSA9IEVudGl0eT4ob2JqOiBvYmplY3QpOiBUIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcygpLCB7XG4gICAgICBpZDogbnVsbCxcbiAgICAgIGNyZWF0ZWRBdDogbnVsbCxcbiAgICAgIHVwZGF0ZWRBdDogbnVsbCxcbiAgICAgIC4uLm9ialxuICAgIH0pIGFzIG5ldmVyIGFzIFQ7XG4gIH1cblxuICBzdGF0aWMgdG9PYmooZW50aXR5OiBFbnRpdHkpOiBFbnRpdHkge1xuICAgIHJldHVybiB0b09iamVjdChlbnRpdHkpIGFzIEVudGl0eTtcbiAgfVxufVxuIl19","import { getAnnotations } from '../decorators';\nexport function getEntityName(target) {\n return getAnnotations(target).find(annotation => {\n return annotation.type === 'model:lang';\n })?.name ?? target.name;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWVudGl0eS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9kb21haW4vbW9kZWxzL2dldC1lbnRpdHktbmFtZS9nZXQtZW50aXR5LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE2QixjQUFjLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFaEYsTUFBTSxVQUFVLGFBQWEsQ0FBSSxNQUFlO0lBQzlDLE9BQVEsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMvQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDO0lBQzFDLENBQUMsQ0FBK0IsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tYWluTW9kZWxMYW5nQW5ub3RhdGlvbiwgZ2V0QW5ub3RhdGlvbnMsIFR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVudGl0eU5hbWU8RT4odGFyZ2V0OiBUeXBlPEU+KTogc3RyaW5nIHtcbiAgcmV0dXJuIChnZXRBbm5vdGF0aW9ucyh0YXJnZXQpLmZpbmQoYW5ub3RhdGlvbiA9PiB7XG4gICAgcmV0dXJuIGFubm90YXRpb24udHlwZSA9PT0gJ21vZGVsOmxhbmcnO1xuICB9KSBhcyBEb21haW5Nb2RlbExhbmdBbm5vdGF0aW9uKT8ubmFtZSA/PyB0YXJnZXQubmFtZTtcbn1cbiJdfQ==","import { flatten } from \"flat\";\nimport { merge } from \"lodash-es\";\nimport { getAnnotations } from '../decorators';\nexport function getLangMap(domain, mergeObj = {}) {\n return flatten(merge(_getLangMap(domain), mergeObj));\n}\nfunction _getLangMap(target) {\n // エンティティ名を取得\n const entityAnnotation = getAnnotations(target).find(a => a.type === 'model:lang');\n const entityName = entityAnnotation?.name || '';\n const result = getAnnotations(target).reduce((acc, annotation) => {\n switch (annotation.type) {\n case 'prop:lang': {\n acc[annotation.propName] = annotation.name;\n break;\n }\n case 'prop:type': {\n if (annotation.typeFactory) {\n const type = annotation.typeFactory();\n if (type) {\n const childTypeAnnotation = getAnnotations(type).find(a => a.type === 'model:lang');\n const childEntityName = childTypeAnnotation?.name || '';\n // 子タイプのプロパティを取得\n const childProps = _getLangMap(type);\n // 子プロパティを親プロパティ名でネスト\n for (const [childKey, childValue] of Object.entries(childProps)) {\n if (childEntityName && typeof childValue === 'string') {\n acc[`${annotation.propName}.${childKey}`] = `${childEntityName} / ${childValue}`;\n }\n else {\n acc[`${annotation.propName}.${childKey}`] = childValue;\n }\n }\n }\n }\n break;\n }\n }\n return acc;\n }, {});\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxhbmctbWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9kb21haW4vbW9kZWxzL2dldC1sYW5nLW1hcC9nZXQtbGFuZy1tYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3ZFLE1BQU0sVUFBVSxVQUFVLENBQUksTUFBZSxFQUFFLFdBQW1CLEVBQUU7SUFDbEUsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBSSxNQUFlO0lBQ3JDLGFBQWE7SUFDYixNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO0lBQ25GLE1BQU0sVUFBVSxHQUFHLGdCQUFnQixFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFFaEQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXdCLEVBQUUsVUFBNEIsRUFBRSxFQUFFO1FBQ3RHLFFBQU8sVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDakIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUMzQyxNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDakIsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQzNCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDdEMsSUFBSSxJQUFJLEVBQUUsQ0FBQzt3QkFDVCxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxDQUFDO3dCQUNwRixNQUFNLGVBQWUsR0FBRyxtQkFBbUIsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUV4RCxnQkFBZ0I7d0JBQ2hCLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFFckMscUJBQXFCO3dCQUNyQixLQUFLLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDOzRCQUNoRSxJQUFJLGVBQWUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztnQ0FDdEQsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQyxHQUFHLEdBQUcsZUFBZSxNQUFNLFVBQVUsRUFBRSxDQUFDOzRCQUNuRixDQUFDO2lDQUFNLENBQUM7Z0NBQ04sR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsSUFBSSxRQUFRLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzs0QkFDekQsQ0FBQzt3QkFDSCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVQLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbGF0dGVuIH0gZnJvbSBcImZsYXRcIjtcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgRG9tYWluQW5ub3RhdGlvbiwgVHlwZSwgZ2V0QW5ub3RhdGlvbnMgfSBmcm9tICcuLi9kZWNvcmF0b3JzJztcblxuLy8g44OV44Op44OD44OI5YyW44GV44KM44Gf6KiA6Kqe44Oe44OD44OX44Gu5Z6L5a6a576p77yI44ON44K544OI44GV44KM44Gf44OX44Ot44OR44OG44Kj44KS5ZCr44KA77yJXG5leHBvcnQgdHlwZSBMYW5nTWFwPEU+ID0gUGFydGlhbDxSZWNvcmQ8a2V5b2YgRSB8IHN0cmluZywgc3RyaW5nPj47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5nTWFwPEU+KGRvbWFpbjogVHlwZTxFPiwgbWVyZ2VPYmo6IG9iamVjdCA9IHt9KTogTGFuZ01hcDxFPiB7XG4gIHJldHVybiBmbGF0dGVuKG1lcmdlKF9nZXRMYW5nTWFwKGRvbWFpbiksIG1lcmdlT2JqKSk7XG59XG5cbmZ1bmN0aW9uIF9nZXRMYW5nTWFwPEU+KHRhcmdldDogVHlwZTxFPik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAvLyDjgqjjg7Pjg4bjgqPjg4bjgqPlkI3jgpLlj5blvpdcbiAgY29uc3QgZW50aXR5QW5ub3RhdGlvbiA9IGdldEFubm90YXRpb25zKHRhcmdldCkuZmluZChhID0+IGEudHlwZSA9PT0gJ21vZGVsOmxhbmcnKTtcbiAgY29uc3QgZW50aXR5TmFtZSA9IGVudGl0eUFubm90YXRpb24/Lm5hbWUgfHwgJyc7XG4gIFxuICBjb25zdCByZXN1bHQgPSBnZXRBbm5vdGF0aW9ucyh0YXJnZXQpLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBhbm5vdGF0aW9uOiBEb21haW5Bbm5vdGF0aW9uKSA9PiB7XG4gICAgc3dpdGNoKGFubm90YXRpb24udHlwZSkge1xuICAgICAgY2FzZSAncHJvcDpsYW5nJzoge1xuICAgICAgICBhY2NbYW5ub3RhdGlvbi5wcm9wTmFtZV0gPSBhbm5vdGF0aW9uLm5hbWU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAncHJvcDp0eXBlJzoge1xuICAgICAgICBpZiAoYW5ub3RhdGlvbi50eXBlRmFjdG9yeSkge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBhbm5vdGF0aW9uLnR5cGVGYWN0b3J5KCk7XG4gICAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVHlwZUFubm90YXRpb24gPSBnZXRBbm5vdGF0aW9ucyh0eXBlKS5maW5kKGEgPT4gYS50eXBlID09PSAnbW9kZWw6bGFuZycpO1xuICAgICAgICAgICAgY29uc3QgY2hpbGRFbnRpdHlOYW1lID0gY2hpbGRUeXBlQW5ub3RhdGlvbj8ubmFtZSB8fCAnJztcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8g5a2Q44K/44Kk44OX44Gu44OX44Ot44OR44OG44Kj44KS5Y+W5b6XXG4gICAgICAgICAgICBjb25zdCBjaGlsZFByb3BzID0gX2dldExhbmdNYXAodHlwZSk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIOWtkOODl+ODreODkeODhuOCo+OCkuimquODl+ODreODkeODhuOCo+WQjeOBp+ODjeOCueODiFxuICAgICAgICAgICAgZm9yIChjb25zdCBbY2hpbGRLZXksIGNoaWxkVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNoaWxkUHJvcHMpKSB7XG4gICAgICAgICAgICAgIGlmIChjaGlsZEVudGl0eU5hbWUgJiYgdHlwZW9mIGNoaWxkVmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgYWNjW2Ake2Fubm90YXRpb24ucHJvcE5hbWV9LiR7Y2hpbGRLZXl9YF0gPSBgJHtjaGlsZEVudGl0eU5hbWV9IC8gJHtjaGlsZFZhbHVlfWA7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWNjW2Ake2Fubm90YXRpb24ucHJvcE5hbWV9LiR7Y2hpbGRLZXl9YF0gPSBjaGlsZFZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","import { getAnnotations } from \"../decorators\";\nexport function getModelName(target) {\n return getAnnotations(target).find(annotation => {\n return annotation.type === 'model:lang';\n })?.name ?? target.name;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW1vZGVsLW5hbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2RvbWFpbi9tb2RlbHMvZ2V0LW1vZGVsLW5hbWUvZ2V0LW1vZGVsLW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFRLGNBQWMsRUFBNkIsTUFBTSxlQUFlLENBQUM7QUFFaEYsTUFBTSxVQUFVLFlBQVksQ0FBSSxNQUFlO0lBQzdDLE9BQVEsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtRQUMvQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDO0lBQzFDLENBQUMsQ0FBK0IsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSwgZ2V0QW5ub3RhdGlvbnMsIERvbWFpbk1vZGVsTGFuZ0Fubm90YXRpb24gfSBmcm9tIFwiLi4vZGVjb3JhdG9yc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TW9kZWxOYW1lPEU+KHRhcmdldDogVHlwZTxFPik6IHN0cmluZyB7XG4gIHJldHVybiAoZ2V0QW5ub3RhdGlvbnModGFyZ2V0KS5maW5kKGFubm90YXRpb24gPT4ge1xuICAgIHJldHVybiBhbm5vdGF0aW9uLnR5cGUgPT09ICdtb2RlbDpsYW5nJztcbiAgfSkgYXMgRG9tYWluTW9kZWxMYW5nQW5ub3RhdGlvbik/Lm5hbWUgPz8gdGFyZ2V0Lm5hbWU7XG59XG4iXX0=","import { getAnnotations } from \"../decorators\";\nexport function getProps(target, deps = 3, path = '') {\n return getAnnotations(target).map((annotation) => {\n switch (annotation.type) {\n case 'prop:lang': {\n return `${path}${annotation.propName}`;\n }\n case 'prop:type': {\n if (deps > 0) {\n const type = annotation.typeFactory?.();\n return getProps(type, deps - 1, `${path}${annotation.propName}.`);\n }\n return [];\n }\n default: return [];\n }\n }).flat();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb3BzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9kb21haW4vbW9kZWxzL2dldC1wcm9wcy9nZXQtcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEwQixjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsTUFBTSxVQUFVLFFBQVEsQ0FBSSxNQUFlLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUM5RCxPQUFPLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUE0QixFQUFFLEVBQUU7UUFDakUsUUFBUSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixPQUFPLEdBQUcsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDYixNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztvQkFDeEMsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ3BFLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvbWFpbkFubm90YXRpb24sIFR5cGUsIGdldEFubm90YXRpb25zIH0gZnJvbSBcIi4uL2RlY29yYXRvcnNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BzPEU+KHRhcmdldDogVHlwZTxFPiwgZGVwcyA9IDMsIHBhdGggPSAnJyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGdldEFubm90YXRpb25zKHRhcmdldCkubWFwKChhbm5vdGF0aW9uOiBEb21haW5Bbm5vdGF0aW9uKSA9PiB7XG4gICAgc3dpdGNoIChhbm5vdGF0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3Byb3A6bGFuZyc6IHtcbiAgICAgICAgcmV0dXJuIGAke3BhdGh9JHthbm5vdGF0aW9uLnByb3BOYW1lfWA7XG4gICAgICB9XG4gICAgICBjYXNlICdwcm9wOnR5cGUnOiB7XG4gICAgICAgIGlmIChkZXBzID4gMCkge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBhbm5vdGF0aW9uLnR5cGVGYWN0b3J5Py4oKTtcbiAgICAgICAgICByZXR1cm4gZ2V0UHJvcHModHlwZSwgZGVwcyAtIDEsIGAke3BhdGh9JHthbm5vdGF0aW9uLnByb3BOYW1lfS5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiByZXR1cm4gW107XG4gICAgfVxuICB9KS5mbGF0KCk7XG59XG4iXX0=","import { Transform } from \"class-transformer\";\nimport { parseISO } from \"date-fns\";\nimport dayjs from \"dayjs\";\nexport function TransformToDayjs() {\n return Transform(({ value }) => {\n if (typeof value === 'undefined')\n return undefined;\n if (dayjs(value).isValid())\n return dayjs(value);\n return value;\n }, {});\n}\nexport function TransformToDate() {\n return Transform(({ value }) => {\n if (typeof value === 'undefined')\n return undefined;\n if (value === null)\n return null;\n if (value instanceof Date)\n return value;\n const date = parseISO(value);\n return date;\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2RvbWFpbi9tb2RlbHMvdHJhbnNmb3JtZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzdCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ25ELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQzdCLElBQUksT0FBTyxLQUFLLEtBQUssV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ25ELElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNoQyxJQUFJLEtBQUssWUFBWSxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybSB9IGZyb20gXCJjbGFzcy10cmFuc2Zvcm1lclwiO1xuaW1wb3J0IHsgcGFyc2VJU08gfSBmcm9tIFwiZGF0ZS1mbnNcIjtcbmltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIFRyYW5zZm9ybVRvRGF5anMoKSB7XG4gIHJldHVybiBUcmFuc2Zvcm0oKHsgdmFsdWUgfSkgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmIChkYXlqcyh2YWx1ZSkuaXNWYWxpZCgpKSByZXR1cm4gZGF5anModmFsdWUpO1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSwge30pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVHJhbnNmb3JtVG9EYXRlKCkge1xuICByZXR1cm4gVHJhbnNmb3JtKCh7IHZhbHVlIH0pID0+IHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHJldHVybiB2YWx1ZTtcbiAgICBjb25zdCBkYXRlID0gcGFyc2VJU08odmFsdWUpO1xuICAgIHJldHVybiBkYXRlO1xuICB9LCB7fSk7XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class Repository {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: Repository, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: Repository });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: Repository, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvY29tbW9uL3NyYy9saWIvZG9tYWluL3JlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPM0MsTUFBTSxPQUFnQixVQUFVO3VHQUFWLFVBQVU7MkdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEL0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgUGFydGlhbFdpdGhJZDxFIGV4dGVuZHMgRW50aXR5PiA9IFBpY2s8RSwgJ2lkJz4gJiBQYXJ0aWFsPEU+O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVwb3NpdG9yeTxFIGV4dGVuZHMge2lkOiBzdHJpbmd9PiB7XG4gIGFic3RyYWN0IGdldChwYXJhbXM6IHtpZDogc3RyaW5nfSk6IFByb21pc2U8RT47XG4gIGFic3RyYWN0IGxpc3QoKTogUHJvbWlzZTxFW10+O1xuICBhYnN0cmFjdCBsaXN0Q2hhbmdlcygpOiBPYnNlcnZhYmxlPEVbXT47XG4gIGFic3RyYWN0IGNyZWF0ZShkYXRhOiBPbWl0PEUsICdpZCcgfCAnY3JlYXRlZEF0JyB8ICd1cGRhdGVkQXQnPiAmIFBhcnRpYWw8UGljazxFLCAnaWQnPj4pOiBQcm9taXNlPEU+O1xuICBhYnN0cmFjdCBjcmVhdGVNYW55KGRhdGE6IE9taXQ8RSwgJ2lkJyB8ICdjcmVhdGVkQXQnIHwgJ3VwZGF0ZWRBdCc+W10pOiBQcm9taXNlPEVbXT47XG4gIGFic3RyYWN0IHVwZGF0ZShkYXRhOiBQYXJ0aWFsPEU+ICYge2lkOiBzdHJpbmd9KTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgdXBkYXRlTWFueShkYXRhOiBQYXJ0aWFsPEU+W10pOiBQcm9taXNlPHZvaWQ+O1xuICBhYnN0cmFjdCBzYXZlKGRhdGE6IFBhcnRpYWw8RT4pOiBQcm9taXNlPGJvb2xlYW4gfCBbRSwgYm9vbGVhbl0+O1xuICBhYnN0cmFjdCBzYXZlTWFueShlbnRpdGllczogRVtdKTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgZGVsZXRlKHBhcmFtczoge2lkOiBzdHJpbmd9KTogUHJvbWlzZTx2b2lkPjtcbiAgYWJzdHJhY3QgZGVsZXRlTWFueShwYXJhbXM6IHtpZDogc3RyaW5nfVtdKTogUHJvbWlzZTxudW1iZXI+O1xuICBhYnN0cmFjdCBkZWxldGVBbGwoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==","export class BaseResolver {\n entiityMap = new Map();\n makeEntityMap(entities, key) {\n return new Map(entities.map((entity) => [entity[key], entity]));\n }\n setEntityMap(name, entityMap) {\n this.entiityMap.set(name, entityMap);\n }\n getEntityMap(name) {\n return this.entiityMap.get(name);\n }\n registerEntityMap(name, entities, key) {\n this.setEntityMap(name, this.makeEntityMap(entities, key));\n }\n getEntity(name, key) {\n return this.getEntityMap(name).get(key);\n }\n}\nexport class Resolver extends BaseResolver {\n constructor(params = {}) {\n super();\n // Register entity maps for each entity type in the params\n console.debug('[Resolver] params', params);\n Object.entries(params).forEach(([entityName, entities]) => {\n if (entities && Array.isArray(entities) && entities.length > 0) {\n this.registerEntityMap(entityName, entities, 'id');\n }\n });\n }\n resolve(entity) {\n const result = { ...entity };\n // Look for properties that end with 'Ids' or 'Id' to resolve related entities\n Object.keys(entity).forEach(key => {\n // Handle plural relationships (e.g., invoiceIds -> invoices)\n if (key.endsWith('Ids') && Array.isArray(entity[key])) {\n const baseName = key.replace(/Ids$/, '');\n // 英語の複数形ルールを考慮する\n let entityName;\n // companyのような語尾がyで終わる場合はiesに変換\n if (baseName.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(baseName.charAt(baseName.length - 2))) {\n entityName = baseName.slice(0, -1) + 'ies';\n }\n // すでに語尾がsやxなどの場合はesを追加\n else if (['s', 'x', 'z', 'ch', 'sh'].some(ending => baseName.endsWith(ending))) {\n entityName = baseName + 'es';\n }\n // それ以外は単純にsを追加\n else {\n entityName = baseName + 's';\n }\n const entityMap = this.getEntityMap(entityName);\n if (entityMap) {\n const resolvedEntities = entity[key].map((id) => this.getEntity(entityName, id));\n result[entityName] = resolvedEntities;\n }\n }\n // Handle singular relationships (e.g., addressId -> address)\n else if (key.endsWith('Id') && !key.endsWith('Ids') && typeof entity[key] === 'string') {\n const baseName = key.replace(/Id$/, '');\n // 英語の複数形ルールを考慮して複数形を生成\n let pluralEntityName;\n // companyのような語尾がyで終わる場合はiesに変換\n if (baseName.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(baseName.charAt(baseName.length - 2))) {\n pluralEntityName = baseName.slice(0, -1) + 'ies';\n }\n // すでに語尾がsやxなどの場合はesを追加\n else if (['s', 'x', 'z', 'ch', 'sh'].some(ending => baseName.endsWith(ending))) {\n pluralEntityName = baseName + 'es';\n }\n // それ以外は単純にsを追加\n else {\n pluralEntityName = baseName + 's';\n }\n // まず複数形でエンティティを探す\n let entityMap = this.getEntityMap(pluralEntityName);\n if (entityMap) {\n const resolvedEntity = this.getEntity(pluralEntityName, entity[key]);\n if (resolvedEntity) {\n result[baseName] = resolvedEntity;\n }\n }\n else {\n // 複数形で見つからない場合は単数形を試す\n entityMap = this.getEntityMap(baseName);\n if (entityMap) {\n const resolvedEntity = this.getEntity(baseName, entity[key]);\n if (resolvedEntity) {\n result[baseName] = resolvedEntity;\n }\n }\n }\n }\n });\n return result;\n }\n resolveMany(entities) {\n return entities.map(entity => this.resolve(entity));\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2RvbWFpbi9yZXNvbHZlci9yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQWdCLFlBQVk7SUFDdkIsVUFBVSxHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0lBRWpELGFBQWEsQ0FBQyxRQUFhLEVBQUUsR0FBWTtRQUNsRCxPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRVMsWUFBWSxDQUFDLElBQVksRUFBRSxTQUF5QjtRQUM3RCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVTLFlBQVksQ0FBQyxJQUFZO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVTLGlCQUFpQixDQUFDLElBQVksRUFBRSxRQUFhLEVBQUUsR0FBWTtRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFUyxTQUFTLENBQUMsSUFBWSxFQUFFLEdBQVc7UUFDNUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBSUQ7QUFHRCxNQUFNLE9BQU8sUUFBWSxTQUFRLFlBQWU7SUFDL0MsWUFBWSxTQUFnQyxFQUFFO1FBQzdDLEtB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QkFDdEIsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3hDLElBQUksU0FBUyxFQUFFLENBQUM7d0JBQ2YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0JBQzdELElBQUksY0FBYyxFQUFFLENBQUM7NEJBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxjQUFjLENBQUM7d0JBQ25DLENBQUM7b0JBQ0YsQ0FBQztnQkFDRixDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWU7UUFDMUIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUmVzb2x2ZXI8RT4ge1xuXHRwcm90ZWN0ZWQgZW50aWl0eU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBhbnk+PigpO1xuXG5cdHByb3RlY3RlZCBtYWtlRW50aXR5TWFwKGVudGl0aWVzOiBFW10sIGtleToga2V5b2YgRSk6IE1hcDxzdHJpbmcsIEU+e1xuXHRcdHJldHVybiBuZXcgTWFwKGVudGl0aWVzLm1hcCgoZW50aXR5KSA9PiBbZW50aXR5W2tleV0gYXMgc3RyaW5nLCBlbnRpdHldKSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgc2V0RW50aXR5TWFwKG5hbWU6IHN0cmluZywgZW50aXR5TWFwOiBNYXA8c3RyaW5nLCBFPik6IHZvaWQge1xuXHRcdHRoaXMuZW50aWl0eU1hcC5zZXQobmFtZSwgZW50aXR5TWFwKTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRFbnRpdHlNYXAobmFtZTogc3RyaW5nKTogTWFwPHN0cmluZywgRT4ge1xuXHRcdHJldHVybiB0aGlzLmVudGlpdHlNYXAuZ2V0KG5hbWUpO1xuXHR9XG5cblx0cHJvdGVjdGVkIHJlZ2lzdGVyRW50aXR5TWFwKG5hbWU6IHN0cmluZywgZW50aXRpZXM6IEVbXSwga2V5OiBrZXlvZiBFKTogdm9pZCB7XG5cdFx0dGhpcy5zZXRFbnRpdHlNYXAobmFtZSwgdGhpcy5tYWtlRW50aXR5TWFwKGVudGl0aWVzLCBrZXkpKTtcblx0fVxuXG5cdHByb3RlY3RlZCBnZXRFbnRpdHkobmFtZTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IEUge1xuXHRcdHJldHVybiB0aGlzLmdldEVudGl0eU1hcChuYW1lKS5nZXQoa2V5KTtcblx0fVxuXG5cdGFic3RyYWN0IHJlc29sdmUoZW50aXR5OiBhbnkpOiBhbnk7XG5cdGFic3RyYWN0IHJlc29sdmVNYW55KGVudGl0aWVzOiBhbnlbXSk6IGFueVtdO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBSZXNvbHZlcjxFPiBleHRlbmRzIEJhc2VSZXNvbHZlcjxFPiB7XG5cdGNvbnN0cnVjdG9yKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55W10+ID0ge30pIHtcblx0XHRzdXBlcigpO1xuXHRcdC8vIFJlZ2lzdGVyIGVudGl0eSBtYXBzIGZvciBlYWNoIGVudGl0eSB0eXBlIGluIHRoZSBwYXJhbXNcblx0XHRjb25zb2xlLmRlYnVnKCdbUmVzb2x2ZXJdIHBhcmFtcycsIHBhcmFtcyk7XG5cdFx0T2JqZWN0LmVudHJpZXMocGFyYW1zKS5mb3JFYWNoKChbZW50aXR5TmFtZSwgZW50aXRpZXNdKSA9PiB7XG5cdFx0XHRpZiAoZW50aXRpZXMgJiYgQXJyYXkuaXNBcnJheShlbnRpdGllcykgJiYgZW50aXRpZXMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHR0aGlzLnJlZ2lzdGVyRW50aXR5TWFwKGVudGl0eU5hbWUsIGVudGl0aWVzLCAnaWQnIGFzIGFueSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZXNvbHZlKGVudGl0eTogYW55KSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0geyAuLi5lbnRpdHkgfTtcblx0XHRcblx0XHQvLyBMb29rIGZvciBwcm9wZXJ0aWVzIHRoYXQgZW5kIHdpdGggJ0lkcycgb3IgJ0lkJyB0byByZXNvbHZlIHJlbGF0ZWQgZW50aXRpZXNcblx0XHRPYmplY3Qua2V5cyhlbnRpdHkpLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdC8vIEhhbmRsZSBwbHVyYWwgcmVsYXRpb25zaGlwcyAoZS5nLiwgaW52b2ljZUlkcyAtPiBpbnZvaWNlcylcblx0XHRcdGlmIChrZXkuZW5kc1dpdGgoJ0lkcycpICYmIEFycmF5LmlzQXJyYXkoZW50aXR5W2tleV0pKSB7XG5cdFx0XHRcdGNvbnN0IGJhc2VOYW1lID0ga2V5LnJlcGxhY2UoL0lkcyQvLCAnJyk7XG5cdFx0XHRcdC8vIOiLseiqnuOBruikh+aVsOW9ouODq+ODvOODq+OCkuiAg+aFruOBmeOCi1xuXHRcdFx0XHRsZXQgZW50aXR5TmFtZTtcblx0XHRcdFx0Ly8gY29tcGFueeOBruOCiOOBhuOBquiqnuWwvuOBjHnjgafntYLjgo/jgovloLTlkIjjga9pZXPjgavlpInmj5tcblx0XHRcdFx0aWYgKGJhc2VOYW1lLmVuZHNXaXRoKCd5JykgJiYgIVsnYScsICdlJywgJ2knLCAnbycsICd1J10uaW5jbHVkZXMoYmFzZU5hbWUuY2hhckF0KGJhc2VOYW1lLmxlbmd0aCAtIDIpKSkge1xuXHRcdFx0XHRcdGVudGl0eU5hbWUgPSBiYXNlTmFtZS5zbGljZSgwLCAtMSkgKyAnaWVzJztcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyDjgZnjgafjgavoqp7lsL7jgYxz44KEeOOBquOBqeOBruWgtOWQiOOBr2Vz44KS6L+95YqgXG5cdFx0XHRcdGVsc2UgaWYgKFsncycsICd4JywgJ3onLCAnY2gnLCAnc2gnXS5zb21lKGVuZGluZyA9PiBiYXNlTmFtZS5lbmRzV2l0aChlbmRpbmcpKSkge1xuXHRcdFx0XHRcdGVudGl0eU5hbWUgPSBiYXNlTmFtZSArICdlcyc7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8g44Gd44KM5Lul5aSW44Gv5Y2Y57SU44Grc+OCkui/veWKoFxuXHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRlbnRpdHlOYW1lID0gYmFzZU5hbWUgKyAncyc7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgZW50aXR5TWFwID0gdGhpcy5nZXRFbnRpdHlNYXAoZW50aXR5TmFtZSk7XG5cdFx0XHRcdFxuXHRcdFx0XHRpZiAoZW50aXR5TWFwKSB7XG5cdFx0XHRcdFx0Y29uc3QgcmVzb2x2ZWRFbnRpdGllcyA9IGVudGl0eVtrZXldLm1hcCgoaWQ6IHN0cmluZykgPT4gdGhpcy5nZXRFbnRpdHkoZW50aXR5TmFtZSwgaWQpKTtcblx0XHRcdFx0XHRyZXN1bHRbZW50aXR5TmFtZV0gPSByZXNvbHZlZEVudGl0aWVzO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvLyBIYW5kbGUgc2luZ3VsYXIgcmVsYXRpb25zaGlwcyAoZS5nLiwgYWRkcmVzc0lkIC0+IGFkZHJlc3MpXG5cdFx0XHRlbHNlIGlmIChrZXkuZW5kc1dpdGgoJ0lkJykgJiYgIWtleS5lbmRzV2l0aCgnSWRzJykgJiYgdHlwZW9mIGVudGl0eVtrZXldID09PSAnc3RyaW5nJykge1xuXHRcdFx0XHRjb25zdCBiYXNlTmFtZSA9IGtleS5yZXBsYWNlKC9JZCQvLCAnJyk7XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyDoi7Hoqp7jga7opIfmlbDlvaLjg6vjg7zjg6vjgpLogIPmha7jgZfjgabopIfmlbDlvaLjgpLnlJ/miJBcblx0XHRcdFx0bGV0IHBsdXJhbEVudGl0eU5hbWU7XG5cdFx0XHRcdC8vIGNvbXBhbnnjga7jgojjgYbjgaroqp7lsL7jgYx544Gn57WC44KP44KL5aC05ZCI44GvaWVz44Gr5aSJ5o+bXG5cdFx0XHRcdGlmIChiYXNlTmFtZS5lbmRzV2l0aCgneScpICYmICFbJ2EnLCAnZScsICdpJywgJ28nLCAndSddLmluY2x1ZGVzKGJhc2VOYW1lLmNoYXJBdChiYXNlTmFtZS5sZW5ndGggLSAyKSkpIHtcblx0XHRcdFx0XHRwbHVyYWxFbnRpdHlOYW1lID0gYmFzZU5hbWUuc2xpY2UoMCwgLTEpICsgJ2llcyc7XG5cdFx0XHRcdH1cblx0XHRcdFx0Ly8g44GZ44Gn44Gr6Kqe5bC+44GMc+OChHjjgarjganjga7loLTlkIjjga9lc+OCkui/veWKoFxuXHRcdFx0XHRlbHNlIGlmIChbJ3MnLCAneCcsICd6JywgJ2NoJywgJ3NoJ10uc29tZShlbmRpbmcgPT4gYmFzZU5hbWUuZW5kc1dpdGgoZW5kaW5nKSkpIHtcblx0XHRcdFx0XHRwbHVyYWxFbnRpdHlOYW1lID0gYmFzZU5hbWUgKyAnZXMnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdC8vIOOBneOCjOS7peWkluOBr+WNmOe0lOOBq3PjgpLov73liqBcblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0cGx1cmFsRW50aXR5TmFtZSA9IGJhc2VOYW1lICsgJ3MnO1xuXHRcdFx0XHR9XG5cdFx0XHRcdFxuXHRcdFx0XHQvLyDjgb7jgZropIfmlbDlvaLjgafjgqjjg7Pjg4bjgqPjg4bjgqPjgpLmjqLjgZlcblx0XHRcdFx0bGV0IGVudGl0eU1hcCA9IHRoaXMuZ2V0RW50aXR5TWFwKHBsdXJhbEVudGl0eU5hbWUpO1xuXHRcdFx0XHRcblx0XHRcdFx0aWYgKGVudGl0eU1hcCkge1xuXHRcdFx0XHRcdGNvbnN0IHJlc29sdmVkRW50aXR5ID0gdGhpcy5nZXRFbnRpdHkocGx1cmFsRW50aXR5TmFtZSwgZW50aXR5W2tleV0pO1xuXG5cdFx0XHRcdFx0aWYgKHJlc29sdmVkRW50aXR5KSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRbYmFzZU5hbWVdID0gcmVzb2x2ZWRFbnRpdHk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdC8vIOikh+aVsOW9ouOBp+imi+OBpOOBi+OCieOBquOBhOWgtOWQiOOBr+WNmOaVsOW9ouOCkuippuOBmVxuXHRcdFx0XHRcdGVudGl0eU1hcCA9IHRoaXMuZ2V0RW50aXR5TWFwKGJhc2VOYW1lKTtcblx0XHRcdFx0XHRpZiAoZW50aXR5TWFwKSB7XG5cdFx0XHRcdFx0XHRjb25zdCByZXNvbHZlZEVudGl0eSA9IHRoaXMuZ2V0RW50aXR5KGJhc2VOYW1lLCBlbnRpdHlba2V5XSk7XG5cdFx0XHRcdFx0XHRpZiAocmVzb2x2ZWRFbnRpdHkpIHtcblx0XHRcdFx0XHRcdFx0cmVzdWx0W2Jhc2VOYW1lXSA9IHJlc29sdmVkRW50aXR5O1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdFxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH1cblxuXHRyZXNvbHZlTWFueShlbnRpdGllczogYW55W10pIHtcblx0XHRyZXR1cm4gZW50aXRpZXMubWFwKGVudGl0eSA9PiB0aGlzLnJlc29sdmUoZW50aXR5KSk7XG5cdH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWNvbW1vbi1kb21haW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2RvbWFpbi9ueC1kZGQtY29tbW9uLWRvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, makeEnvironmentProviders } from '@angular/core';
3
+ import { makeDI } from '@nx-ddd/core';
4
+ import { CHROMIUM } from '@nx-ddd/common/infrastructure/externals/chromium/token';
5
+ import { chromium } from 'playwright';
6
+ import Chromium from '@sparticuz/chromium';
7
+ import { merge } from 'lodash-es';
8
+
9
+ const CHROMIUM_CONFIG = makeDI('[@nx-ddd/common] ChromiumConfig', { optional: false });
10
+ class ChromiumService {
11
+ config = CHROMIUM_CONFIG.inject();
12
+ async start(callback, options = {}) {
13
+ const defaultArgs = [
14
+ '--no-sandbox',
15
+ '--disable-setuid-sandbox',
16
+ '--disable-dev-shm-usage',
17
+ '--disable-extensions',
18
+ '--disable-gpu',
19
+ '--disable-software-rasterizer',
20
+ ];
21
+ // executablePathの決定: config > @sparticuz/chromium > undefined(省略)
22
+ let executablePath;
23
+ if (this.config.executablePath) {
24
+ executablePath = this.config.executablePath;
25
+ }
26
+ else {
27
+ try {
28
+ const sparticzuPath = await Chromium.executablePath();
29
+ if (sparticzuPath) {
30
+ executablePath = sparticzuPath;
31
+ }
32
+ }
33
+ catch (e) {
34
+ // @sparticuz/chromiumが使えない環境では無視
35
+ console.debug('[@sparticuz/chromium not available, using system chromium');
36
+ }
37
+ }
38
+ const launchOptions = merge({
39
+ headless: this.config.headless,
40
+ timeout: 60 * 1000,
41
+ args: this.config.args || defaultArgs
42
+ }, options);
43
+ console.debug('[ChromiumService] launchOptions:', launchOptions);
44
+ // executablePathが有効な値の場合のみ設定
45
+ if (executablePath) {
46
+ launchOptions.executablePath = executablePath;
47
+ }
48
+ const browser = await chromium.launch(launchOptions);
49
+ try {
50
+ const result = await callback(browser);
51
+ return result;
52
+ }
53
+ catch (error) {
54
+ throw error;
55
+ }
56
+ finally {
57
+ try {
58
+ await browser.close();
59
+ // Cloud Functions環境での確実な終了のため
60
+ if (browser.isConnected()) {
61
+ console.warn('Browser still connected after close, forcing disconnect');
62
+ await browser.close();
63
+ }
64
+ }
65
+ catch (closeError) {
66
+ console.error('Error closing browser:', closeError);
67
+ }
68
+ }
69
+ }
70
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ChromiumService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
71
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ChromiumService, providedIn: 'root' });
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ChromiumService, decorators: [{
74
+ type: Injectable,
75
+ args: [{ providedIn: 'root' }]
76
+ }] });
77
+ function provideChromium(useFactory = () => ({ headless: true })) {
78
+ return makeEnvironmentProviders([
79
+ CHROMIUM_CONFIG.provide(useFactory),
80
+ CHROMIUM.provide(() => new ChromiumService()),
81
+ ]);
82
+ }
83
+
84
+ /**
85
+ * Generated bundle index. Do not edit.
86
+ */
87
+
88
+ export { CHROMIUM_CONFIG, ChromiumService, provideChromium };
89
+ //# sourceMappingURL=nx-ddd-common-infrastructure-externals-chromium-impl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-common-infrastructure-externals-chromium-impl.mjs","sources":["../tmp-esm2022/infrastructure/externals/chromium/impl/chromium.service.impl.js","../tmp-esm2022/infrastructure/externals/chromium/impl/nx-ddd-common-infrastructure-externals-chromium-impl.js"],"sourcesContent":["import { Injectable, makeEnvironmentProviders } from \"@angular/core\";\nimport { makeDI } from \"@nx-ddd/core\";\nimport { CHROMIUM } from \"@nx-ddd/common/infrastructure/externals/chromium/token\";\nimport { chromium } from \"playwright\";\nimport Chromium from '@sparticuz/chromium';\nimport { merge } from \"lodash-es\";\nimport * as i0 from \"@angular/core\";\nexport const CHROMIUM_CONFIG = makeDI('[@nx-ddd/common] ChromiumConfig', { optional: false });\nexport class ChromiumService {\n config = CHROMIUM_CONFIG.inject();\n async start(callback, options = {}) {\n const defaultArgs = [\n '--no-sandbox',\n '--disable-setuid-sandbox',\n '--disable-dev-shm-usage',\n '--disable-extensions',\n '--disable-gpu',\n '--disable-software-rasterizer',\n ];\n // executablePathの決定: config > @sparticuz/chromium > undefined(省略)\n let executablePath;\n if (this.config.executablePath) {\n executablePath = this.config.executablePath;\n }\n else {\n try {\n const sparticzuPath = await Chromium.executablePath();\n if (sparticzuPath) {\n executablePath = sparticzuPath;\n }\n }\n catch (e) {\n // @sparticuz/chromiumが使えない環境では無視\n console.debug('[@sparticuz/chromium not available, using system chromium');\n }\n }\n const launchOptions = merge({\n headless: this.config.headless,\n timeout: 60 * 1000,\n args: this.config.args || defaultArgs\n }, options);\n console.debug('[ChromiumService] launchOptions:', launchOptions);\n // executablePathが有効な値の場合のみ設定\n if (executablePath) {\n launchOptions.executablePath = executablePath;\n }\n const browser = await chromium.launch(launchOptions);\n try {\n const result = await callback(browser);\n return result;\n }\n catch (error) {\n throw error;\n }\n finally {\n try {\n await browser.close();\n // Cloud Functions環境での確実な終了のため\n if (browser.isConnected()) {\n console.warn('Browser still connected after close, forcing disconnect');\n await browser.close();\n }\n }\n catch (closeError) {\n console.error('Error closing browser:', closeError);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ChromiumService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ChromiumService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ChromiumService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport function provideChromium(useFactory = () => ({ headless: true })) {\n return makeEnvironmentProviders([\n CHROMIUM_CONFIG.provide(useFactory),\n CHROMIUM.provide(() => new ChromiumService()),\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hyb21pdW0uc2VydmljZS5pbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG54LWRkZC9jb21tb24vc3JjL2xpYi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvY2hyb21pdW0vaW1wbC9jaHJvbWl1bS5zZXJ2aWNlLmltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDbEYsT0FBTyxFQUFXLFFBQVEsRUFBaUIsTUFBTSxZQUFZLENBQUM7QUFDOUQsT0FBTyxRQUFRLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFRbEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBaUIsaUNBQWlDLEVBQUUsRUFBQyxRQUFRLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztBQUc1RyxNQUFNLE9BQU8sZUFBZTtJQUNQLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFckQsS0FBSyxDQUFDLEtBQUssQ0FDVCxRQUEwQyxFQUMxQyxVQUF5QixFQUFFO1FBRTNCLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLGNBQWM7WUFDZCwwQkFBMEI7WUFDMUIseUJBQXlCO1lBQ3pCLHNCQUFzQjtZQUN0QixlQUFlO1lBQ2YsK0JBQStCO1NBQ2hDLENBQUM7UUFFRixrRUFBa0U7UUFDbEUsSUFBSSxjQUFrQyxDQUFDO1FBQ3ZDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvQixjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDOUMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxhQUFhLEdBQUcsTUFBTSxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RELElBQUksYUFBYSxFQUFFLENBQUM7b0JBQ2xCLGNBQWMsR0FBRyxhQUFhLENBQUM7Z0JBQ2pDLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxpQ0FBaUM7Z0JBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztZQUM3RSxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFrQixLQUFLLENBQUM7WUFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUM5QixPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUk7WUFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFdBQVc7U0FDdEMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVaLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFakUsNkJBQTZCO1FBQzdCLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsYUFBYSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDaEQsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN2QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQUMsT0FBTSxLQUFLLEVBQUUsQ0FBQztZQUNkLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDO2dCQUNILE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0Qiw4QkFBOEI7Z0JBQzlCLElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7b0JBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMseURBQXlELENBQUMsQ0FBQztvQkFDeEUsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxVQUFVLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7dUdBL0RVLGVBQWU7MkdBQWYsZUFBZSxjQURILE1BQU07OzJGQUNsQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFtRWhDLE1BQU0sVUFBVSxlQUFlLENBQUMsYUFBbUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUN6RixPQUFPLHdCQUF3QixDQUFDO1FBQzlCLGVBQWUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxlQUFlLEVBQUUsQ0FBQztLQUM5QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEluamVjdGFibGUsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBtYWtlREkgfSBmcm9tIFwiQG54LWRkZC9jb3JlXCI7XG5pbXBvcnQgeyBDSFJPTUlVTSB9IGZyb20gXCJAbngtZGRkL2NvbW1vbi9pbmZyYXN0cnVjdHVyZS9leHRlcm5hbHMvY2hyb21pdW0vdG9rZW5cIjtcbmltcG9ydCB7IEJyb3dzZXIsIGNocm9taXVtLCBMYXVuY2hPcHRpb25zIH0gZnJvbSBcInBsYXl3cmlnaHRcIjtcbmltcG9ydCBDaHJvbWl1bSBmcm9tICdAc3BhcnRpY3V6L2Nocm9taXVtJztcbmltcG9ydCB7IG1lcmdlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENocm9taXVtQ29uZmlnIHtcbiAgaGVhZGxlc3M6IGJvb2xlYW47XG4gIGFyZ3M/OiBzdHJpbmdbXTtcbiAgZXhlY3V0YWJsZVBhdGg/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDSFJPTUlVTV9DT05GSUcgPSBtYWtlREk8Q2hyb21pdW1Db25maWc+KCdbQG54LWRkZC9jb21tb25dIENocm9taXVtQ29uZmlnJywge29wdGlvbmFsOiBmYWxzZX0pO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBDaHJvbWl1bVNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnID0gQ0hST01JVU1fQ09ORklHLmluamVjdCgpO1xuXG4gIGFzeW5jIHN0YXJ0PFIgPSBhbnk+KFxuICAgIGNhbGxiYWNrOiAoYnJvd3NlcjogQnJvd3NlcikgPT4gUHJvbWlzZTxSPixcbiAgICBvcHRpb25zOiBMYXVuY2hPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTxSPiB7XG4gICAgY29uc3QgZGVmYXVsdEFyZ3MgPSBbXG4gICAgICAnLS1uby1zYW5kYm94JyxcbiAgICAgICctLWRpc2FibGUtc2V0dWlkLXNhbmRib3gnLFxuICAgICAgJy0tZGlzYWJsZS1kZXYtc2htLXVzYWdlJyxcbiAgICAgICctLWRpc2FibGUtZXh0ZW5zaW9ucycsXG4gICAgICAnLS1kaXNhYmxlLWdwdScsXG4gICAgICAnLS1kaXNhYmxlLXNvZnR3YXJlLXJhc3Rlcml6ZXInLFxuICAgIF07XG5cbiAgICAvLyBleGVjdXRhYmxlUGF0aOOBruaxuuWumjogY29uZmlnID4gQHNwYXJ0aWN1ei9jaHJvbWl1bSA+IHVuZGVmaW5lZCjnnIHnlaUpXG4gICAgbGV0IGV4ZWN1dGFibGVQYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgaWYgKHRoaXMuY29uZmlnLmV4ZWN1dGFibGVQYXRoKSB7XG4gICAgICBleGVjdXRhYmxlUGF0aCA9IHRoaXMuY29uZmlnLmV4ZWN1dGFibGVQYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzcGFydGljenVQYXRoID0gYXdhaXQgQ2hyb21pdW0uZXhlY3V0YWJsZVBhdGgoKTtcbiAgICAgICAgaWYgKHNwYXJ0aWN6dVBhdGgpIHtcbiAgICAgICAgICBleGVjdXRhYmxlUGF0aCA9IHNwYXJ0aWN6dVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQHNwYXJ0aWN1ei9jaHJvbWl1beOBjOS9v+OBiOOBquOBhOeSsOWig+OBp+OBr+eEoeimllxuICAgICAgICBjb25zb2xlLmRlYnVnKCdbQHNwYXJ0aWN1ei9jaHJvbWl1bSBub3QgYXZhaWxhYmxlLCB1c2luZyBzeXN0ZW0gY2hyb21pdW0nKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBsYXVuY2hPcHRpb25zOiBMYXVuY2hPcHRpb25zID0gbWVyZ2Uoe1xuICAgICAgaGVhZGxlc3M6IHRoaXMuY29uZmlnLmhlYWRsZXNzLFxuICAgICAgdGltZW91dDogNjAgKiAxMDAwLFxuICAgICAgYXJnczogdGhpcy5jb25maWcuYXJncyB8fCBkZWZhdWx0QXJnc1xuICAgIH0sIG9wdGlvbnMpO1xuXG4gICAgY29uc29sZS5kZWJ1ZygnW0Nocm9taXVtU2VydmljZV0gbGF1bmNoT3B0aW9uczonLCBsYXVuY2hPcHRpb25zKTtcblxuICAgIC8vIGV4ZWN1dGFibGVQYXRo44GM5pyJ5Yq544Gq5YCk44Gu5aC05ZCI44Gu44G/6Kit5a6aXG4gICAgaWYgKGV4ZWN1dGFibGVQYXRoKSB7XG4gICAgICBsYXVuY2hPcHRpb25zLmV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGg7XG4gICAgfVxuXG4gICAgY29uc3QgYnJvd3NlciA9IGF3YWl0IGNocm9taXVtLmxhdW5jaChsYXVuY2hPcHRpb25zKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2FsbGJhY2soYnJvd3Nlcik7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBicm93c2VyLmNsb3NlKCk7XG4gICAgICAgIC8vIENsb3VkIEZ1bmN0aW9uc+eSsOWig+OBp+OBrueiuuWun+OBque1guS6huOBruOBn+OCgVxuICAgICAgICBpZiAoYnJvd3Nlci5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdCcm93c2VyIHN0aWxsIGNvbm5lY3RlZCBhZnRlciBjbG9zZSwgZm9yY2luZyBkaXNjb25uZWN0Jyk7XG4gICAgICAgICAgYXdhaXQgYnJvd3Nlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChjbG9zZUVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNsb3NpbmcgYnJvd3NlcjonLCBjbG9zZUVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDaHJvbWl1bSh1c2VGYWN0b3J5OiAoKSA9PiBDaHJvbWl1bUNvbmZpZyA9ICgpID0+ICh7aGVhZGxlc3M6IHRydWV9KSk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgQ0hST01JVU1fQ09ORklHLnByb3ZpZGUodXNlRmFjdG9yeSksXG4gICAgQ0hST01JVU0ucHJvdmlkZSgoKSA9PiBuZXcgQ2hyb21pdW1TZXJ2aWNlKCkpLFxuICBdKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWNvbW1vbi1pbmZyYXN0cnVjdHVyZS1leHRlcm5hbHMtY2hyb21pdW0taW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BueC1kZGQvY29tbW9uL3NyYy9saWIvaW5mcmFzdHJ1Y3R1cmUvZXh0ZXJuYWxzL2Nocm9taXVtL2ltcGwvbngtZGRkLWNvbW1vbi1pbmZyYXN0cnVjdHVyZS1leHRlcm5hbHMtY2hyb21pdW0taW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { makeDI } from '@nx-ddd/core';
2
+
3
+ const CHROMIUM = makeDI('[@nx-ddd/common] CHROMIUM');
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+
9
+ export { CHROMIUM };
10
+ //# sourceMappingURL=nx-ddd-common-infrastructure-externals-chromium-token.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nx-ddd-common-infrastructure-externals-chromium-token.mjs","sources":["../tmp-esm2022/infrastructure/externals/chromium/token/index.js","../tmp-esm2022/infrastructure/externals/chromium/token/nx-ddd-common-infrastructure-externals-chromium-token.js"],"sourcesContent":["import { makeDI } from \"@nx-ddd/core\";\nexport const CHROMIUM = makeDI('[@nx-ddd/common] CHROMIUM');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy9jaHJvbWl1bS90b2tlbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VESSB9IGZyb20gXCJAbngtZGRkL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IENIUk9NSVVNID0gbWFrZURJKCdbQG54LWRkZC9jb21tb25dIENIUk9NSVVNJyk7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtZGRkLWNvbW1vbi1pbmZyYXN0cnVjdHVyZS1leHRlcm5hbHMtY2hyb21pdW0tdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbngtZGRkL2NvbW1vbi9zcmMvbGliL2luZnJhc3RydWN0dXJlL2V4dGVybmFscy9jaHJvbWl1bS90b2tlbi9ueC1kZGQtY29tbW9uLWluZnJhc3RydWN0dXJlLWV4dGVybmFscy1jaHJvbWl1bS10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;AACY,MAAC,QAAQ,GAAG,MAAM,CAAC,2BAA2B;;ACD1D;AACA;AACA;;;;"}
@@ -0,0 +1,10 @@
1
+ import { CHROMIUM as CHROMIUM$1 } from '@nx-ddd/common/infrastructure/externals/chromium/token';
2
+
3
+ const CHROMIUM = CHROMIUM$1;
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+
9
+ export { CHROMIUM };
10
+ //# sourceMappingURL=nx-ddd-common-infrastructure-externals-chromium.mjs.map