@infrab4a/connect-nestjs 2.9.2 → 2.9.3

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 (97) hide show
  1. package/eslint.config.js +17 -0
  2. package/package.json +3 -13
  3. package/project.json +45 -0
  4. package/src/consts/es-config.const.ts +1 -0
  5. package/src/consts/hasura-options.const.ts +1 -0
  6. package/src/consts/index.ts +4 -0
  7. package/src/consts/storage.const.ts +1 -0
  8. package/src/consts/vertex-config.const.ts +1 -0
  9. package/src/index.ts +7 -0
  10. package/src/infra/elasticsearch/adapters/index.ts +1 -0
  11. package/src/infra/elasticsearch/adapters/native-elasticsearch-adapter.ts +137 -0
  12. package/src/infra/elasticsearch/index.ts +1 -0
  13. package/src/infra/firebase/firestore/index.ts +2 -0
  14. package/src/infra/firebase/firestore/services/connect-collection-reference.ts +27 -0
  15. package/src/infra/firebase/firestore/services/connect-collection.service.ts +137 -0
  16. package/src/infra/firebase/firestore/services/connect-document-reference.ts +12 -0
  17. package/src/infra/firebase/firestore/services/connect-document.service.ts +51 -0
  18. package/src/infra/firebase/firestore/services/connect-firestore.service.ts +24 -0
  19. package/src/infra/firebase/firestore/services/connect-firestore.ts +9 -0
  20. package/src/infra/firebase/firestore/services/index.ts +6 -0
  21. package/src/infra/firebase/firestore/types/connect-query-snapshot.type.ts +6 -0
  22. package/src/infra/firebase/firestore/types/index.ts +1 -0
  23. package/src/infra/firebase/firestore/vo/connect-base-document-snapshot.vo.ts +27 -0
  24. package/src/infra/firebase/firestore/vo/index.ts +1 -0
  25. package/src/infra/firebase/index.ts +1 -0
  26. package/src/infra/index.ts +4 -0
  27. package/src/infra/pagarme/adapters/index.ts +3 -0
  28. package/src/infra/pagarme/adapters/pagarme-bank-slip-api.adapter.ts +97 -0
  29. package/src/infra/pagarme/adapters/pagarme-card-api.adapter.ts +221 -0
  30. package/src/infra/pagarme/adapters/pagarme-pix-api.adapter.ts +70 -0
  31. package/src/infra/pagarme/index.ts +1 -0
  32. package/src/infra/vertex-ai/adapters/discovery-engine-adapter.ts +146 -0
  33. package/src/infra/vertex-ai/adapters/index.ts +1 -0
  34. package/src/infra/vertex-ai/helpers/index.ts +1 -0
  35. package/src/infra/vertex-ai/helpers/product-vertex-ai.helper.ts +52 -0
  36. package/src/infra/vertex-ai/index.ts +3 -0
  37. package/src/infra/vertex-ai/types/index.ts +2 -0
  38. package/src/infra/vertex-ai/types/vertex-config.ts +9 -0
  39. package/src/infra/vertex-ai/types/vertex-search-result.ts +17 -0
  40. package/src/nest-connect.module.ts +36 -0
  41. package/src/nest-elastic-search.module.ts +26 -0
  42. package/src/nest-firestore.module.ts +413 -0
  43. package/src/nest-hasura-graphql.module.ts +285 -0
  44. package/src/nest-storage.module.ts +16 -0
  45. package/src/nest-vertex-ai-search.module.ts +26 -0
  46. package/src/types/pagarme.d.ts +24 -0
  47. package/tsconfig.json +15 -0
  48. package/tsconfig.lib.json +7 -0
  49. package/tsconfig.lib.prod.json +10 -0
  50. package/tsconfig.spec.json +17 -0
  51. package/index.cjs.d.ts +0 -1
  52. package/index.cjs.default.js +0 -1
  53. package/index.cjs.js +0 -1417
  54. package/index.cjs.mjs +0 -2
  55. package/index.esm.js +0 -1400
  56. package/src/consts/es-config.const.d.ts +0 -1
  57. package/src/consts/hasura-options.const.d.ts +0 -1
  58. package/src/consts/index.d.ts +0 -4
  59. package/src/consts/storage.const.d.ts +0 -1
  60. package/src/consts/vertex-config.const.d.ts +0 -1
  61. package/src/index.d.ts +0 -7
  62. package/src/infra/elasticsearch/adapters/index.d.ts +0 -1
  63. package/src/infra/elasticsearch/adapters/native-elasticsearch-adapter.d.ts +0 -19
  64. package/src/infra/elasticsearch/index.d.ts +0 -1
  65. package/src/infra/firebase/firestore/index.d.ts +0 -2
  66. package/src/infra/firebase/firestore/services/connect-collection-reference.d.ts +0 -19
  67. package/src/infra/firebase/firestore/services/connect-collection.service.d.ts +0 -32
  68. package/src/infra/firebase/firestore/services/connect-document-reference.d.ts +0 -11
  69. package/src/infra/firebase/firestore/services/connect-document.service.d.ts +0 -17
  70. package/src/infra/firebase/firestore/services/connect-firestore.d.ts +0 -7
  71. package/src/infra/firebase/firestore/services/connect-firestore.service.d.ts +0 -8
  72. package/src/infra/firebase/firestore/services/index.d.ts +0 -6
  73. package/src/infra/firebase/firestore/types/connect-query-snapshot.type.d.ts +0 -4
  74. package/src/infra/firebase/firestore/types/index.d.ts +0 -1
  75. package/src/infra/firebase/firestore/vo/connect-base-document-snapshot.vo.d.ts +0 -12
  76. package/src/infra/firebase/firestore/vo/index.d.ts +0 -1
  77. package/src/infra/firebase/index.d.ts +0 -1
  78. package/src/infra/index.d.ts +0 -4
  79. package/src/infra/pagarme/adapters/index.d.ts +0 -3
  80. package/src/infra/pagarme/adapters/pagarme-bank-slip-api.adapter.d.ts +0 -9
  81. package/src/infra/pagarme/adapters/pagarme-card-api.adapter.d.ts +0 -21
  82. package/src/infra/pagarme/adapters/pagarme-pix-api.adapter.d.ts +0 -8
  83. package/src/infra/pagarme/index.d.ts +0 -1
  84. package/src/infra/vertex-ai/adapters/discovery-engine-adapter.d.ts +0 -17
  85. package/src/infra/vertex-ai/adapters/index.d.ts +0 -1
  86. package/src/infra/vertex-ai/helpers/index.d.ts +0 -1
  87. package/src/infra/vertex-ai/helpers/product-vertex-ai.helper.d.ts +0 -7
  88. package/src/infra/vertex-ai/index.d.ts +0 -3
  89. package/src/infra/vertex-ai/types/index.d.ts +0 -2
  90. package/src/infra/vertex-ai/types/vertex-config.d.ts +0 -9
  91. package/src/infra/vertex-ai/types/vertex-search-result.d.ts +0 -18
  92. package/src/nest-connect.module.d.ts +0 -13
  93. package/src/nest-elastic-search.module.d.ts +0 -5
  94. package/src/nest-firestore.module.d.ts +0 -10
  95. package/src/nest-hasura-graphql.module.d.ts +0 -13
  96. package/src/nest-storage.module.d.ts +0 -2
  97. package/src/nest-vertex-ai-search.module.d.ts +0 -5
