@dyanet/nestjs-config-aws 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1183 -0
  3. package/dist/cjs/config.module.js +178 -0
  4. package/dist/cjs/config.module.js.map +1 -0
  5. package/dist/cjs/index.js +47 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/integration/index.js +23 -0
  8. package/dist/cjs/integration/index.js.map +1 -0
  9. package/dist/cjs/integration/interfaces/configuration-factory.interface.js +3 -0
  10. package/dist/cjs/integration/interfaces/configuration-factory.interface.js.map +1 -0
  11. package/dist/cjs/integration/interfaces/configuration-source.interface.js +3 -0
  12. package/dist/cjs/integration/interfaces/configuration-source.interface.js.map +1 -0
  13. package/dist/cjs/integration/interfaces/index.js +26 -0
  14. package/dist/cjs/integration/interfaces/index.js.map +1 -0
  15. package/dist/cjs/integration/interfaces/integration-options.interface.js +3 -0
  16. package/dist/cjs/integration/interfaces/integration-options.interface.js.map +1 -0
  17. package/dist/cjs/integration/interfaces/integration-state.interface.js +3 -0
  18. package/dist/cjs/integration/interfaces/integration-state.interface.js.map +1 -0
  19. package/dist/cjs/integration/interfaces/nestjs-config-compatibility.interface.js +73 -0
  20. package/dist/cjs/integration/interfaces/nestjs-config-compatibility.interface.js.map +1 -0
  21. package/dist/cjs/integration/interfaces/nestjs-config-integration.interface.js +3 -0
  22. package/dist/cjs/integration/interfaces/nestjs-config-integration.interface.js.map +1 -0
  23. package/dist/cjs/integration/interfaces/typed-configuration.interface.js +4 -0
  24. package/dist/cjs/integration/interfaces/typed-configuration.interface.js.map +1 -0
  25. package/dist/cjs/integration/interfaces/utility-types.interface.js +52 -0
  26. package/dist/cjs/integration/interfaces/utility-types.interface.js.map +1 -0
  27. package/dist/cjs/integration/nestjs-config-integration.module.js +124 -0
  28. package/dist/cjs/integration/nestjs-config-integration.module.js.map +1 -0
  29. package/dist/cjs/integration/providers/aws-configuration-loader.service.js +591 -0
  30. package/dist/cjs/integration/providers/aws-configuration-loader.service.js.map +1 -0
  31. package/dist/cjs/integration/providers/configuration-factory.provider.js +383 -0
  32. package/dist/cjs/integration/providers/configuration-factory.provider.js.map +1 -0
  33. package/dist/cjs/integration/providers/index.js +20 -0
  34. package/dist/cjs/integration/providers/index.js.map +1 -0
  35. package/dist/cjs/integration/services/async-config-helper.service.js +356 -0
  36. package/dist/cjs/integration/services/async-config-helper.service.js.map +1 -0
  37. package/dist/cjs/integration/services/error-handler.service.js +265 -0
  38. package/dist/cjs/integration/services/error-handler.service.js.map +1 -0
  39. package/dist/cjs/integration/services/factory-registration.service.js +512 -0
  40. package/dist/cjs/integration/services/factory-registration.service.js.map +1 -0
  41. package/dist/cjs/integration/services/index.js +26 -0
  42. package/dist/cjs/integration/services/index.js.map +1 -0
  43. package/dist/cjs/integration/services/integration-state.service.js +83 -0
  44. package/dist/cjs/integration/services/integration-state.service.js.map +1 -0
  45. package/dist/cjs/integration/services/namespace-handler.service.js +467 -0
  46. package/dist/cjs/integration/services/namespace-handler.service.js.map +1 -0
  47. package/dist/cjs/integration/services/nestjs-config-integration.service.js +316 -0
  48. package/dist/cjs/integration/services/nestjs-config-integration.service.js.map +1 -0
  49. package/dist/cjs/integration/services/precedence-handler.service.js +294 -0
  50. package/dist/cjs/integration/services/precedence-handler.service.js.map +1 -0
  51. package/dist/cjs/integration/services/validation-integration.service.js +591 -0
  52. package/dist/cjs/integration/services/validation-integration.service.js.map +1 -0
  53. package/dist/cjs/integration/utils/config-integration.util.js +283 -0
  54. package/dist/cjs/integration/utils/config-integration.util.js.map +1 -0
  55. package/dist/cjs/integration/utils/index.js +19 -0
  56. package/dist/cjs/integration/utils/index.js.map +1 -0
  57. package/dist/cjs/interfaces/config-loader.interface.js +3 -0
  58. package/dist/cjs/interfaces/config-loader.interface.js.map +1 -0
  59. package/dist/cjs/interfaces/config-service.interface.js +11 -0
  60. package/dist/cjs/interfaces/config-service.interface.js.map +1 -0
  61. package/dist/cjs/interfaces/default-schema.interface.js +63 -0
  62. package/dist/cjs/interfaces/default-schema.interface.js.map +1 -0
  63. package/dist/cjs/interfaces/errors.interface.js +77 -0
  64. package/dist/cjs/interfaces/errors.interface.js.map +1 -0
  65. package/dist/cjs/interfaces/index.js +25 -0
  66. package/dist/cjs/interfaces/index.js.map +1 -0
  67. package/dist/cjs/interfaces/module-options.interface.js +3 -0
  68. package/dist/cjs/interfaces/module-options.interface.js.map +1 -0
  69. package/dist/cjs/loaders/environment.loader.js +59 -0
  70. package/dist/cjs/loaders/environment.loader.js.map +1 -0
  71. package/dist/cjs/loaders/secrets-manager.loader.js +122 -0
  72. package/dist/cjs/loaders/secrets-manager.loader.js.map +1 -0
  73. package/dist/cjs/loaders/ssm-parameter-store.loader.js +146 -0
  74. package/dist/cjs/loaders/ssm-parameter-store.loader.js.map +1 -0
  75. package/dist/cjs/services/config.service.js +297 -0
  76. package/dist/cjs/services/config.service.js.map +1 -0
  77. package/dist/cjs/utils/validation.util.js +114 -0
  78. package/dist/cjs/utils/validation.util.js.map +1 -0
  79. package/dist/esm/config.module.js +175 -0
  80. package/dist/esm/config.module.js.map +1 -0
  81. package/dist/esm/index.js +18 -0
  82. package/dist/esm/index.js.map +1 -0
  83. package/dist/esm/integration/index.js +7 -0
  84. package/dist/esm/integration/index.js.map +1 -0
  85. package/dist/esm/integration/interfaces/configuration-factory.interface.js +2 -0
  86. package/dist/esm/integration/interfaces/configuration-factory.interface.js.map +1 -0
  87. package/dist/esm/integration/interfaces/configuration-source.interface.js +2 -0
  88. package/dist/esm/integration/interfaces/configuration-source.interface.js.map +1 -0
  89. package/dist/esm/integration/interfaces/index.js +10 -0
  90. package/dist/esm/integration/interfaces/index.js.map +1 -0
  91. package/dist/esm/integration/interfaces/integration-options.interface.js +2 -0
  92. package/dist/esm/integration/interfaces/integration-options.interface.js.map +1 -0
  93. package/dist/esm/integration/interfaces/integration-state.interface.js +2 -0
  94. package/dist/esm/integration/interfaces/integration-state.interface.js.map +1 -0
  95. package/dist/esm/integration/interfaces/nestjs-config-compatibility.interface.js +64 -0
  96. package/dist/esm/integration/interfaces/nestjs-config-compatibility.interface.js.map +1 -0
  97. package/dist/esm/integration/interfaces/nestjs-config-integration.interface.js +2 -0
  98. package/dist/esm/integration/interfaces/nestjs-config-integration.interface.js.map +1 -0
  99. package/dist/esm/integration/interfaces/typed-configuration.interface.js +3 -0
  100. package/dist/esm/integration/interfaces/typed-configuration.interface.js.map +1 -0
  101. package/dist/esm/integration/interfaces/utility-types.interface.js +44 -0
  102. package/dist/esm/integration/interfaces/utility-types.interface.js.map +1 -0
  103. package/dist/esm/integration/nestjs-config-integration.module.js +121 -0
  104. package/dist/esm/integration/nestjs-config-integration.module.js.map +1 -0
  105. package/dist/esm/integration/providers/aws-configuration-loader.service.js +588 -0
  106. package/dist/esm/integration/providers/aws-configuration-loader.service.js.map +1 -0
  107. package/dist/esm/integration/providers/configuration-factory.provider.js +380 -0
  108. package/dist/esm/integration/providers/configuration-factory.provider.js.map +1 -0
  109. package/dist/esm/integration/providers/index.js +4 -0
  110. package/dist/esm/integration/providers/index.js.map +1 -0
  111. package/dist/esm/integration/services/async-config-helper.service.js +353 -0
  112. package/dist/esm/integration/services/async-config-helper.service.js.map +1 -0
  113. package/dist/esm/integration/services/error-handler.service.js +262 -0
  114. package/dist/esm/integration/services/error-handler.service.js.map +1 -0
  115. package/dist/esm/integration/services/factory-registration.service.js +509 -0
  116. package/dist/esm/integration/services/factory-registration.service.js.map +1 -0
  117. package/dist/esm/integration/services/index.js +10 -0
  118. package/dist/esm/integration/services/index.js.map +1 -0
  119. package/dist/esm/integration/services/integration-state.service.js +80 -0
  120. package/dist/esm/integration/services/integration-state.service.js.map +1 -0
  121. package/dist/esm/integration/services/namespace-handler.service.js +464 -0
  122. package/dist/esm/integration/services/namespace-handler.service.js.map +1 -0
  123. package/dist/esm/integration/services/nestjs-config-integration.service.js +313 -0
  124. package/dist/esm/integration/services/nestjs-config-integration.service.js.map +1 -0
  125. package/dist/esm/integration/services/precedence-handler.service.js +291 -0
  126. package/dist/esm/integration/services/precedence-handler.service.js.map +1 -0
  127. package/dist/esm/integration/services/validation-integration.service.js +585 -0
  128. package/dist/esm/integration/services/validation-integration.service.js.map +1 -0
  129. package/dist/esm/integration/utils/config-integration.util.js +240 -0
  130. package/dist/esm/integration/utils/config-integration.util.js.map +1 -0
  131. package/dist/esm/integration/utils/index.js +3 -0
  132. package/dist/esm/integration/utils/index.js.map +1 -0
  133. package/dist/esm/interfaces/config-loader.interface.js +2 -0
  134. package/dist/esm/interfaces/config-loader.interface.js.map +1 -0
  135. package/dist/esm/interfaces/config-service.interface.js +7 -0
  136. package/dist/esm/interfaces/config-service.interface.js.map +1 -0
  137. package/dist/esm/interfaces/default-schema.interface.js +59 -0
  138. package/dist/esm/interfaces/default-schema.interface.js.map +1 -0
  139. package/dist/esm/interfaces/errors.interface.js +69 -0
  140. package/dist/esm/interfaces/errors.interface.js.map +1 -0
  141. package/dist/esm/interfaces/index.js +9 -0
  142. package/dist/esm/interfaces/index.js.map +1 -0
  143. package/dist/esm/interfaces/module-options.interface.js +2 -0
  144. package/dist/esm/interfaces/module-options.interface.js.map +1 -0
  145. package/dist/esm/loaders/environment.loader.js +55 -0
  146. package/dist/esm/loaders/environment.loader.js.map +1 -0
  147. package/dist/esm/loaders/secrets-manager.loader.js +118 -0
  148. package/dist/esm/loaders/secrets-manager.loader.js.map +1 -0
  149. package/dist/esm/loaders/ssm-parameter-store.loader.js +142 -0
  150. package/dist/esm/loaders/ssm-parameter-store.loader.js.map +1 -0
  151. package/dist/esm/services/config.service.js +261 -0
  152. package/dist/esm/services/config.service.js.map +1 -0
  153. package/dist/esm/utils/validation.util.js +110 -0
  154. package/dist/esm/utils/validation.util.js.map +1 -0
  155. package/dist/types/config.module.d.ts +46 -0
  156. package/dist/types/config.module.d.ts.map +1 -0
  157. package/dist/types/index.d.ts +13 -0
  158. package/dist/types/index.d.ts.map +1 -0
  159. package/dist/types/integration/index.d.ts +6 -0
  160. package/dist/types/integration/index.d.ts.map +1 -0
  161. package/dist/types/integration/interfaces/configuration-factory.interface.d.ts +71 -0
  162. package/dist/types/integration/interfaces/configuration-factory.interface.d.ts.map +1 -0
  163. package/dist/types/integration/interfaces/configuration-source.interface.d.ts +24 -0
  164. package/dist/types/integration/interfaces/configuration-source.interface.d.ts.map +1 -0
  165. package/dist/types/integration/interfaces/index.d.ts +9 -0
  166. package/dist/types/integration/interfaces/index.d.ts.map +1 -0
  167. package/dist/types/integration/interfaces/integration-options.interface.d.ts +66 -0
  168. package/dist/types/integration/interfaces/integration-options.interface.d.ts.map +1 -0
  169. package/dist/types/integration/interfaces/integration-state.interface.d.ts +17 -0
  170. package/dist/types/integration/interfaces/integration-state.interface.d.ts.map +1 -0
  171. package/dist/types/integration/interfaces/nestjs-config-compatibility.interface.d.ts +332 -0
  172. package/dist/types/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +1 -0
  173. package/dist/types/integration/interfaces/nestjs-config-integration.interface.d.ts +259 -0
  174. package/dist/types/integration/interfaces/nestjs-config-integration.interface.d.ts.map +1 -0
  175. package/dist/types/integration/interfaces/typed-configuration.interface.d.ts +209 -0
  176. package/dist/types/integration/interfaces/typed-configuration.interface.d.ts.map +1 -0
  177. package/dist/types/integration/interfaces/utility-types.interface.d.ts +249 -0
  178. package/dist/types/integration/interfaces/utility-types.interface.d.ts.map +1 -0
  179. package/dist/types/integration/nestjs-config-integration.module.d.ts +36 -0
  180. package/dist/types/integration/nestjs-config-integration.module.d.ts.map +1 -0
  181. package/dist/types/integration/providers/aws-configuration-loader.service.d.ts +134 -0
  182. package/dist/types/integration/providers/aws-configuration-loader.service.d.ts.map +1 -0
  183. package/dist/types/integration/providers/configuration-factory.provider.d.ts +119 -0
  184. package/dist/types/integration/providers/configuration-factory.provider.d.ts.map +1 -0
  185. package/dist/types/integration/providers/index.d.ts +3 -0
  186. package/dist/types/integration/providers/index.d.ts.map +1 -0
  187. package/dist/types/integration/services/async-config-helper.service.d.ts +84 -0
  188. package/dist/types/integration/services/async-config-helper.service.d.ts.map +1 -0
  189. package/dist/types/integration/services/error-handler.service.d.ts +84 -0
  190. package/dist/types/integration/services/error-handler.service.d.ts.map +1 -0
  191. package/dist/types/integration/services/factory-registration.service.d.ts +158 -0
  192. package/dist/types/integration/services/factory-registration.service.d.ts.map +1 -0
  193. package/dist/types/integration/services/index.d.ts +9 -0
  194. package/dist/types/integration/services/index.d.ts.map +1 -0
  195. package/dist/types/integration/services/integration-state.service.d.ts +41 -0
  196. package/dist/types/integration/services/integration-state.service.d.ts.map +1 -0
  197. package/dist/types/integration/services/namespace-handler.service.d.ts +192 -0
  198. package/dist/types/integration/services/namespace-handler.service.d.ts.map +1 -0
  199. package/dist/types/integration/services/nestjs-config-integration.service.d.ts +87 -0
  200. package/dist/types/integration/services/nestjs-config-integration.service.d.ts.map +1 -0
  201. package/dist/types/integration/services/precedence-handler.service.d.ts +103 -0
  202. package/dist/types/integration/services/precedence-handler.service.d.ts.map +1 -0
  203. package/dist/types/integration/services/validation-integration.service.d.ts +222 -0
  204. package/dist/types/integration/services/validation-integration.service.d.ts.map +1 -0
  205. package/dist/types/integration/utils/config-integration.util.d.ts +81 -0
  206. package/dist/types/integration/utils/config-integration.util.d.ts.map +1 -0
  207. package/dist/types/integration/utils/index.d.ts +2 -0
  208. package/dist/types/integration/utils/index.d.ts.map +1 -0
  209. package/dist/types/interfaces/config-loader.interface.d.ts +22 -0
  210. package/dist/types/interfaces/config-loader.interface.d.ts.map +1 -0
  211. package/dist/types/interfaces/config-service.interface.d.ts +23 -0
  212. package/dist/types/interfaces/config-service.interface.d.ts.map +1 -0
  213. package/dist/types/interfaces/default-schema.interface.d.ts +195 -0
  214. package/dist/types/interfaces/default-schema.interface.d.ts.map +1 -0
  215. package/dist/types/interfaces/errors.interface.d.ts +38 -0
  216. package/dist/types/interfaces/errors.interface.d.ts.map +1 -0
  217. package/dist/types/interfaces/index.d.ts +6 -0
  218. package/dist/types/interfaces/index.d.ts.map +1 -0
  219. package/dist/types/interfaces/module-options.interface.d.ts +64 -0
  220. package/dist/types/interfaces/module-options.interface.d.ts.map +1 -0
  221. package/dist/types/loaders/environment.loader.d.ts +26 -0
  222. package/dist/types/loaders/environment.loader.d.ts.map +1 -0
  223. package/dist/types/loaders/secrets-manager.loader.d.ts +52 -0
  224. package/dist/types/loaders/secrets-manager.loader.d.ts.map +1 -0
  225. package/dist/types/loaders/ssm-parameter-store.loader.d.ts +68 -0
  226. package/dist/types/loaders/ssm-parameter-store.loader.d.ts.map +1 -0
  227. package/dist/types/services/config.service.d.ts +94 -0
  228. package/dist/types/services/config.service.d.ts.map +1 -0
  229. package/dist/types/utils/validation.util.d.ts +53 -0
  230. package/dist/types/utils/validation.util.d.ts.map +1 -0
  231. package/package.json +102 -0
