@dyanet/nestjs-config-aws 1.2.0 → 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 -0
  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 +12 -6
  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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Dyanet
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -10,7 +10,7 @@ NestJS adapter for AWS configuration management. A thin wrapper around [@dyanet/
10
10
  ## Features
11
11
 
12
12
  - **NestJS Integration** - Full dependency injection support with `ConfigModule` and `ConfigService`
13
- - **@nestjs/config Compatibility** - Seamless integration with the standard NestJS config module
13
+ - **@nestjs/config Compatibility** - Drop the `awsConfigLoader` factory into `@nestjs/config`'s `load` array
14
14
  - **Type Safety** - Full TypeScript support with Zod schema validation
15
15
  - **AWS Services** - Load configuration from Secrets Manager, SSM Parameter Store, S3
16
16
  - **Thin Adapter** - Minimal overhead, delegates to `@dyanet/config-aws` for all heavy lifting
@@ -24,7 +24,14 @@ npm install @dyanet/nestjs-config-aws
24
24
  ### Peer Dependencies
25
25
 
26
26
  ```bash
27
- npm install @nestjs/common @nestjs/core @nestjs/config zod
27
+ npm install @nestjs/common @nestjs/core zod
28
+ ```
29
+
30
+ `@nestjs/config` is an **optional** peer dependency — install it only if you use the
31
+ `awsConfigLoader` factory with `@nestjs/config`'s `ConfigModule`:
32
+
33
+ ```bash
34
+ npm install @nestjs/config
28
35
  ```
29
36
 
30
37
  For AWS services, install the SDK clients you need:
@@ -60,17 +67,18 @@ const configSchema = z.object({
60
67
  imports: [
61
68
  ConfigModule.forRoot({
62
69
  schema: configSchema,
63
- envPrefix: 'APP_',
64
- secretsManagerConfig: {
65
- enabled: true,
66
- region: 'us-east-1',
67
- },
70
+ // Simple flat AWS option — the same shape as the Next.js adapter's getConfig:
71
+ aws: { secretName: '/my-app/config', region: 'us-east-1' },
68
72
  }),
69
73
  ],
70
74
  })
71
75
  export class AppModule {}
72
76
  ```
73
77
 
78
+ > `aws` is the recommended ergonomic shape. The verbose `secretsManagerConfig` /
79
+ > `ssmConfig` options (with per-environment `paths`) remain available for advanced
80
+ > control. When `schema` is omitted, values pass through unvalidated.
81
+
74
82
  ### Using ConfigService
75
83
 
76
84
  ```typescript
@@ -226,66 +234,75 @@ export class MyService {
226
234
 
227
235
  ## @nestjs/config Integration
228
236
 
229
- Use `NestConfigAwsIntegrationModule` for seamless integration with `@nestjs/config`:
237
+ To feed AWS-sourced values into the standard `@nestjs/config` `ConfigModule`, use the
238
+ `awsConfigLoader` factory. It builds the loader chain, loads from environment variables,
239
+ Secrets Manager and SSM, and returns a plain config object — exactly the `ConfigFactory`
240
+ shape `@nestjs/config` expects in its `load` array. There is no extra module to import,
241
+ and `@nestjs/config` stays an **optional** peer dependency.
230
242
 
231
243
  ```typescript
232
244
  import { Module } from '@nestjs/common';
233
- import { ConfigModule as NestConfigModule } from '@nestjs/config';
234
- import { NestConfigAwsIntegrationModule } from '@dyanet/nestjs-config-aws';
245
+ import { ConfigModule } from '@nestjs/config';
246
+ import { awsConfigLoader } from '@dyanet/nestjs-config-aws';
235
247
 
236
248
  @Module({
237
249
  imports: [
238
- NestConfigModule.forRoot(),
239
- NestConfigAwsIntegrationModule.forRoot({
240
- registerGlobally: true,
250
+ ConfigModule.forRoot({
251
+ isGlobal: true,
252
+ load: [
253
+ awsConfigLoader({
254
+ schema: myConfigSchema, // optional Zod schema
255
+ aws: { secretName: '/my-app/config', region: 'us-east-1' },
256
+ }),
257
+ ],
241
258
  }),
242
259
  ],
243
260
  })
244
261
  export class AppModule {}
245
262
  ```
246
263
 
247
- ### Async Integration
264
+ Then read values through the standard `@nestjs/config` `ConfigService` as usual.
265
+
266
+ ### Namespaced configuration
267
+
268
+ Compose `awsConfigLoader` with `@nestjs/config`'s own `registerAs`:
248
269
 
249
270
  ```typescript
250
- import { NestConfigAwsIntegrationModule } from '@dyanet/nestjs-config-aws';
271
+ import { ConfigModule, registerAs } from '@nestjs/config';
272
+ import { awsConfigLoader } from '@dyanet/nestjs-config-aws';
251
273
 
252
- @Module({
253
- imports: [
254
- NestConfigAwsIntegrationModule.forRootAsync({
255
- imports: [SomeModule],
256
- inject: [SomeService],
257
- useFactory: async (someService: SomeService) => ({
258
- registerGlobally: true,
259
- // Additional options from someService
260
- }),
261
- }),
274
+ ConfigModule.forRoot({
275
+ load: [
276
+ registerAs('database', awsConfigLoader({ ssmConfig: { paths: { production: '/db' } } })),
262
277
  ],
263
- })
264
- export class AppModule {}
278
+ });
265
279
  ```
266
280
 
267
- ## Migration from Monolithic Package
281
+ ### Async / dependency-injected options
268
282
 
269
- If you're upgrading from an older version of `@dyanet/nestjs-config-aws` that included all functionality in one package:
283
+ `awsConfigLoader` is a plain function, so build its options however you like including
284
+ inside `ConfigModule.forRootAsync`'s `useFactory` — and pass the resulting factory to `load`.
270
285
 
271
- ### What Changed
286
+ `awsConfigLoader` accepts: `schema`, `secretsManagerConfig`, `ssmConfig`, `envPrefix`,
287
+ `precedence` (`'aws-first'` | `'local-first'` | custom; default `'aws-first'`), `validate`
288
+ (default: on when a `schema` is given), and `enableLogging`.
272
289
 
273
- 1. **Core functionality moved to `@dyanet/config-aws`** - All loaders, ConfigManager, and utilities are now in the core package
274
- 2. **This package is now a thin adapter** - It re-exports everything from `@dyanet/config-aws` and adds NestJS-specific integration
275
- 3. **Same API surface** - The public API remains the same for backward compatibility
290
+ ## Migrating from v1.x
276
291
 
277
- ### Migration Steps
292
+ v2.0.0 streamlines the `@nestjs/config` integration to the single `awsConfigLoader`
293
+ factory shown above. Use the table below to map v1.x usage to v2.x.
278
294
 
279
- 1. **No code changes required** - The package re-exports all types and classes from `@dyanet/config-aws`
280
- 2. **Optional: Use core package directly** - For non-NestJS code, you can import from `@dyanet/config-aws` directly
295
+ | v1.x | v2.x |
296
+ | --- | --- |
297
+ | `NestConfigAwsIntegrationModule.forRoot(opts)` alongside `ConfigModule` | `ConfigModule.forRoot({ load: [awsConfigLoader(opts)] })` |
298
+ | `NestConfigAwsIntegrationModule.forRootAsync({ useFactory })` | build options in your own `useFactory` and pass `awsConfigLoader(opts)` to `load` |
299
+ | `namespaces: ['db']` option | `registerAs('db', awsConfigLoader(opts))` |
300
+ | `createAwsConfigFactory` / `createConfigModuleFactory` / `createEnhancedConfigOptions` | `awsConfigLoader(opts)` |
301
+ | Configuration decorators / typed-config registries | `@nestjs/config`'s `ConfigService` / `ConfigType` |
281
302
 
282
- ```typescript
283
- // Before (still works)
284
- import { EnvironmentLoader, ConfigManager } from '@dyanet/nestjs-config-aws';
285
-
286
- // After (optional, for non-NestJS code)
287
- import { EnvironmentLoader, ConfigManager } from '@dyanet/config-aws';
288
- ```
303
+ The standalone `ConfigModule.forRoot()` / `forRootAsync()` and the injectable
304
+ `ConfigService` from this package are unchanged. All core re-exports (loaders,
305
+ `ConfigManager`, errors, utilities) are unchanged.
289
306
 
290
307
  ## Advanced Usage
291
308
 
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.awsConfigLoader = awsConfigLoader;
4
+ const config_aws_1 = require("@dyanet/config-aws");
5
+ const build_loaders_1 = require("./build-loaders");
6
+ /**
7
+ * Create a configuration factory that loads from AWS sources (Secrets Manager,
8
+ * SSM Parameter Store) and environment variables, for use with the standard
9
+ * `@nestjs/config` `ConfigModule`.
10
+ *
11
+ * The returned function matches `@nestjs/config`'s `ConfigFactory` shape, so drop
12
+ * it straight into the `load` array — no extra module to import, and
13
+ * `@nestjs/config` stays an optional peer dependency of this package.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { ConfigModule } from '@nestjs/config';
18
+ * import { awsConfigLoader } from '@dyanet/nestjs-config-aws';
19
+ *
20
+ * @Module({
21
+ * imports: [
22
+ * ConfigModule.forRoot({
23
+ * isGlobal: true,
24
+ * // Simple `aws` shape — same as the Next.js adapter's getConfig:
25
+ * load: [awsConfigLoader({ aws: { secretName: '/my-app/config' } })],
26
+ * }),
27
+ * ],
28
+ * })
29
+ * export class AppModule {}
30
+ * ```
31
+ *
32
+ * @example Namespaced (compose with `@nestjs/config`'s `registerAs`):
33
+ * ```typescript
34
+ * import { ConfigModule, registerAs } from '@nestjs/config';
35
+ *
36
+ * ConfigModule.forRoot({
37
+ * load: [registerAs('database', awsConfigLoader({ ssmConfig: { paths: { production: '/db' } } }))],
38
+ * });
39
+ * ```
40
+ *
41
+ * @param options Loader options.
42
+ * @returns A factory `() => Promise<T>` suitable for `ConfigModule`'s `load` array.
43
+ */
44
+ function awsConfigLoader(options = {}) {
45
+ return async () => {
46
+ const manager = new config_aws_1.ConfigManager({
47
+ loaders: (0, build_loaders_1.buildAwsLoaders)(options),
48
+ schema: options.schema,
49
+ precedence: options.precedence ?? 'aws-first',
50
+ validateOnLoad: options.validate ?? Boolean(options.schema),
51
+ enableLogging: options.enableLogging ?? false,
52
+ });
53
+ await manager.load();
54
+ return manager.getAll();
55
+ };
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvbmZpZy1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzLWNvbmZpZy1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE2RUEsMENBZUM7QUE1RkQsbURBQW1EO0FBS25ELG1EQUFrRDtBQWtDbEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFDSCxTQUFnQixlQUFlLENBQzdCLFVBQXFDLEVBQUU7SUFFdkMsT0FBTyxLQUFLLElBQWdCLEVBQUU7UUFDNUIsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBYSxDQUFJO1lBQ25DLE9BQU8sRUFBRSxJQUFBLCtCQUFlLEVBQUMsT0FBTyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxXQUFXO1lBQzdDLGNBQWMsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzNELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUs7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ01hbmFnZXIgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xuaW1wb3J0IHR5cGUgeyBQcmVjZWRlbmNlU3RyYXRlZ3kgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xuaW1wb3J0IHR5cGUgeyBab2RUeXBlIH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgQXdzT3B0aW9ucywgU2VjcmV0c01hbmFnZXJDb25maWcsIFNTTUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYnVpbGRBd3NMb2FkZXJzIH0gZnJvbSAnLi9idWlsZC1sb2FkZXJzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgYXdzQ29uZmlnTG9hZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDb25maWdMb2FkZXJPcHRpb25zPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIC8qKiBab2Qgc2NoZW1hIGZvciB2YWxpZGF0aW9uLiBXaGVuIHByb3ZpZGVkLCB0aGUgbWVyZ2VkIGNvbmZpZyBpcyB2YWxpZGF0ZWQuICovXG4gIHNjaGVtYT86IFpvZFR5cGU8VD47XG4gIC8qKlxuICAgKiBTaW1wbGUgQVdTIG9wdGlvbnMgKGB7IHNlY3JldE5hbWUsIHNzbVByZWZpeCwgcmVnaW9uIH1gKSDigJQgdGhlIHNhbWUgc2hhcGUgYXMgdGhlXG4gICAqIE5leHQuanMgYWRhcHRlcidzIGBnZXRDb25maWdgLiBXaGVuIHNldCwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBncmFudWxhclxuICAgKiBgc2VjcmV0c01hbmFnZXJDb25maWdgIC8gYHNzbUNvbmZpZ2Agb3B0aW9ucy5cbiAgICovXG4gIGF3cz86IEF3c09wdGlvbnM7XG4gIC8qKiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGNvbmZpZ3VyYXRpb24gKGFkdmFuY2VkKS4gT21pdCBvciBzZXQgYGVuYWJsZWQ6IGZhbHNlYCB0byBza2lwLiAqL1xuICBzZWNyZXRzTWFuYWdlckNvbmZpZz86IFNlY3JldHNNYW5hZ2VyQ29uZmlnO1xuICAvKiogQVdTIFNTTSBQYXJhbWV0ZXIgU3RvcmUgY29uZmlndXJhdGlvbiAoYWR2YW5jZWQpLiBPbWl0IG9yIHNldCBgZW5hYmxlZDogZmFsc2VgIHRvIHNraXAuICovXG4gIHNzbUNvbmZpZz86IFNTTUNvbmZpZztcbiAgLyoqIFByZWZpeCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuIGBBUFBfYCkuICovXG4gIGVudlByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIFByZWNlZGVuY2Ugc3RyYXRlZ3kgZm9yIG1lcmdpbmcgc291cmNlcy5cbiAgICogQGRlZmF1bHQgJ2F3cy1maXJzdCdcbiAgICovXG4gIHByZWNlZGVuY2U/OiBQcmVjZWRlbmNlU3RyYXRlZ3k7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZhbGlkYXRlIHRoZSBtZXJnZWQgY29uZmlnIGFnYWluc3QgYHNjaGVtYWAuXG4gICAqIEBkZWZhdWx0IHRydWUgd2hlbiBhIHNjaGVtYSBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGZhbHNlXG4gICAqL1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG4gIC8qKiBFbmFibGUgdmVyYm9zZSBsb2FkZXIgbG9nZ2luZy4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZW5hYmxlTG9nZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgY29uZmlndXJhdGlvbiBmYWN0b3J5IHRoYXQgbG9hZHMgZnJvbSBBV1Mgc291cmNlcyAoU2VjcmV0cyBNYW5hZ2VyLFxuICogU1NNIFBhcmFtZXRlciBTdG9yZSkgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcywgZm9yIHVzZSB3aXRoIHRoZSBzdGFuZGFyZFxuICogYEBuZXN0anMvY29uZmlnYCBgQ29uZmlnTW9kdWxlYC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgZnVuY3Rpb24gbWF0Y2hlcyBgQG5lc3Rqcy9jb25maWdgJ3MgYENvbmZpZ0ZhY3RvcnlgIHNoYXBlLCBzbyBkcm9wXG4gKiBpdCBzdHJhaWdodCBpbnRvIHRoZSBgbG9hZGAgYXJyYXkg4oCUIG5vIGV4dHJhIG1vZHVsZSB0byBpbXBvcnQsIGFuZFxuICogYEBuZXN0anMvY29uZmlnYCBzdGF5cyBhbiBvcHRpb25hbCBwZWVyIGRlcGVuZGVuY3kgb2YgdGhpcyBwYWNrYWdlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBDb25maWdNb2R1bGUgfSBmcm9tICdAbmVzdGpzL2NvbmZpZyc7XG4gKiBpbXBvcnQgeyBhd3NDb25maWdMb2FkZXIgfSBmcm9tICdAZHlhbmV0L25lc3Rqcy1jb25maWctYXdzJztcbiAqXG4gKiBATW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIENvbmZpZ01vZHVsZS5mb3JSb290KHtcbiAqICAgICAgIGlzR2xvYmFsOiB0cnVlLFxuICogICAgICAgLy8gU2ltcGxlIGBhd3NgIHNoYXBlIOKAlCBzYW1lIGFzIHRoZSBOZXh0LmpzIGFkYXB0ZXIncyBnZXRDb25maWc6XG4gKiAgICAgICBsb2FkOiBbYXdzQ29uZmlnTG9hZGVyKHsgYXdzOiB7IHNlY3JldE5hbWU6ICcvbXktYXBwL2NvbmZpZycgfSB9KV0sXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgTmFtZXNwYWNlZCAoY29tcG9zZSB3aXRoIGBAbmVzdGpzL2NvbmZpZ2AncyBgcmVnaXN0ZXJBc2ApOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQ29uZmlnTW9kdWxlLCByZWdpc3RlckFzIH0gZnJvbSAnQG5lc3Rqcy9jb25maWcnO1xuICpcbiAqIENvbmZpZ01vZHVsZS5mb3JSb290KHtcbiAqICAgbG9hZDogW3JlZ2lzdGVyQXMoJ2RhdGFiYXNlJywgYXdzQ29uZmlnTG9hZGVyKHsgc3NtQ29uZmlnOiB7IHBhdGhzOiB7IHByb2R1Y3Rpb246ICcvZGInIH0gfSB9KSldLFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBMb2FkZXIgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgZmFjdG9yeSBgKCkgPT4gUHJvbWlzZTxUPmAgc3VpdGFibGUgZm9yIGBDb25maWdNb2R1bGVgJ3MgYGxvYWRgIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXdzQ29uZmlnTG9hZGVyPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgb3B0aW9uczogQXdzQ29uZmlnTG9hZGVyT3B0aW9uczxUPiA9IHt9LFxuKTogKCkgPT4gUHJvbWlzZTxUPiB7XG4gIHJldHVybiBhc3luYyAoKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgY29uc3QgbWFuYWdlciA9IG5ldyBDb25maWdNYW5hZ2VyPFQ+KHtcbiAgICAgIGxvYWRlcnM6IGJ1aWxkQXdzTG9hZGVycyhvcHRpb25zKSxcbiAgICAgIHNjaGVtYTogb3B0aW9ucy5zY2hlbWEsXG4gICAgICBwcmVjZWRlbmNlOiBvcHRpb25zLnByZWNlZGVuY2UgPz8gJ2F3cy1maXJzdCcsXG4gICAgICB2YWxpZGF0ZU9uTG9hZDogb3B0aW9ucy52YWxpZGF0ZSA/PyBCb29sZWFuKG9wdGlvbnMuc2NoZW1hKSxcbiAgICAgIGVuYWJsZUxvZ2dpbmc6IG9wdGlvbnMuZW5hYmxlTG9nZ2luZyA/PyBmYWxzZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IG1hbmFnZXIubG9hZCgpO1xuICAgIHJldHVybiBtYW5hZ2VyLmdldEFsbCgpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildAwsLoaders = buildAwsLoaders;
4
+ const config_aws_1 = require("@dyanet/config-aws");
5
+ /**
6
+ * Map an optional `{ development, test, production }` path config to the
7
+ * environment mapping expected by the AWS loaders, falling back to sensible
8
+ * defaults. Returns `undefined` when no paths are supplied so the loader uses
9
+ * its own defaults.
10
+ */
11
+ function toEnvironmentMapping(paths) {
12
+ if (!paths) {
13
+ return undefined;
14
+ }
15
+ return {
16
+ development: paths.development || 'dev',
17
+ test: paths.test || 'test',
18
+ production: paths.production || 'production',
19
+ };
20
+ }
21
+ /**
22
+ * Build the configuration loader chain from AWS source options.
23
+ *
24
+ * Order (lowest precedence first): environment variables, then Secrets Manager,
25
+ * then SSM Parameter Store. The AWS loaders skip themselves automatically when
26
+ * unavailable (e.g. in a local environment or without credentials).
27
+ */
28
+ function buildAwsLoaders(options) {
29
+ const loaders = [];
30
+ // Always add environment loader first (lowest precedence)
31
+ loaders.push(new config_aws_1.EnvironmentLoader({ prefix: options.envPrefix }));
32
+ // Simple, Next.js-style `aws` option: add exactly the named sources.
33
+ if (options.aws) {
34
+ const { secretName, ssmPrefix, region } = options.aws;
35
+ if (secretName) {
36
+ loaders.push(new config_aws_1.SecretsManagerLoader({ secretName, region }));
37
+ }
38
+ if (ssmPrefix) {
39
+ loaders.push(new config_aws_1.SSMParameterStoreLoader({ parameterPath: ssmPrefix, region }));
40
+ }
41
+ return loaders;
42
+ }
43
+ if (options.secretsManagerConfig?.enabled !== false) {
44
+ loaders.push(new config_aws_1.SecretsManagerLoader({
45
+ region: options.secretsManagerConfig?.region,
46
+ environmentMapping: toEnvironmentMapping(options.secretsManagerConfig?.paths),
47
+ }));
48
+ }
49
+ if (options.ssmConfig?.enabled !== false) {
50
+ loaders.push(new config_aws_1.SSMParameterStoreLoader({
51
+ region: options.ssmConfig?.region,
52
+ withDecryption: options.ssmConfig?.decrypt,
53
+ environmentMapping: toEnvironmentMapping(options.ssmConfig?.paths),
54
+ }));
55
+ }
56
+ return loaders;
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtbG9hZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1sb2FkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBdURBLDBDQXNDQztBQTdGRCxtREFLNEI7QUF3QjVCOzs7OztHQUtHO0FBQ0gsU0FBUyxvQkFBb0IsQ0FDM0IsS0FBb0U7SUFFcEUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUNELE9BQU87UUFDTCxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLO1FBQ3ZDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLE1BQU07UUFDMUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksWUFBWTtLQUM3QyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxPQUF5QjtJQUN2RCxNQUFNLE9BQU8sR0FBbUIsRUFBRSxDQUFDO0lBRW5DLDBEQUEwRDtJQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksOEJBQWlCLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVuRSxxRUFBcUU7SUFDckUsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDaEIsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN0RCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFvQixDQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxvQ0FBdUIsQ0FBQyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSxpQ0FBb0IsQ0FBQztZQUN2QixNQUFNLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixFQUFFLE1BQU07WUFDNUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQztTQUM5RSxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQ1YsSUFBSSxvQ0FBdUIsQ0FBQztZQUMxQixNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNO1lBQ2pDLGNBQWMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU87WUFDMUMsa0JBQWtCLEVBQUUsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7U0FDbkUsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbmZpZ0xvYWRlcixcbiAgRW52aXJvbm1lbnRMb2FkZXIsXG4gIFNlY3JldHNNYW5hZ2VyTG9hZGVyLFxuICBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlcixcbn0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcblxuaW1wb3J0IHsgQXdzT3B0aW9ucywgU2VjcmV0c01hbmFnZXJDb25maWcsIFNTTUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFRoZSBBV1MgY29uZmlndXJhdGlvbiBzb3VyY2VzIHVzZWQgdG8gYnVpbGQgYSBzZXQgb2YgbG9hZGVycy5cbiAqIFNoYXJlZCBieSB7QGxpbmsgQ29uZmlnTW9kdWxlfSBhbmQge0BsaW5rIGF3c0NvbmZpZ0xvYWRlcn0gc28gYm90aCBwcm9kdWNlIGFuXG4gKiBpZGVudGljYWwgbG9hZGVyIGNoYWluLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0xvYWRlclNvdXJjZXMge1xuICAvKiogUHJlZml4IGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4gYEFQUF9gKS4gKi9cbiAgZW52UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogU2ltcGxlIEFXUyBvcHRpb25zIChgeyBzZWNyZXROYW1lLCBzc21QcmVmaXgsIHJlZ2lvbiB9YCkg4oCUIG1pcnJvcnMgdGhlIE5leHQuanNcbiAgICogYWRhcHRlci4gV2hlbiBzZXQsIGV4YWN0bHkgdGhlIG5hbWVkIHNvdXJjZXMgYXJlIGFkZGVkIGFuZCB0aGUgZ3JhbnVsYXJcbiAgICogYHNlY3JldHNNYW5hZ2VyQ29uZmlnYCAvIGBzc21Db25maWdgIG9wdGlvbnMgYmVsb3cgYXJlIGlnbm9yZWQuXG4gICAqL1xuICBhd3M/OiBBd3NPcHRpb25zO1xuICAvKiogQVdTIFNlY3JldHMgTWFuYWdlciBjb25maWd1cmF0aW9uIChhZHZhbmNlZCkuIE9taXQgb3Igc2V0IGBlbmFibGVkOiBmYWxzZWAgdG8gc2tpcC4gKi9cbiAgc2VjcmV0c01hbmFnZXJDb25maWc/OiBTZWNyZXRzTWFuYWdlckNvbmZpZztcbiAgLyoqIEFXUyBTU00gUGFyYW1ldGVyIFN0b3JlIGNvbmZpZ3VyYXRpb24gKGFkdmFuY2VkKS4gT21pdCBvciBzZXQgYGVuYWJsZWQ6IGZhbHNlYCB0byBza2lwLiAqL1xuICBzc21Db25maWc/OiBTU01Db25maWc7XG59XG5cbi8qKlxuICogTWFwIGFuIG9wdGlvbmFsIGB7IGRldmVsb3BtZW50LCB0ZXN0LCBwcm9kdWN0aW9uIH1gIHBhdGggY29uZmlnIHRvIHRoZVxuICogZW52aXJvbm1lbnQgbWFwcGluZyBleHBlY3RlZCBieSB0aGUgQVdTIGxvYWRlcnMsIGZhbGxpbmcgYmFjayB0byBzZW5zaWJsZVxuICogZGVmYXVsdHMuIFJldHVybnMgYHVuZGVmaW5lZGAgd2hlbiBubyBwYXRocyBhcmUgc3VwcGxpZWQgc28gdGhlIGxvYWRlciB1c2VzXG4gKiBpdHMgb3duIGRlZmF1bHRzLlxuICovXG5mdW5jdGlvbiB0b0Vudmlyb25tZW50TWFwcGluZyhcbiAgcGF0aHM/OiB7IGRldmVsb3BtZW50Pzogc3RyaW5nOyB0ZXN0Pzogc3RyaW5nOyBwcm9kdWN0aW9uPzogc3RyaW5nIH0sXG4pOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKCFwYXRocykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBkZXZlbG9wbWVudDogcGF0aHMuZGV2ZWxvcG1lbnQgfHwgJ2RldicsXG4gICAgdGVzdDogcGF0aHMudGVzdCB8fCAndGVzdCcsXG4gICAgcHJvZHVjdGlvbjogcGF0aHMucHJvZHVjdGlvbiB8fCAncHJvZHVjdGlvbicsXG4gIH07XG59XG5cbi8qKlxuICogQnVpbGQgdGhlIGNvbmZpZ3VyYXRpb24gbG9hZGVyIGNoYWluIGZyb20gQVdTIHNvdXJjZSBvcHRpb25zLlxuICpcbiAqIE9yZGVyIChsb3dlc3QgcHJlY2VkZW5jZSBmaXJzdCk6IGVudmlyb25tZW50IHZhcmlhYmxlcywgdGhlbiBTZWNyZXRzIE1hbmFnZXIsXG4gKiB0aGVuIFNTTSBQYXJhbWV0ZXIgU3RvcmUuIFRoZSBBV1MgbG9hZGVycyBza2lwIHRoZW1zZWx2ZXMgYXV0b21hdGljYWxseSB3aGVuXG4gKiB1bmF2YWlsYWJsZSAoZS5nLiBpbiBhIGxvY2FsIGVudmlyb25tZW50IG9yIHdpdGhvdXQgY3JlZGVudGlhbHMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRBd3NMb2FkZXJzKG9wdGlvbnM6IEF3c0xvYWRlclNvdXJjZXMpOiBDb25maWdMb2FkZXJbXSB7XG4gIGNvbnN0IGxvYWRlcnM6IENvbmZpZ0xvYWRlcltdID0gW107XG5cbiAgLy8gQWx3YXlzIGFkZCBlbnZpcm9ubWVudCBsb2FkZXIgZmlyc3QgKGxvd2VzdCBwcmVjZWRlbmNlKVxuICBsb2FkZXJzLnB1c2gobmV3IEVudmlyb25tZW50TG9hZGVyKHsgcHJlZml4OiBvcHRpb25zLmVudlByZWZpeCB9KSk7XG5cbiAgLy8gU2ltcGxlLCBOZXh0LmpzLXN0eWxlIGBhd3NgIG9wdGlvbjogYWRkIGV4YWN0bHkgdGhlIG5hbWVkIHNvdXJjZXMuXG4gIGlmIChvcHRpb25zLmF3cykge1xuICAgIGNvbnN0IHsgc2VjcmV0TmFtZSwgc3NtUHJlZml4LCByZWdpb24gfSA9IG9wdGlvbnMuYXdzO1xuICAgIGlmIChzZWNyZXROYW1lKSB7XG4gICAgICBsb2FkZXJzLnB1c2gobmV3IFNlY3JldHNNYW5hZ2VyTG9hZGVyKHsgc2VjcmV0TmFtZSwgcmVnaW9uIH0pKTtcbiAgICB9XG4gICAgaWYgKHNzbVByZWZpeCkge1xuICAgICAgbG9hZGVycy5wdXNoKG5ldyBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlcih7IHBhcmFtZXRlclBhdGg6IHNzbVByZWZpeCwgcmVnaW9uIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGxvYWRlcnM7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zZWNyZXRzTWFuYWdlckNvbmZpZz8uZW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICBsb2FkZXJzLnB1c2goXG4gICAgICBuZXcgU2VjcmV0c01hbmFnZXJMb2FkZXIoe1xuICAgICAgICByZWdpb246IG9wdGlvbnMuc2VjcmV0c01hbmFnZXJDb25maWc/LnJlZ2lvbixcbiAgICAgICAgZW52aXJvbm1lbnRNYXBwaW5nOiB0b0Vudmlyb25tZW50TWFwcGluZyhvcHRpb25zLnNlY3JldHNNYW5hZ2VyQ29uZmlnPy5wYXRocyksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc3NtQ29uZmlnPy5lbmFibGVkICE9PSBmYWxzZSkge1xuICAgIGxvYWRlcnMucHVzaChcbiAgICAgIG5ldyBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlcih7XG4gICAgICAgIHJlZ2lvbjogb3B0aW9ucy5zc21Db25maWc/LnJlZ2lvbixcbiAgICAgICAgd2l0aERlY3J5cHRpb246IG9wdGlvbnMuc3NtQ29uZmlnPy5kZWNyeXB0LFxuICAgICAgICBlbnZpcm9ubWVudE1hcHBpbmc6IHRvRW52aXJvbm1lbnRNYXBwaW5nKG9wdGlvbnMuc3NtQ29uZmlnPy5wYXRocyksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGxvYWRlcnM7XG59XG4iXX0=
@@ -0,0 +1,138 @@
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 ConfigModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ConfigModule = exports.NEST_CONFIG_AWS_OPTIONS = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const config_service_interface_1 = require("./interfaces/config-service.interface");
13
+ const config_service_1 = require("./services/config.service");
14
+ const build_loaders_1 = require("./build-loaders");
15
+ /**
16
+ * Token for injecting module options
17
+ */
18
+ exports.NEST_CONFIG_AWS_OPTIONS = 'NEST_CONFIG_AWS_OPTIONS';
19
+ /**
20
+ * NestJS module for AWS-integrated configuration management.
21
+ * Provides global configuration service with support for environment variables,
22
+ * AWS Secrets Manager, and AWS Systems Manager Parameter Store.
23
+ */
24
+ let ConfigModule = ConfigModule_1 = class ConfigModule {
25
+ /**
26
+ * Create a synchronous configuration module with provided options.
27
+ *
28
+ * @param options - Configuration options for the module
29
+ * @returns Dynamic module configuration
30
+ */
31
+ static forRoot(options = {}) {
32
+ const configServiceProvider = this.createConfigServiceProvider(options);
33
+ return {
34
+ module: ConfigModule_1,
35
+ providers: [
36
+ {
37
+ provide: exports.NEST_CONFIG_AWS_OPTIONS,
38
+ useValue: options,
39
+ },
40
+ configServiceProvider,
41
+ ],
42
+ exports: [config_service_interface_1.ConfigService],
43
+ global: true,
44
+ };
45
+ }
46
+ /**
47
+ * Create an asynchronous configuration module with factory-based options.
48
+ * Useful when configuration options depend on other services or async operations.
49
+ *
50
+ * @param options - Async configuration options with factory function
51
+ * @returns Dynamic module configuration
52
+ */
53
+ static forRootAsync(options) {
54
+ const asyncProviders = this.createAsyncProviders(options);
55
+ return {
56
+ module: ConfigModule_1,
57
+ imports: options.imports || [],
58
+ providers: [
59
+ ...asyncProviders,
60
+ this.createAsyncConfigServiceProvider(),
61
+ ],
62
+ exports: [config_service_interface_1.ConfigService],
63
+ global: true,
64
+ };
65
+ }
66
+ /**
67
+ * Create the ConfigService provider for synchronous module registration.
68
+ */
69
+ static createConfigServiceProvider(options) {
70
+ return {
71
+ provide: config_service_interface_1.ConfigService,
72
+ useFactory: async () => {
73
+ // Create loaders based on configuration
74
+ const loaders = (0, build_loaders_1.buildAwsLoaders)(options);
75
+ // Create ConfigService options. No schema => values are returned as-is
76
+ // (ConfigManager only validates when a schema is provided).
77
+ const serviceOptions = {
78
+ schema: options.schema,
79
+ loaders,
80
+ validateOnLoad: !options.ignoreValidationErrors,
81
+ enableLogging: true,
82
+ };
83
+ // Create and initialize the service
84
+ const configService = new config_service_1.ConfigServiceImpl(serviceOptions);
85
+ // Initialize configuration loading if not in sync mode
86
+ if (!options.loadSync) {
87
+ await configService.initialize();
88
+ }
89
+ return configService;
90
+ },
91
+ };
92
+ }
93
+ /**
94
+ * Create providers for asynchronous module registration.
95
+ */
96
+ static createAsyncProviders(options) {
97
+ return [
98
+ {
99
+ provide: exports.NEST_CONFIG_AWS_OPTIONS,
100
+ useFactory: options.useFactory,
101
+ inject: options.inject || [],
102
+ },
103
+ ];
104
+ }
105
+ /**
106
+ * Create the ConfigService provider for asynchronous module registration.
107
+ */
108
+ static createAsyncConfigServiceProvider() {
109
+ return {
110
+ provide: config_service_interface_1.ConfigService,
111
+ useFactory: async (options) => {
112
+ // Create loaders based on configuration
113
+ const loaders = (0, build_loaders_1.buildAwsLoaders)(options);
114
+ // Create ConfigService options. No schema => values are returned as-is.
115
+ const serviceOptions = {
116
+ schema: options.schema,
117
+ loaders,
118
+ validateOnLoad: !options.ignoreValidationErrors,
119
+ enableLogging: true,
120
+ };
121
+ // Create and initialize the service
122
+ const configService = new config_service_1.ConfigServiceImpl(serviceOptions);
123
+ // Initialize configuration loading if not in sync mode
124
+ if (!options.loadSync) {
125
+ await configService.initialize();
126
+ }
127
+ return configService;
128
+ },
129
+ inject: [exports.NEST_CONFIG_AWS_OPTIONS],
130
+ };
131
+ }
132
+ };
133
+ exports.ConfigModule = ConfigModule;
134
+ exports.ConfigModule = ConfigModule = ConfigModule_1 = __decorate([
135
+ (0, common_1.Global)(),
136
+ (0, common_1.Module)({})
137
+ ], ConfigModule);
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSwyQ0FBeUU7QUFFekUsb0ZBQXNFO0FBRXRFLDhEQUFvRjtBQUNwRixtREFBa0Q7QUFFbEQ7O0dBRUc7QUFDVSxRQUFBLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBRWpFOzs7O0dBSUc7QUFHSSxJQUFNLFlBQVksb0JBQWxCLE1BQU0sWUFBWTtJQUN2Qjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1osVUFBeUMsRUFBRTtRQUUzQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RSxPQUFPO1lBQ0wsTUFBTSxFQUFFLGNBQVk7WUFDcEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSwrQkFBdUI7b0JBQ2hDLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRCxxQkFBcUI7YUFDdEI7WUFDRCxPQUFPLEVBQUUsQ0FBQyx3Q0FBYSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUNqQixPQUEyQztRQUUzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsT0FBTztZQUNMLE1BQU0sRUFBRSxjQUFZO1lBQ3BCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLEVBQUU7WUFDOUIsU0FBUyxFQUFFO2dCQUNULEdBQUcsY0FBYztnQkFDakIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFO2FBQ3hDO1lBQ0QsT0FBTyxFQUFFLENBQUMsd0NBQWEsQ0FBQztZQUN4QixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxNQUFNLENBQUMsMkJBQTJCLENBQ3hDLE9BQXNDO1FBRXRDLE9BQU87WUFDTCxPQUFPLEVBQUUsd0NBQWE7WUFDdEIsVUFBVSxFQUFFLEtBQUssSUFBK0IsRUFBRTtnQkFDaEQsd0NBQXdDO2dCQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFBLCtCQUFlLEVBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRXpDLHVFQUF1RTtnQkFDdkUsNERBQTREO2dCQUM1RCxNQUFNLGNBQWMsR0FBNEI7b0JBQzlDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtvQkFDdEIsT0FBTztvQkFDUCxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCO29CQUMvQyxhQUFhLEVBQUUsSUFBSTtpQkFDcEIsQ0FBQztnQkFFRixvQ0FBb0M7Z0JBQ3BDLE1BQU0sYUFBYSxHQUFHLElBQUksa0NBQWlCLENBQUksY0FBYyxDQUFDLENBQUM7Z0JBRS9ELHVEQUF1RDtnQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25DLENBQUM7Z0JBRUQsT0FBTyxhQUFpQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTSxDQUFDLG9CQUFvQixDQUNqQyxPQUEyQztRQUUzQyxPQUFPO1lBQ0w7Z0JBQ0UsT0FBTyxFQUFFLCtCQUF1QjtnQkFDaEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO2FBQzdCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyxnQ0FBZ0M7UUFDN0MsT0FBTztZQUNMLE9BQU8sRUFBRSx3Q0FBYTtZQUN0QixVQUFVLEVBQUUsS0FBSyxFQUFFLE9BQW1DLEVBQTBCLEVBQUU7Z0JBQ2hGLHdDQUF3QztnQkFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBQSwrQkFBZSxFQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUV6Qyx3RUFBd0U7Z0JBQ3hFLE1BQU0sY0FBYyxHQUF5QjtvQkFDM0MsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO29CQUN0QixPQUFPO29CQUNQLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0I7b0JBQy9DLGFBQWEsRUFBRSxJQUFJO2lCQUNwQixDQUFDO2dCQUVGLG9DQUFvQztnQkFDcEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxrQ0FBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFFNUQsdURBQXVEO2dCQUN2RCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN0QixNQUFNLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQztnQkFFRCxPQUFPLGFBQThCLENBQUM7WUFDeEMsQ0FBQztZQUNELE1BQU0sRUFBRSxDQUFDLCtCQUF1QixDQUFDO1NBQ2xDLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQWxJWSxvQ0FBWTt1QkFBWixZQUFZO0lBRnhCLElBQUEsZUFBTSxHQUFFO0lBQ1IsSUFBQSxlQUFNLEVBQUMsRUFBRSxDQUFDO0dBQ0UsWUFBWSxDQWtJeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTW9kdWxlLCBHbG9iYWwsIE1vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAbmVzdGpzL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5lc3RDb25maWdBd3NNb2R1bGVPcHRpb25zLCBOZXN0Q29uZmlnQXdzTW9kdWxlQXN5bmNPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21vZHVsZS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2VJbXBsLCBDb25maWdTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBidWlsZEF3c0xvYWRlcnMgfSBmcm9tICcuL2J1aWxkLWxvYWRlcnMnO1xyXG5cclxuLyoqXHJcbiAqIFRva2VuIGZvciBpbmplY3RpbmcgbW9kdWxlIG9wdGlvbnNcclxuICovXHJcbmV4cG9ydCBjb25zdCBORVNUX0NPTkZJR19BV1NfT1BUSU9OUyA9ICdORVNUX0NPTkZJR19BV1NfT1BUSU9OUyc7XHJcblxyXG4vKipcclxuICogTmVzdEpTIG1vZHVsZSBmb3IgQVdTLWludGVncmF0ZWQgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LlxyXG4gKiBQcm92aWRlcyBnbG9iYWwgY29uZmlndXJhdGlvbiBzZXJ2aWNlIHdpdGggc3VwcG9ydCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzLFxyXG4gKiBBV1MgU2VjcmV0cyBNYW5hZ2VyLCBhbmQgQVdTIFN5c3RlbXMgTWFuYWdlciBQYXJhbWV0ZXIgU3RvcmUuXHJcbiAqL1xyXG5AR2xvYmFsKClcclxuQE1vZHVsZSh7fSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ01vZHVsZSB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgc3luY2hyb25vdXMgY29uZmlndXJhdGlvbiBtb2R1bGUgd2l0aCBwcm92aWRlZCBvcHRpb25zLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbW9kdWxlXHJcbiAgICogQHJldHVybnMgRHluYW1pYyBtb2R1bGUgY29uZmlndXJhdGlvblxyXG4gICAqL1xyXG4gIHN0YXRpYyBmb3JSb290PFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXHJcbiAgICBvcHRpb25zOiBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPiA9IHt9XHJcbiAgKTogRHluYW1pY01vZHVsZSB7XHJcbiAgICBjb25zdCBjb25maWdTZXJ2aWNlUHJvdmlkZXIgPSB0aGlzLmNyZWF0ZUNvbmZpZ1NlcnZpY2VQcm92aWRlcihvcHRpb25zKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb2R1bGU6IENvbmZpZ01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogTkVTVF9DT05GSUdfQVdTX09QVElPTlMsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbmZpZ1NlcnZpY2VQcm92aWRlcixcclxuICAgICAgXSxcclxuICAgICAgZXhwb3J0czogW0NvbmZpZ1NlcnZpY2VdLFxyXG4gICAgICBnbG9iYWw6IHRydWUsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGFuIGFzeW5jaHJvbm91cyBjb25maWd1cmF0aW9uIG1vZHVsZSB3aXRoIGZhY3RvcnktYmFzZWQgb3B0aW9ucy5cclxuICAgKiBVc2VmdWwgd2hlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZGVwZW5kIG9uIG90aGVyIHNlcnZpY2VzIG9yIGFzeW5jIG9wZXJhdGlvbnMuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBBc3luYyBjb25maWd1cmF0aW9uIG9wdGlvbnMgd2l0aCBmYWN0b3J5IGZ1bmN0aW9uXHJcbiAgICogQHJldHVybnMgRHluYW1pYyBtb2R1bGUgY29uZmlndXJhdGlvblxyXG4gICAqL1xyXG4gIHN0YXRpYyBmb3JSb290QXN5bmM8VCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcclxuICAgIG9wdGlvbnM6IE5lc3RDb25maWdBd3NNb2R1bGVBc3luY09wdGlvbnM8VD5cclxuICApOiBEeW5hbWljTW9kdWxlIHtcclxuICAgIGNvbnN0IGFzeW5jUHJvdmlkZXJzID0gdGhpcy5jcmVhdGVBc3luY1Byb3ZpZGVycyhvcHRpb25zKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb2R1bGU6IENvbmZpZ01vZHVsZSxcclxuICAgICAgaW1wb3J0czogb3B0aW9ucy5pbXBvcnRzIHx8IFtdLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAuLi5hc3luY1Byb3ZpZGVycyxcclxuICAgICAgICB0aGlzLmNyZWF0ZUFzeW5jQ29uZmlnU2VydmljZVByb3ZpZGVyKCksXHJcbiAgICAgIF0sXHJcbiAgICAgIGV4cG9ydHM6IFtDb25maWdTZXJ2aWNlXSxcclxuICAgICAgZ2xvYmFsOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgQ29uZmlnU2VydmljZSBwcm92aWRlciBmb3Igc3luY2hyb25vdXMgbW9kdWxlIHJlZ2lzdHJhdGlvbi5cclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVDb25maWdTZXJ2aWNlUHJvdmlkZXI8VD4oXHJcbiAgICBvcHRpb25zOiBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPlxyXG4gICk6IFByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb3ZpZGU6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IGFzeW5jICgpOiBQcm9taXNlPENvbmZpZ1NlcnZpY2U8VD4+ID0+IHtcclxuICAgICAgICAvLyBDcmVhdGUgbG9hZGVycyBiYXNlZCBvbiBjb25maWd1cmF0aW9uXHJcbiAgICAgICAgY29uc3QgbG9hZGVycyA9IGJ1aWxkQXdzTG9hZGVycyhvcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIENvbmZpZ1NlcnZpY2Ugb3B0aW9ucy4gTm8gc2NoZW1hID0+IHZhbHVlcyBhcmUgcmV0dXJuZWQgYXMtaXNcclxuICAgICAgICAvLyAoQ29uZmlnTWFuYWdlciBvbmx5IHZhbGlkYXRlcyB3aGVuIGEgc2NoZW1hIGlzIHByb3ZpZGVkKS5cclxuICAgICAgICBjb25zdCBzZXJ2aWNlT3B0aW9uczogQ29uZmlnU2VydmljZU9wdGlvbnM8VD4gPSB7XHJcbiAgICAgICAgICBzY2hlbWE6IG9wdGlvbnMuc2NoZW1hLFxyXG4gICAgICAgICAgbG9hZGVycyxcclxuICAgICAgICAgIHZhbGlkYXRlT25Mb2FkOiAhb3B0aW9ucy5pZ25vcmVWYWxpZGF0aW9uRXJyb3JzLFxyXG4gICAgICAgICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIHNlcnZpY2VcclxuICAgICAgICBjb25zdCBjb25maWdTZXJ2aWNlID0gbmV3IENvbmZpZ1NlcnZpY2VJbXBsPFQ+KHNlcnZpY2VPcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb25maWd1cmF0aW9uIGxvYWRpbmcgaWYgbm90IGluIHN5bmMgbW9kZVxyXG4gICAgICAgIGlmICghb3B0aW9ucy5sb2FkU3luYykge1xyXG4gICAgICAgICAgYXdhaXQgY29uZmlnU2VydmljZS5pbml0aWFsaXplKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29uZmlnU2VydmljZSBhcyBDb25maWdTZXJ2aWNlPFQ+O1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBwcm92aWRlcnMgZm9yIGFzeW5jaHJvbm91cyBtb2R1bGUgcmVnaXN0cmF0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUFzeW5jUHJvdmlkZXJzPFQ+KFxyXG4gICAgb3B0aW9uczogTmVzdENvbmZpZ0F3c01vZHVsZUFzeW5jT3B0aW9uczxUPlxyXG4gICk6IFByb3ZpZGVyW10ge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IE5FU1RfQ09ORklHX0FXU19PUFRJT05TLFxyXG4gICAgICAgIHVzZUZhY3Rvcnk6IG9wdGlvbnMudXNlRmFjdG9yeSxcclxuICAgICAgICBpbmplY3Q6IG9wdGlvbnMuaW5qZWN0IHx8IFtdLFxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgQ29uZmlnU2VydmljZSBwcm92aWRlciBmb3IgYXN5bmNocm9ub3VzIG1vZHVsZSByZWdpc3RyYXRpb24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQXN5bmNDb25maWdTZXJ2aWNlUHJvdmlkZXIoKTogUHJvdmlkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcHJvdmlkZTogQ29uZmlnU2VydmljZSxcclxuICAgICAgdXNlRmFjdG9yeTogYXN5bmMgKG9wdGlvbnM6IE5lc3RDb25maWdBd3NNb2R1bGVPcHRpb25zKTogUHJvbWlzZTxDb25maWdTZXJ2aWNlPiA9PiB7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGxvYWRlcnMgYmFzZWQgb24gY29uZmlndXJhdGlvblxyXG4gICAgICAgIGNvbnN0IGxvYWRlcnMgPSBidWlsZEF3c0xvYWRlcnMob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSBDb25maWdTZXJ2aWNlIG9wdGlvbnMuIE5vIHNjaGVtYSA9PiB2YWx1ZXMgYXJlIHJldHVybmVkIGFzLWlzLlxyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VPcHRpb25zOiBDb25maWdTZXJ2aWNlT3B0aW9ucyA9IHtcclxuICAgICAgICAgIHNjaGVtYTogb3B0aW9ucy5zY2hlbWEsXHJcbiAgICAgICAgICBsb2FkZXJzLFxyXG4gICAgICAgICAgdmFsaWRhdGVPbkxvYWQ6ICFvcHRpb25zLmlnbm9yZVZhbGlkYXRpb25FcnJvcnMsXHJcbiAgICAgICAgICBlbmFibGVMb2dnaW5nOiB0cnVlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgc2VydmljZVxyXG4gICAgICAgIGNvbnN0IGNvbmZpZ1NlcnZpY2UgPSBuZXcgQ29uZmlnU2VydmljZUltcGwoc2VydmljZU9wdGlvbnMpO1xyXG5cclxuICAgICAgICAvLyBJbml0aWFsaXplIGNvbmZpZ3VyYXRpb24gbG9hZGluZyBpZiBub3QgaW4gc3luYyBtb2RlXHJcbiAgICAgICAgaWYgKCFvcHRpb25zLmxvYWRTeW5jKSB7XHJcbiAgICAgICAgICBhd2FpdCBjb25maWdTZXJ2aWNlLmluaXRpYWxpemUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjb25maWdTZXJ2aWNlIGFzIENvbmZpZ1NlcnZpY2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIGluamVjdDogW05FU1RfQ09ORklHX0FXU19PUFRJT05TXSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,46 @@
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
+ exports.buildAwsLoaders = exports.awsConfigLoader = exports.EnvFileParser = exports.ConfigValidationUtil = exports.MissingConfigurationError = exports.ConfigurationLoadError = exports.AWSServiceError = exports.ValidationError = exports.ConfigurationError = exports.ConfigManager = exports.SSMParameterStoreLoader = exports.SecretsManagerLoader = exports.S3Loader = exports.EnvFileLoader = exports.EnvironmentLoader = void 0;
18
+ // Re-export all public types from @dyanet/config-aws core package
19
+ var config_aws_1 = require("@dyanet/config-aws");
20
+ // Loaders
21
+ Object.defineProperty(exports, "EnvironmentLoader", { enumerable: true, get: function () { return config_aws_1.EnvironmentLoader; } });
22
+ Object.defineProperty(exports, "EnvFileLoader", { enumerable: true, get: function () { return config_aws_1.EnvFileLoader; } });
23
+ Object.defineProperty(exports, "S3Loader", { enumerable: true, get: function () { return config_aws_1.S3Loader; } });
24
+ Object.defineProperty(exports, "SecretsManagerLoader", { enumerable: true, get: function () { return config_aws_1.SecretsManagerLoader; } });
25
+ Object.defineProperty(exports, "SSMParameterStoreLoader", { enumerable: true, get: function () { return config_aws_1.SSMParameterStoreLoader; } });
26
+ // ConfigManager
27
+ Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return config_aws_1.ConfigManager; } });
28
+ // Error classes
29
+ Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return config_aws_1.ConfigurationError; } });
30
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return config_aws_1.ValidationError; } });
31
+ Object.defineProperty(exports, "AWSServiceError", { enumerable: true, get: function () { return config_aws_1.AWSServiceError; } });
32
+ Object.defineProperty(exports, "ConfigurationLoadError", { enumerable: true, get: function () { return config_aws_1.ConfigurationLoadError; } });
33
+ Object.defineProperty(exports, "MissingConfigurationError", { enumerable: true, get: function () { return config_aws_1.MissingConfigurationError; } });
34
+ // Utilities
35
+ Object.defineProperty(exports, "ConfigValidationUtil", { enumerable: true, get: function () { return config_aws_1.ConfigValidationUtil; } });
36
+ Object.defineProperty(exports, "EnvFileParser", { enumerable: true, get: function () { return config_aws_1.EnvFileParser; } });
37
+ // NestJS dependency-injection module + service
38
+ __exportStar(require("./config.module"), exports);
39
+ __exportStar(require("./interfaces"), exports);
40
+ __exportStar(require("./services/config.service"), exports);
41
+ // @nestjs/config integration: a single factory helper for the `load` array
42
+ var aws_config_loader_1 = require("./aws-config-loader");
43
+ Object.defineProperty(exports, "awsConfigLoader", { enumerable: true, get: function () { return aws_config_loader_1.awsConfigLoader; } });
44
+ var build_loaders_1 = require("./build-loaders");
45
+ Object.defineProperty(exports, "buildAwsLoaders", { enumerable: true, get: function () { return build_loaders_1.buildAwsLoaders; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrRUFBa0U7QUFDbEUsaURBcUI0QjtBQXBCMUIsVUFBVTtBQUNWLCtHQUFBLGlCQUFpQixPQUFBO0FBQ2pCLDJHQUFBLGFBQWEsT0FBQTtBQUNiLHNHQUFBLFFBQVEsT0FBQTtBQUNSLGtIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLHFIQUFBLHVCQUF1QixPQUFBO0FBRXZCLGdCQUFnQjtBQUNoQiwyR0FBQSxhQUFhLE9BQUE7QUFFYixnQkFBZ0I7QUFDaEIsZ0hBQUEsa0JBQWtCLE9BQUE7QUFDbEIsNkdBQUEsZUFBZSxPQUFBO0FBQ2YsNkdBQUEsZUFBZSxPQUFBO0FBQ2Ysb0hBQUEsc0JBQXNCLE9BQUE7QUFDdEIsdUhBQUEseUJBQXlCLE9BQUE7QUFFekIsWUFBWTtBQUNaLGtIQUFBLG9CQUFvQixPQUFBO0FBQ3BCLDJHQUFBLGFBQWEsT0FBQTtBQXVCZiwrQ0FBK0M7QUFDL0Msa0RBQWdDO0FBQ2hDLCtDQUE2QjtBQUM3Qiw0REFBMEM7QUFFMUMsMkVBQTJFO0FBQzNFLHlEQUFzRDtBQUE3QyxvSEFBQSxlQUFlLE9BQUE7QUFFeEIsaURBQWtEO0FBQXpDLGdIQUFBLGVBQWUsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFJlLWV4cG9ydCBhbGwgcHVibGljIHR5cGVzIGZyb20gQGR5YW5ldC9jb25maWctYXdzIGNvcmUgcGFja2FnZVxuZXhwb3J0IHtcbiAgLy8gTG9hZGVyc1xuICBFbnZpcm9ubWVudExvYWRlcixcbiAgRW52RmlsZUxvYWRlcixcbiAgUzNMb2FkZXIsXG4gIFNlY3JldHNNYW5hZ2VyTG9hZGVyLFxuICBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlcixcblxuICAvLyBDb25maWdNYW5hZ2VyXG4gIENvbmZpZ01hbmFnZXIsXG5cbiAgLy8gRXJyb3IgY2xhc3Nlc1xuICBDb25maWd1cmF0aW9uRXJyb3IsXG4gIFZhbGlkYXRpb25FcnJvcixcbiAgQVdTU2VydmljZUVycm9yLFxuICBDb25maWd1cmF0aW9uTG9hZEVycm9yLFxuICBNaXNzaW5nQ29uZmlndXJhdGlvbkVycm9yLFxuXG4gIC8vIFV0aWxpdGllc1xuICBDb25maWdWYWxpZGF0aW9uVXRpbCxcbiAgRW52RmlsZVBhcnNlcixcbn0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcblxuLy8gUmUtZXhwb3J0IHR5cGVzIGZyb20gQGR5YW5ldC9jb25maWctYXdzXG5leHBvcnQgdHlwZSB7XG4gIC8vIENvcmUgaW50ZXJmYWNlc1xuICBDb25maWdMb2FkZXIsXG4gIENvbmZpZ01hbmFnZXJPcHRpb25zLFxuICBMb2FkZXJQcmVjZWRlbmNlLFxuICBWZXJib3NlT3B0aW9ucyxcbiAgUHJlY2VkZW5jZVN0cmF0ZWd5LFxuICBDb25maWdMb2FkUmVzdWx0LFxuICBDb25maWdTb3VyY2VJbmZvLFxuICBMb2dnZXIsXG5cbiAgLy8gTG9hZGVyIGNvbmZpZ3NcbiAgRW52aXJvbm1lbnRMb2FkZXJDb25maWcsXG4gIEVudkZpbGVMb2FkZXJDb25maWcsXG4gIFMzTG9hZGVyQ29uZmlnLFxuICBTZWNyZXRzTWFuYWdlckxvYWRlckNvbmZpZyxcbiAgU1NNUGFyYW1ldGVyU3RvcmVMb2FkZXJDb25maWcsXG59IGZyb20gJ0BkeWFuZXQvY29uZmlnLWF3cyc7XG5cbi8vIE5lc3RKUyBkZXBlbmRlbmN5LWluamVjdGlvbiBtb2R1bGUgKyBzZXJ2aWNlXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvY29uZmlnLnNlcnZpY2UnO1xuXG4vLyBAbmVzdGpzL2NvbmZpZyBpbnRlZ3JhdGlvbjogYSBzaW5nbGUgZmFjdG9yeSBoZWxwZXIgZm9yIHRoZSBgbG9hZGAgYXJyYXlcbmV4cG9ydCB7IGF3c0NvbmZpZ0xvYWRlciB9IGZyb20gJy4vYXdzLWNvbmZpZy1sb2FkZXInO1xuZXhwb3J0IHR5cGUgeyBBd3NDb25maWdMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9hd3MtY29uZmlnLWxvYWRlcic7XG5leHBvcnQgeyBidWlsZEF3c0xvYWRlcnMgfSBmcm9tICcuL2J1aWxkLWxvYWRlcnMnO1xuZXhwb3J0IHR5cGUgeyBBd3NMb2FkZXJTb3VyY2VzIH0gZnJvbSAnLi9idWlsZC1sb2FkZXJzJztcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConfigService = void 0;
4
+ /**
5
+ * Abstract ConfigService interface for dependency injection.
6
+ * Provides type-safe access to configuration values with generic type support.
7
+ */
8
+ class ConfigService {
9
+ }
10
+ exports.ConfigService = ConfigService;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvY29uZmlnLXNlcnZpY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7R0FHRztBQUNILE1BQXNCLGFBQWE7Q0FtQmxDO0FBbkJELHNDQW1CQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBYnN0cmFjdCBDb25maWdTZXJ2aWNlIGludGVyZmFjZSBmb3IgZGVwZW5kZW5jeSBpbmplY3Rpb24uXHJcbiAqIFByb3ZpZGVzIHR5cGUtc2FmZSBhY2Nlc3MgdG8gY29uZmlndXJhdGlvbiB2YWx1ZXMgd2l0aCBnZW5lcmljIHR5cGUgc3VwcG9ydC5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb25maWdTZXJ2aWNlPFQgPSBhbnk+IHtcclxuICAvKipcclxuICAgKiBHZXQgYSBjb25maWd1cmF0aW9uIHZhbHVlIGJ5IGtleSB3aXRoIHR5cGUgc2FmZXR5LlxyXG4gICAqIEBwYXJhbSBrZXkgLSBUaGUgY29uZmlndXJhdGlvbiBrZXkgdG8gcmV0cmlldmVcclxuICAgKiBAcmV0dXJucyBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZSB3aXRoIHByb3BlciB0eXBpbmdcclxuICAgKi9cclxuICBhYnN0cmFjdCBnZXQ8SyBleHRlbmRzIGtleW9mIFQ+KGtleTogSyk6IFRbS107XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSBjb25maWd1cmF0aW9uIHNlcnZpY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc2VydmljZSBpcyByZWFkeSB0byBzZXJ2ZSBjb25maWd1cmF0aW9uIHZhbHVlc1xyXG4gICAqL1xyXG4gIGFic3RyYWN0IGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBjb25maWd1cmF0aW9uIHZhbHVlcy5cclxuICAgKiBAcmV0dXJucyBUaGUgY29tcGxldGUgY29uZmlndXJhdGlvbiBvYmplY3RcclxuICAgKi9cclxuICBhYnN0cmFjdCBnZXRBbGwoKTogVDtcclxufVxyXG4iXX0=
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appEnvSchema = exports.environmentSchemas = exports.defaultConfigSchema = void 0;
4
+ exports.getSchemaForEnvironment = getSchemaForEnvironment;
5
+ const zod_1 = require("zod");
6
+ /**
7
+ * Default configuration schema using Zod.
8
+ * Provides a flexible base schema that can be extended by applications.
9
+ */
10
+ exports.defaultConfigSchema = zod_1.z.object({
11
+ /** Node.js environment */
12
+ NODE_ENV: zod_1.z.enum(['production', 'development', 'test']).optional(),
13
+ /** Application environment (mirrors NODE_ENV with 'local' default) */
14
+ APP_ENV: zod_1.z.enum(['production', 'test', 'development', 'local']).default('local'),
15
+ /** AWS region for services */
16
+ AWS_REGION: zod_1.z.string().optional(),
17
+ /** AWS profile for local development */
18
+ AWS_PROFILE: zod_1.z.string().optional(),
19
+ /** Application port */
20
+ PORT: zod_1.z.coerce.number().positive().optional(),
21
+ /** Application host */
22
+ HOST: zod_1.z.string().optional(),
23
+ /** Log level */
24
+ LOG_LEVEL: zod_1.z.enum(['error', 'warn', 'info', 'debug', 'verbose']).optional(),
25
+ /** Database URL */
26
+ DATABASE_URL: zod_1.z.string().url().optional(),
27
+ /** Redis URL */
28
+ REDIS_URL: zod_1.z.string().url().optional(),
29
+ });
30
+ /**
31
+ * Environment-specific validation schemas.
32
+ */
33
+ exports.environmentSchemas = {
34
+ local: exports.defaultConfigSchema.extend({
35
+ // Local environment may have fewer required fields
36
+ AWS_REGION: zod_1.z.string().optional(),
37
+ }),
38
+ development: exports.defaultConfigSchema.extend({
39
+ // Development environment requirements
40
+ AWS_REGION: zod_1.z.string().min(1, 'AWS_REGION is required in development'),
41
+ }),
42
+ test: exports.defaultConfigSchema.extend({
43
+ // Test environment requirements
44
+ AWS_REGION: zod_1.z.string().min(1, 'AWS_REGION is required in test'),
45
+ }),
46
+ production: exports.defaultConfigSchema.extend({
47
+ // Production environment requirements
48
+ AWS_REGION: zod_1.z.string().min(1, 'AWS_REGION is required in production'),
49
+ LOG_LEVEL: zod_1.z.enum(['error', 'warn', 'info']).default('info'),
50
+ }),
51
+ };
52
+ /**
53
+ * Helper function to get the appropriate schema for the current environment.
54
+ */
55
+ function getSchemaForEnvironment(appEnv) {
56
+ const env = appEnv;
57
+ return exports.environmentSchemas[env] || exports.defaultConfigSchema;
58
+ }
59
+ /**
60
+ * Validation helper for APP_ENV values.
61
+ */
62
+ exports.appEnvSchema = zod_1.z.enum(['production', 'test', 'development', 'local']);
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zY2hlbWEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvZGVmYXVsdC1zY2hlbWEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFFQSwwREFHQztBQXhFRCw2QkFBd0I7QUFFeEI7OztHQUdHO0FBQ1UsUUFBQSxtQkFBbUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLDBCQUEwQjtJQUMxQixRQUFRLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFFbEUsc0VBQXNFO0lBQ3RFLE9BQU8sRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBRWhGLDhCQUE4QjtJQUM5QixVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUVqQyx3Q0FBd0M7SUFDeEMsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFFbEMsdUJBQXVCO0lBQ3ZCLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUU3Qyx1QkFBdUI7SUFDdkIsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFFM0IsZ0JBQWdCO0lBQ2hCLFNBQVMsRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBRTNFLG1CQUFtQjtJQUNuQixZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUV6QyxnQkFBZ0I7SUFDaEIsU0FBUyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDdkMsQ0FBQyxDQUFDO0FBT0g7O0dBRUc7QUFDVSxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLEtBQUssRUFBRSwyQkFBbUIsQ0FBQyxNQUFNLENBQUM7UUFDaEMsbURBQW1EO1FBQ25ELFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQ2xDLENBQUM7SUFFRixXQUFXLEVBQUUsMkJBQW1CLENBQUMsTUFBTSxDQUFDO1FBQ3RDLHVDQUF1QztRQUN2QyxVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsdUNBQXVDLENBQUM7S0FDdkUsQ0FBQztJQUVGLElBQUksRUFBRSwyQkFBbUIsQ0FBQyxNQUFNLENBQUM7UUFDL0IsZ0NBQWdDO1FBQ2hDLFVBQVUsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxnQ0FBZ0MsQ0FBQztLQUNoRSxDQUFDO0lBRUYsVUFBVSxFQUFFLDJCQUFtQixDQUFDLE1BQU0sQ0FBQztRQUNyQyxzQ0FBc0M7UUFDdEMsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLHNDQUFzQyxDQUFDO1FBQ3JFLFNBQVMsRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7S0FDN0QsQ0FBQztDQUNILENBQUM7QUFFRjs7R0FFRztBQUNILFNBQWdCLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBeUMsQ0FBQztJQUN0RCxPQUFPLDBCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLDJCQUFtQixDQUFDO0FBQ3hELENBQUM7QUFFRDs7R0FFRztBQUNVLFFBQUEsWUFBWSxHQUFHLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCc7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBjb25maWd1cmF0aW9uIHNjaGVtYSB1c2luZyBab2QuXHJcbiAqIFByb3ZpZGVzIGEgZmxleGlibGUgYmFzZSBzY2hlbWEgdGhhdCBjYW4gYmUgZXh0ZW5kZWQgYnkgYXBwbGljYXRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWdTY2hlbWEgPSB6Lm9iamVjdCh7XHJcbiAgLyoqIE5vZGUuanMgZW52aXJvbm1lbnQgKi9cclxuICBOT0RFX0VOVjogei5lbnVtKFsncHJvZHVjdGlvbicsICdkZXZlbG9wbWVudCcsICd0ZXN0J10pLm9wdGlvbmFsKCksXHJcbiAgXHJcbiAgLyoqIEFwcGxpY2F0aW9uIGVudmlyb25tZW50IChtaXJyb3JzIE5PREVfRU5WIHdpdGggJ2xvY2FsJyBkZWZhdWx0KSAqL1xyXG4gIEFQUF9FTlY6IHouZW51bShbJ3Byb2R1Y3Rpb24nLCAndGVzdCcsICdkZXZlbG9wbWVudCcsICdsb2NhbCddKS5kZWZhdWx0KCdsb2NhbCcpLFxyXG4gIFxyXG4gIC8qKiBBV1MgcmVnaW9uIGZvciBzZXJ2aWNlcyAqL1xyXG4gIEFXU19SRUdJT046IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcclxuICBcclxuICAvKiogQVdTIHByb2ZpbGUgZm9yIGxvY2FsIGRldmVsb3BtZW50ICovXHJcbiAgQVdTX1BST0ZJTEU6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcclxuICBcclxuICAvKiogQXBwbGljYXRpb24gcG9ydCAqL1xyXG4gIFBPUlQ6IHouY29lcmNlLm51bWJlcigpLnBvc2l0aXZlKCkub3B0aW9uYWwoKSxcclxuICBcclxuICAvKiogQXBwbGljYXRpb24gaG9zdCAqL1xyXG4gIEhPU1Q6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcclxuICBcclxuICAvKiogTG9nIGxldmVsICovXHJcbiAgTE9HX0xFVkVMOiB6LmVudW0oWydlcnJvcicsICd3YXJuJywgJ2luZm8nLCAnZGVidWcnLCAndmVyYm9zZSddKS5vcHRpb25hbCgpLFxyXG4gIFxyXG4gIC8qKiBEYXRhYmFzZSBVUkwgKi9cclxuICBEQVRBQkFTRV9VUkw6IHouc3RyaW5nKCkudXJsKCkub3B0aW9uYWwoKSxcclxuICBcclxuICAvKiogUmVkaXMgVVJMICovXHJcbiAgUkVESVNfVVJMOiB6LnN0cmluZygpLnVybCgpLm9wdGlvbmFsKCksXHJcbn0pO1xyXG5cclxuLyoqXHJcbiAqIFR5cGUgaW5mZXJlbmNlIGZvciB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHNjaGVtYS5cclxuICovXHJcbmV4cG9ydCB0eXBlIERlZmF1bHRDb25maWdTY2hlbWEgPSB6LmluZmVyPHR5cGVvZiBkZWZhdWx0Q29uZmlnU2NoZW1hPjtcclxuXHJcbi8qKlxyXG4gKiBFbnZpcm9ubWVudC1zcGVjaWZpYyB2YWxpZGF0aW9uIHNjaGVtYXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnRTY2hlbWFzID0ge1xyXG4gIGxvY2FsOiBkZWZhdWx0Q29uZmlnU2NoZW1hLmV4dGVuZCh7XHJcbiAgICAvLyBMb2NhbCBlbnZpcm9ubWVudCBtYXkgaGF2ZSBmZXdlciByZXF1aXJlZCBmaWVsZHNcclxuICAgIEFXU19SRUdJT046IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcclxuICB9KSxcclxuICBcclxuICBkZXZlbG9wbWVudDogZGVmYXVsdENvbmZpZ1NjaGVtYS5leHRlbmQoe1xyXG4gICAgLy8gRGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQgcmVxdWlyZW1lbnRzXHJcbiAgICBBV1NfUkVHSU9OOiB6LnN0cmluZygpLm1pbigxLCAnQVdTX1JFR0lPTiBpcyByZXF1aXJlZCBpbiBkZXZlbG9wbWVudCcpLFxyXG4gIH0pLFxyXG4gIFxyXG4gIHRlc3Q6IGRlZmF1bHRDb25maWdTY2hlbWEuZXh0ZW5kKHtcclxuICAgIC8vIFRlc3QgZW52aXJvbm1lbnQgcmVxdWlyZW1lbnRzXHJcbiAgICBBV1NfUkVHSU9OOiB6LnN0cmluZygpLm1pbigxLCAnQVdTX1JFR0lPTiBpcyByZXF1aXJlZCBpbiB0ZXN0JyksXHJcbiAgfSksXHJcbiAgXHJcbiAgcHJvZHVjdGlvbjogZGVmYXVsdENvbmZpZ1NjaGVtYS5leHRlbmQoe1xyXG4gICAgLy8gUHJvZHVjdGlvbiBlbnZpcm9ubWVudCByZXF1aXJlbWVudHNcclxuICAgIEFXU19SRUdJT046IHouc3RyaW5nKCkubWluKDEsICdBV1NfUkVHSU9OIGlzIHJlcXVpcmVkIGluIHByb2R1Y3Rpb24nKSxcclxuICAgIExPR19MRVZFTDogei5lbnVtKFsnZXJyb3InLCAnd2FybicsICdpbmZvJ10pLmRlZmF1bHQoJ2luZm8nKSxcclxuICB9KSxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBzY2hlbWEgZm9yIHRoZSBjdXJyZW50IGVudmlyb25tZW50LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFNjaGVtYUZvckVudmlyb25tZW50KGFwcEVudjogc3RyaW5nKTogei5ab2RTY2hlbWEge1xyXG4gIGNvbnN0IGVudiA9IGFwcEVudiBhcyBrZXlvZiB0eXBlb2YgZW52aXJvbm1lbnRTY2hlbWFzO1xyXG4gIHJldHVybiBlbnZpcm9ubWVudFNjaGVtYXNbZW52XSB8fCBkZWZhdWx0Q29uZmlnU2NoZW1hO1xyXG59XHJcblxyXG4vKipcclxuICogVmFsaWRhdGlvbiBoZWxwZXIgZm9yIEFQUF9FTlYgdmFsdWVzLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGFwcEVudlNjaGVtYSA9IHouZW51bShbJ3Byb2R1Y3Rpb24nLCAndGVzdCcsICdkZXZlbG9wbWVudCcsICdsb2NhbCddKTtcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGZvciB2YWxpZCBBUFBfRU5WIHZhbHVlcy5cclxuICovXHJcbmV4cG9ydCB0eXBlIEFwcEVudiA9IHouaW5mZXI8dHlwZW9mIGFwcEVudlNjaGVtYT47XHJcbiJdfQ==
@@ -27,4 +27,4 @@ Object.defineProperty(exports, "ConfigurationLoadError", { enumerable: true, get
27
27
  Object.defineProperty(exports, "MissingConfigurationError", { enumerable: true, get: function () { return config_aws_1.MissingConfigurationError; } });
28
28
  // Default schema and types
29
29
  __exportStar(require("./default-schema.interface"), exports);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtCQUFrQjtBQUNsQiw2REFBMkM7QUFDM0MsNkRBQTJDO0FBRTNDLGlFQUFpRTtBQUNqRSxpREFNNEI7QUFMMUIsZ0hBQUEsa0JBQWtCLE9BQUE7QUFDbEIsNkdBQUEsZUFBZSxPQUFBO0FBQ2YsNkdBQUEsZUFBZSxPQUFBO0FBQ2Ysb0hBQUEsc0JBQXNCLE9BQUE7QUFDdEIsdUhBQUEseUJBQXlCLE9BQUE7QUFHM0IsMkJBQTJCO0FBQzNCLDZEQUEyQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgaW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuXHJcbi8vIEVycm9yIGNsYXNzZXMgLSByZS1leHBvcnQgZnJvbSBjb3JlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XHJcbmV4cG9ydCB7XHJcbiAgQ29uZmlndXJhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25FcnJvcixcclxuICBBV1NTZXJ2aWNlRXJyb3IsXHJcbiAgQ29uZmlndXJhdGlvbkxvYWRFcnJvcixcclxuICBNaXNzaW5nQ29uZmlndXJhdGlvbkVycm9yLFxyXG59IGZyb20gJ0BkeWFuZXQvY29uZmlnLWF3cyc7XHJcblxyXG4vLyBEZWZhdWx0IHNjaGVtYSBhbmQgdHlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LXNjaGVtYS5pbnRlcmZhY2UnO1xyXG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtCQUFrQjtBQUNsQiw2REFBMkM7QUFDM0MsNkRBQTJDO0FBRTNDLGlFQUFpRTtBQUNqRSxpREFNNEI7QUFMMUIsZ0hBQUEsa0JBQWtCLE9BQUE7QUFDbEIsNkdBQUEsZUFBZSxPQUFBO0FBQ2YsNkdBQUEsZUFBZSxPQUFBO0FBQ2Ysb0hBQUEsc0JBQXNCLE9BQUE7QUFDdEIsdUhBQUEseUJBQXlCLE9BQUE7QUFHM0IsMkJBQTJCO0FBQzNCLDZEQUEyQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcmUgaW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuXHJcbi8vIEVycm9yIGNsYXNzZXMgLSByZS1leHBvcnQgZnJvbSBjb3JlIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XHJcbmV4cG9ydCB7XHJcbiAgQ29uZmlndXJhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25FcnJvcixcclxuICBBV1NTZXJ2aWNlRXJyb3IsXHJcbiAgQ29uZmlndXJhdGlvbkxvYWRFcnJvcixcclxuICBNaXNzaW5nQ29uZmlndXJhdGlvbkVycm9yLFxyXG59IGZyb20gJ0BkeWFuZXQvY29uZmlnLWF3cyc7XHJcblxyXG4vLyBEZWZhdWx0IHNjaGVtYSBhbmQgdHlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LXNjaGVtYS5pbnRlcmZhY2UnO1xyXG4iXX0=