@dyanet/nestjs-config-aws 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +60 -43
  3. package/dist/cjs/aws-config-loader.js +57 -0
  4. package/dist/cjs/build-loaders.js +58 -0
  5. package/dist/cjs/config.module.js +138 -0
  6. package/dist/cjs/index.js +46 -0
  7. package/dist/cjs/interfaces/config-service.interface.js +11 -0
  8. package/dist/cjs/interfaces/default-schema.interface.js +63 -0
  9. package/dist/cjs/{nestjs-config-aws/src/interfaces → interfaces}/index.js +1 -1
  10. package/dist/cjs/interfaces/module-options.interface.js +3 -0
  11. package/dist/cjs/package.json +3 -0
  12. package/dist/cjs/services/config.service.js +142 -0
  13. package/dist/esm/aws-config-loader.js +54 -0
  14. package/dist/esm/build-loaders.js +55 -0
  15. package/dist/esm/config.module.js +135 -0
  16. package/dist/esm/index.js +18 -0
  17. package/dist/esm/interfaces/config-service.interface.js +7 -0
  18. package/dist/esm/interfaces/default-schema.interface.js +59 -0
  19. package/dist/esm/interfaces/index.js +8 -0
  20. package/dist/esm/interfaces/module-options.interface.js +2 -0
  21. package/dist/esm/package.json +3 -1
  22. package/dist/esm/services/config.service.js +139 -0
  23. package/dist/types/aws-config-loader.d.ts +74 -0
  24. package/dist/types/aws-config-loader.d.ts.map +1 -0
  25. package/dist/types/build-loaders.d.ts +30 -0
  26. package/dist/types/build-loaders.d.ts.map +1 -0
  27. package/dist/types/{nestjs-config-aws/src/config.module.d.ts → config.module.d.ts} +2 -8
  28. package/dist/types/config.module.d.ts.map +1 -0
  29. package/dist/types/index.d.ts +10 -0
  30. package/dist/types/index.d.ts.map +1 -0
  31. package/dist/types/interfaces/config-service.interface.d.ts.map +1 -0
  32. package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/default-schema.interface.d.ts +14 -14
  33. package/dist/types/interfaces/default-schema.interface.d.ts.map +1 -0
  34. package/dist/types/interfaces/index.d.ts.map +1 -0
  35. package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/module-options.interface.d.ts +22 -3
  36. package/dist/types/interfaces/module-options.interface.d.ts.map +1 -0
  37. package/dist/types/services/config.service.d.ts.map +1 -0
  38. package/package.json +13 -7
  39. package/dist/cjs/config-aws/src/config-manager.js +0 -366
  40. package/dist/cjs/config-aws/src/errors/index.js +0 -77
  41. package/dist/cjs/config-aws/src/index.js +0 -37
  42. package/dist/cjs/config-aws/src/interfaces/config-loader.interface.js +0 -3
  43. package/dist/cjs/config-aws/src/interfaces/config-manager.interface.js +0 -3
  44. package/dist/cjs/config-aws/src/interfaces/env-file-loader.interface.js +0 -3
  45. package/dist/cjs/config-aws/src/interfaces/environment-loader.interface.js +0 -3
  46. package/dist/cjs/config-aws/src/interfaces/s3-loader.interface.js +0 -3
  47. package/dist/cjs/config-aws/src/interfaces/secrets-manager-loader.interface.js +0 -3
  48. package/dist/cjs/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +0 -3
  49. package/dist/cjs/config-aws/src/loaders/env-file.loader.js +0 -169
  50. package/dist/cjs/config-aws/src/loaders/environment.loader.js +0 -85
  51. package/dist/cjs/config-aws/src/loaders/s3.loader.js +0 -145
  52. package/dist/cjs/config-aws/src/loaders/secrets-manager.loader.js +0 -169
  53. package/dist/cjs/config-aws/src/loaders/ssm-parameter-store.loader.js +0 -199
  54. package/dist/cjs/config-aws/src/utils/env-file-parser.util.js +0 -98
  55. package/dist/cjs/config-aws/src/utils/validation.util.js +0 -116
  56. package/dist/cjs/nestjs-config-aws/src/config.module.js +0 -175
  57. package/dist/cjs/nestjs-config-aws/src/index.js +0 -61
  58. package/dist/cjs/nestjs-config-aws/src/integration/index.js +0 -23
  59. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +0 -3
  60. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +0 -3
  61. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/index.js +0 -26
  62. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +0 -3
  63. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +0 -3
  64. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +0 -73
  65. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +0 -3
  66. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +0 -4
  67. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +0 -52
  68. package/dist/cjs/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +0 -124
  69. package/dist/cjs/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +0 -592
  70. package/dist/cjs/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +0 -385
  71. package/dist/cjs/nestjs-config-aws/src/integration/providers/index.js +0 -20
  72. package/dist/cjs/nestjs-config-aws/src/integration/services/async-config-helper.service.js +0 -366
  73. package/dist/cjs/nestjs-config-aws/src/integration/services/error-handler.service.js +0 -267
  74. package/dist/cjs/nestjs-config-aws/src/integration/services/factory-registration.service.js +0 -517
  75. package/dist/cjs/nestjs-config-aws/src/integration/services/index.js +0 -26
  76. package/dist/cjs/nestjs-config-aws/src/integration/services/integration-state.service.js +0 -81
  77. package/dist/cjs/nestjs-config-aws/src/integration/services/namespace-handler.service.js +0 -465
  78. package/dist/cjs/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +0 -318
  79. package/dist/cjs/nestjs-config-aws/src/integration/services/precedence-handler.service.js +0 -292
  80. package/dist/cjs/nestjs-config-aws/src/integration/services/validation-integration.service.js +0 -595
  81. package/dist/cjs/nestjs-config-aws/src/integration/utils/config-integration.util.js +0 -283
  82. package/dist/cjs/nestjs-config-aws/src/integration/utils/index.js +0 -19
  83. package/dist/cjs/nestjs-config-aws/src/interfaces/config-service.interface.js +0 -11
  84. package/dist/cjs/nestjs-config-aws/src/interfaces/default-schema.interface.js +0 -63
  85. package/dist/cjs/nestjs-config-aws/src/interfaces/module-options.interface.js +0 -3
  86. package/dist/cjs/nestjs-config-aws/src/services/config.service.js +0 -142
  87. package/dist/esm/config-aws/src/config-manager.js +0 -362
  88. package/dist/esm/config-aws/src/errors/index.js +0 -69
  89. package/dist/esm/config-aws/src/index.js +0 -21
  90. package/dist/esm/config-aws/src/interfaces/config-loader.interface.js +0 -2
  91. package/dist/esm/config-aws/src/interfaces/config-manager.interface.js +0 -2
  92. package/dist/esm/config-aws/src/interfaces/env-file-loader.interface.js +0 -2
  93. package/dist/esm/config-aws/src/interfaces/environment-loader.interface.js +0 -2
  94. package/dist/esm/config-aws/src/interfaces/s3-loader.interface.js +0 -2
  95. package/dist/esm/config-aws/src/interfaces/secrets-manager-loader.interface.js +0 -2
  96. package/dist/esm/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +0 -2
  97. package/dist/esm/config-aws/src/loaders/env-file.loader.js +0 -132
  98. package/dist/esm/config-aws/src/loaders/environment.loader.js +0 -81
  99. package/dist/esm/config-aws/src/loaders/s3.loader.js +0 -141
  100. package/dist/esm/config-aws/src/loaders/secrets-manager.loader.js +0 -165
  101. package/dist/esm/config-aws/src/loaders/ssm-parameter-store.loader.js +0 -195
  102. package/dist/esm/config-aws/src/utils/env-file-parser.util.js +0 -94
  103. package/dist/esm/config-aws/src/utils/validation.util.js +0 -112
  104. package/dist/esm/nestjs-config-aws/src/config.module.js +0 -172
  105. package/dist/esm/nestjs-config-aws/src/index.js +0 -23
  106. package/dist/esm/nestjs-config-aws/src/integration/index.js +0 -7
  107. package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +0 -2
  108. package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +0 -2
  109. package/dist/esm/nestjs-config-aws/src/integration/interfaces/index.js +0 -10
  110. package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +0 -2
  111. package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +0 -2
  112. package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +0 -64
  113. package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +0 -2
  114. package/dist/esm/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +0 -3
  115. package/dist/esm/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +0 -44
  116. package/dist/esm/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +0 -121
  117. package/dist/esm/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +0 -589
  118. package/dist/esm/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +0 -382
  119. package/dist/esm/nestjs-config-aws/src/integration/providers/index.js +0 -4
  120. package/dist/esm/nestjs-config-aws/src/integration/services/async-config-helper.service.js +0 -363
  121. package/dist/esm/nestjs-config-aws/src/integration/services/error-handler.service.js +0 -264
  122. package/dist/esm/nestjs-config-aws/src/integration/services/factory-registration.service.js +0 -514
  123. package/dist/esm/nestjs-config-aws/src/integration/services/index.js +0 -10
  124. package/dist/esm/nestjs-config-aws/src/integration/services/integration-state.service.js +0 -78
  125. package/dist/esm/nestjs-config-aws/src/integration/services/namespace-handler.service.js +0 -462
  126. package/dist/esm/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +0 -315
  127. package/dist/esm/nestjs-config-aws/src/integration/services/precedence-handler.service.js +0 -289
  128. package/dist/esm/nestjs-config-aws/src/integration/services/validation-integration.service.js +0 -589
  129. package/dist/esm/nestjs-config-aws/src/integration/utils/config-integration.util.js +0 -240
  130. package/dist/esm/nestjs-config-aws/src/integration/utils/index.js +0 -3
  131. package/dist/esm/nestjs-config-aws/src/interfaces/config-service.interface.js +0 -7
  132. package/dist/esm/nestjs-config-aws/src/interfaces/default-schema.interface.js +0 -59
  133. package/dist/esm/nestjs-config-aws/src/interfaces/index.js +0 -8
  134. package/dist/esm/nestjs-config-aws/src/interfaces/module-options.interface.js +0 -2
  135. package/dist/esm/nestjs-config-aws/src/services/config.service.js +0 -139
  136. package/dist/types/config-aws/src/config-manager.d.ts +0 -119
  137. package/dist/types/config-aws/src/config-manager.d.ts.map +0 -1
  138. package/dist/types/config-aws/src/errors/index.d.ts +0 -43
  139. package/dist/types/config-aws/src/errors/index.d.ts.map +0 -1
  140. package/dist/types/config-aws/src/index.d.ts +0 -24
  141. package/dist/types/config-aws/src/index.d.ts.map +0 -1
  142. package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts +0 -33
  143. package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts.map +0 -1
  144. package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts +0 -86
  145. package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts.map +0 -1
  146. package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts +0 -12
  147. package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts.map +0 -1
  148. package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts +0 -10
  149. package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts.map +0 -1
  150. package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts +0 -14
  151. package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts.map +0 -1
  152. package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts +0 -12
  153. package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts.map +0 -1
  154. package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts +0 -14
  155. package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts.map +0 -1
  156. package/dist/types/config-aws/src/loaders/env-file.loader.d.ts +0 -69
  157. package/dist/types/config-aws/src/loaders/env-file.loader.d.ts.map +0 -1
  158. package/dist/types/config-aws/src/loaders/environment.loader.d.ts +0 -46
  159. package/dist/types/config-aws/src/loaders/environment.loader.d.ts.map +0 -1
  160. package/dist/types/config-aws/src/loaders/s3.loader.d.ts +0 -62
  161. package/dist/types/config-aws/src/loaders/s3.loader.d.ts.map +0 -1
  162. package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts +0 -68
  163. package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts.map +0 -1
  164. package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts +0 -78
  165. package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts.map +0 -1
  166. package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts +0 -45
  167. package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts.map +0 -1
  168. package/dist/types/config-aws/src/utils/validation.util.d.ts +0 -53
  169. package/dist/types/config-aws/src/utils/validation.util.d.ts.map +0 -1
  170. package/dist/types/nestjs-config-aws/src/config.module.d.ts.map +0 -1
  171. package/dist/types/nestjs-config-aws/src/index.d.ts +0 -11
  172. package/dist/types/nestjs-config-aws/src/index.d.ts.map +0 -1
  173. package/dist/types/nestjs-config-aws/src/integration/index.d.ts +0 -6
  174. package/dist/types/nestjs-config-aws/src/integration/index.d.ts.map +0 -1
  175. package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.d.ts +0 -71
  176. package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.d.ts.map +0 -1
  177. package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.d.ts +0 -24
  178. package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.d.ts.map +0 -1
  179. package/dist/types/nestjs-config-aws/src/integration/interfaces/index.d.ts +0 -9
  180. package/dist/types/nestjs-config-aws/src/integration/interfaces/index.d.ts.map +0 -1
  181. package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-options.interface.d.ts +0 -66
  182. package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-options.interface.d.ts.map +0 -1
  183. package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-state.interface.d.ts +0 -17
  184. package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-state.interface.d.ts.map +0 -1
  185. package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.d.ts +0 -332
  186. package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +0 -1
  187. package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.d.ts +0 -259
  188. package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.d.ts.map +0 -1
  189. package/dist/types/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.d.ts +0 -209
  190. package/dist/types/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.d.ts.map +0 -1
  191. package/dist/types/nestjs-config-aws/src/integration/interfaces/utility-types.interface.d.ts +0 -249
  192. package/dist/types/nestjs-config-aws/src/integration/interfaces/utility-types.interface.d.ts.map +0 -1
  193. package/dist/types/nestjs-config-aws/src/integration/nestjs-config-integration.module.d.ts +0 -36
  194. package/dist/types/nestjs-config-aws/src/integration/nestjs-config-integration.module.d.ts.map +0 -1
  195. package/dist/types/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.d.ts +0 -134
  196. package/dist/types/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.d.ts.map +0 -1
  197. package/dist/types/nestjs-config-aws/src/integration/providers/configuration-factory.provider.d.ts +0 -119
  198. package/dist/types/nestjs-config-aws/src/integration/providers/configuration-factory.provider.d.ts.map +0 -1
  199. package/dist/types/nestjs-config-aws/src/integration/providers/index.d.ts +0 -3
  200. package/dist/types/nestjs-config-aws/src/integration/providers/index.d.ts.map +0 -1
  201. package/dist/types/nestjs-config-aws/src/integration/services/async-config-helper.service.d.ts +0 -84
  202. package/dist/types/nestjs-config-aws/src/integration/services/async-config-helper.service.d.ts.map +0 -1
  203. package/dist/types/nestjs-config-aws/src/integration/services/error-handler.service.d.ts +0 -84
  204. package/dist/types/nestjs-config-aws/src/integration/services/error-handler.service.d.ts.map +0 -1
  205. package/dist/types/nestjs-config-aws/src/integration/services/factory-registration.service.d.ts +0 -158
  206. package/dist/types/nestjs-config-aws/src/integration/services/factory-registration.service.d.ts.map +0 -1
  207. package/dist/types/nestjs-config-aws/src/integration/services/index.d.ts +0 -9
  208. package/dist/types/nestjs-config-aws/src/integration/services/index.d.ts.map +0 -1
  209. package/dist/types/nestjs-config-aws/src/integration/services/integration-state.service.d.ts +0 -41
  210. package/dist/types/nestjs-config-aws/src/integration/services/integration-state.service.d.ts.map +0 -1
  211. package/dist/types/nestjs-config-aws/src/integration/services/namespace-handler.service.d.ts +0 -192
  212. package/dist/types/nestjs-config-aws/src/integration/services/namespace-handler.service.d.ts.map +0 -1
  213. package/dist/types/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.d.ts +0 -87
  214. package/dist/types/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.d.ts.map +0 -1
  215. package/dist/types/nestjs-config-aws/src/integration/services/precedence-handler.service.d.ts +0 -103
  216. package/dist/types/nestjs-config-aws/src/integration/services/precedence-handler.service.d.ts.map +0 -1
  217. package/dist/types/nestjs-config-aws/src/integration/services/validation-integration.service.d.ts +0 -222
  218. package/dist/types/nestjs-config-aws/src/integration/services/validation-integration.service.d.ts.map +0 -1
  219. package/dist/types/nestjs-config-aws/src/integration/utils/config-integration.util.d.ts +0 -81
  220. package/dist/types/nestjs-config-aws/src/integration/utils/config-integration.util.d.ts.map +0 -1
  221. package/dist/types/nestjs-config-aws/src/integration/utils/index.d.ts +0 -2
  222. package/dist/types/nestjs-config-aws/src/integration/utils/index.d.ts.map +0 -1
  223. package/dist/types/nestjs-config-aws/src/interfaces/config-service.interface.d.ts.map +0 -1
  224. package/dist/types/nestjs-config-aws/src/interfaces/default-schema.interface.d.ts.map +0 -1
  225. package/dist/types/nestjs-config-aws/src/interfaces/index.d.ts.map +0 -1
  226. package/dist/types/nestjs-config-aws/src/interfaces/module-options.interface.d.ts.map +0 -1
  227. package/dist/types/nestjs-config-aws/src/services/config.service.d.ts.map +0 -1
  228. /package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/config-service.interface.d.ts +0 -0
  229. /package/dist/types/{nestjs-config-aws/src/interfaces → interfaces}/index.d.ts +0 -0
  230. /package/dist/types/{nestjs-config-aws/src/services → services}/config.service.d.ts +0 -0