@@ -0,0 +1,240 @@
1
+ import { NestConfigAwsIntegrationModule } from '../nestjs-config-integration.module';
2
+ /**
3
+ * Utility functions for integrating nestjs-config-aws with @nestjs/config.
4
+ * These functions provide convenient ways to set up AWS configuration integration.
5
+ */
6
+ /**
7
+ * Create a configuration factory that loads from AWS sources.
8
+ * This factory can be used directly in @nestjs/config's load array.
9
+ *
10
+ * @param options - Integration options for AWS configuration
11
+ * @returns Promise resolving to configuration factory
12
+ */
13
+ export async function createAwsConfigFactory(options = {}) {
14
+ // Import services dynamically to avoid circular dependencies
15
+ const { AsyncConfigHelperService } = await import('../services/async-config-helper.service');
16
+ const { FactoryRegistrationService } = await import('../services/factory-registration.service');
17
+ const { ConfigurationFactoryProviderImpl } = await import('../providers/configuration-factory.provider');
18
+ const { AwsConfigurationLoaderService } = await import('../providers/aws-configuration-loader.service');
19
+ const { PrecedenceHandlerService } = await import('../services/precedence-handler.service');
20
+ const { NamespaceHandlerService } = await import('../services/namespace-handler.service');
21
+ const { ValidationIntegrationService } = await import('../services/validation-integration.service');
22
+ // Create service instances
23
+ const precedenceHandler = new PrecedenceHandlerService();
24
+ const configFactoryProvider = new ConfigurationFactoryProviderImpl(precedenceHandler);
25
+ const awsLoader = new AwsConfigurationLoaderService(options);
26
+ const namespaceHandler = new NamespaceHandlerService();
27
+ const validationService = new ValidationIntegrationService();
28
+ const factoryRegistration = new FactoryRegistrationService(configFactoryProvider, awsLoader, namespaceHandler, validationService, options);
29
+ const asyncHelper = new AsyncConfigHelperService(factoryRegistration, options);
30
+ // Create and return the async factory
31
+ return await asyncHelper.createAsyncConfigFactory();
32
+ }
33
+ /**
34
+ * Create configuration factories for specific namespaces.
35
+ * This function creates separate factories for each namespace.
36
+ *
37
+ * @param namespaces - Array of namespace names
38
+ * @param options - Integration options for AWS configuration
39
+ * @returns Promise resolving to array of namespaced configuration factories
40
+ */
41
+ export async function createAwsNamespacedFactories(namespaces, options = {}) {
42
+ // Import services dynamically
43
+ const { AsyncConfigHelperService } = await import('../services/async-config-helper.service');
44
+ const { FactoryRegistrationService } = await import('../services/factory-registration.service');
45
+ const { ConfigurationFactoryProviderImpl } = await import('../providers/configuration-factory.provider');
46
+ const { AwsConfigurationLoaderService } = await import('../providers/aws-configuration-loader.service');
47
+ const { PrecedenceHandlerService } = await import('../services/precedence-handler.service');
48
+ const { NamespaceHandlerService } = await import('../services/namespace-handler.service');
49
+ const { ValidationIntegrationService } = await import('../services/validation-integration.service');
50
+ // Create service instances
51
+ const precedenceHandler = new PrecedenceHandlerService();
52
+ const configFactoryProvider = new ConfigurationFactoryProviderImpl(precedenceHandler);
53
+ const awsLoader = new AwsConfigurationLoaderService(options);
54
+ const namespaceHandler = new NamespaceHandlerService();
55
+ const validationService = new ValidationIntegrationService();
56
+ const factoryRegistration = new FactoryRegistrationService(configFactoryProvider, awsLoader, namespaceHandler, validationService, options);
57
+ const asyncHelper = new AsyncConfigHelperService(factoryRegistration, options);
58
+ // Create and return the namespaced factories
59
+ return await asyncHelper.createAsyncNamespacedFactories(namespaces);
60
+ }
61
+ /**
62
+ * Create enhanced ConfigModule options with AWS integration.
63
+ * This function enhances existing ConfigModule options with AWS-sourced configuration.
64
+ *
65
+ * @param baseOptions - Base ConfigModule options to enhance
66
+ * @param integrationOptions - Integration options for AWS configuration
67
+ * @returns Promise resolving to enhanced ConfigModule options
68
+ */
69
+ export async function createEnhancedConfigOptions(baseOptions = {}, integrationOptions = {}) {
70
+ // Import services dynamically
71
+ const { AsyncConfigHelperService } = await import('../services/async-config-helper.service');
72
+ const { FactoryRegistrationService } = await import('../services/factory-registration.service');
73
+ const { ConfigurationFactoryProviderImpl } = await import('../providers/configuration-factory.provider');
74
+ const { AwsConfigurationLoaderService } = await import('../providers/aws-configuration-loader.service');
75
+ const { PrecedenceHandlerService } = await import('../services/precedence-handler.service');
76
+ const { NamespaceHandlerService } = await import('../services/namespace-handler.service');
77
+ const { ValidationIntegrationService } = await import('../services/validation-integration.service');
78
+ // Create service instances
79
+ const precedenceHandler = new PrecedenceHandlerService();
80
+ const configFactoryProvider = new ConfigurationFactoryProviderImpl(precedenceHandler);
81
+ const awsLoader = new AwsConfigurationLoaderService(integrationOptions);
82
+ const namespaceHandler = new NamespaceHandlerService();
83
+ const validationService = new ValidationIntegrationService();
84
+ const factoryRegistration = new FactoryRegistrationService(configFactoryProvider, awsLoader, namespaceHandler, validationService, integrationOptions);
85
+ const asyncHelper = new AsyncConfigHelperService(factoryRegistration, integrationOptions);
86
+ // Create and return enhanced options
87
+ return await asyncHelper.createAsyncConfigOptions(baseOptions);
88
+ }
89
+ /**
90
+ * Create a complete integration module for use with @nestjs/config.
91
+ * This function returns a module that can be imported alongside ConfigModule.
92
+ *
93
+ * @param options - Integration options for AWS configuration
94
+ * @returns Dynamic module for AWS integration
95
+ */
96
+ export function createAwsIntegrationModule(options = {}) {
97
+ return NestConfigAwsIntegrationModule.forRoot(options);
98
+ }
99
+ /**
100
+ * Create an async integration module for use with @nestjs/config.
101
+ * This function returns a module that can be imported alongside ConfigModule for async scenarios.
102
+ *
103
+ * @param useFactory - Factory function to create integration options
104
+ * @param inject - Dependencies to inject into the factory function
105
+ * @param imports - Modules to import for the factory function
106
+ * @returns Dynamic module for async AWS integration
107
+ */
108
+ export function createAsyncAwsIntegrationModule(useFactory, inject = [], imports = []) {
109
+ return NestConfigAwsIntegrationModule.forRootAsync({
110
+ useFactory,
111
+ inject,
112
+ imports,
113
+ });
114
+ }
115
+ /**
116
+ * Create a factory function that can be used with ConfigModule.forRoot().
117
+ * This factory function loads AWS configuration and merges it with local configuration.
118
+ *
119
+ * @param integrationOptions - Integration options for AWS configuration
120
+ * @returns Factory function for use with ConfigModule
121
+ */
122
+ export function createConfigModuleFactory(integrationOptions = {}) {
123
+ return async () => {
124
+ try {
125
+ // Create AWS configuration factory
126
+ const awsFactory = await createAwsConfigFactory(integrationOptions);
127
+ // Return ConfigModule options with AWS factory
128
+ return {
129
+ load: [awsFactory],
130
+ isGlobal: integrationOptions.registerGlobally ?? true,
131
+ cache: integrationOptions.factoryOptions?.cache ?? true,
132
+ expandVariables: integrationOptions.factoryOptions?.expandVariables ?? true,
133
+ };
134
+ }
135
+ catch (error) {
136
+ // Handle error based on integration options
137
+ if (integrationOptions.failOnAwsError) {
138
+ throw error;
139
+ }
140
+ // Return basic options as fallback
141
+ if (integrationOptions.fallbackToLocal) {
142
+ return {
143
+ load: [],
144
+ isGlobal: integrationOptions.registerGlobally ?? true,
145
+ cache: integrationOptions.factoryOptions?.cache ?? true,
146
+ expandVariables: integrationOptions.factoryOptions?.expandVariables ?? true,
147
+ };
148
+ }
149
+ throw error;
150
+ }
151
+ };
152
+ }
153
+ /**
154
+ * Create a factory function with dependency injection support.
155
+ * This factory function can receive injected dependencies and use them to configure AWS integration.
156
+ *
157
+ * @param integrationOptions - Integration options for AWS configuration
158
+ * @param dependencies - Array of dependency tokens to inject
159
+ * @returns Factory function with dependency injection support
160
+ */
161
+ export function createConfigModuleFactoryWithDependencies(integrationOptions = {}, dependencies = []) {
162
+ return async (...injectedDependencies) => {
163
+ try {
164
+ // Import services dynamically
165
+ const { AsyncConfigHelperService } = await import('../services/async-config-helper.service');
166
+ const { FactoryRegistrationService } = await import('../services/factory-registration.service');
167
+ const { ConfigurationFactoryProviderImpl } = await import('../providers/configuration-factory.provider');
168
+ const { AwsConfigurationLoaderService } = await import('../providers/aws-configuration-loader.service');
169
+ const { PrecedenceHandlerService } = await import('../services/precedence-handler.service');
170
+ const { NamespaceHandlerService } = await import('../services/namespace-handler.service');
171
+ const { ValidationIntegrationService } = await import('../services/validation-integration.service');
172
+ // Create service instances
173
+ const precedenceHandler = new PrecedenceHandlerService();
174
+ const configFactoryProvider = new ConfigurationFactoryProviderImpl(precedenceHandler);
175
+ const awsLoader = new AwsConfigurationLoaderService(integrationOptions);
176
+ const namespaceHandler = new NamespaceHandlerService();
177
+ const validationService = new ValidationIntegrationService();
178
+ const factoryRegistration = new FactoryRegistrationService(configFactoryProvider, awsLoader, namespaceHandler, validationService, integrationOptions);
179
+ const asyncHelper = new AsyncConfigHelperService(factoryRegistration, integrationOptions);
180
+ // Create factory with dependencies
181
+ const factoryWithDeps = asyncHelper.createAsyncFactoryWithDependencies(dependencies);
182
+ // Execute factory with injected dependencies
183
+ return await factoryWithDeps(...injectedDependencies);
184
+ }
185
+ catch (error) {
186
+ // Handle error based on integration options
187
+ if (integrationOptions.failOnAwsError) {
188
+ throw error;
189
+ }
190
+ // Return basic options as fallback
191
+ if (integrationOptions.fallbackToLocal) {
192
+ return {
193
+ load: [],
194
+ isGlobal: integrationOptions.registerGlobally ?? true,
195
+ cache: integrationOptions.factoryOptions?.cache ?? true,
196
+ expandVariables: integrationOptions.factoryOptions?.expandVariables ?? true,
197
+ };
198
+ }
199
+ throw error;
200
+ }
201
+ };
202
+ }
203
+ /**
204
+ * Check if AWS configuration is available for integration.
205
+ * This function can be used to determine if AWS integration should be enabled.
206
+ *
207
+ * @param options - Integration options for AWS configuration
208
+ * @returns Promise resolving to availability status
209
+ */
210
+ export async function checkAwsConfigAvailability(options = {}) {
211
+ try {
212
+ // Import services dynamically
213
+ const { AsyncConfigHelperService } = await import('../services/async-config-helper.service');
214
+ const { FactoryRegistrationService } = await import('../services/factory-registration.service');
215
+ const { ConfigurationFactoryProviderImpl } = await import('../providers/configuration-factory.provider');
216
+ const { AwsConfigurationLoaderService } = await import('../providers/aws-configuration-loader.service');
217
+ const { PrecedenceHandlerService } = await import('../services/precedence-handler.service');
218
+ const { NamespaceHandlerService } = await import('../services/namespace-handler.service');
219
+ const { ValidationIntegrationService } = await import('../services/validation-integration.service');
220
+ // Create service instances
221
+ const precedenceHandler = new PrecedenceHandlerService();
222
+ const configFactoryProvider = new ConfigurationFactoryProviderImpl(precedenceHandler);
223
+ const awsLoader = new AwsConfigurationLoaderService(options);
224
+ const namespaceHandler = new NamespaceHandlerService();
225
+ const validationService = new ValidationIntegrationService();
226
+ const factoryRegistration = new FactoryRegistrationService(configFactoryProvider, awsLoader, namespaceHandler, validationService, options);
227
+ const asyncHelper = new AsyncConfigHelperService(factoryRegistration, options);
228
+ // Check availability
229
+ return await asyncHelper.checkAsyncAvailability();
230
+ }
231
+ catch (error) {
232
+ const availabilityError = error instanceof Error ? error : new Error(String(error));
233
+ return {
234
+ isAvailable: false,
235
+ factoriesCount: 0,
236
+ errors: [availabilityError.message],
237
+ };
238
+ }
239
+ }
240
+ //# sourceMappingURL=config-integration.util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-integration.util.js","sourceRoot":"","sources":["../../../../src/integration/utils/config-integration.util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,UAA8B,EAAE;IAC3E,6DAA6D;IAC7D,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IAC7F,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;IAChG,MAAM,EAAE,gCAAgC,EAAE,GAAG,MAAM,MAAM,CAAC,6CAA6C,CAAC,CAAC;IACzG,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC;IACxG,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;IAC5F,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;IAC1F,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;IAEpG,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IACzD,MAAM,qBAAqB,GAAG,IAAI,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,IAAI,4BAA4B,EAAE,CAAC;IAC7D,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,CACR,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAE/E,sCAAsC;IACtC,OAAO,MAAM,WAAW,CAAC,wBAAwB,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,UAAoB,EACpB,UAA8B,EAAE;IAEhC,8BAA8B;IAC9B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IAC7F,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;IAChG,MAAM,EAAE,gCAAgC,EAAE,GAAG,MAAM,MAAM,CAAC,6CAA6C,CAAC,CAAC;IACzG,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC;IACxG,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;IAC5F,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;IAC1F,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;IAEpG,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IACzD,MAAM,qBAAqB,GAAG,IAAI,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,IAAI,4BAA4B,EAAE,CAAC;IAC7D,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,CACR,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IAE/E,6CAA6C;IAC7C,OAAO,MAAM,WAAW,CAAC,8BAA8B,CAAC,UAAU,CAAC,CAAC;AACtE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,cAAmC,EAAE,EACrC,qBAAyC,EAAE;IAE3C,8BAA8B;IAC9B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;IAC7F,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;IAChG,MAAM,EAAE,gCAAgC,EAAE,GAAG,MAAM,MAAM,CAAC,6CAA6C,CAAC,CAAC;IACzG,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC;IACxG,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;IAC5F,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;IAC1F,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;IAEpG,2BAA2B;IAC3B,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IACzD,MAAM,qBAAqB,GAAG,IAAI,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACvD,MAAM,iBAAiB,GAAG,IAAI,4BAA4B,EAAE,CAAC;IAC7D,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,CACnB,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;IAE1F,qCAAqC;IACrC,OAAO,MAAM,WAAW,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAA8B,EAAE;IACzE,OAAO,8BAA8B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,+BAA+B,CAC7C,UAAgF,EAChF,SAAgB,EAAE,EAClB,UAAiB,EAAE;IAEnB,OAAO,8BAA8B,CAAC,YAAY,CAAC;QACjD,UAAU;QACV,MAAM;QACN,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,qBAAyC,EAAE;IAE3C,OAAO,KAAK,IAAkC,EAAE;QAC9C,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;YAEpE,+CAA+C;YAC/C,OAAO;gBACL,IAAI,EAAE,CAAC,UAAU,CAAC;gBAClB,QAAQ,EAAE,kBAAkB,CAAC,gBAAgB,IAAI,IAAI;gBACrD,KAAK,EAAE,kBAAkB,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI;gBACvD,eAAe,EAAE,kBAAkB,CAAC,cAAc,EAAE,eAAe,IAAI,IAAI;aAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBACtC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,mCAAmC;YACnC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;gBACvC,OAAO;oBACL,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,kBAAkB,CAAC,gBAAgB,IAAI,IAAI;oBACrD,KAAK,EAAE,kBAAkB,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI;oBACvD,eAAe,EAAE,kBAAkB,CAAC,cAAc,EAAE,eAAe,IAAI,IAAI;iBAC5E,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,yCAAyC,CACvD,qBAAyC,EAAE,EAC3C,eAAsB,EAAE;IAExB,OAAO,KAAK,EAAE,GAAG,oBAA2B,EAAgC,EAAE;QAC5E,IAAI,CAAC;YACH,8BAA8B;YAC9B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;YAC7F,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;YAChG,MAAM,EAAE,gCAAgC,EAAE,GAAG,MAAM,MAAM,CAAC,6CAA6C,CAAC,CAAC;YACzG,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC;YACxG,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YAC5F,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;YAC1F,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;YAEpG,2BAA2B;YAC3B,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAC;YACzD,MAAM,qBAAqB,GAAG,IAAI,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;YACtF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;YACxE,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;YACvD,MAAM,iBAAiB,GAAG,IAAI,4BAA4B,EAAE,CAAC;YAC7D,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,CACnB,CAAC;YACF,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC;YAE1F,mCAAmC;YACnC,MAAM,eAAe,GAAG,WAAW,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;YAErF,6CAA6C;YAC7C,OAAO,MAAM,eAAe,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4CAA4C;YAC5C,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAC;gBACtC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,mCAAmC;YACnC,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC;gBACvC,OAAO;oBACL,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,kBAAkB,CAAC,gBAAgB,IAAI,IAAI;oBACrD,KAAK,EAAE,kBAAkB,CAAC,cAAc,EAAE,KAAK,IAAI,IAAI;oBACvD,eAAe,EAAE,kBAAkB,CAAC,cAAc,EAAE,eAAe,IAAI,IAAI;iBAC5E,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAA8B,EAAE;IAMhC,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,yCAAyC,CAAC,CAAC;QAC7F,MAAM,EAAE,0BAA0B,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;QAChG,MAAM,EAAE,gCAAgC,EAAE,GAAG,MAAM,MAAM,CAAC,6CAA6C,CAAC,CAAC;QACzG,MAAM,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,+CAA+C,CAAC,CAAC;QACxG,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;QAC5F,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;QAC1F,MAAM,EAAE,4BAA4B,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAEpG,2BAA2B;QAC3B,MAAM,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAC;QACzD,MAAM,qBAAqB,GAAG,IAAI,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;QACtF,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,EAAE,CAAC;QACvD,MAAM,iBAAiB,GAAG,IAAI,4BAA4B,EAAE,CAAC;QAC7D,MAAM,mBAAmB,GAAG,IAAI,0BAA0B,CACxD,qBAAqB,EACrB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,OAAO,CACR,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAE/E,qBAAqB;QACrB,OAAO,MAAM,WAAW,CAAC,sBAAsB,EAAE,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,iBAAiB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAEpF,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,CAAC;YACjB,MAAM,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC;SACpC,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Integration utilities exports
2
+ export * from './config-integration.util';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integration/utils/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config-loader.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-loader.interface.js","sourceRoot":"","sources":["../../../src/interfaces/config-loader.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Abstract ConfigService interface for dependency injection.
3
+ * Provides type-safe access to configuration values with generic type support.
4
+ */
5
+ export class ConfigService {
6
+ }
7
+ //# sourceMappingURL=config-service.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-service.interface.js","sourceRoot":"","sources":["../../../src/interfaces/config-service.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAgB,aAAa;CAmBlC"}
@@ -0,0 +1,59 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Default configuration schema using Zod.
4
+ * Provides a flexible base schema that can be extended by applications.
5
+ */
6
+ export const defaultConfigSchema = z.object({
7
+ /** Node.js environment */
8
+ NODE_ENV: z.enum(['production', 'development', 'test']).optional(),
9
+ /** Application environment (mirrors NODE_ENV with 'local' default) */
10
+ APP_ENV: z.enum(['production', 'test', 'development', 'local']).default('local'),
11
+ /** AWS region for services */
12
+ AWS_REGION: z.string().optional(),
13
+ /** AWS profile for local development */
14
+ AWS_PROFILE: z.string().optional(),
15
+ /** Application port */
16
+ PORT: z.coerce.number().positive().optional(),
17
+ /** Application host */
18
+ HOST: z.string().optional(),
19
+ /** Log level */
20
+ LOG_LEVEL: z.enum(['error', 'warn', 'info', 'debug', 'verbose']).optional(),
21
+ /** Database URL */
22
+ DATABASE_URL: z.string().url().optional(),
23
+ /** Redis URL */
24
+ REDIS_URL: z.string().url().optional(),
25
+ });
26
+ /**
27
+ * Environment-specific validation schemas.
28
+ */
29
+ export const environmentSchemas = {
30
+ local: defaultConfigSchema.extend({
31
+ // Local environment may have fewer required fields
32
+ AWS_REGION: z.string().optional(),
33
+ }),
34
+ development: defaultConfigSchema.extend({
35
+ // Development environment requirements
36
+ AWS_REGION: z.string().min(1, 'AWS_REGION is required in development'),
37
+ }),
38
+ test: defaultConfigSchema.extend({
39
+ // Test environment requirements
40
+ AWS_REGION: z.string().min(1, 'AWS_REGION is required in test'),
41
+ }),
42
+ production: defaultConfigSchema.extend({
43
+ // Production environment requirements
44
+ AWS_REGION: z.string().min(1, 'AWS_REGION is required in production'),
45
+ LOG_LEVEL: z.enum(['error', 'warn', 'info']).default('info'),
46
+ }),
47
+ };
48
+ /**
49
+ * Helper function to get the appropriate schema for the current environment.
50
+ */
51
+ export function getSchemaForEnvironment(appEnv) {
52
+ const env = appEnv;
53
+ return environmentSchemas[env] || defaultConfigSchema;
54
+ }
55
+ /**
56
+ * Validation helper for APP_ENV values.
57
+ */
58
+ export const appEnvSchema = z.enum(['production', 'test', 'development', 'local']);
59
+ //# sourceMappingURL=default-schema.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-schema.interface.js","sourceRoot":"","sources":["../../../src/interfaces/default-schema.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAElE,sEAAsE;IACtE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEhF,8BAA8B;IAC9B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEjC,wCAAwC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,uBAAuB;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAE7C,uBAAuB;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE3B,gBAAgB;IAChB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAE3E,mBAAmB;IACnB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAEzC,gBAAgB;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC;QAChC,mDAAmD;QACnD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC;IAEF,WAAW,EAAE,mBAAmB,CAAC,MAAM,CAAC;QACtC,uCAAuC;QACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uCAAuC,CAAC;KACvE,CAAC;IAEF,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC;QAC/B,gCAAgC;QAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;KAChE,CAAC;IAEF,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;QACrC,sCAAsC;QACtC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;QACrE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;KAC7D,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,MAAM,GAAG,GAAG,MAAyC,CAAC;IACtD,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Base error class for all configuration-related errors.
3
+ */
4
+ export class ConfigurationError extends Error {
5
+ constructor(message, cause) {
6
+ super(message);
7
+ this.cause = cause;
8
+ this.name = 'ConfigurationError';
9
+ // Maintain proper stack trace for where our error was thrown (only available on V8)
10
+ if (Error.captureStackTrace) {
11
+ Error.captureStackTrace(this, ConfigurationError);
12
+ }
13
+ }
14
+ }
15
+ /**
16
+ * Error thrown when configuration validation fails.
17
+ */
18
+ export class ValidationError extends ConfigurationError {
19
+ constructor(message, validationErrors, invalidKeys) {
20
+ super(message);
21
+ this.validationErrors = validationErrors;
22
+ this.invalidKeys = invalidKeys;
23
+ this.name = 'ValidationError';
24
+ if (Error.captureStackTrace) {
25
+ Error.captureStackTrace(this, ValidationError);
26
+ }
27
+ }
28
+ }
29
+ /**
30
+ * Error thrown when AWS service operations fail.
31
+ */
32
+ export class AWSServiceError extends ConfigurationError {
33
+ constructor(message, service, operation, cause) {
34
+ super(message, cause);
35
+ this.service = service;
36
+ this.operation = operation;
37
+ this.name = 'AWSServiceError';
38
+ if (Error.captureStackTrace) {
39
+ Error.captureStackTrace(this, AWSServiceError);
40
+ }
41
+ }
42
+ }
43
+ /**
44
+ * Error thrown when required configuration is missing.
45
+ */
46
+ export class MissingConfigurationError extends ConfigurationError {
47
+ constructor(missingKeys, message) {
48
+ super(message || `Missing required configuration: ${missingKeys.join(', ')}`);
49
+ this.missingKeys = missingKeys;
50
+ this.name = 'MissingConfigurationError';
51
+ if (Error.captureStackTrace) {
52
+ Error.captureStackTrace(this, MissingConfigurationError);
53
+ }
54
+ }
55
+ }
56
+ /**
57
+ * Error thrown when configuration loading fails.
58
+ */
59
+ export class ConfigurationLoadError extends ConfigurationError {
60
+ constructor(message, loader, cause) {
61
+ super(message, cause);
62
+ this.loader = loader;
63
+ this.name = 'ConfigurationLoadError';
64
+ if (Error.captureStackTrace) {
65
+ Error.captureStackTrace(this, ConfigurationLoadError);
66
+ }
67
+ }
68
+ }
69
+ //# sourceMappingURL=errors.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.interface.js","sourceRoot":"","sources":["../../../src/interfaces/errors.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe,EAAkB,KAAa;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,UAAK,GAAL,KAAK,CAAQ;QAExD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QAEjC,oFAAoF;QACpF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IACrD,YACE,OAAe,EACC,gBAAqB,EACrB,WAAsB;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,qBAAgB,GAAhB,gBAAgB,CAAK;QACrB,gBAAW,GAAX,WAAW,CAAW;QAGtC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAE9B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,kBAAkB;IACrD,YACE,OAAe,EACC,OAAiC,EACjC,SAAiB,EACjC,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAJN,YAAO,GAAP,OAAO,CAA0B;QACjC,cAAS,GAAT,SAAS,CAAQ;QAIjC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAE9B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,kBAAkB;IAC/D,YACkB,WAAqB,EACrC,OAAgB;QAEhB,KAAK,CAAC,OAAO,IAAI,mCAAmC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAH9D,gBAAW,GAAX,WAAW,CAAU;QAIrC,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QAExC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;IAC5D,YACE,OAAe,EACC,MAAc,EAC9B,KAAa;QAEb,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAHN,WAAM,GAAN,MAAM,CAAQ;QAI9B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QAErC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ // Core interfaces
2
+ export * from './config-service.interface';
3
+ export * from './config-loader.interface';
4
+ export * from './module-options.interface';
5
+ // Error classes
6
+ export * from './errors.interface';
7
+ // Default schema and types
8
+ export * from './default-schema.interface';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAE3C,gBAAgB;AAChB,cAAc,oBAAoB,CAAC;AAEnC,2BAA2B;AAC3B,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/module-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Configuration loader that loads values from environment variables (process.env).
3
+ * This loader is always available and serves as the base configuration source.
4
+ */
5
+ export class EnvironmentLoader {
6
+ constructor(envPrefix) {
7
+ this.envPrefix = envPrefix;
8
+ }
9
+ /**
10
+ * Load configuration from environment variables.
11
+ * @returns Promise resolving to environment variables as key-value pairs
12
+ */
13
+ async load() {
14
+ const config = {};
15
+ // Get all environment variables
16
+ const envVars = process.env;
17
+ // If prefix is specified, only load variables with that prefix
18
+ if (this.envPrefix) {
19
+ for (const [key, value] of Object.entries(envVars)) {
20
+ if (key.startsWith(this.envPrefix)) {
21
+ // Remove prefix from key
22
+ const configKey = key.substring(this.envPrefix.length);
23
+ if (configKey && value !== undefined) {
24
+ config[configKey] = value;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ else {
30
+ // Load all environment variables
31
+ for (const [key, value] of Object.entries(envVars)) {
32
+ if (value !== undefined) {
33
+ config[key] = value;
34
+ }
35
+ }
36
+ }
37
+ return config;
38
+ }
39
+ /**
40
+ * Get the name of this loader for logging and debugging.
41
+ * @returns The loader name
42
+ */
43
+ getName() {
44
+ return this.envPrefix ? `EnvironmentLoader(${this.envPrefix})` : 'EnvironmentLoader';
45
+ }
46
+ /**
47
+ * Check if this loader is available.
48
+ * Environment variables are always available.
49
+ * @returns Promise resolving to true
50
+ */
51
+ async isAvailable() {
52
+ return true;
53
+ }
54
+ }
55
+ //# sourceMappingURL=environment.loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.loader.js","sourceRoot":"","sources":["../../../src/loaders/environment.loader.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,iBAAiB;IAG5B,YAAY,SAAkB;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,gCAAgC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;QAE5B,+DAA+D;QAC/D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,yBAAyB;oBACzB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACvD,IAAI,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACrC,MAAM,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,iCAAiC;YACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACvF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,118 @@
1
+ import { GetSecretValueCommand, SecretsManagerClient } from '@aws-sdk/client-secrets-manager';
2
+ import { fromNodeProviderChain } from '@aws-sdk/credential-providers';
3
+ import { ConfigurationError } from '../interfaces/errors.interface';
4
+ /**
5
+ * Configuration loader that loads values from AWS Secrets Manager.
6
+ * Supports environment-aware secret path construction and JSON parsing with string fallback.
7
+ */
8
+ export class SecretsManagerLoader {
9
+ constructor(config = {}) {
10
+ this.appEnv = process.env['APP_ENV'] || process.env['NODE_ENV'] || 'local';
11
+ // Set default configuration
12
+ this.config = {
13
+ secretName: config.secretName || '/nestjs-config-aws',
14
+ region: config.region || process.env['AWS_REGION'] || 'us-east-1',
15
+ environmentMapping: config.environmentMapping || {
16
+ development: 'dev',
17
+ test: 'test',
18
+ production: 'production'
19
+ }
20
+ };
21
+ // Initialize AWS Secrets Manager client
22
+ this.client = new SecretsManagerClient({
23
+ credentials: fromNodeProviderChain(),
24
+ region: this.config.region,
25
+ });
26
+ }
27
+ /**
28
+ * Load configuration from AWS Secrets Manager.
29
+ * @returns Promise resolving to configuration key-value pairs from the secret
30
+ */
31
+ async load() {
32
+ // Skip loading in local environment
33
+ if (this.appEnv === 'local') {
34
+ return {};
35
+ }
36
+ const secretName = this.buildSecretName();
37
+ try {
38
+ const command = new GetSecretValueCommand({ SecretId: secretName });
39
+ const response = await this.client.send(command);
40
+ if (!response.SecretString) {
41
+ return {};
42
+ }
43
+ // Try to parse as JSON, fallback to string value
44
+ try {
45
+ const parsed = JSON.parse(response.SecretString);
46
+ // Ensure we return an object for configuration merging
47
+ if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
48
+ return parsed;
49
+ }
50
+ else {
51
+ // If it's not an object, wrap it in a configuration object
52
+ return { SECRET_VALUE: parsed };
53
+ }
54
+ }
55
+ catch {
56
+ // If JSON parsing fails, treat as a single string value
57
+ return { SECRET_VALUE: response.SecretString };
58
+ }
59
+ }
60
+ catch (error) {
61
+ // Handle specific AWS errors
62
+ if (error instanceof Error) {
63
+ if (error.name === 'ResourceNotFoundException') {
64
+ // Secret doesn't exist - this is not necessarily an error in all environments
65
+ return {};
66
+ }
67
+ if (error.name === 'AccessDeniedException') {
68
+ throw new ConfigurationError(`Access denied when retrieving secret '${secretName}'. Check AWS credentials and permissions.`, error);
69
+ }
70
+ if (error.name === 'InvalidRequestException') {
71
+ throw new ConfigurationError(`Invalid request when retrieving secret '${secretName}'. Check secret name format.`, error);
72
+ }
73
+ }
74
+ // For other errors, wrap in ConfigurationError
75
+ throw new ConfigurationError(`Failed to retrieve secret '${secretName}' from AWS Secrets Manager: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
76
+ }
77
+ }
78
+ /**
79
+ * Get the name of this loader for logging and debugging.
80
+ * @returns The loader name with secret path
81
+ */
82
+ getName() {
83
+ const secretName = this.buildSecretName();
84
+ return `SecretsManagerLoader(${secretName})`;
85
+ }
86
+ /**
87
+ * Check if this loader is available in the current environment.
88
+ * @returns Promise resolving to true if not in local environment and AWS credentials are available
89
+ */
90
+ async isAvailable() {
91
+ // Skip in local environment
92
+ if (this.appEnv === 'local') {
93
+ return false;
94
+ }
95
+ try {
96
+ // Test AWS credentials by attempting to get caller identity
97
+ // This is a lightweight way to verify AWS access without making actual Secrets Manager calls
98
+ await this.client.config.credentials();
99
+ return true;
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ /**
106
+ * Build the environment-aware secret name/path.
107
+ * @returns The full secret name with environment prefix
108
+ */
109
+ buildSecretName() {
110
+ const envPrefix = this.config.environmentMapping[this.appEnv];
111
+ if (!envPrefix) {
112
+ throw new ConfigurationError(`No environment mapping found for APP_ENV '${this.appEnv}'. ` +
113
+ `Available environments: ${Object.keys(this.config.environmentMapping).join(', ')}`);
114
+ }
115
+ return `/${envPrefix}${this.config.secretName}`;
116
+ }
117
+ }
118
+ //# sourceMappingURL=secrets-manager.loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets-manager.loader.js","sourceRoot":"","sources":["../../../src/loaders/secrets-manager.loader.ts"],"names":[],"mappings":"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"}