@@ -0,0 +1,26 @@
1
+ import { ProductsIndex } from '@infrab4a/connect'
2
+ import { DynamicModule, Module } from '@nestjs/common'
3
+
4
+ import { ES_CONFIG } from './consts/es-config.const'
5
+ import { ESClientOptions, NativeElasticSearchAdapter } from './infra'
6
+
7
+ @Module({
8
+ providers: [
9
+ NativeElasticSearchAdapter,
10
+ {
11
+ provide: ProductsIndex,
12
+ useFactory: (adapter: NativeElasticSearchAdapter): ProductsIndex => new ProductsIndex(adapter),
13
+ inject: [NativeElasticSearchAdapter],
14
+ },
15
+ ],
16
+ exports: [ProductsIndex],
17
+ })
18
+ export class NestElasticSeachModule {
19
+ public static initializeApp(options: ESClientOptions): DynamicModule {
20
+ return {
21
+ module: NestElasticSeachModule,
22
+ providers: [{ provide: ES_CONFIG, useValue: options }],
23
+ exports: [ES_CONFIG],
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,413 @@
1
+ import {
2
+ BeautyProfileRepository,
3
+ BrandCategoryFirestoreRepository,
4
+ BrandCategoryRepository,
5
+ Buy2WinFirestoreRepository,
6
+ Buy2WinRepository,
7
+ CampaignDashboardFirestoreRepository,
8
+ CampaignDashboardRepository,
9
+ CampaignHashtagFirestoreRepository,
10
+ CampaignHashtagRepository,
11
+ CategoryFirestoreRepository,
12
+ CategoryRepository,
13
+ CheckoutFirestoreRepository,
14
+ CheckoutRepository,
15
+ CheckoutSubscriptionFirestoreRepository,
16
+ CheckoutSubscriptionRepository,
17
+ CouponFirestoreRepository,
18
+ CouponRepository,
19
+ EditionRepository,
20
+ FirestoreConstructorParams,
21
+ GroupFirestoreRepository,
22
+ GroupRepository,
23
+ HomeFirestoreRepository,
24
+ HomeRepository,
25
+ LeadFirestoreRepository,
26
+ LeadRepository,
27
+ LegacyOrderFirestoreRepository,
28
+ LegacyOrderRepository,
29
+ LogFirestoreRepository,
30
+ LogRepository,
31
+ OrderBlockedFirestoreRepository,
32
+ OrderBlockedRepository,
33
+ OrderFirestoreRepository,
34
+ OrderRepository,
35
+ PaymentFirestoreRepository,
36
+ PaymentRepository,
37
+ ProductFirestoreRepository,
38
+ ProductRepository,
39
+ ProductVariantFirestoreRepository,
40
+ SequenceFirestoreRepository,
41
+ ShopConfigsFirestoreRepository,
42
+ ShopConfigsRepository,
43
+ ShopMenuFirestoreRepository,
44
+ ShopMenuRepository,
45
+ ShoppingRecurrenceEditionFirestoreRepository,
46
+ ShoppingRecurrenceEditionRepository,
47
+ ShoppingRecurrenceErrorLogFirestoreRepository,
48
+ ShoppingRecurrenceErrorLogRepository,
49
+ ShoppingRecurrenceFirestoreRepository,
50
+ ShoppingRecurrenceRepository,
51
+ ShopSettingsFirestoreRepository,
52
+ ShopSettingsRepository,
53
+ SubscriptionEditionFirestoreRepository,
54
+ SubscriptionFirestoreRepository,
55
+ SubscriptionMaterializationFirestoreRepository,
56
+ SubscriptionMaterializationRepository,
57
+ SubscriptionPaymentFirestoreRepository,
58
+ SubscriptionPaymentRepository,
59
+ SubscriptionPlanFirestoreRepository,
60
+ SubscriptionPlanRepository,
61
+ SubscriptionProductFirestoreRepository,
62
+ SubscriptionProductRepository,
63
+ SubscriptionRepository,
64
+ SubscriptionSummaryFirestoreRepository,
65
+ SubscriptionSummaryRepository,
66
+ UserAddressFirestoreRepository,
67
+ UserAddressRepository,
68
+ UserBeautyProfileFirestoreRepository,
69
+ UserFirestoreRepository,
70
+ UserPaymentMethodFirestoreRepository,
71
+ UserPaymentMethodRepository,
72
+ UserRepository,
73
+ VariantRepository,
74
+ } from '@infrab4a/connect'
75
+ import { DynamicModule, Module } from '@nestjs/common'
76
+ import { FirebaseAdmin, FirebaseConstants, FirebaseModule } from 'nestjs-firebase'
77
+
78
+ import { ConnectFirestoreService } from './infra'
79
+ import { NestStorageModule } from './nest-storage.module'
80
+
81
+ export type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>
82
+
83
+ @Module({
84
+ providers: [
85
+ {
86
+ provide: ConnectFirestoreService,
87
+ useFactory: (firebaseAdmin: FirebaseAdmin) => new ConnectFirestoreService(firebaseAdmin.firestore),
88
+ inject: [FirebaseConstants.FIREBASE_TOKEN],
89
+ },
90
+ {
91
+ provide: 'FirestoreOptions',
92
+ useFactory: (connectFirestoreService: ConnectFirestoreService): FirestoreOptions => ({
93
+ firestore: connectFirestoreService,
94
+ }),
95
+ inject: [ConnectFirestoreService],
96
+ },
97
+ {
98
+ provide: 'BeautyProfileRepository',
99
+ useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {
100
+ return new UserBeautyProfileFirestoreRepository(config, userRepository)
101
+ },
102
+ inject: ['FirestoreOptions', 'UserRepository'],
103
+ },
104
+ {
105
+ provide: 'Buy2WinRepository',
106
+ useFactory: (options: FirestoreOptions): Buy2WinRepository => {
107
+ return new Buy2WinFirestoreRepository(options)
108
+ },
109
+ inject: ['FirestoreOptions'],
110
+ },
111
+ {
112
+ provide: CategoryFirestoreRepository,
113
+ useFactory: (options: FirestoreOptions): CategoryRepository => {
114
+ return new CategoryFirestoreRepository(options)
115
+ },
116
+ inject: ['FirestoreOptions'],
117
+ },
118
+ {
119
+ provide: 'CheckoutRepository',
120
+ useFactory: (options: FirestoreOptions): CheckoutRepository => {
121
+ return new CheckoutFirestoreRepository(options)
122
+ },
123
+ inject: ['FirestoreOptions'],
124
+ },
125
+ {
126
+ provide: 'CheckoutSubscriptionRepository',
127
+ useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {
128
+ return new CheckoutSubscriptionFirestoreRepository(options)
129
+ },
130
+ inject: ['FirestoreOptions'],
131
+ },
132
+ {
133
+ provide: 'CouponRepository',
134
+ useFactory: (options: FirestoreOptions): CouponRepository => {
135
+ return new CouponFirestoreRepository(options)
136
+ },
137
+ inject: ['FirestoreOptions'],
138
+ },
139
+ {
140
+ provide: 'CampaignHashtagRepository',
141
+ useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {
142
+ return new CampaignHashtagFirestoreRepository(options)
143
+ },
144
+ inject: ['FirestoreOptions'],
145
+ },
146
+ {
147
+ provide: 'CampaignDashboardRepository',
148
+ useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {
149
+ return new CampaignDashboardFirestoreRepository(options)
150
+ },
151
+ inject: ['FirestoreOptions'],
152
+ },
153
+ {
154
+ provide: 'EditionRepository',
155
+ useFactory: (
156
+ options: FirestoreOptions,
157
+ subscriptionRepository: SubscriptionFirestoreRepository,
158
+ ): EditionRepository => {
159
+ return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)
160
+ },
161
+ inject: ['FirestoreOptions', 'SubscriptionRepository'],
162
+ },
163
+ {
164
+ provide: 'GroupRepository',
165
+ useFactory: (options: FirestoreOptions): GroupRepository => {
166
+ return new GroupFirestoreRepository(options)
167
+ },
168
+ inject: ['FirestoreOptions'],
169
+ },
170
+ {
171
+ provide: 'HomeRepository',
172
+ useFactory: (options: FirestoreOptions): HomeRepository => {
173
+ return new HomeFirestoreRepository(options)
174
+ },
175
+ inject: ['FirestoreOptions'],
176
+ },
177
+ {
178
+ provide: 'LeadRepository',
179
+ useFactory: (options: FirestoreOptions): LeadRepository => {
180
+ return new LeadFirestoreRepository(options)
181
+ },
182
+ inject: ['FirestoreOptions'],
183
+ },
184
+ {
185
+ provide: 'LegacyOrderRepository',
186
+ useFactory: (options: FirestoreOptions): LegacyOrderRepository => {
187
+ return new LegacyOrderFirestoreRepository(options)
188
+ },
189
+ inject: ['FirestoreOptions'],
190
+ },
191
+ {
192
+ provide: 'ShopMenuRepository',
193
+ useFactory: (options: FirestoreOptions): ShopMenuRepository => {
194
+ return new ShopMenuFirestoreRepository(options)
195
+ },
196
+ inject: ['FirestoreOptions'],
197
+ },
198
+ {
199
+ provide: 'OrderRepository',
200
+ useFactory: (options: FirestoreOptions): OrderRepository => {
201
+ return new OrderFirestoreRepository(options)
202
+ },
203
+ inject: ['FirestoreOptions'],
204
+ },
205
+ {
206
+ provide: 'PaymentRepository',
207
+ useFactory: (options: FirestoreOptions): PaymentRepository => {
208
+ return new PaymentFirestoreRepository(options)
209
+ },
210
+ inject: ['FirestoreOptions'],
211
+ },
212
+ {
213
+ provide: 'ShoppingRecurrenceRepository',
214
+ useFactory: (options: FirestoreOptions): ShoppingRecurrenceRepository => {
215
+ return new ShoppingRecurrenceFirestoreRepository(options)
216
+ },
217
+ inject: ['FirestoreOptions'],
218
+ },
219
+ {
220
+ provide: 'ShoppingRecurrenceEditionRepository',
221
+ useFactory: (options: FirestoreOptions): ShoppingRecurrenceEditionRepository => {
222
+ return new ShoppingRecurrenceEditionFirestoreRepository(options)
223
+ },
224
+ inject: ['FirestoreOptions'],
225
+ },
226
+ {
227
+ provide: 'ShoppingRecurrenceErrorLogRepository',
228
+ useFactory: (options: FirestoreOptions): ShoppingRecurrenceErrorLogRepository => {
229
+ return new ShoppingRecurrenceErrorLogFirestoreRepository(options)
230
+ },
231
+ inject: ['FirestoreOptions'],
232
+ },
233
+ {
234
+ provide: ProductFirestoreRepository,
235
+ useFactory: (options: FirestoreOptions): ProductRepository => {
236
+ return new ProductFirestoreRepository(options)
237
+ },
238
+ inject: ['FirestoreOptions'],
239
+ },
240
+ {
241
+ provide: 'ShopSettingsRepository',
242
+ useFactory: (options: FirestoreOptions): ShopSettingsRepository => {
243
+ return new ShopSettingsFirestoreRepository(options)
244
+ },
245
+ inject: ['FirestoreOptions'],
246
+ },
247
+ {
248
+ provide: 'SubscriptionPaymentRepository',
249
+ useFactory: (
250
+ options: FirestoreOptions,
251
+ subscriptionRepository: SubscriptionFirestoreRepository,
252
+ ): SubscriptionPaymentRepository => {
253
+ return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)
254
+ },
255
+ inject: ['FirestoreOptions', 'SubscriptionRepository'],
256
+ },
257
+ {
258
+ provide: 'SubscriptionPlanRepository',
259
+ useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {
260
+ return new SubscriptionPlanFirestoreRepository(options)
261
+ },
262
+ inject: ['FirestoreOptions'],
263
+ },
264
+ {
265
+ provide: 'SubscriptionProductRepository',
266
+ useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {
267
+ return new SubscriptionProductFirestoreRepository(options)
268
+ },
269
+ inject: ['FirestoreOptions'],
270
+ },
271
+ {
272
+ provide: 'SubscriptionRepository',
273
+ useFactory: (options: FirestoreOptions): SubscriptionRepository => {
274
+ return new SubscriptionFirestoreRepository(options)
275
+ },
276
+ inject: ['FirestoreOptions'],
277
+ },
278
+ {
279
+ provide: 'UserRepository',
280
+ useFactory: (options: FirestoreOptions): UserRepository => {
281
+ return new UserFirestoreRepository(options)
282
+ },
283
+ inject: ['FirestoreOptions'],
284
+ },
285
+ {
286
+ provide: 'UserAddressRepository',
287
+ useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {
288
+ return new UserAddressFirestoreRepository(options, userRepository)
289
+ },
290
+ inject: ['FirestoreOptions', 'UserRepository'],
291
+ },
292
+ {
293
+ provide: 'UserPaymentMethodRepository',
294
+ useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {
295
+ return new UserPaymentMethodFirestoreRepository(options, userRepository)
296
+ },
297
+ inject: ['FirestoreOptions', 'UserRepository'],
298
+ },
299
+ {
300
+ provide: 'SubscriptionMaterializationRepository',
301
+ useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {
302
+ return new SubscriptionMaterializationFirestoreRepository(options)
303
+ },
304
+ inject: ['FirestoreOptions'],
305
+ },
306
+ {
307
+ provide: 'SubscriptionSummaryRepository',
308
+ useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {
309
+ return new SubscriptionSummaryFirestoreRepository(options)
310
+ },
311
+ inject: ['FirestoreOptions'],
312
+ },
313
+ {
314
+ provide: ProductVariantFirestoreRepository,
315
+ useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {
316
+ return new ProductVariantFirestoreRepository(options, productRepository)
317
+ },
318
+ inject: ['FirestoreOptions', ProductFirestoreRepository],
319
+ },
320
+ {
321
+ provide: 'OrderBlockedRepository',
322
+ useFactory: (options: FirestoreOptions): OrderBlockedRepository => {
323
+ return new OrderBlockedFirestoreRepository(options)
324
+ },
325
+ inject: ['FirestoreOptions'],
326
+ },
327
+ {
328
+ provide: 'LogRepository',
329
+ useFactory: (options: FirestoreOptions): LogRepository => {
330
+ return new LogFirestoreRepository(options)
331
+ },
332
+ inject: ['FirestoreOptions'],
333
+ },
334
+ {
335
+ provide: 'SequenceRepository',
336
+ useFactory: (options: FirestoreOptions): SequenceFirestoreRepository => {
337
+ return new SequenceFirestoreRepository(options)
338
+ },
339
+ inject: ['FirestoreOptions'],
340
+ },
341
+ {
342
+ provide: 'BrandCategoryRepository',
343
+ useFactory: (options: FirestoreOptions): BrandCategoryRepository => {
344
+ return new BrandCategoryFirestoreRepository(options)
345
+ },
346
+ inject: ['FirestoreOptions'],
347
+ },
348
+ {
349
+ provide: 'ShopConfigsRepository',
350
+ useFactory: (options: FirestoreOptions): ShopConfigsRepository => {
351
+ return new ShopConfigsFirestoreRepository(options)
352
+ },
353
+ inject: ['FirestoreOptions'],
354
+ },
355
+ ],
356
+ exports: [
357
+ 'BeautyProfileRepository',
358
+ 'Buy2WinRepository',
359
+ CategoryFirestoreRepository,
360
+ 'CheckoutRepository',
361
+ 'CheckoutSubscriptionRepository',
362
+ 'CouponRepository',
363
+ 'CampaignHashtagRepository',
364
+ 'CampaignDashboardRepository',
365
+ 'EditionRepository',
366
+ 'GroupRepository',
367
+ 'HomeRepository',
368
+ 'LeadRepository',
369
+ 'LegacyOrderRepository',
370
+ 'ShopMenuRepository',
371
+ 'OrderRepository',
372
+ 'OrderBlockedRepository',
373
+ 'PaymentRepository',
374
+ 'ShoppingRecurrenceRepository',
375
+ 'ShoppingRecurrenceEditionRepository',
376
+ 'ShoppingRecurrenceErrorLogRepository',
377
+ 'SequenceRepository',
378
+ 'LogRepository',
379
+ ProductFirestoreRepository,
380
+ 'ShopSettingsRepository',
381
+ 'SubscriptionPaymentRepository',
382
+ 'SubscriptionPlanRepository',
383
+ 'SubscriptionProductRepository',
384
+ 'SubscriptionRepository',
385
+ 'UserRepository',
386
+ 'UserAddressRepository',
387
+ 'UserPaymentMethodRepository',
388
+ 'SubscriptionMaterializationRepository',
389
+ 'SubscriptionSummaryRepository',
390
+ ProductVariantFirestoreRepository,
391
+ ConnectFirestoreService,
392
+ 'BrandCategoryRepository',
393
+ 'ShopConfigsRepository',
394
+ ],
395
+ })
396
+ export class NestFirestoreModule {
397
+ public static initializeApp(options: {
398
+ firebase: {
399
+ googleApplicationCredential: string
400
+ }
401
+ }): DynamicModule {
402
+ return {
403
+ module: NestFirestoreModule,
404
+ imports: [
405
+ FirebaseModule.forRoot({
406
+ googleApplicationCredential: options?.firebase?.googleApplicationCredential,
407
+ }),
408
+ NestStorageModule,
409
+ ],
410
+ exports: [FirebaseModule, NestStorageModule],
411
+ }
412
+ }
413
+ }