@@ -0,0 +1,139 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var ConfigServiceImpl_1;
11
+ import { Injectable, Logger } from '@nestjs/common';
12
+ import { ConfigManager, ConfigurationError } from '@dyanet/config-aws';
13
+ import { ConfigService } from '../interfaces/config-service.interface.js';
14
+ /**
15
+ * NestJS Injectable wrapper around ConfigManager from @dyanet/config-aws.
16
+ * Provides type-safe configuration access with NestJS dependency injection support.
17
+ *
18
+ * This is a thin adapter layer that delegates all configuration loading and
19
+ * management to the framework-agnostic ConfigManager from config-aws.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { ConfigServiceImpl } from '@dyanet/nestjs-config-aws';
24
+ * import { z } from 'zod';
25
+ *
26
+ * const schema = z.object({
27
+ * DATABASE_URL: z.string(),
28
+ * PORT: z.coerce.number().default(3000),
29
+ * });
30
+ *
31
+ * const configService = new ConfigServiceImpl({
32
+ * loaders: [new EnvironmentLoader()],
33
+ * schema,
34
+ * });
35
+ *
36
+ * await configService.initialize();
37
+ * const dbUrl = configService.get('DATABASE_URL');
38
+ * ```
39
+ */
40
+ let ConfigServiceImpl = ConfigServiceImpl_1 = class ConfigServiceImpl extends ConfigService {
41
+ logger = new Logger(ConfigServiceImpl_1.name);
42
+ configManager;
43
+ enableNestLogging;
44
+ constructor(options = {}) {
45
+ super();
46
+ this.enableNestLogging = options.enableNestLogging ?? true;
47
+ // Create ConfigManager from config-aws with provided options
48
+ this.configManager = new ConfigManager({
49
+ loaders: options.loaders,
50
+ schema: options.schema,
51
+ precedence: options.precedence,
52
+ validateOnLoad: options.validateOnLoad,
53
+ enableLogging: options.enableLogging,
54
+ logger: options.logger,
55
+ verbose: options.verbose,
56
+ });
57
+ }
58
+ /**
59
+ * Initialize the configuration service by loading configuration from all sources.
60
+ * This method should be called during application startup.
61
+ *
62
+ * @throws ConfigurationError if loading or validation fails
63
+ */
64
+ async initialize() {
65
+ if (this.configManager.isLoaded()) {
66
+ return;
67
+ }
68
+ try {
69
+ if (this.enableNestLogging) {
70
+ this.logger.log('Initializing configuration service...');
71
+ }
72
+ await this.configManager.load();
73
+ if (this.enableNestLogging) {
74
+ this.logger.log('Configuration service initialized successfully');
75
+ }
76
+ }
77
+ catch (error) {
78
+ const errorMessage = `Failed to initialize configuration service: ${error instanceof Error ? error.message : String(error)}`;
79
+ this.logger.error(errorMessage);
80
+ throw error;
81
+ }
82
+ }
83
+ /**
84
+ * Get a configuration value by key with type safety.
85
+ *
86
+ * @param key - The configuration key to retrieve
87
+ * @returns The configuration value with proper typing
88
+ * @throws ConfigurationError if configuration is not initialized
89
+ */
90
+ get(key) {
91
+ if (!this.configManager.isLoaded()) {
92
+ throw new ConfigurationError('Configuration service not initialized. Call initialize() first.');
93
+ }
94
+ return this.configManager.get(key);
95
+ }
96
+ /**
97
+ * Check if the configuration service has been initialized.
98
+ *
99
+ * @returns True if the service is ready to serve configuration values
100
+ */
101
+ isInitialized() {
102
+ return this.configManager.isLoaded();
103
+ }
104
+ /**
105
+ * Get all configuration values.
106
+ *
107
+ * @returns The complete configuration object
108
+ * @throws ConfigurationError if configuration is not initialized
109
+ */
110
+ getAll() {
111
+ if (!this.configManager.isLoaded()) {
112
+ throw new ConfigurationError('Configuration service not initialized. Call initialize() first.');
113
+ }
114
+ return this.configManager.getAll();
115
+ }
116
+ /**
117
+ * Get the current application environment.
118
+ *
119
+ * @returns The APP_ENV value or 'development' as default
120
+ */
121
+ getAppEnv() {
122
+ return this.configManager.getAppEnv();
123
+ }
124
+ /**
125
+ * Get the underlying ConfigManager instance.
126
+ * Useful for advanced use cases that need direct access to ConfigManager features.
127
+ *
128
+ * @returns The ConfigManager instance from @dyanet/config-aws
129
+ */
130
+ getConfigManager() {
131
+ return this.configManager;
132
+ }
133
+ };
134
+ ConfigServiceImpl = ConfigServiceImpl_1 = __decorate([
135
+ Injectable(),
136
+ __metadata("design:paramtypes", [Object])
137
+ ], ConfigServiceImpl);
138
+ export { ConfigServiceImpl };
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQWN2RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCRztBQUVJLElBQU0saUJBQWlCLHlCQUF2QixNQUFNLGlCQUErQyxTQUFRLGFBQWdCO0lBQ2pFLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxtQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxhQUFhLENBQW1CO0lBQ2hDLGlCQUFpQixDQUFVO0lBRTVDLFlBQVksVUFBbUMsRUFBRTtRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDO1FBRTNELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFJO1lBQ3hDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQzlCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDcEMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRWhDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxZQUFZLEdBQUcsK0NBQStDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hDLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQW9CLEdBQU07UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksa0JBQWtCLENBQzFCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ25DLE1BQU0sSUFBSSxrQkFBa0IsQ0FDMUIsaUVBQWlFLENBQ2xFLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztDQUNGLENBQUE7QUE1R1ksaUJBQWlCO0lBRDdCLFVBQVUsRUFBRTs7R0FDQSxpQkFBaUIsQ0E0RzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTG9nZ2VyIH0gZnJvbSAnQG5lc3Rqcy9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdNYW5hZ2VyLCBDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xyXG5pbXBvcnQgdHlwZSB7IENvbmZpZ01hbmFnZXJPcHRpb25zIH0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBOZXN0SlMgQ29uZmlnU2VydmljZSB3cmFwcGVyLlxyXG4gKiBFeHRlbmRzIENvbmZpZ01hbmFnZXJPcHRpb25zIGZyb20gQGR5YW5ldC9jb25maWctYXdzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maWdTZXJ2aWNlT3B0aW9uczxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IGV4dGVuZHMgQ29uZmlnTWFuYWdlck9wdGlvbnM8VD4ge1xyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIE5lc3RKUyBsb2dnaW5nXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGVuYWJsZU5lc3RMb2dnaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIE5lc3RKUyBJbmplY3RhYmxlIHdyYXBwZXIgYXJvdW5kIENvbmZpZ01hbmFnZXIgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3MuXHJcbiAqIFByb3ZpZGVzIHR5cGUtc2FmZSBjb25maWd1cmF0aW9uIGFjY2VzcyB3aXRoIE5lc3RKUyBkZXBlbmRlbmN5IGluamVjdGlvbiBzdXBwb3J0LlxyXG4gKiBcclxuICogVGhpcyBpcyBhIHRoaW4gYWRhcHRlciBsYXllciB0aGF0IGRlbGVnYXRlcyBhbGwgY29uZmlndXJhdGlvbiBsb2FkaW5nIGFuZFxyXG4gKiBtYW5hZ2VtZW50IHRvIHRoZSBmcmFtZXdvcmstYWdub3N0aWMgQ29uZmlnTWFuYWdlciBmcm9tIGNvbmZpZy1hd3MuXHJcbiAqIFxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IENvbmZpZ1NlcnZpY2VJbXBsIH0gZnJvbSAnQGR5YW5ldC9uZXN0anMtY29uZmlnLWF3cyc7XHJcbiAqIGltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xyXG4gKiBcclxuICogY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xyXG4gKiAgIERBVEFCQVNFX1VSTDogei5zdHJpbmcoKSxcclxuICogICBQT1JUOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDMwMDApLFxyXG4gKiB9KTtcclxuICogXHJcbiAqIGNvbnN0IGNvbmZpZ1NlcnZpY2UgPSBuZXcgQ29uZmlnU2VydmljZUltcGwoe1xyXG4gKiAgIGxvYWRlcnM6IFtuZXcgRW52aXJvbm1lbnRMb2FkZXIoKV0sXHJcbiAqICAgc2NoZW1hLFxyXG4gKiB9KTtcclxuICogXHJcbiAqIGF3YWl0IGNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZSgpO1xyXG4gKiBjb25zdCBkYlVybCA9IGNvbmZpZ1NlcnZpY2UuZ2V0KCdEQVRBQkFTRV9VUkwnKTtcclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlSW1wbDxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IGV4dGVuZHMgQ29uZmlnU2VydmljZTxUPiB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBuZXcgTG9nZ2VyKENvbmZpZ1NlcnZpY2VJbXBsLm5hbWUpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnTWFuYWdlcjogQ29uZmlnTWFuYWdlcjxUPjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVuYWJsZU5lc3RMb2dnaW5nOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDb25maWdTZXJ2aWNlT3B0aW9uczxUPiA9IHt9KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgXHJcbiAgICB0aGlzLmVuYWJsZU5lc3RMb2dnaW5nID0gb3B0aW9ucy5lbmFibGVOZXN0TG9nZ2luZyA/PyB0cnVlO1xyXG4gICAgXHJcbiAgICAvLyBDcmVhdGUgQ29uZmlnTWFuYWdlciBmcm9tIGNvbmZpZy1hd3Mgd2l0aCBwcm92aWRlZCBvcHRpb25zXHJcbiAgICB0aGlzLmNvbmZpZ01hbmFnZXIgPSBuZXcgQ29uZmlnTWFuYWdlcjxUPih7XHJcbiAgICAgIGxvYWRlcnM6IG9wdGlvbnMubG9hZGVycyxcclxuICAgICAgc2NoZW1hOiBvcHRpb25zLnNjaGVtYSxcclxuICAgICAgcHJlY2VkZW5jZTogb3B0aW9ucy5wcmVjZWRlbmNlLFxyXG4gICAgICB2YWxpZGF0ZU9uTG9hZDogb3B0aW9ucy52YWxpZGF0ZU9uTG9hZCxcclxuICAgICAgZW5hYmxlTG9nZ2luZzogb3B0aW9ucy5lbmFibGVMb2dnaW5nLFxyXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxyXG4gICAgICB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZSBieSBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBhbGwgc291cmNlcy5cclxuICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBzdGFydHVwLlxyXG4gICAqIFxyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGxvYWRpbmcgb3IgdmFsaWRhdGlvbiBmYWlsc1xyXG4gICAqL1xyXG4gIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmVuYWJsZU5lc3RMb2dnaW5nKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdJbml0aWFsaXppbmcgY29uZmlndXJhdGlvbiBzZXJ2aWNlLi4uJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnTWFuYWdlci5sb2FkKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVOZXN0TG9nZ2luZykge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnQ29uZmlndXJhdGlvbiBzZXJ2aWNlIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgRmFpbGVkIHRvIGluaXRpYWxpemUgY29uZmlndXJhdGlvbiBzZXJ2aWNlOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhIGNvbmZpZ3VyYXRpb24gdmFsdWUgYnkga2V5IHdpdGggdHlwZSBzYWZldHkuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGtleSAtIFRoZSBjb25maWd1cmF0aW9uIGtleSB0byByZXRyaWV2ZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHZhbHVlIHdpdGggcHJvcGVyIHR5cGluZ1xyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IGluaXRpYWxpemVkXHJcbiAgICovXHJcbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEspOiBUW0tdIHtcclxuICAgIGlmICghdGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCkpIHtcclxuICAgICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcclxuICAgICAgICAnQ29uZmlndXJhdGlvbiBzZXJ2aWNlIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0aWFsaXplKCkgZmlyc3QuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlci5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSBjb25maWd1cmF0aW9uIHNlcnZpY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc2VydmljZSBpcyByZWFkeSB0byBzZXJ2ZSBjb25maWd1cmF0aW9uIHZhbHVlc1xyXG4gICAqL1xyXG4gIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVzLlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRoZSBjb21wbGV0ZSBjb25maWd1cmF0aW9uIG9iamVjdFxyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IGluaXRpYWxpemVkXHJcbiAgICovXHJcbiAgZ2V0QWxsKCk6IFQge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ01hbmFnZXIuaXNMb2FkZWQoKSkge1xyXG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFxyXG4gICAgICAgICdDb25maWd1cmF0aW9uIHNlcnZpY2Ugbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXRpYWxpemUoKSBmaXJzdC4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdNYW5hZ2VyLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIGVudmlyb25tZW50LlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRoZSBBUFBfRU5WIHZhbHVlIG9yICdkZXZlbG9wbWVudCcgYXMgZGVmYXVsdFxyXG4gICAqL1xyXG4gIGdldEFwcEVudigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlci5nZXRBcHBFbnYoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdW5kZXJseWluZyBDb25maWdNYW5hZ2VyIGluc3RhbmNlLlxyXG4gICAqIFVzZWZ1bCBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzIHRoYXQgbmVlZCBkaXJlY3QgYWNjZXNzIHRvIENvbmZpZ01hbmFnZXIgZmVhdHVyZXMuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVGhlIENvbmZpZ01hbmFnZXIgaW5zdGFuY2UgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3NcclxuICAgKi9cclxuICBnZXRDb25maWdNYW5hZ2VyKCk6IENvbmZpZ01hbmFnZXI8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlcjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,74 @@
1
+ import type { PrecedenceStrategy } from '@dyanet/config-aws';
2
+ import type { ZodType } from 'zod';
3
+ import { AwsOptions, SecretsManagerConfig, SSMConfig } from './interfaces/module-options.interface';
4
+ /**
5
+ * Options for {@link awsConfigLoader}.
6
+ */
7
+ export interface AwsConfigLoaderOptions<T extends Record<string, unknown> = Record<string, unknown>> {
8
+ /** Zod schema for validation. When provided, the merged config is validated. */
9
+ schema?: ZodType<T>;
10
+ /**
11
+ * Simple AWS options (`{ secretName, ssmPrefix, region }`) — the same shape as the
12
+ * Next.js adapter's `getConfig`. When set, takes precedence over the granular
13
+ * `secretsManagerConfig` / `ssmConfig` options.
14
+ */
15
+ aws?: AwsOptions;
16
+ /** AWS Secrets Manager configuration (advanced). Omit or set `enabled: false` to skip. */
17
+ secretsManagerConfig?: SecretsManagerConfig;
18
+ /** AWS SSM Parameter Store configuration (advanced). Omit or set `enabled: false` to skip. */
19
+ ssmConfig?: SSMConfig;
20
+ /** Prefix for environment variables (e.g. `APP_`). */
21
+ envPrefix?: string;
22
+ /**
23
+ * Precedence strategy for merging sources.
24
+ * @default 'aws-first'
25
+ */
26
+ precedence?: PrecedenceStrategy;
27
+ /**
28
+ * Whether to validate the merged config against `schema`.
29
+ * @default true when a schema is provided, otherwise false
30
+ */
31
+ validate?: boolean;
32
+ /** Enable verbose loader logging. @default false */
33
+ enableLogging?: boolean;
34
+ }
35
+ /**
36
+ * Create a configuration factory that loads from AWS sources (Secrets Manager,
37
+ * SSM Parameter Store) and environment variables, for use with the standard
38
+ * `@nestjs/config` `ConfigModule`.
39
+ *
40
+ * The returned function matches `@nestjs/config`'s `ConfigFactory` shape, so drop
41
+ * it straight into the `load` array — no extra module to import, and
42
+ * `@nestjs/config` stays an optional peer dependency of this package.
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * import { ConfigModule } from '@nestjs/config';
47
+ * import { awsConfigLoader } from '@dyanet/nestjs-config-aws';
48
+ *
49
+ * @Module({
50
+ * imports: [
51
+ * ConfigModule.forRoot({
52
+ * isGlobal: true,
53
+ * // Simple `aws` shape — same as the Next.js adapter's getConfig:
54
+ * load: [awsConfigLoader({ aws: { secretName: '/my-app/config' } })],
55
+ * }),
56
+ * ],
57
+ * })
58
+ * export class AppModule {}
59
+ * ```
60
+ *
61
+ * @example Namespaced (compose with `@nestjs/config`'s `registerAs`):
62
+ * ```typescript
63
+ * import { ConfigModule, registerAs } from '@nestjs/config';
64
+ *
65
+ * ConfigModule.forRoot({
66
+ * load: [registerAs('database', awsConfigLoader({ ssmConfig: { paths: { production: '/db' } } }))],
67
+ * });
68
+ * ```
69
+ *
70
+ * @param options Loader options.
71
+ * @returns A factory `() => Promise<T>` suitable for `ConfigModule`'s `load` array.
72
+ */
73
+ export declare function awsConfigLoader<T extends Record<string, unknown> = Record<string, unknown>>(options?: AwsConfigLoaderOptions<T>): () => Promise<T>;
74
+ //# sourceMappingURL=aws-config-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-config-loader.d.ts","sourceRoot":"","sources":["../../src/aws-config-loader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAGpG;;GAEG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjG,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB;;;;OAIG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzF,OAAO,GAAE,sBAAsB,CAAC,CAAC,CAAM,GACtC,MAAM,OAAO,CAAC,CAAC,CAAC,CAalB"}
@@ -0,0 +1,30 @@
1
+ import { ConfigLoader } from '@dyanet/config-aws';
2
+ import { AwsOptions, SecretsManagerConfig, SSMConfig } from './interfaces/module-options.interface';
3
+ /**
4
+ * The AWS configuration sources used to build a set of loaders.
5
+ * Shared by {@link ConfigModule} and {@link awsConfigLoader} so both produce an
6
+ * identical loader chain.
7
+ */
8
+ export interface AwsLoaderSources {
9
+ /** Prefix for environment variables (e.g. `APP_`). */
10
+ envPrefix?: string;
11
+ /**
12
+ * Simple AWS options (`{ secretName, ssmPrefix, region }`) — mirrors the Next.js
13
+ * adapter. When set, exactly the named sources are added and the granular
14
+ * `secretsManagerConfig` / `ssmConfig` options below are ignored.
15
+ */
16
+ aws?: AwsOptions;
17
+ /** AWS Secrets Manager configuration (advanced). Omit or set `enabled: false` to skip. */
18
+ secretsManagerConfig?: SecretsManagerConfig;
19
+ /** AWS SSM Parameter Store configuration (advanced). Omit or set `enabled: false` to skip. */
20
+ ssmConfig?: SSMConfig;
21
+ }
22
+ /**
23
+ * Build the configuration loader chain from AWS source options.
24
+ *
25
+ * Order (lowest precedence first): environment variables, then Secrets Manager,
26
+ * then SSM Parameter Store. The AWS loaders skip themselves automatically when
27
+ * unavailable (e.g. in a local environment or without credentials).
28
+ */
29
+ export declare function buildAwsLoaders(options: AwsLoaderSources): ConfigLoader[];
30
+ //# sourceMappingURL=build-loaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-loaders.d.ts","sourceRoot":"","sources":["../../src/build-loaders.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAEpG;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,0FAA0F;IAC1F,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAqBD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAsCzE"}
@@ -1,6 +1,5 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
2
  import { NestConfigAwsModuleOptions, NestConfigAwsModuleAsyncOptions } from './interfaces/module-options.interface';
