@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,512 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var FactoryRegistrationService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.FactoryRegistrationService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const configuration_factory_provider_1 = require("../providers/configuration-factory.provider");
19
+ const aws_configuration_loader_service_1 = require("../providers/aws-configuration-loader.service");
20
+ const nestjs_config_integration_module_1 = require("../nestjs-config-integration.module");
21
+ const namespace_handler_service_1 = require("./namespace-handler.service");
22
+ const validation_integration_service_1 = require("./validation-integration.service");
23
+ /**
24
+ * Service responsible for registering configuration factories with @nestjs/config.
25
+ * This service creates and manages the bridge between AWS-loaded configuration
26
+ * and the standard @nestjs/config module.
27
+ */
28
+ let FactoryRegistrationService = FactoryRegistrationService_1 = class FactoryRegistrationService {
29
+ constructor(configurationFactoryProvider, awsConfigurationLoader, namespaceHandler, validationService, options = {}) {
30
+ this.configurationFactoryProvider = configurationFactoryProvider;
31
+ this.awsConfigurationLoader = awsConfigurationLoader;
32
+ this.namespaceHandler = namespaceHandler;
33
+ this.validationService = validationService;
34
+ this.options = options;
35
+ this.logger = new common_1.Logger(FactoryRegistrationService_1.name);
36
+ this.registeredFactories = new Map();
37
+ this.isInitialized = false;
38
+ }
39
+ /**
40
+ * Register configuration factories with @nestjs/config based on AWS-loaded configuration.
41
+ * This method loads configuration from AWS sources and creates factories that can be
42
+ * consumed by @nestjs/config.
43
+ *
44
+ * @returns Promise resolving to array of registered configuration factories
45
+ */
46
+ async registerFactories() {
47
+ if (this.isInitialized) {
48
+ this.logger.debug('Factories already registered, returning cached factories');
49
+ return Array.from(this.registeredFactories.values());
50
+ }
51
+ try {
52
+ this.logger.debug('Starting factory registration process');
53
+ // Load configuration from AWS sources
54
+ const awsConfig = await this.loadAwsConfiguration();
55
+ // Create configuration factories based on options
56
+ const factories = await this.createConfigurationFactories(awsConfig);
57
+ // Register factories and track them
58
+ this.registerFactoriesInternal(factories);
59
+ this.isInitialized = true;
60
+ this.logger.log(`Successfully registered ${factories.length} configuration factories`);
61
+ return factories;
62
+ }
63
+ catch (error) {
64
+ const registrationError = error instanceof Error ? error : new Error(String(error));
65
+ this.logger.error('Failed to register configuration factories:', registrationError);
66
+ // Handle registration failure based on options
67
+ if (this.options.failOnAwsError) {
68
+ throw registrationError;
69
+ }
70
+ // Return empty factories array if fallback is enabled
71
+ if (this.options.fallbackToLocal) {
72
+ this.logger.warn('Falling back to empty configuration factories due to AWS error');
73
+ return [];
74
+ }
75
+ throw registrationError;
76
+ }
77
+ }
78
+ /**
79
+ * Register configuration factories asynchronously.
80
+ * This method is designed to work with @nestjs/config's forRootAsync pattern.
81
+ *
82
+ * @returns Promise resolving to array of configuration factories
83
+ */
84
+ async registerFactoriesAsync() {
85
+ this.logger.debug('Starting async factory registration');
86
+ try {
87
+ // Ensure AWS services are available before proceeding
88
+ const isAwsAvailable = await this.awsConfigurationLoader.isAvailable();
89
+ if (!isAwsAvailable && this.options.failOnAwsError) {
90
+ throw new Error('AWS services are not available and failOnAwsError is enabled');
91
+ }
92
+ if (!isAwsAvailable) {
93
+ this.logger.warn('AWS services not available, registering empty factories');
94
+ return [];
95
+ }
96
+ // Load configuration asynchronously
97
+ const factories = await this.registerFactories();
98
+ this.logger.debug(`Async factory registration completed with ${factories.length} factories`);
99
+ return factories;
100
+ }
101
+ catch (error) {
102
+ const asyncError = error instanceof Error ? error : new Error(String(error));
103
+ this.logger.error('Async factory registration failed:', asyncError);
104
+ // Handle async registration failure
105
+ if (this.options.fallbackToLocal) {
106
+ this.logger.warn('Falling back to empty factories for async registration');
107
+ return [];
108
+ }
109
+ throw asyncError;
110
+ }
111
+ }
112
+ /**
113
+ * Create a single configuration factory for immediate use.
114
+ * This method can be used for synchronous factory creation.
115
+ *
116
+ * @param namespace - Optional namespace for the factory
117
+ * @param config - Configuration data to use for the factory
118
+ * @returns Configuration factory
119
+ */
120
+ createSyncFactory(namespace, config) {
121
+ this.logger.debug(`Creating synchronous factory for namespace: ${namespace || 'default'}`);
122
+ // Use provided config or create empty config
123
+ const factoryConfig = config || {};
124
+ // Create factory using the configuration factory provider
125
+ const factory = this.configurationFactoryProvider.createFactory(namespace || '', factoryConfig);
126
+ // Track the factory
127
+ const factoryKey = namespace || 'default';
128
+ this.registeredFactories.set(factoryKey, factory);
129
+ this.logger.debug(`Created synchronous factory: ${factoryKey}`);
130
+ return factory;
131
+ }
132
+ /**
133
+ * Register factories for specific namespaces.
134
+ * This method allows selective registration of configuration for specific namespaces.
135
+ *
136
+ * @param namespaces - Array of namespace names to register
137
+ * @returns Promise resolving to array of namespace-specific factories
138
+ */
139
+ async registerNamespacedFactories(namespaces) {
140
+ this.logger.debug(`Registering factories for namespaces: ${namespaces.join(', ')}`);
141
+ try {
142
+ // Load namespaced configuration from AWS
143
+ const namespacedConfig = await this.awsConfigurationLoader.loadNamespacedConfiguration(namespaces);
144
+ // Create factories for each namespace
145
+ const factories = [];
146
+ for (const namespace of namespaces) {
147
+ const namespaceConfig = namespacedConfig[namespace];
148
+ if (namespaceConfig && Object.keys(namespaceConfig).length > 0) {
149
+ const factory = this.configurationFactoryProvider.createFactory(namespace, namespaceConfig);
150
+ factories.push(factory);
151
+ // Track the factory
152
+ this.registeredFactories.set(namespace, factory);
153
+ this.logger.debug(`Created factory for namespace: ${namespace}`);
154
+ }
155
+ else {
156
+ this.logger.warn(`No configuration found for namespace: ${namespace}`);
157
+ }
158
+ }
159
+ this.logger.log(`Successfully registered ${factories.length} namespaced factories`);
160
+ return factories;
161
+ }
162
+ catch (error) {
163
+ const namespacedError = error instanceof Error ? error : new Error(String(error));
164
+ this.logger.error('Failed to register namespaced factories:', namespacedError);
165
+ if (this.options.failOnAwsError) {
166
+ throw namespacedError;
167
+ }
168
+ // Return empty factories if fallback is enabled
169
+ return [];
170
+ }
171
+ }
172
+ /**
173
+ * Get all registered factories.
174
+ * @returns Map of factory names to configuration factories
175
+ */
176
+ getRegisteredFactories() {
177
+ return new Map(this.registeredFactories);
178
+ }
179
+ /**
180
+ * Get a specific registered factory by name.
181
+ * @param name - Name of the factory to retrieve
182
+ * @returns Configuration factory or undefined if not found
183
+ */
184
+ getFactory(name) {
185
+ return this.registeredFactories.get(name);
186
+ }
187
+ /**
188
+ * Check if factories have been initialized.
189
+ * @returns Whether factories have been registered
190
+ */
191
+ isFactoriesInitialized() {
192
+ return this.isInitialized;
193
+ }
194
+ /**
195
+ * Register validated namespace factories with schema validation.
196
+ * This method creates factories that validate configuration using Joi, class-validator, or custom functions.
197
+ *
198
+ * @param namespaces - Array of namespace names to register
199
+ * @param validationSchemas - Validation schemas for each namespace
200
+ * @param validationType - Type of validation to use
201
+ * @returns Promise resolving to array of validated namespace factories
202
+ */
203
+ async registerValidatedNamespaceFactories(namespaces, validationSchemas, validationType = 'custom') {
204
+ this.logger.debug(`Registering validated factories for namespaces: ${namespaces.join(', ')} with ${validationType} validation`);
205
+ try {
206
+ // Load namespaced configuration from AWS
207
+ const namespacedConfig = await this.awsConfigurationLoader.loadNamespacedConfiguration(namespaces);
208
+ const sources = await this.awsConfigurationLoader.getAvailableSources();
209
+ // Create validated factories for each namespace
210
+ const factories = [];
211
+ for (const namespace of namespaces) {
212
+ const namespaceConfig = namespacedConfig[namespace];
213
+ const validationSchema = validationSchemas[namespace];
214
+ if (namespaceConfig && Object.keys(namespaceConfig).length > 0 && validationSchema) {
215
+ try {
216
+ // Create validated factory using the validation service
217
+ const factory = this.validationService.createValidatedFactory(namespace, namespaceConfig, validationSchema, validationType, sources.filter(s => s.namespace === namespace || s.data[namespace]));
218
+ factories.push(factory);
219
+ // Track the factory
220
+ this.registeredFactories.set(namespace, factory);
221
+ this.logger.debug(`Created validated factory for namespace: ${namespace}`);
222
+ }
223
+ catch (error) {
224
+ this.logger.error(`Failed to create validated factory for namespace ${namespace}:`, error);
225
+ if (this.options.failOnAwsError) {
226
+ throw error;
227
+ }
228
+ }
229
+ }
230
+ else {
231
+ if (!namespaceConfig || Object.keys(namespaceConfig).length === 0) {
232
+ this.logger.warn(`No configuration found for namespace: ${namespace}`);
233
+ }
234
+ if (!validationSchema) {
235
+ this.logger.warn(`No validation schema provided for namespace: ${namespace}`);
236
+ }
237
+ }
238
+ }
239
+ this.logger.log(`Successfully registered ${factories.length} validated namespace factories`);
240
+ return factories;
241
+ }
242
+ catch (error) {
243
+ const validatedError = error instanceof Error ? error : new Error(String(error));
244
+ this.logger.error('Failed to register validated namespace factories:', validatedError);
245
+ if (this.options.failOnAwsError) {
246
+ throw validatedError;
247
+ }
248
+ // Return empty factories if fallback is enabled
249
+ return [];
250
+ }
251
+ }
252
+ /**
253
+ * Create enhanced namespace factories using the namespace handler service.
254
+ * This method provides improved namespace support with better configuration extraction.
255
+ *
256
+ * @param namespaces - Array of namespace names to create factories for
257
+ * @returns Promise resolving to array of enhanced namespace factories
258
+ */
259
+ async createEnhancedNamespaceFactories(namespaces) {
260
+ this.logger.debug(`Creating enhanced namespace factories for: ${namespaces.join(', ')}`);
261
+ try {
262
+ // Load configuration from AWS sources
263
+ const awsConfig = await this.awsConfigurationLoader.loadConfiguration();
264
+ const sources = await this.awsConfigurationLoader.getAvailableSources();
265
+ // Organize configuration by namespaces using the namespace handler
266
+ const organizedConfig = this.namespaceHandler.organizeConfigByNamespaces(awsConfig, namespaces);
267
+ // Create namespace factories using the namespace handler
268
+ const factories = this.namespaceHandler.createMultipleNamespaceFactories(organizedConfig, sources);
269
+ // Track the factories
270
+ for (const factory of factories) {
271
+ const namespace = factory.__namespace;
272
+ if (namespace) {
273
+ this.registeredFactories.set(namespace, factory);
274
+ }
275
+ }
276
+ this.logger.log(`Successfully created ${factories.length} enhanced namespace factories`);
277
+ return factories;
278
+ }
279
+ catch (error) {
280
+ const enhancedError = error instanceof Error ? error : new Error(String(error));
281
+ this.logger.error('Failed to create enhanced namespace factories:', enhancedError);
282
+ if (this.options.failOnAwsError) {
283
+ throw enhancedError;
284
+ }
285
+ return [];
286
+ }
287
+ }
288
+ /**
289
+ * Get validation recommendations for current configuration.
290
+ * This method analyzes the loaded configuration and provides validation recommendations.
291
+ *
292
+ * @returns Promise resolving to validation recommendations
293
+ */
294
+ async getValidationRecommendations() {
295
+ try {
296
+ const awsConfig = await this.awsConfigurationLoader.loadConfiguration();
297
+ return this.validationService.getValidationRecommendations(awsConfig);
298
+ }
299
+ catch (error) {
300
+ this.logger.error('Failed to get validation recommendations:', error);
301
+ return {
302
+ recommendedProvider: 'custom',
303
+ reasons: ['Unable to analyze configuration'],
304
+ examples: {}
305
+ };
306
+ }
307
+ }
308
+ /**
309
+ * Validate namespace access patterns for current configuration.
310
+ * This method checks if namespace configurations are properly structured for @nestjs/config access.
311
+ *
312
+ * @param namespaces - Namespaces to validate
313
+ * @returns Promise resolving to validation results
314
+ */
315
+ async validateNamespaceAccess(namespaces) {
316
+ try {
317
+ const namespacedConfig = await this.awsConfigurationLoader.loadNamespacedConfiguration(namespaces);
318
+ const results = {};
319
+ for (const [namespace, config] of Object.entries(namespacedConfig)) {
320
+ results[namespace] = this.namespaceHandler.validateNamespaceAccess(namespace, config);
321
+ }
322
+ return results;
323
+ }
324
+ catch (error) {
325
+ this.logger.error('Failed to validate namespace access:', error);
326
+ return {};
327
+ }
328
+ }
329
+ /**
330
+ * Reset the factory registration state.
331
+ * This method clears all registered factories and resets the initialization state.
332
+ */
333
+ reset() {
334
+ this.logger.debug('Resetting factory registration state');
335
+ this.registeredFactories.clear();
336
+ this.isInitialized = false;
337
+ }
338
+ /**
339
+ * Load configuration from AWS sources with error handling.
340
+ * @returns Promise resolving to AWS configuration data
341
+ */
342
+ async loadAwsConfiguration() {
343
+ try {
344
+ // Check if namespaces are specified for targeted loading
345
+ if (this.options.namespaces && this.options.namespaces.length > 0) {
346
+ this.logger.debug(`Loading configuration for namespaces: ${this.options.namespaces.join(', ')}`);
347
+ const namespacedConfig = await this.awsConfigurationLoader.loadNamespacedConfiguration(this.options.namespaces);
348
+ // Flatten namespaced configuration for factory creation
349
+ const flattenedConfig = {};
350
+ for (const [namespace, config] of Object.entries(namespacedConfig)) {
351
+ flattenedConfig[namespace] = config;
352
+ }
353
+ return flattenedConfig;
354
+ }
355
+ else {
356
+ // Load all available configuration
357
+ this.logger.debug('Loading all available AWS configuration');
358
+ return await this.awsConfigurationLoader.loadConfiguration();
359
+ }
360
+ }
361
+ catch (error) {
362
+ const loadError = error instanceof Error ? error : new Error(String(error));
363
+ this.logger.error('Failed to load AWS configuration:', loadError);
364
+ // Handle AWS unavailability
365
+ if (this.options.fallbackToLocal) {
366
+ this.logger.warn('AWS configuration loading failed, using empty configuration');
367
+ return {};
368
+ }
369
+ throw loadError;
370
+ }
371
+ }
372
+ /**
373
+ * Create configuration factories based on loaded AWS configuration.
374
+ * @param awsConfig - Configuration data loaded from AWS
375
+ * @returns Promise resolving to array of configuration factories
376
+ */
377
+ async createConfigurationFactories(awsConfig) {
378
+ const factories = [];
379
+ try {
380
+ // Get configuration sources for metadata
381
+ const sources = await this.awsConfigurationLoader.getAvailableSources();
382
+ if (this.options.namespaces && this.options.namespaces.length > 0) {
383
+ // Create namespaced factories
384
+ factories.push(...this.createNamespacedFactoriesFromConfig(awsConfig, sources));
385
+ }
386
+ else {
387
+ // Create a single factory with all configuration
388
+ const factory = this.createSingleFactoryFromConfig(awsConfig, sources);
389
+ if (factory) {
390
+ factories.push(factory);
391
+ }
392
+ }
393
+ this.logger.debug(`Created ${factories.length} configuration factories`);
394
+ return factories;
395
+ }
396
+ catch (error) {
397
+ const factoryError = error instanceof Error ? error : new Error(String(error));
398
+ this.logger.error('Failed to create configuration factories:', factoryError);
399
+ throw factoryError;
400
+ }
401
+ }
402
+ /**
403
+ * Create namespaced factories from configuration data.
404
+ * @param config - Configuration data organized by namespace
405
+ * @param sources - Configuration sources metadata
406
+ * @returns Array of namespaced configuration factories
407
+ */
408
+ createNamespacedFactoriesFromConfig(config, sources) {
409
+ const factories = [];
410
+ for (const [namespace, namespaceConfig] of Object.entries(config)) {
411
+ if (this.isValidNamespaceConfig(namespace, namespaceConfig)) {
412
+ try {
413
+ const factory = this.configurationFactoryProvider.createAwsConfigurationFactory(namespace, namespaceConfig, sources.filter(s => s.namespace === namespace || s.data[namespace]), this.options.precedence || 'aws-first');
414
+ factories.push(factory);
415
+ this.logger.debug(`Created namespaced factory: ${namespace}`);
416
+ }
417
+ catch (error) {
418
+ this.logger.error(`Failed to create factory for namespace ${namespace}:`, error);
419
+ }
420
+ }
421
+ }
422
+ return factories;
423
+ }
424
+ /**
425
+ * Create a single factory from all configuration data.
426
+ * @param config - All configuration data
427
+ * @param sources - Configuration sources metadata
428
+ * @returns Single configuration factory or null if no valid configuration
429
+ */
430
+ createSingleFactoryFromConfig(config, sources) {
431
+ if (!config || Object.keys(config).length === 0) {
432
+ this.logger.warn('No configuration data available for factory creation');
433
+ return null;
434
+ }
435
+ try {
436
+ const factory = this.configurationFactoryProvider.createAwsConfigurationFactory(undefined, config, sources, this.options.precedence || 'aws-first');
437
+ this.logger.debug('Created single configuration factory');
438
+ return factory;
439
+ }
440
+ catch (error) {
441
+ this.logger.error('Failed to create single configuration factory:', error);
442
+ return null;
443
+ }
444
+ }
445
+ /**
446
+ * Register factories internally and track them.
447
+ * @param factories - Array of factories to register
448
+ */
449
+ registerFactoriesInternal(factories) {
450
+ for (const factory of factories) {
451
+ // Determine factory name/key
452
+ const factoryKey = this.getFactoryKey(factory);
453
+ // Track the factory
454
+ this.registeredFactories.set(factoryKey, factory);
455
+ this.logger.debug(`Registered factory: ${factoryKey}`);
456
+ }
457
+ }
458
+ /**
459
+ * Get a unique key for a factory for tracking purposes.
460
+ * @param factory - Configuration factory
461
+ * @returns Unique key for the factory
462
+ */
463
+ getFactoryKey(factory) {
464
+ // Check if it's an AWS configuration factory with namespace
465
+ if ('namespace' in factory && factory.namespace) {
466
+ return factory.namespace;
467
+ }
468
+ // Generate a unique key based on factory properties
469
+ const factoryString = factory.toString();
470
+ const hash = this.simpleHash(factoryString);
471
+ return `factory_${hash}`;
472
+ }
473
+ /**
474
+ * Generate a simple hash for factory identification.
475
+ * @param str - String to hash
476
+ * @returns Simple hash value
477
+ */
478
+ simpleHash(str) {
479
+ let hash = 0;
480
+ for (let i = 0; i < str.length; i++) {
481
+ const char = str.charCodeAt(i);
482
+ hash = ((hash << 5) - hash) + char;
483
+ hash = hash & hash; // Convert to 32-bit integer
484
+ }
485
+ return Math.abs(hash).toString(36);
486
+ }
487
+ /**
488
+ * Validate if a namespace configuration is valid.
489
+ * @param namespace - The namespace name
490
+ * @param config - The configuration data
491
+ * @returns True if valid, false otherwise
492
+ */
493
+ isValidNamespaceConfig(namespace, config) {
494
+ return typeof namespace === 'string' &&
495
+ namespace.trim() !== '' &&
496
+ config !== null &&
497
+ config !== undefined &&
498
+ typeof config === 'object' &&
499
+ !Array.isArray(config);
500
+ }
501
+ };
502
+ exports.FactoryRegistrationService = FactoryRegistrationService;
503
+ exports.FactoryRegistrationService = FactoryRegistrationService = FactoryRegistrationService_1 = __decorate([
504
+ (0, common_1.Injectable)(),
505
+ __param(4, (0, common_1.Optional)()),
506
+ __param(4, (0, common_1.Inject)(nestjs_config_integration_module_1.NESTJS_CONFIG_AWS_INTEGRATION_OPTIONS)),
507
+ __metadata("design:paramtypes", [configuration_factory_provider_1.ConfigurationFactoryProviderImpl,
508
+ aws_configuration_loader_service_1.AwsConfigurationLoaderService,
509
+ namespace_handler_service_1.NamespaceHandlerService,
510
+ validation_integration_service_1.ValidationIntegrationService, Object])
511
+ ], FactoryRegistrationService);
512
+ //# sourceMappingURL=factory-registration.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory-registration.service.js","sourceRoot":"","sources":["../../../../src/integration/services/factory-registration.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Integration services exports
18
+ __exportStar(require("./integration-state.service"), exports);
19
+ __exportStar(require("./error-handler.service"), exports);
20
+ __exportStar(require("./precedence-handler.service"), exports);
21
+ __exportStar(require("./factory-registration.service"), exports);
22
+ __exportStar(require("./nestjs-config-integration.service"), exports);
23
+ __exportStar(require("./async-config-helper.service"), exports);
24
+ __exportStar(require("./namespace-handler.service"), exports);
25
+ __exportStar(require("./validation-integration.service"), exports);
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integration/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+BAA+B;AAC/B,8DAA4C;AAC5C,0DAAwC;AACxC,+DAA6C;AAC7C,iEAA+C;AAC/C,sEAAoD;AACpD,gEAA8C;AAC9C,8DAA4C;AAC5C,mEAAiD"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IntegrationStateService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ /**
12
+ * Service for managing the state of the integration module.
13
+ */
14
+ let IntegrationStateService = class IntegrationStateService {
15
+ constructor() {
16
+ this.state = {
17
+ isInitialized: false,
18
+ awsAvailable: false,
19
+ loadedSources: [],
20
+ registeredFactories: [],
21
+ errors: [],
22
+ };
23
+ }
24
+ /**
25
+ * Get the current integration state.
26
+ */
27
+ getState() {
28
+ return { ...this.state };
29
+ }
30
+ /**
31
+ * Mark the integration as initialized.
32
+ */
33
+ setInitialized(initialized) {
34
+ this.state.isInitialized = initialized;
35
+ }
36
+ /**
37
+ * Set AWS availability status.
38
+ */
39
+ setAwsAvailable(available) {
40
+ this.state.awsAvailable = available;
41
+ }
42
+ /**
43
+ * Add a loaded configuration source.
44
+ */
45
+ addLoadedSource(source) {
46
+ this.state.loadedSources.push(source);
47
+ }
48
+ /**
49
+ * Add a registered factory name.
50
+ */
51
+ addRegisteredFactory(factoryName) {
52
+ this.state.registeredFactories.push(factoryName);
53
+ }
54
+ /**
55
+ * Add an error to the state.
56
+ */
57
+ addError(error) {
58
+ this.state.errors.push(error);
59
+ }
60
+ /**
61
+ * Clear all errors.
62
+ */
63
+ clearErrors() {
64
+ this.state.errors = [];
65
+ }
66
+ /**
67
+ * Reset the integration state.
68
+ */
69
+ reset() {
70
+ this.state = {
71
+ isInitialized: false,
72
+ awsAvailable: false,
73
+ loadedSources: [],
74
+ registeredFactories: [],
75
+ errors: [],
76
+ };
77
+ }
78
+ };
79
+ exports.IntegrationStateService = IntegrationStateService;
80
+ exports.IntegrationStateService = IntegrationStateService = __decorate([
81
+ (0, common_1.Injectable)()
82
+ ], IntegrationStateService);
83
+ //# sourceMappingURL=integration-state.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-state.service.js","sourceRoot":"","sources":["../../../../src/integration/services/integration-state.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAI5C;;GAEG;AAEI,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAA7B;QACG,UAAK,GAAqB;YAChC,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,EAAE;YACjB,mBAAmB,EAAE,EAAE;YACvB,MAAM,EAAE,EAAE;SACX,CAAC;IA+DJ,CAAC;IA7DC;;OAEG;IACH,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,WAAoB;QACjC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,SAAkB;QAChC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAA2B;QACzC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,WAAmB;QACtC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,GAAG;YACX,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,KAAK;YACnB,aAAa,EAAE,EAAE;YACjB,mBAAmB,EAAE,EAAE;YACvB,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;CACF,CAAA;AAtEY,0DAAuB;kCAAvB,uBAAuB;IADnC,IAAA,mBAAU,GAAE;GACA,uBAAuB,CAsEnC"}