3
- import { DefaultConfigSchema } from './interfaces/default-schema.interface';
4
3
  /**
5
4
  * Token for injecting module options
6
5
  */
@@ -17,7 +16,7 @@ export declare class ConfigModule {
17
16
  * @param options - Configuration options for the module
18
17
  * @returns Dynamic module configuration
19
18
  */
20
- static forRoot<T = DefaultConfigSchema>(options?: NestConfigAwsModuleOptions<T>): DynamicModule;
19
+ static forRoot<T = Record<string, unknown>>(options?: NestConfigAwsModuleOptions<T>): DynamicModule;
21
20
  /**
22
21
  * Create an asynchronous configuration module with factory-based options.
23
22
  * Useful when configuration options depend on other services or async operations.
@@ -25,7 +24,7 @@ export declare class ConfigModule {
25
24
  * @param options - Async configuration options with factory function
26
25
  * @returns Dynamic module configuration
27
26
  */
28
- static forRootAsync<T = DefaultConfigSchema>(options: NestConfigAwsModuleAsyncOptions<T>): DynamicModule;
27
+ static forRootAsync<T = Record<string, unknown>>(options: NestConfigAwsModuleAsyncOptions<T>): DynamicModule;
29
28
  /**
30
29
  * Create the ConfigService provider for synchronous module registration.
31
30
  */
@@ -38,10 +37,5 @@ export declare class ConfigModule {
38
37
  * Create the ConfigService provider for asynchronous module registration.
39
38
  */
40
39
  private static createAsyncConfigServiceProvider;
41
- /**
42
- * Create configuration loaders based on module options.
43
- * Uses loaders from @dyanet/config-aws core package.
44
- */
45
- private static createLoaders;
46
40
  }
47
41
  //# sourceMappingURL=config.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.module.d.ts","sourceRoot":"","sources":["../../src/config.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA4B,MAAM,gBAAgB,CAAC;AAGzE,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AAIpH;;GAEG;AACH,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE;;;;GAIG;AACH,qBAEa,YAAY;IACvB;;;;;OAKG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,OAAO,GAAE,0BAA0B,CAAC,CAAC,CAAM,GAC1C,aAAa;IAiBhB;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,OAAO,EAAE,+BAA+B,CAAC,CAAC,CAAC,GAC1C,aAAa;IAehB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2BAA2B;IA+B1C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAYnC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gCAAgC;CA4BhD"}
@@ -0,0 +1,10 @@
1
+ export { EnvironmentLoader, EnvFileLoader, S3Loader, SecretsManagerLoader, SSMParameterStoreLoader, ConfigManager, ConfigurationError, ValidationError, AWSServiceError, ConfigurationLoadError, MissingConfigurationError, ConfigValidationUtil, EnvFileParser, } from '@dyanet/config-aws';
2
+ export type { ConfigLoader, ConfigManagerOptions, LoaderPrecedence, VerboseOptions, PrecedenceStrategy, ConfigLoadResult, ConfigSourceInfo, Logger, EnvironmentLoaderConfig, EnvFileLoaderConfig, S3LoaderConfig, SecretsManagerLoaderConfig, SSMParameterStoreLoaderConfig, } from '@dyanet/config-aws';
3
+ export * from './config.module';
4
+ export * from './interfaces';
5
+ export * from './services/config.service';
6
+ export { awsConfigLoader } from './aws-config-loader';
7
+ export type { AwsConfigLoaderOptions } from './aws-config-loader';
8
+ export { buildAwsLoaders } from './build-loaders';
9
+ export type { AwsLoaderSources } from './build-loaders';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EAGvB,aAAa,EAGb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,yBAAyB,EAGzB,oBAAoB,EACpB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EAEV,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,EAGN,uBAAuB,EACvB,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,6BAA6B,GAC9B,MAAM,oBAAoB,CAAC;AAG5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-service.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/config-service.interface.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,8BAAsB,aAAa,CAAC,CAAC,GAAG,GAAG;IACzC;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE7C;;;OAGG;IACH,QAAQ,CAAC,aAAa,IAAI,OAAO;IAEjC;;;OAGG;IACH,QAAQ,CAAC,MAAM,IAAI,CAAC;CACrB"}
@@ -23,9 +23,9 @@ export declare const defaultConfigSchema: z.ZodObject<{
23
23
  /** Redis URL */
24
24
  REDIS_URL: z.ZodOptional<z.ZodString>;
25
25
  }, "strip", z.ZodTypeAny, {
26
- APP_ENV: "local" | "development" | "test" | "production";
27
- AWS_REGION?: string | undefined;
26
+ APP_ENV: "development" | "test" | "production" | "local";
28
27
  NODE_ENV?: "development" | "test" | "production" | undefined;
28
+ AWS_REGION?: string | undefined;
29
29
  AWS_PROFILE?: string | undefined;
30
30
  PORT?: number | undefined;
31
31
  HOST?: string | undefined;
@@ -33,9 +33,9 @@ export declare const defaultConfigSchema: z.ZodObject<{
33
33
  DATABASE_URL?: string | undefined;
34
34
  REDIS_URL?: string | undefined;
35
35
  }, {
36
- AWS_REGION?: string | undefined;
37
- APP_ENV?: "local" | "development" | "test" | "production" | undefined;
38
36
  NODE_ENV?: "development" | "test" | "production" | undefined;
37
+ APP_ENV?: "development" | "test" | "production" | "local" | undefined;
38
+ AWS_REGION?: string | undefined;
39
39
  AWS_PROFILE?: string | undefined;
40
40
  PORT?: number | undefined;
41
41
  HOST?: string | undefined;
@@ -63,9 +63,9 @@ export declare const environmentSchemas: {
63
63
  } & {
64
64
  AWS_REGION: z.ZodOptional<z.ZodString>;
65
65
  }, "strip", z.ZodTypeAny, {
66
- APP_ENV: "local" | "development" | "test" | "production";
67
- AWS_REGION?: string | undefined;
66
+ APP_ENV: "development" | "test" | "production" | "local";
68
67
  NODE_ENV?: "development" | "test" | "production" | undefined;
68
+ AWS_REGION?: string | undefined;
69
69
  AWS_PROFILE?: string | undefined;
70
70
  PORT?: number | undefined;
71
71
  HOST?: string | undefined;
@@ -73,9 +73,9 @@ export declare const environmentSchemas: {
73
73
  DATABASE_URL?: string | undefined;
74
74
  REDIS_URL?: string | undefined;
75
75
  }, {
76
- AWS_REGION?: string | undefined;
77
- APP_ENV?: "local" | "development" | "test" | "production" | undefined;
78
76
  NODE_ENV?: "development" | "test" | "production" | undefined;
77
+ APP_ENV?: "development" | "test" | "production" | "local" | undefined;
78
+ AWS_REGION?: string | undefined;
79
79
  AWS_PROFILE?: string | undefined;
80
80
  PORT?: number | undefined;
81
81
  HOST?: string | undefined;
@@ -95,8 +95,8 @@ export declare const environmentSchemas: {
95
95
  } & {
96
96
  AWS_REGION: z.ZodString;
97
97
  }, "strip", z.ZodTypeAny, {
98
+ APP_ENV: "development" | "test" | "production" | "local";
98
99
  AWS_REGION: string;
99
- APP_ENV: "local" | "development" | "test" | "production";
100
100
  NODE_ENV?: "development" | "test" | "production" | undefined;
101
101
  AWS_PROFILE?: string | undefined;
102
102
  PORT?: number | undefined;
@@ -106,8 +106,8 @@ export declare const environmentSchemas: {
106
106
  REDIS_URL?: string | undefined;
107
107
  }, {
108
108
  AWS_REGION: string;
109
- APP_ENV?: "local" | "development" | "test" | "production" | undefined;
110
109
  NODE_ENV?: "development" | "test" | "production" | undefined;
110
+ APP_ENV?: "development" | "test" | "production" | "local" | undefined;
111
111
  AWS_PROFILE?: string | undefined;
112
112
  PORT?: number | undefined;
113
113
  HOST?: string | undefined;
@@ -127,8 +127,8 @@ export declare const environmentSchemas: {
127
127
  } & {
128
128
  AWS_REGION: z.ZodString;
129
129
  }, "strip", z.ZodTypeAny, {
130
+ APP_ENV: "development" | "test" | "production" | "local";
130
131
  AWS_REGION: string;
131
- APP_ENV: "local" | "development" | "test" | "production";
132
132
  NODE_ENV?: "development" | "test" | "production" | undefined;
133
133
  AWS_PROFILE?: string | undefined;
134
134
  PORT?: number | undefined;
@@ -138,8 +138,8 @@ export declare const environmentSchemas: {
138
138
  REDIS_URL?: string | undefined;
139
139
  }, {
140
140
  AWS_REGION: string;
141
- APP_ENV?: "local" | "development" | "test" | "production" | undefined;
142
141
  NODE_ENV?: "development" | "test" | "production" | undefined;
142
+ APP_ENV?: "development" | "test" | "production" | "local" | undefined;
143
143
  AWS_PROFILE?: string | undefined;
144
144
  PORT?: number | undefined;
145
145
  HOST?: string | undefined;
@@ -159,8 +159,8 @@ export declare const environmentSchemas: {
159
159
  AWS_REGION: z.ZodString;
160
160
  LOG_LEVEL: z.ZodDefault<z.ZodEnum<["error", "warn", "info"]>>;
161
161
  }, "strip", z.ZodTypeAny, {
162
+ APP_ENV: "development" | "test" | "production" | "local";
162
163
  AWS_REGION: string;
163
- APP_ENV: "local" | "development" | "test" | "production";
164
164
  LOG_LEVEL: "error" | "warn" | "info";
165
165
  NODE_ENV?: "development" | "test" | "production" | undefined;
166
166
  AWS_PROFILE?: string | undefined;
@@ -170,8 +170,8 @@ export declare const environmentSchemas: {
170
170
  REDIS_URL?: string | undefined;
171
171
  }, {
172
172
  AWS_REGION: string;
173
- APP_ENV?: "local" | "development" | "test" | "production" | undefined;
174
173
  NODE_ENV?: "development" | "test" | "production" | undefined;
174
+ APP_ENV?: "development" | "test" | "production" | "local" | undefined;
175
175
  AWS_PROFILE?: string | undefined;
176
176
  PORT?: number | undefined;
177
177
  HOST?: string | undefined;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-schema.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/default-schema.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,0BAA0B;;IAG1B,sEAAsE;;IAGtE,8BAA8B;;IAG9B,wCAAwC;;IAGxC,uBAAuB;;IAGvB,uBAAuB;;IAGvB,gBAAgB;;IAGhB,mBAAmB;;IAGnB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;EAEhB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,SAAS,CAGnE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,2DAAyD,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,cAAc,4BAA4B,CAAC"}
@@ -31,15 +31,34 @@ export interface SSMConfig {
31
31
  /** Whether to decrypt SecureString parameters */
32
32
  decrypt?: boolean;
33
33
  }
34
+ /**
35
+ * Simple, flat AWS options — the same ergonomic shape used by the Next.js adapter's
36
+ * `getConfig`. When provided, exactly the named sources are loaded (a `secretName`
37
+ * adds a Secrets Manager loader, an `ssmPrefix` adds an SSM loader); the granular
38
+ * `secretsManagerConfig` / `ssmConfig` options are not applied.
39
+ */
40
+ export interface AwsOptions {
41
+ /** Secret name/path for AWS Secrets Manager. */
42
+ secretName?: string;
43
+ /** Parameter path prefix for AWS SSM Parameter Store. */
44
+ ssmPrefix?: string;
45
+ /** AWS region (defaults to the `AWS_REGION` env var, then `us-east-1`). */
46
+ region?: string;
47
+ }
34
48
  /**
35
49
  * Options for configuring the NestJS AWS Configuration module.
36
50
  */
37
51
  export interface NestConfigAwsModuleOptions<T = any> {
38
- /** Zod schema for configuration validation */
52
+ /** Zod schema for configuration validation. When omitted, values are returned as-is (no validation). */
39
53
  schema?: ZodType<T>;
40
- /** Configuration for AWS Secrets Manager integration */
54
+ /**
55
+ * Simple AWS options (`{ secretName, ssmPrefix, region }`) — mirrors the Next.js
56
+ * adapter. When set, takes precedence over `secretsManagerConfig` / `ssmConfig`.
57
+ */
58
+ aws?: AwsOptions;
59
+ /** Configuration for AWS Secrets Manager integration (advanced). */
41
60
  secretsManagerConfig?: SecretsManagerConfig;
42
- /** Configuration for AWS Systems Manager Parameter Store integration */
61
+ /** Configuration for AWS Systems Manager Parameter Store integration (advanced). */
43
62
  ssmConfig?: SSMConfig;
44
63
  /** Prefix for environment variables (e.g., 'APP_') */
45
64
  envPrefix?: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-options.interface.d.ts","sourceRoot":"","sources":["../../../src/interfaces/module-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B,CAAC,CAAC,GAAG,GAAG;IACjD,wGAAwG;IACxG,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpB;;;OAGG;IACH,GAAG,CAAC,EAAE,UAAU,CAAC;IAEjB,oEAAoE;IACpE,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C,oFAAoF;IACpF,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2EAA2E;IAC3E,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,2EAA2E;IAC3E,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B,CAAC,CAAC,GAAG,GAAG;IACtD,gDAAgD;IAChD,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAEvG,uDAAuD;IACvD,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IAEf,gDAAgD;IAChD,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/services/config.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;IAChG;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;gBAEhC,OAAO,GAAE,oBAAoB,CAAC,CAAC,CAAM;IAiBjD;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBjC;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IASpC;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;OAKG;IACH,MAAM,IAAI,CAAC;IASX;;;;OAIG;IACH,SAAS,IAAI,MAAM;IAInB;;;;;OAKG;IACH,gBAAgB,IAAI,aAAa,CAAC,CAAC,CAAC;CAGrC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dyanet/nestjs-config-aws",
3
- "version": "1.2.1",
4
- "description": "AWS-integrated configuration management for NestJS applications with support for environment variables, AWS Secrets Manager, and AWS Systems Manager Parameter Store. Includes @nestjs/config integration for seamless compatibility.",
3
+ "version": "2.0.0",
4
+ "description": "AWS-integrated configuration management for NestJS applications with support for environment variables, AWS Secrets Manager, and AWS Systems Manager Parameter Store. Provides an injectable ConfigService and an awsConfigLoader factory for @nestjs/config.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types/index.d.ts",
@@ -18,10 +18,11 @@
18
18
  "LICENSE"
19
19
  ],
20
20
  "scripts": {
21
- "build": "npm run clean && npm run build:types && npm run build:esm && npm run build:cjs",
21
+ "build": "npm run clean && npm run build:types && npm run build:esm && npm run build:cjs && npm run build:postbuild",
22
22
  "build:types": "tsc --project tsconfig.types.json",
23
- "build:esm": "tsc --project tsconfig.esm.json && echo {\"type\":\"module\"} > dist/esm/package.json",
23
+ "build:esm": "tsc --project tsconfig.esm.json",
24
24
  "build:cjs": "tsc --project tsconfig.cjs.json",
25
+ "build:postbuild": "node ../../scripts/postbuild.mjs ./dist",
25
26
  "clean": "rimraf dist",
26
27
  "test": "jest",
27
28
  "test:watch": "jest --watch",
@@ -61,11 +62,16 @@
61
62
  "@dyanet/config-aws": "^1.0.0"
62
63
  },
63
64
  "peerDependencies": {
64
- "@nestjs/common": "^11.0.0",
65
- "@nestjs/config": "^4.0.0",
66
- "@nestjs/core": "^11.0.0",
65
+ "@nestjs/common": "^10.0.0 || ^11.0.0",
66
+ "@nestjs/config": "^3.0.0 || ^4.0.0",
67
+ "@nestjs/core": "^10.0.0 || ^11.0.0",
67
68
  "zod": "^3.22.0"
68
69
  },
70
+ "peerDependenciesMeta": {
71
+ "@nestjs/config": {
72
+ "optional": true
73
+ }
74
+ },
69
75
  "repository": {
70
76
  "type": "git",
71
77
  "url": "https://github.com/dyanet/config-aws.git"