@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
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvbW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBab2RUeXBlIH0gZnJvbSAnem9kJztcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciBBV1MgU2VjcmV0cyBNYW5hZ2VyIGludGVncmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRzTWFuYWdlckNvbmZpZyB7XHJcbiAgLyoqIEFXUyByZWdpb24gZm9yIFNlY3JldHMgTWFuYWdlciAqL1xyXG4gIHJlZ2lvbj86IHN0cmluZztcclxuICAvKiogQmFzZSBwYXRoIGZvciBzZWNyZXRzIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgKi9cclxuICBwYXRocz86IHtcclxuICAgIGRldmVsb3BtZW50Pzogc3RyaW5nO1xyXG4gICAgdGVzdD86IHN0cmluZztcclxuICAgIHByb2R1Y3Rpb24/OiBzdHJpbmc7XHJcbiAgfTtcclxuICAvKiogV2hldGhlciB0byBlbmFibGUgU2VjcmV0cyBNYW5hZ2VyIGludGVncmF0aW9uICovXHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZSBpbnRlZ3JhdGlvbi5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU1NNQ29uZmlnIHtcclxuICAvKiogQVdTIHJlZ2lvbiBmb3IgU1NNIFBhcmFtZXRlciBTdG9yZSAqL1xyXG4gIHJlZ2lvbj86IHN0cmluZztcclxuICAvKiogQmFzZSBwYXRoIGZvciBwYXJhbWV0ZXJzIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgKi9cclxuICBwYXRocz86IHtcclxuICAgIGRldmVsb3BtZW50Pzogc3RyaW5nO1xyXG4gICAgdGVzdD86IHN0cmluZztcclxuICAgIHByb2R1Y3Rpb24/OiBzdHJpbmc7XHJcbiAgfTtcclxuICAvKiogV2hldGhlciB0byBlbmFibGUgU1NNIFBhcmFtZXRlciBTdG9yZSBpbnRlZ3JhdGlvbiAqL1xyXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGRlY3J5cHQgU2VjdXJlU3RyaW5nIHBhcmFtZXRlcnMgKi9cclxuICBkZWNyeXB0PzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNpbXBsZSwgZmxhdCBBV1Mgb3B0aW9ucyDigJQgdGhlIHNhbWUgZXJnb25vbWljIHNoYXBlIHVzZWQgYnkgdGhlIE5leHQuanMgYWRhcHRlcidzXHJcbiAqIGBnZXRDb25maWdgLiBXaGVuIHByb3ZpZGVkLCBleGFjdGx5IHRoZSBuYW1lZCBzb3VyY2VzIGFyZSBsb2FkZWQgKGEgYHNlY3JldE5hbWVgXHJcbiAqIGFkZHMgYSBTZWNyZXRzIE1hbmFnZXIgbG9hZGVyLCBhbiBgc3NtUHJlZml4YCBhZGRzIGFuIFNTTSBsb2FkZXIpOyB0aGUgZ3JhbnVsYXJcclxuICogYHNlY3JldHNNYW5hZ2VyQ29uZmlnYCAvIGBzc21Db25maWdgIG9wdGlvbnMgYXJlIG5vdCBhcHBsaWVkLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBd3NPcHRpb25zIHtcclxuICAvKiogU2VjcmV0IG5hbWUvcGF0aCBmb3IgQVdTIFNlY3JldHMgTWFuYWdlci4gKi9cclxuICBzZWNyZXROYW1lPzogc3RyaW5nO1xyXG4gIC8qKiBQYXJhbWV0ZXIgcGF0aCBwcmVmaXggZm9yIEFXUyBTU00gUGFyYW1ldGVyIFN0b3JlLiAqL1xyXG4gIHNzbVByZWZpeD86IHN0cmluZztcclxuICAvKiogQVdTIHJlZ2lvbiAoZGVmYXVsdHMgdG8gdGhlIGBBV1NfUkVHSU9OYCBlbnYgdmFyLCB0aGVuIGB1cy1lYXN0LTFgKS4gKi9cclxuICByZWdpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgTmVzdEpTIEFXUyBDb25maWd1cmF0aW9uIG1vZHVsZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmVzdENvbmZpZ0F3c01vZHVsZU9wdGlvbnM8VCA9IGFueT4ge1xyXG4gIC8qKiBab2Qgc2NoZW1hIGZvciBjb25maWd1cmF0aW9uIHZhbGlkYXRpb24uIFdoZW4gb21pdHRlZCwgdmFsdWVzIGFyZSByZXR1cm5lZCBhcy1pcyAobm8gdmFsaWRhdGlvbikuICovXHJcbiAgc2NoZW1hPzogWm9kVHlwZTxUPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2ltcGxlIEFXUyBvcHRpb25zIChgeyBzZWNyZXROYW1lLCBzc21QcmVmaXgsIHJlZ2lvbiB9YCkg4oCUIG1pcnJvcnMgdGhlIE5leHQuanNcclxuICAgKiBhZGFwdGVyLiBXaGVuIHNldCwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBzZWNyZXRzTWFuYWdlckNvbmZpZ2AgLyBgc3NtQ29uZmlnYC5cclxuICAgKi9cclxuICBhd3M/OiBBd3NPcHRpb25zO1xyXG5cclxuICAvKiogQ29uZmlndXJhdGlvbiBmb3IgQVdTIFNlY3JldHMgTWFuYWdlciBpbnRlZ3JhdGlvbiAoYWR2YW5jZWQpLiAqL1xyXG4gIHNlY3JldHNNYW5hZ2VyQ29uZmlnPzogU2VjcmV0c01hbmFnZXJDb25maWc7XHJcblxyXG4gIC8qKiBDb25maWd1cmF0aW9uIGZvciBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZSBpbnRlZ3JhdGlvbiAoYWR2YW5jZWQpLiAqL1xyXG4gIHNzbUNvbmZpZz86IFNTTUNvbmZpZztcclxuXHJcbiAgLyoqIFByZWZpeCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCAnQVBQXycpICovXHJcbiAgZW52UHJlZml4Pzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRvIGlnbm9yZSB2YWxpZGF0aW9uIGVycm9ycyBhbmQgY29udGludWUgd2l0aCBwYXJ0aWFsIGNvbmZpZyAqL1xyXG4gIGlnbm9yZVZhbGlkYXRpb25FcnJvcnM/OiBib29sZWFuO1xyXG4gIFxyXG4gIC8qKiBDdXN0b20gZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSBmb3IgQVBQX0VOViAoZGVmYXVsdHMgdG8gJ0FQUF9FTlYnKSAqL1xyXG4gIGFwcEVudlZhcmlhYmxlPzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRvIGxvYWQgY29uZmlndXJhdGlvbiBzeW5jaHJvbm91c2x5IGR1cmluZyBtb2R1bGUgaW5pdGlhbGl6YXRpb24gKi9cclxuICBsb2FkU3luYz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBc3luYyBmYWN0b3J5IG9wdGlvbnMgZm9yIGR5bmFtaWMgbW9kdWxlIGNvbmZpZ3VyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RDb25maWdBd3NNb2R1bGVBc3luY09wdGlvbnM8VCA9IGFueT4ge1xyXG4gIC8qKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBtb2R1bGUgb3B0aW9ucyAqL1xyXG4gIHVzZUZhY3Rvcnk6ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPj4gfCBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPjtcclxuICBcclxuICAvKiogRGVwZW5kZW5jaWVzIHRvIGluamVjdCBpbnRvIHRoZSBmYWN0b3J5IGZ1bmN0aW9uICovXHJcbiAgaW5qZWN0PzogYW55W107XHJcbiAgXHJcbiAgLyoqIEltcG9ydHMgcmVxdWlyZWQgZm9yIHRoZSBmYWN0b3J5IGZ1bmN0aW9uICovXHJcbiAgaW1wb3J0cz86IGFueVtdO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var ConfigServiceImpl_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.ConfigServiceImpl = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const config_aws_1 = require("@dyanet/config-aws");
16
+ const config_service_interface_1 = require("../interfaces/config-service.interface");
17
+ /**
18
+ * NestJS Injectable wrapper around ConfigManager from @dyanet/config-aws.
19
+ * Provides type-safe configuration access with NestJS dependency injection support.
20
+ *
21
+ * This is a thin adapter layer that delegates all configuration loading and
22
+ * management to the framework-agnostic ConfigManager from config-aws.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * import { ConfigServiceImpl } from '@dyanet/nestjs-config-aws';
27
+ * import { z } from 'zod';
28
+ *
29
+ * const schema = z.object({
30
+ * DATABASE_URL: z.string(),
31
+ * PORT: z.coerce.number().default(3000),
32
+ * });
33
+ *
34
+ * const configService = new ConfigServiceImpl({
35
+ * loaders: [new EnvironmentLoader()],
36
+ * schema,
37
+ * });
38
+ *
39
+ * await configService.initialize();
40
+ * const dbUrl = configService.get('DATABASE_URL');
41
+ * ```
42
+ */
43
+ let ConfigServiceImpl = ConfigServiceImpl_1 = class ConfigServiceImpl extends config_service_interface_1.ConfigService {
44
+ logger = new common_1.Logger(ConfigServiceImpl_1.name);
45
+ configManager;
46
+ enableNestLogging;
47
+ constructor(options = {}) {
48
+ super();
49
+ this.enableNestLogging = options.enableNestLogging ?? true;
50
+ // Create ConfigManager from config-aws with provided options
51
+ this.configManager = new config_aws_1.ConfigManager({
52
+ loaders: options.loaders,
53
+ schema: options.schema,
54
+ precedence: options.precedence,
55
+ validateOnLoad: options.validateOnLoad,
56
+ enableLogging: options.enableLogging,
57
+ logger: options.logger,
58
+ verbose: options.verbose,
59
+ });
60
+ }
61
+ /**
62
+ * Initialize the configuration service by loading configuration from all sources.
63
+ * This method should be called during application startup.
64
+ *
65
+ * @throws ConfigurationError if loading or validation fails
66
+ */
67
+ async initialize() {
68
+ if (this.configManager.isLoaded()) {
69
+ return;
70
+ }
71
+ try {
72
+ if (this.enableNestLogging) {
73
+ this.logger.log('Initializing configuration service...');
74
+ }
75
+ await this.configManager.load();
76
+ if (this.enableNestLogging) {
77
+ this.logger.log('Configuration service initialized successfully');
78
+ }
79
+ }
80
+ catch (error) {
81
+ const errorMessage = `Failed to initialize configuration service: ${error instanceof Error ? error.message : String(error)}`;
82
+ this.logger.error(errorMessage);
83
+ throw error;
84
+ }
85
+ }
86
+ /**
87
+ * Get a configuration value by key with type safety.
88
+ *
89
+ * @param key - The configuration key to retrieve
90
+ * @returns The configuration value with proper typing
91
+ * @throws ConfigurationError if configuration is not initialized
92
+ */
93
+ get(key) {
94
+ if (!this.configManager.isLoaded()) {
95
+ throw new config_aws_1.ConfigurationError('Configuration service not initialized. Call initialize() first.');
96
+ }
97
+ return this.configManager.get(key);
98
+ }
99
+ /**
100
+ * Check if the configuration service has been initialized.
101
+ *
102
+ * @returns True if the service is ready to serve configuration values
103
+ */
104
+ isInitialized() {
105
+ return this.configManager.isLoaded();
106
+ }
107
+ /**
108
+ * Get all configuration values.
109
+ *
110
+ * @returns The complete configuration object
111
+ * @throws ConfigurationError if configuration is not initialized
112
+ */
113
+ getAll() {
114
+ if (!this.configManager.isLoaded()) {
115
+ throw new config_aws_1.ConfigurationError('Configuration service not initialized. Call initialize() first.');
116
+ }
117
+ return this.configManager.getAll();
118
+ }
119
+ /**
120
+ * Get the current application environment.
121
+ *
122
+ * @returns The APP_ENV value or 'development' as default
123
+ */
124
+ getAppEnv() {
125
+ return this.configManager.getAppEnv();
126
+ }
127
+ /**
128
+ * Get the underlying ConfigManager instance.
129
+ * Useful for advanced use cases that need direct access to ConfigManager features.
130
+ *
131
+ * @returns The ConfigManager instance from @dyanet/config-aws
132
+ */
133
+ getConfigManager() {
134
+ return this.configManager;
135
+ }
136
+ };
137
+ exports.ConfigServiceImpl = ConfigServiceImpl;
138
+ exports.ConfigServiceImpl = ConfigServiceImpl = ConfigServiceImpl_1 = __decorate([
139
+ (0, common_1.Injectable)(),
140
+ __metadata("design:paramtypes", [Object])
141
+ ], ConfigServiceImpl);
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUFvRDtBQUNwRCxtREFBdUU7QUFHdkUscUZBQXVFO0FBY3ZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBRUksSUFBTSxpQkFBaUIseUJBQXZCLE1BQU0saUJBQStDLFNBQVEsd0NBQWdCO0lBQ2pFLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxtQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxhQUFhLENBQW1CO0lBQ2hDLGlCQUFpQixDQUFVO0lBRTVDLFlBQVksVUFBbUMsRUFBRTtRQUMvQyxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDO1FBRTNELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksMEJBQWEsQ0FBSTtZQUN4QyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtZQUM5QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7WUFDdEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO1lBQ3BDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87U0FDekIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUVELE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUVoQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sWUFBWSxHQUFHLCtDQUErQyxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3SCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoQyxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsR0FBRyxDQUFvQixHQUFNO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLCtCQUFrQixDQUMxQixpRUFBaUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksK0JBQWtCLENBQzFCLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7Q0FDRixDQUFBO0FBNUdZLDhDQUFpQjs0QkFBakIsaUJBQWlCO0lBRDdCLElBQUEsbUJBQVUsR0FBRTs7R0FDQSxpQkFBaUIsQ0E0RzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTG9nZ2VyIH0gZnJvbSAnQG5lc3Rqcy9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25maWdNYW5hZ2VyLCBDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xyXG5pbXBvcnQgdHlwZSB7IENvbmZpZ01hbmFnZXJPcHRpb25zIH0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBOZXN0SlMgQ29uZmlnU2VydmljZSB3cmFwcGVyLlxyXG4gKiBFeHRlbmRzIENvbmZpZ01hbmFnZXJPcHRpb25zIGZyb20gQGR5YW5ldC9jb25maWctYXdzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maWdTZXJ2aWNlT3B0aW9uczxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IGV4dGVuZHMgQ29uZmlnTWFuYWdlck9wdGlvbnM8VD4ge1xyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIE5lc3RKUyBsb2dnaW5nXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGVuYWJsZU5lc3RMb2dnaW5nPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIE5lc3RKUyBJbmplY3RhYmxlIHdyYXBwZXIgYXJvdW5kIENvbmZpZ01hbmFnZXIgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3MuXHJcbiAqIFByb3ZpZGVzIHR5cGUtc2FmZSBjb25maWd1cmF0aW9uIGFjY2VzcyB3aXRoIE5lc3RKUyBkZXBlbmRlbmN5IGluamVjdGlvbiBzdXBwb3J0LlxyXG4gKiBcclxuICogVGhpcyBpcyBhIHRoaW4gYWRhcHRlciBsYXllciB0aGF0IGRlbGVnYXRlcyBhbGwgY29uZmlndXJhdGlvbiBsb2FkaW5nIGFuZFxyXG4gKiBtYW5hZ2VtZW50IHRvIHRoZSBmcmFtZXdvcmstYWdub3N0aWMgQ29uZmlnTWFuYWdlciBmcm9tIGNvbmZpZy1hd3MuXHJcbiAqIFxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGB0eXBlc2NyaXB0XHJcbiAqIGltcG9ydCB7IENvbmZpZ1NlcnZpY2VJbXBsIH0gZnJvbSAnQGR5YW5ldC9uZXN0anMtY29uZmlnLWF3cyc7XHJcbiAqIGltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xyXG4gKiBcclxuICogY29uc3Qgc2NoZW1hID0gei5vYmplY3Qoe1xyXG4gKiAgIERBVEFCQVNFX1VSTDogei5zdHJpbmcoKSxcclxuICogICBQT1JUOiB6LmNvZXJjZS5udW1iZXIoKS5kZWZhdWx0KDMwMDApLFxyXG4gKiB9KTtcclxuICogXHJcbiAqIGNvbnN0IGNvbmZpZ1NlcnZpY2UgPSBuZXcgQ29uZmlnU2VydmljZUltcGwoe1xyXG4gKiAgIGxvYWRlcnM6IFtuZXcgRW52aXJvbm1lbnRMb2FkZXIoKV0sXHJcbiAqICAgc2NoZW1hLFxyXG4gKiB9KTtcclxuICogXHJcbiAqIGF3YWl0IGNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZSgpO1xyXG4gKiBjb25zdCBkYlVybCA9IGNvbmZpZ1NlcnZpY2UuZ2V0KCdEQVRBQkFTRV9VUkwnKTtcclxuICogYGBgXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDb25maWdTZXJ2aWNlSW1wbDxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IGV4dGVuZHMgQ29uZmlnU2VydmljZTxUPiB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXIgPSBuZXcgTG9nZ2VyKENvbmZpZ1NlcnZpY2VJbXBsLm5hbWUpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnTWFuYWdlcjogQ29uZmlnTWFuYWdlcjxUPjtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVuYWJsZU5lc3RMb2dnaW5nOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDb25maWdTZXJ2aWNlT3B0aW9uczxUPiA9IHt9KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgXHJcbiAgICB0aGlzLmVuYWJsZU5lc3RMb2dnaW5nID0gb3B0aW9ucy5lbmFibGVOZXN0TG9nZ2luZyA/PyB0cnVlO1xyXG4gICAgXHJcbiAgICAvLyBDcmVhdGUgQ29uZmlnTWFuYWdlciBmcm9tIGNvbmZpZy1hd3Mgd2l0aCBwcm92aWRlZCBvcHRpb25zXHJcbiAgICB0aGlzLmNvbmZpZ01hbmFnZXIgPSBuZXcgQ29uZmlnTWFuYWdlcjxUPih7XHJcbiAgICAgIGxvYWRlcnM6IG9wdGlvbnMubG9hZGVycyxcclxuICAgICAgc2NoZW1hOiBvcHRpb25zLnNjaGVtYSxcclxuICAgICAgcHJlY2VkZW5jZTogb3B0aW9ucy5wcmVjZWRlbmNlLFxyXG4gICAgICB2YWxpZGF0ZU9uTG9hZDogb3B0aW9ucy52YWxpZGF0ZU9uTG9hZCxcclxuICAgICAgZW5hYmxlTG9nZ2luZzogb3B0aW9ucy5lbmFibGVMb2dnaW5nLFxyXG4gICAgICBsb2dnZXI6IG9wdGlvbnMubG9nZ2VyLFxyXG4gICAgICB2ZXJib3NlOiBvcHRpb25zLnZlcmJvc2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZSBieSBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBhbGwgc291cmNlcy5cclxuICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkIGR1cmluZyBhcHBsaWNhdGlvbiBzdGFydHVwLlxyXG4gICAqIFxyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGxvYWRpbmcgb3IgdmFsaWRhdGlvbiBmYWlsc1xyXG4gICAqL1xyXG4gIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLmVuYWJsZU5lc3RMb2dnaW5nKSB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIubG9nKCdJbml0aWFsaXppbmcgY29uZmlndXJhdGlvbiBzZXJ2aWNlLi4uJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlnTWFuYWdlci5sb2FkKCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5lbmFibGVOZXN0TG9nZ2luZykge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmxvZygnQ29uZmlndXJhdGlvbiBzZXJ2aWNlIGluaXRpYWxpemVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgRmFpbGVkIHRvIGluaXRpYWxpemUgY29uZmlndXJhdGlvbiBzZXJ2aWNlOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihlcnJvck1lc3NhZ2UpO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhIGNvbmZpZ3VyYXRpb24gdmFsdWUgYnkga2V5IHdpdGggdHlwZSBzYWZldHkuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGtleSAtIFRoZSBjb25maWd1cmF0aW9uIGtleSB0byByZXRyaWV2ZVxyXG4gICAqIEByZXR1cm5zIFRoZSBjb25maWd1cmF0aW9uIHZhbHVlIHdpdGggcHJvcGVyIHR5cGluZ1xyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IGluaXRpYWxpemVkXHJcbiAgICovXHJcbiAgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEspOiBUW0tdIHtcclxuICAgIGlmICghdGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCkpIHtcclxuICAgICAgdGhyb3cgbmV3IENvbmZpZ3VyYXRpb25FcnJvcihcclxuICAgICAgICAnQ29uZmlndXJhdGlvbiBzZXJ2aWNlIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0aWFsaXplKCkgZmlyc3QuJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlci5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSBjb25maWd1cmF0aW9uIHNlcnZpY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc2VydmljZSBpcyByZWFkeSB0byBzZXJ2ZSBjb25maWd1cmF0aW9uIHZhbHVlc1xyXG4gICAqL1xyXG4gIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdNYW5hZ2VyLmlzTG9hZGVkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVzLlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRoZSBjb21wbGV0ZSBjb25maWd1cmF0aW9uIG9iamVjdFxyXG4gICAqIEB0aHJvd3MgQ29uZmlndXJhdGlvbkVycm9yIGlmIGNvbmZpZ3VyYXRpb24gaXMgbm90IGluaXRpYWxpemVkXHJcbiAgICovXHJcbiAgZ2V0QWxsKCk6IFQge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZ01hbmFnZXIuaXNMb2FkZWQoKSkge1xyXG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFxyXG4gICAgICAgICdDb25maWd1cmF0aW9uIHNlcnZpY2Ugbm90IGluaXRpYWxpemVkLiBDYWxsIGluaXRpYWxpemUoKSBmaXJzdC4nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdNYW5hZ2VyLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uIGVudmlyb25tZW50LlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRoZSBBUFBfRU5WIHZhbHVlIG9yICdkZXZlbG9wbWVudCcgYXMgZGVmYXVsdFxyXG4gICAqL1xyXG4gIGdldEFwcEVudigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlci5nZXRBcHBFbnYoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdW5kZXJseWluZyBDb25maWdNYW5hZ2VyIGluc3RhbmNlLlxyXG4gICAqIFVzZWZ1bCBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzIHRoYXQgbmVlZCBkaXJlY3QgYWNjZXNzIHRvIENvbmZpZ01hbmFnZXIgZmVhdHVyZXMuXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVGhlIENvbmZpZ01hbmFnZXIgaW5zdGFuY2UgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3NcclxuICAgKi9cclxuICBnZXRDb25maWdNYW5hZ2VyKCk6IENvbmZpZ01hbmFnZXI8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnTWFuYWdlcjtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,54 @@
1
+ import { ConfigManager } from '@dyanet/config-aws';
2
+ import { buildAwsLoaders } from './build-loaders.js';
3
+ /**
4
+ * Create a configuration factory that loads from AWS sources (Secrets Manager,
5
+ * SSM Parameter Store) and environment variables, for use with the standard
6
+ * `@nestjs/config` `ConfigModule`.
7
+ *
8
+ * The returned function matches `@nestjs/config`'s `ConfigFactory` shape, so drop
9
+ * it straight into the `load` array — no extra module to import, and
10
+ * `@nestjs/config` stays an optional peer dependency of this package.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { ConfigModule } from '@nestjs/config';
15
+ * import { awsConfigLoader } from '@dyanet/nestjs-config-aws';
16
+ *
17
+ * @Module({
18
+ * imports: [
19
+ * ConfigModule.forRoot({
20
+ * isGlobal: true,
21
+ * // Simple `aws` shape — same as the Next.js adapter's getConfig:
22
+ * load: [awsConfigLoader({ aws: { secretName: '/my-app/config' } })],
23
+ * }),
24
+ * ],
25
+ * })
26
+ * export class AppModule {}
27
+ * ```
28
+ *
29
+ * @example Namespaced (compose with `@nestjs/config`'s `registerAs`):
30
+ * ```typescript
31
+ * import { ConfigModule, registerAs } from '@nestjs/config';
32
+ *
33
+ * ConfigModule.forRoot({
34
+ * load: [registerAs('database', awsConfigLoader({ ssmConfig: { paths: { production: '/db' } } }))],
35
+ * });
36
+ * ```
37
+ *
38
+ * @param options Loader options.
39
+ * @returns A factory `() => Promise<T>` suitable for `ConfigModule`'s `load` array.
40
+ */
41
+ export function awsConfigLoader(options = {}) {
42
+ return async () => {
43
+ const manager = new ConfigManager({
44
+ loaders: buildAwsLoaders(options),
45
+ schema: options.schema,
46
+ precedence: options.precedence ?? 'aws-first',
47
+ validateOnLoad: options.validate ?? Boolean(options.schema),
48
+ enableLogging: options.enableLogging ?? false,
49
+ });
50
+ await manager.load();
51
+ return manager.getAll();
52
+ };
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvbmZpZy1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzLWNvbmZpZy1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWtDbEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQ0c7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUM3QixVQUFxQyxFQUFFO0lBRXZDLE9BQU8sS0FBSyxJQUFnQixFQUFFO1FBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksYUFBYSxDQUFJO1lBQ25DLE9BQU8sRUFBRSxlQUFlLENBQUMsT0FBTyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxXQUFXO1lBQzdDLGNBQWMsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQzNELGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLEtBQUs7U0FDOUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ01hbmFnZXIgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xuaW1wb3J0IHR5cGUgeyBQcmVjZWRlbmNlU3RyYXRlZ3kgfSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xuaW1wb3J0IHR5cGUgeyBab2RUeXBlIH0gZnJvbSAnem9kJztcblxuaW1wb3J0IHsgQXdzT3B0aW9ucywgU2VjcmV0c01hbmFnZXJDb25maWcsIFNTTUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYnVpbGRBd3NMb2FkZXJzIH0gZnJvbSAnLi9idWlsZC1sb2FkZXJzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgYXdzQ29uZmlnTG9hZGVyfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NDb25maWdMb2FkZXJPcHRpb25zPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gIC8qKiBab2Qgc2NoZW1hIGZvciB2YWxpZGF0aW9uLiBXaGVuIHByb3ZpZGVkLCB0aGUgbWVyZ2VkIGNvbmZpZyBpcyB2YWxpZGF0ZWQuICovXG4gIHNjaGVtYT86IFpvZFR5cGU8VD47XG4gIC8qKlxuICAgKiBTaW1wbGUgQVdTIG9wdGlvbnMgKGB7IHNlY3JldE5hbWUsIHNzbVByZWZpeCwgcmVnaW9uIH1gKSDigJQgdGhlIHNhbWUgc2hhcGUgYXMgdGhlXG4gICAqIE5leHQuanMgYWRhcHRlcidzIGBnZXRDb25maWdgLiBXaGVuIHNldCwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBncmFudWxhclxuICAgKiBgc2VjcmV0c01hbmFnZXJDb25maWdgIC8gYHNzbUNvbmZpZ2Agb3B0aW9ucy5cbiAgICovXG4gIGF3cz86IEF3c09wdGlvbnM7XG4gIC8qKiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGNvbmZpZ3VyYXRpb24gKGFkdmFuY2VkKS4gT21pdCBvciBzZXQgYGVuYWJsZWQ6IGZhbHNlYCB0byBza2lwLiAqL1xuICBzZWNyZXRzTWFuYWdlckNvbmZpZz86IFNlY3JldHNNYW5hZ2VyQ29uZmlnO1xuICAvKiogQVdTIFNTTSBQYXJhbWV0ZXIgU3RvcmUgY29uZmlndXJhdGlvbiAoYWR2YW5jZWQpLiBPbWl0IG9yIHNldCBgZW5hYmxlZDogZmFsc2VgIHRvIHNraXAuICovXG4gIHNzbUNvbmZpZz86IFNTTUNvbmZpZztcbiAgLyoqIFByZWZpeCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuIGBBUFBfYCkuICovXG4gIGVudlByZWZpeD86IHN0cmluZztcbiAgLyoqXG4gICAqIFByZWNlZGVuY2Ugc3RyYXRlZ3kgZm9yIG1lcmdpbmcgc291cmNlcy5cbiAgICogQGRlZmF1bHQgJ2F3cy1maXJzdCdcbiAgICovXG4gIHByZWNlZGVuY2U/OiBQcmVjZWRlbmNlU3RyYXRlZ3k7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHZhbGlkYXRlIHRoZSBtZXJnZWQgY29uZmlnIGFnYWluc3QgYHNjaGVtYWAuXG4gICAqIEBkZWZhdWx0IHRydWUgd2hlbiBhIHNjaGVtYSBpcyBwcm92aWRlZCwgb3RoZXJ3aXNlIGZhbHNlXG4gICAqL1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG4gIC8qKiBFbmFibGUgdmVyYm9zZSBsb2FkZXIgbG9nZ2luZy4gQGRlZmF1bHQgZmFsc2UgKi9cbiAgZW5hYmxlTG9nZ2luZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgY29uZmlndXJhdGlvbiBmYWN0b3J5IHRoYXQgbG9hZHMgZnJvbSBBV1Mgc291cmNlcyAoU2VjcmV0cyBNYW5hZ2VyLFxuICogU1NNIFBhcmFtZXRlciBTdG9yZSkgYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcywgZm9yIHVzZSB3aXRoIHRoZSBzdGFuZGFyZFxuICogYEBuZXN0anMvY29uZmlnYCBgQ29uZmlnTW9kdWxlYC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgZnVuY3Rpb24gbWF0Y2hlcyBgQG5lc3Rqcy9jb25maWdgJ3MgYENvbmZpZ0ZhY3RvcnlgIHNoYXBlLCBzbyBkcm9wXG4gKiBpdCBzdHJhaWdodCBpbnRvIHRoZSBgbG9hZGAgYXJyYXkg4oCUIG5vIGV4dHJhIG1vZHVsZSB0byBpbXBvcnQsIGFuZFxuICogYEBuZXN0anMvY29uZmlnYCBzdGF5cyBhbiBvcHRpb25hbCBwZWVyIGRlcGVuZGVuY3kgb2YgdGhpcyBwYWNrYWdlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBDb25maWdNb2R1bGUgfSBmcm9tICdAbmVzdGpzL2NvbmZpZyc7XG4gKiBpbXBvcnQgeyBhd3NDb25maWdMb2FkZXIgfSBmcm9tICdAZHlhbmV0L25lc3Rqcy1jb25maWctYXdzJztcbiAqXG4gKiBATW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1xuICogICAgIENvbmZpZ01vZHVsZS5mb3JSb290KHtcbiAqICAgICAgIGlzR2xvYmFsOiB0cnVlLFxuICogICAgICAgLy8gU2ltcGxlIGBhd3NgIHNoYXBlIOKAlCBzYW1lIGFzIHRoZSBOZXh0LmpzIGFkYXB0ZXIncyBnZXRDb25maWc6XG4gKiAgICAgICBsb2FkOiBbYXdzQ29uZmlnTG9hZGVyKHsgYXdzOiB7IHNlY3JldE5hbWU6ICcvbXktYXBwL2NvbmZpZycgfSB9KV0sXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7fVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgTmFtZXNwYWNlZCAoY29tcG9zZSB3aXRoIGBAbmVzdGpzL2NvbmZpZ2AncyBgcmVnaXN0ZXJBc2ApOlxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgQ29uZmlnTW9kdWxlLCByZWdpc3RlckFzIH0gZnJvbSAnQG5lc3Rqcy9jb25maWcnO1xuICpcbiAqIENvbmZpZ01vZHVsZS5mb3JSb290KHtcbiAqICAgbG9hZDogW3JlZ2lzdGVyQXMoJ2RhdGFiYXNlJywgYXdzQ29uZmlnTG9hZGVyKHsgc3NtQ29uZmlnOiB7IHBhdGhzOiB7IHByb2R1Y3Rpb246ICcvZGInIH0gfSB9KSldLFxuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyBMb2FkZXIgb3B0aW9ucy5cbiAqIEByZXR1cm5zIEEgZmFjdG9yeSBgKCkgPT4gUHJvbWlzZTxUPmAgc3VpdGFibGUgZm9yIGBDb25maWdNb2R1bGVgJ3MgYGxvYWRgIGFycmF5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXdzQ29uZmlnTG9hZGVyPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgb3B0aW9uczogQXdzQ29uZmlnTG9hZGVyT3B0aW9uczxUPiA9IHt9LFxuKTogKCkgPT4gUHJvbWlzZTxUPiB7XG4gIHJldHVybiBhc3luYyAoKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgY29uc3QgbWFuYWdlciA9IG5ldyBDb25maWdNYW5hZ2VyPFQ+KHtcbiAgICAgIGxvYWRlcnM6IGJ1aWxkQXdzTG9hZGVycyhvcHRpb25zKSxcbiAgICAgIHNjaGVtYTogb3B0aW9ucy5zY2hlbWEsXG4gICAgICBwcmVjZWRlbmNlOiBvcHRpb25zLnByZWNlZGVuY2UgPz8gJ2F3cy1maXJzdCcsXG4gICAgICB2YWxpZGF0ZU9uTG9hZDogb3B0aW9ucy52YWxpZGF0ZSA/PyBCb29sZWFuKG9wdGlvbnMuc2NoZW1hKSxcbiAgICAgIGVuYWJsZUxvZ2dpbmc6IG9wdGlvbnMuZW5hYmxlTG9nZ2luZyA/PyBmYWxzZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IG1hbmFnZXIubG9hZCgpO1xuICAgIHJldHVybiBtYW5hZ2VyLmdldEFsbCgpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { EnvironmentLoader, SecretsManagerLoader, SSMParameterStoreLoader, } from '@dyanet/config-aws';
2
+ /**
3
+ * Map an optional `{ development, test, production }` path config to the
4
+ * environment mapping expected by the AWS loaders, falling back to sensible
5
+ * defaults. Returns `undefined` when no paths are supplied so the loader uses
6
+ * its own defaults.
7
+ */
8
+ function toEnvironmentMapping(paths) {
9
+ if (!paths) {
10
+ return undefined;
11
+ }
12
+ return {
13
+ development: paths.development || 'dev',
14
+ test: paths.test || 'test',
15
+ production: paths.production || 'production',
16
+ };
17
+ }
18
+ /**
19
+ * Build the configuration loader chain from AWS source options.
20
+ *
21
+ * Order (lowest precedence first): environment variables, then Secrets Manager,
22
+ * then SSM Parameter Store. The AWS loaders skip themselves automatically when
23
+ * unavailable (e.g. in a local environment or without credentials).
24
+ */
25
+ export function buildAwsLoaders(options) {
26
+ const loaders = [];
27
+ // Always add environment loader first (lowest precedence)
28
+ loaders.push(new EnvironmentLoader({ prefix: options.envPrefix }));
29
+ // Simple, Next.js-style `aws` option: add exactly the named sources.
30
+ if (options.aws) {
31
+ const { secretName, ssmPrefix, region } = options.aws;
32
+ if (secretName) {
33
+ loaders.push(new SecretsManagerLoader({ secretName, region }));
34
+ }
35
+ if (ssmPrefix) {
36
+ loaders.push(new SSMParameterStoreLoader({ parameterPath: ssmPrefix, region }));
37
+ }
38
+ return loaders;
39
+ }
40
+ if (options.secretsManagerConfig?.enabled !== false) {
41
+ loaders.push(new SecretsManagerLoader({
42
+ region: options.secretsManagerConfig?.region,
43
+ environmentMapping: toEnvironmentMapping(options.secretsManagerConfig?.paths),
44
+ }));
45
+ }
46
+ if (options.ssmConfig?.enabled !== false) {
47
+ loaders.push(new SSMParameterStoreLoader({
48
+ region: options.ssmConfig?.region,
49
+ withDecryption: options.ssmConfig?.decrypt,
50
+ environmentMapping: toEnvironmentMapping(options.ssmConfig?.paths),
51
+ }));
52
+ }
53
+ return loaders;
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtbG9hZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC1sb2FkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsb0JBQW9CLEVBQ3BCLHVCQUF1QixHQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBd0I1Qjs7Ozs7R0FLRztBQUNILFNBQVMsb0JBQW9CLENBQzNCLEtBQW9FO0lBRXBFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxPQUFPO1FBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSztRQUN2QyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNO1FBQzFCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLFlBQVk7S0FDN0MsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQXlCO0lBQ3ZELE1BQU0sT0FBTyxHQUFtQixFQUFFLENBQUM7SUFFbkMsMERBQTBEO0lBQzFELE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRW5FLHFFQUFxRTtJQUNyRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ3RELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLHVCQUF1QixDQUFDLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDcEQsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLG9CQUFvQixDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxPQUFPLENBQUMsb0JBQW9CLEVBQUUsTUFBTTtZQUM1QyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxDQUFDO1NBQzlFLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDekMsT0FBTyxDQUFDLElBQUksQ0FDVixJQUFJLHVCQUF1QixDQUFDO1lBQzFCLE1BQU0sRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU07WUFDakMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTztZQUMxQyxrQkFBa0IsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQztTQUNuRSxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29uZmlnTG9hZGVyLFxuICBFbnZpcm9ubWVudExvYWRlcixcbiAgU2VjcmV0c01hbmFnZXJMb2FkZXIsXG4gIFNTTVBhcmFtZXRlclN0b3JlTG9hZGVyLFxufSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xuXG5pbXBvcnQgeyBBd3NPcHRpb25zLCBTZWNyZXRzTWFuYWdlckNvbmZpZywgU1NNQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21vZHVsZS1vcHRpb25zLmludGVyZmFjZSc7XG5cbi8qKlxuICogVGhlIEFXUyBjb25maWd1cmF0aW9uIHNvdXJjZXMgdXNlZCB0byBidWlsZCBhIHNldCBvZiBsb2FkZXJzLlxuICogU2hhcmVkIGJ5IHtAbGluayBDb25maWdNb2R1bGV9IGFuZCB7QGxpbmsgYXdzQ29uZmlnTG9hZGVyfSBzbyBib3RoIHByb2R1Y2UgYW5cbiAqIGlkZW50aWNhbCBsb2FkZXIgY2hhaW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzTG9hZGVyU291cmNlcyB7XG4gIC8qKiBQcmVmaXggZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZS5nLiBgQVBQX2ApLiAqL1xuICBlbnZQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTaW1wbGUgQVdTIG9wdGlvbnMgKGB7IHNlY3JldE5hbWUsIHNzbVByZWZpeCwgcmVnaW9uIH1gKSDigJQgbWlycm9ycyB0aGUgTmV4dC5qc1xuICAgKiBhZGFwdGVyLiBXaGVuIHNldCwgZXhhY3RseSB0aGUgbmFtZWQgc291cmNlcyBhcmUgYWRkZWQgYW5kIHRoZSBncmFudWxhclxuICAgKiBgc2VjcmV0c01hbmFnZXJDb25maWdgIC8gYHNzbUNvbmZpZ2Agb3B0aW9ucyBiZWxvdyBhcmUgaWdub3JlZC5cbiAgICovXG4gIGF3cz86IEF3c09wdGlvbnM7XG4gIC8qKiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGNvbmZpZ3VyYXRpb24gKGFkdmFuY2VkKS4gT21pdCBvciBzZXQgYGVuYWJsZWQ6IGZhbHNlYCB0byBza2lwLiAqL1xuICBzZWNyZXRzTWFuYWdlckNvbmZpZz86IFNlY3JldHNNYW5hZ2VyQ29uZmlnO1xuICAvKiogQVdTIFNTTSBQYXJhbWV0ZXIgU3RvcmUgY29uZmlndXJhdGlvbiAoYWR2YW5jZWQpLiBPbWl0IG9yIHNldCBgZW5hYmxlZDogZmFsc2VgIHRvIHNraXAuICovXG4gIHNzbUNvbmZpZz86IFNTTUNvbmZpZztcbn1cblxuLyoqXG4gKiBNYXAgYW4gb3B0aW9uYWwgYHsgZGV2ZWxvcG1lbnQsIHRlc3QsIHByb2R1Y3Rpb24gfWAgcGF0aCBjb25maWcgdG8gdGhlXG4gKiBlbnZpcm9ubWVudCBtYXBwaW5nIGV4cGVjdGVkIGJ5IHRoZSBBV1MgbG9hZGVycywgZmFsbGluZyBiYWNrIHRvIHNlbnNpYmxlXG4gKiBkZWZhdWx0cy4gUmV0dXJucyBgdW5kZWZpbmVkYCB3aGVuIG5vIHBhdGhzIGFyZSBzdXBwbGllZCBzbyB0aGUgbG9hZGVyIHVzZXNcbiAqIGl0cyBvd24gZGVmYXVsdHMuXG4gKi9cbmZ1bmN0aW9uIHRvRW52aXJvbm1lbnRNYXBwaW5nKFxuICBwYXRocz86IHsgZGV2ZWxvcG1lbnQ/OiBzdHJpbmc7IHRlc3Q/OiBzdHJpbmc7IHByb2R1Y3Rpb24/OiBzdHJpbmcgfSxcbik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCB1bmRlZmluZWQge1xuICBpZiAoIXBhdGhzKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICByZXR1cm4ge1xuICAgIGRldmVsb3BtZW50OiBwYXRocy5kZXZlbG9wbWVudCB8fCAnZGV2JyxcbiAgICB0ZXN0OiBwYXRocy50ZXN0IHx8ICd0ZXN0JyxcbiAgICBwcm9kdWN0aW9uOiBwYXRocy5wcm9kdWN0aW9uIHx8ICdwcm9kdWN0aW9uJyxcbiAgfTtcbn1cblxuLyoqXG4gKiBCdWlsZCB0aGUgY29uZmlndXJhdGlvbiBsb2FkZXIgY2hhaW4gZnJvbSBBV1Mgc291cmNlIG9wdGlvbnMuXG4gKlxuICogT3JkZXIgKGxvd2VzdCBwcmVjZWRlbmNlIGZpcnN0KTogZW52aXJvbm1lbnQgdmFyaWFibGVzLCB0aGVuIFNlY3JldHMgTWFuYWdlcixcbiAqIHRoZW4gU1NNIFBhcmFtZXRlciBTdG9yZS4gVGhlIEFXUyBsb2FkZXJzIHNraXAgdGhlbXNlbHZlcyBhdXRvbWF0aWNhbGx5IHdoZW5cbiAqIHVuYXZhaWxhYmxlIChlLmcuIGluIGEgbG9jYWwgZW52aXJvbm1lbnQgb3Igd2l0aG91dCBjcmVkZW50aWFscykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEF3c0xvYWRlcnMob3B0aW9uczogQXdzTG9hZGVyU291cmNlcyk6IENvbmZpZ0xvYWRlcltdIHtcbiAgY29uc3QgbG9hZGVyczogQ29uZmlnTG9hZGVyW10gPSBbXTtcblxuICAvLyBBbHdheXMgYWRkIGVudmlyb25tZW50IGxvYWRlciBmaXJzdCAobG93ZXN0IHByZWNlZGVuY2UpXG4gIGxvYWRlcnMucHVzaChuZXcgRW52aXJvbm1lbnRMb2FkZXIoeyBwcmVmaXg6IG9wdGlvbnMuZW52UHJlZml4IH0pKTtcblxuICAvLyBTaW1wbGUsIE5leHQuanMtc3R5bGUgYGF3c2Agb3B0aW9uOiBhZGQgZXhhY3RseSB0aGUgbmFtZWQgc291cmNlcy5cbiAgaWYgKG9wdGlvbnMuYXdzKSB7XG4gICAgY29uc3QgeyBzZWNyZXROYW1lLCBzc21QcmVmaXgsIHJlZ2lvbiB9ID0gb3B0aW9ucy5hd3M7XG4gICAgaWYgKHNlY3JldE5hbWUpIHtcbiAgICAgIGxvYWRlcnMucHVzaChuZXcgU2VjcmV0c01hbmFnZXJMb2FkZXIoeyBzZWNyZXROYW1lLCByZWdpb24gfSkpO1xuICAgIH1cbiAgICBpZiAoc3NtUHJlZml4KSB7XG4gICAgICBsb2FkZXJzLnB1c2gobmV3IFNTTVBhcmFtZXRlclN0b3JlTG9hZGVyKHsgcGFyYW1ldGVyUGF0aDogc3NtUHJlZml4LCByZWdpb24gfSkpO1xuICAgIH1cbiAgICByZXR1cm4gbG9hZGVycztcbiAgfVxuXG4gIGlmIChvcHRpb25zLnNlY3JldHNNYW5hZ2VyQ29uZmlnPy5lbmFibGVkICE9PSBmYWxzZSkge1xuICAgIGxvYWRlcnMucHVzaChcbiAgICAgIG5ldyBTZWNyZXRzTWFuYWdlckxvYWRlcih7XG4gICAgICAgIHJlZ2lvbjogb3B0aW9ucy5zZWNyZXRzTWFuYWdlckNvbmZpZz8ucmVnaW9uLFxuICAgICAgICBlbnZpcm9ubWVudE1hcHBpbmc6IHRvRW52aXJvbm1lbnRNYXBwaW5nKG9wdGlvbnMuc2VjcmV0c01hbmFnZXJDb25maWc/LnBhdGhzKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBpZiAob3B0aW9ucy5zc21Db25maWc/LmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgbG9hZGVycy5wdXNoKFxuICAgICAgbmV3IFNTTVBhcmFtZXRlclN0b3JlTG9hZGVyKHtcbiAgICAgICAgcmVnaW9uOiBvcHRpb25zLnNzbUNvbmZpZz8ucmVnaW9uLFxuICAgICAgICB3aXRoRGVjcnlwdGlvbjogb3B0aW9ucy5zc21Db25maWc/LmRlY3J5cHQsXG4gICAgICAgIGVudmlyb25tZW50TWFwcGluZzogdG9FbnZpcm9ubWVudE1hcHBpbmcob3B0aW9ucy5zc21Db25maWc/LnBhdGhzKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gbG9hZGVycztcbn1cbiJdfQ==
@@ -0,0 +1,135 @@
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 ConfigModule_1;
8
+ import { Global, Module } from '@nestjs/common';
9
+ import { ConfigService } from './interfaces/config-service.interface.js';
10
+ import { ConfigServiceImpl } from './services/config.service.js';
11
+ import { buildAwsLoaders } from './build-loaders.js';
12
+ /**
13
+ * Token for injecting module options
14
+ */
15
+ export const NEST_CONFIG_AWS_OPTIONS = 'NEST_CONFIG_AWS_OPTIONS';
16
+ /**
17
+ * NestJS module for AWS-integrated configuration management.
18
+ * Provides global configuration service with support for environment variables,
19
+ * AWS Secrets Manager, and AWS Systems Manager Parameter Store.
20
+ */
21
+ let ConfigModule = ConfigModule_1 = class ConfigModule {
22
+ /**
23
+ * Create a synchronous configuration module with provided options.
24
+ *
25
+ * @param options - Configuration options for the module
26
+ * @returns Dynamic module configuration
27
+ */
28
+ static forRoot(options = {}) {
29
+ const configServiceProvider = this.createConfigServiceProvider(options);
30
+ return {
31
+ module: ConfigModule_1,
32
+ providers: [
33
+ {
34
+ provide: NEST_CONFIG_AWS_OPTIONS,
35
+ useValue: options,
36
+ },
37
+ configServiceProvider,
38
+ ],
39
+ exports: [ConfigService],
40
+ global: true,
41
+ };
42
+ }
43
+ /**
44
+ * Create an asynchronous configuration module with factory-based options.
45
+ * Useful when configuration options depend on other services or async operations.
46
+ *
47
+ * @param options - Async configuration options with factory function
48
+ * @returns Dynamic module configuration
49
+ */
50
+ static forRootAsync(options) {
51
+ const asyncProviders = this.createAsyncProviders(options);
52
+ return {
53
+ module: ConfigModule_1,
54
+ imports: options.imports || [],
55
+ providers: [
56
+ ...asyncProviders,
57
+ this.createAsyncConfigServiceProvider(),
58
+ ],
59
+ exports: [ConfigService],
60
+ global: true,
61
+ };
62
+ }
63
+ /**
64
+ * Create the ConfigService provider for synchronous module registration.
65
+ */
66
+ static createConfigServiceProvider(options) {
67
+ return {
68
+ provide: ConfigService,
69
+ useFactory: async () => {
70
+ // Create loaders based on configuration
71
+ const loaders = buildAwsLoaders(options);
72
+ // Create ConfigService options. No schema => values are returned as-is
73
+ // (ConfigManager only validates when a schema is provided).
74
+ const serviceOptions = {
75
+ schema: options.schema,
76
+ loaders,
77
+ validateOnLoad: !options.ignoreValidationErrors,
78
+ enableLogging: true,
79
+ };
80
+ // Create and initialize the service
81
+ const configService = new ConfigServiceImpl(serviceOptions);
82
+ // Initialize configuration loading if not in sync mode
83
+ if (!options.loadSync) {
84
+ await configService.initialize();
85
+ }
86
+ return configService;
87
+ },
88
+ };
89
+ }
90
+ /**
91
+ * Create providers for asynchronous module registration.
92
+ */
93
+ static createAsyncProviders(options) {
94
+ return [
95
+ {
96
+ provide: NEST_CONFIG_AWS_OPTIONS,
97
+ useFactory: options.useFactory,
98
+ inject: options.inject || [],
99
+ },
100
+ ];
101
+ }
102
+ /**
103
+ * Create the ConfigService provider for asynchronous module registration.
104
+ */
105
+ static createAsyncConfigServiceProvider() {
106
+ return {
107
+ provide: ConfigService,
108
+ useFactory: async (options) => {
109
+ // Create loaders based on configuration
110
+ const loaders = buildAwsLoaders(options);
111
+ // Create ConfigService options. No schema => values are returned as-is.
112
+ const serviceOptions = {
113
+ schema: options.schema,
114
+ loaders,
115
+ validateOnLoad: !options.ignoreValidationErrors,
116
+ enableLogging: true,
117
+ };
118
+ // Create and initialize the service
119
+ const configService = new ConfigServiceImpl(serviceOptions);
120
+ // Initialize configuration loading if not in sync mode
121
+ if (!options.loadSync) {
122
+ await configService.initialize();
123
+ }
124
+ return configService;
125
+ },
126
+ inject: [NEST_CONFIG_AWS_OPTIONS],
127
+ };
128
+ }
129
+ };
130
+ ConfigModule = ConfigModule_1 = __decorate([
131
+ Global(),
132
+ Module({})
133
+ ], ConfigModule);
134
+ export { ConfigModule };
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBRSxNQUFNLEVBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBRWpFOzs7O0dBSUc7QUFHSSxJQUFNLFlBQVksb0JBQWxCLE1BQU0sWUFBWTtJQUN2Qjs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1osVUFBeUMsRUFBRTtRQUUzQyxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RSxPQUFPO1lBQ0wsTUFBTSxFQUFFLGNBQVk7WUFDcEIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSx1QkFBdUI7b0JBQ2hDLFFBQVEsRUFBRSxPQUFPO2lCQUNsQjtnQkFDRCxxQkFBcUI7YUFDdEI7WUFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDeEIsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQ2pCLE9BQTJDO1FBRTNDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxRCxPQUFPO1lBQ0wsTUFBTSxFQUFFLGNBQVk7WUFDcEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLElBQUksRUFBRTtZQUM5QixTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxjQUFjO2dCQUNqQixJQUFJLENBQUMsZ0NBQWdDLEVBQUU7YUFDeEM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFDeEIsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTSxDQUFDLDJCQUEyQixDQUN4QyxPQUFzQztRQUV0QyxPQUFPO1lBQ0wsT0FBTyxFQUFFLGFBQWE7WUFDdEIsVUFBVSxFQUFFLEtBQUssSUFBK0IsRUFBRTtnQkFDaEQsd0NBQXdDO2dCQUN4QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRXpDLHVFQUF1RTtnQkFDdkUsNERBQTREO2dCQUM1RCxNQUFNLGNBQWMsR0FBNEI7b0JBQzlDLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtvQkFDdEIsT0FBTztvQkFDUCxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCO29CQUMvQyxhQUFhLEVBQUUsSUFBSTtpQkFDcEIsQ0FBQztnQkFFRixvQ0FBb0M7Z0JBQ3BDLE1BQU0sYUFBYSxHQUFHLElBQUksaUJBQWlCLENBQUksY0FBYyxDQUFDLENBQUM7Z0JBRS9ELHVEQUF1RDtnQkFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEIsTUFBTSxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25DLENBQUM7Z0JBRUQsT0FBTyxhQUFpQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTSxDQUFDLG9CQUFvQixDQUNqQyxPQUEyQztRQUUzQyxPQUFPO1lBQ0w7Z0JBQ0UsT0FBTyxFQUFFLHVCQUF1QjtnQkFDaEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFO2FBQzdCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyxnQ0FBZ0M7UUFDN0MsT0FBTztZQUNMLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBbUMsRUFBMEIsRUFBRTtnQkFDaEYsd0NBQXdDO2dCQUN4QyxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRXpDLHdFQUF3RTtnQkFDeEUsTUFBTSxjQUFjLEdBQXlCO29CQUMzQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07b0JBQ3RCLE9BQU87b0JBQ1AsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLHNCQUFzQjtvQkFDL0MsYUFBYSxFQUFFLElBQUk7aUJBQ3BCLENBQUM7Z0JBRUYsb0NBQW9DO2dCQUNwQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUU1RCx1REFBdUQ7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxDQUFDO2dCQUVELE9BQU8sYUFBOEIsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsTUFBTSxFQUFFLENBQUMsdUJBQXVCLENBQUM7U0FDbEMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBbElZLFlBQVk7SUFGeEIsTUFBTSxFQUFFO0lBQ1IsTUFBTSxDQUFDLEVBQUUsQ0FBQztHQUNFLFlBQVksQ0FrSXhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHluYW1pY01vZHVsZSwgR2xvYmFsLCBNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQG5lc3Rqcy9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9jb25maWctc2VydmljZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9ucywgTmVzdENvbmZpZ0F3c01vZHVsZUFzeW5jT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlSW1wbCwgQ29uZmlnU2VydmljZU9wdGlvbnMgfSBmcm9tICcuL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYnVpbGRBd3NMb2FkZXJzIH0gZnJvbSAnLi9idWlsZC1sb2FkZXJzJztcclxuXHJcbi8qKlxyXG4gKiBUb2tlbiBmb3IgaW5qZWN0aW5nIG1vZHVsZSBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTkVTVF9DT05GSUdfQVdTX09QVElPTlMgPSAnTkVTVF9DT05GSUdfQVdTX09QVElPTlMnO1xyXG5cclxuLyoqXHJcbiAqIE5lc3RKUyBtb2R1bGUgZm9yIEFXUy1pbnRlZ3JhdGVkIGNvbmZpZ3VyYXRpb24gbWFuYWdlbWVudC5cclxuICogUHJvdmlkZXMgZ2xvYmFsIGNvbmZpZ3VyYXRpb24gc2VydmljZSB3aXRoIHN1cHBvcnQgZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyxcclxuICogQVdTIFNlY3JldHMgTWFuYWdlciwgYW5kIEFXUyBTeXN0ZW1zIE1hbmFnZXIgUGFyYW1ldGVyIFN0b3JlLlxyXG4gKi9cclxuQEdsb2JhbCgpXHJcbkBNb2R1bGUoe30pXHJcbmV4cG9ydCBjbGFzcyBDb25maWdNb2R1bGUge1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIHN5bmNocm9ub3VzIGNvbmZpZ3VyYXRpb24gbW9kdWxlIHdpdGggcHJvdmlkZWQgb3B0aW9ucy5cclxuICAgKiBcclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1vZHVsZVxyXG4gICAqIEByZXR1cm5zIER5bmFtaWMgbW9kdWxlIGNvbmZpZ3VyYXRpb25cclxuICAgKi9cclxuICBzdGF0aWMgZm9yUm9vdDxUID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxyXG4gICAgb3B0aW9uczogTmVzdENvbmZpZ0F3c01vZHVsZU9wdGlvbnM8VD4gPSB7fVxyXG4gICk6IER5bmFtaWNNb2R1bGUge1xyXG4gICAgY29uc3QgY29uZmlnU2VydmljZVByb3ZpZGVyID0gdGhpcy5jcmVhdGVDb25maWdTZXJ2aWNlUHJvdmlkZXIob3B0aW9ucyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbW9kdWxlOiBDb25maWdNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IE5FU1RfQ09ORklHX0FXU19PUFRJT05TLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb25maWdTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgICAgIF0sXHJcbiAgICAgIGV4cG9ydHM6IFtDb25maWdTZXJ2aWNlXSxcclxuICAgICAgZ2xvYmFsOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBhc3luY2hyb25vdXMgY29uZmlndXJhdGlvbiBtb2R1bGUgd2l0aCBmYWN0b3J5LWJhc2VkIG9wdGlvbnMuXHJcbiAgICogVXNlZnVsIHdoZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGRlcGVuZCBvbiBvdGhlciBzZXJ2aWNlcyBvciBhc3luYyBvcGVyYXRpb25zLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQXN5bmMgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpdGggZmFjdG9yeSBmdW5jdGlvblxyXG4gICAqIEByZXR1cm5zIER5bmFtaWMgbW9kdWxlIGNvbmZpZ3VyYXRpb25cclxuICAgKi9cclxuICBzdGF0aWMgZm9yUm9vdEFzeW5jPFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXHJcbiAgICBvcHRpb25zOiBOZXN0Q29uZmlnQXdzTW9kdWxlQXN5bmNPcHRpb25zPFQ+XHJcbiAgKTogRHluYW1pY01vZHVsZSB7XHJcbiAgICBjb25zdCBhc3luY1Byb3ZpZGVycyA9IHRoaXMuY3JlYXRlQXN5bmNQcm92aWRlcnMob3B0aW9ucyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbW9kdWxlOiBDb25maWdNb2R1bGUsXHJcbiAgICAgIGltcG9ydHM6IG9wdGlvbnMuaW1wb3J0cyB8fCBbXSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgLi4uYXN5bmNQcm92aWRlcnMsXHJcbiAgICAgICAgdGhpcy5jcmVhdGVBc3luY0NvbmZpZ1NlcnZpY2VQcm92aWRlcigpLFxyXG4gICAgICBdLFxyXG4gICAgICBleHBvcnRzOiBbQ29uZmlnU2VydmljZV0sXHJcbiAgICAgIGdsb2JhbDogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIENvbmZpZ1NlcnZpY2UgcHJvdmlkZXIgZm9yIHN5bmNocm9ub3VzIG1vZHVsZSByZWdpc3RyYXRpb24uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY3JlYXRlQ29uZmlnU2VydmljZVByb3ZpZGVyPFQ+KFxyXG4gICAgb3B0aW9uczogTmVzdENvbmZpZ0F3c01vZHVsZU9wdGlvbnM8VD5cclxuICApOiBQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBwcm92aWRlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgICB1c2VGYWN0b3J5OiBhc3luYyAoKTogUHJvbWlzZTxDb25maWdTZXJ2aWNlPFQ+PiA9PiB7XHJcbiAgICAgICAgLy8gQ3JlYXRlIGxvYWRlcnMgYmFzZWQgb24gY29uZmlndXJhdGlvblxyXG4gICAgICAgIGNvbnN0IGxvYWRlcnMgPSBidWlsZEF3c0xvYWRlcnMob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSBDb25maWdTZXJ2aWNlIG9wdGlvbnMuIE5vIHNjaGVtYSA9PiB2YWx1ZXMgYXJlIHJldHVybmVkIGFzLWlzXHJcbiAgICAgICAgLy8gKENvbmZpZ01hbmFnZXIgb25seSB2YWxpZGF0ZXMgd2hlbiBhIHNjaGVtYSBpcyBwcm92aWRlZCkuXHJcbiAgICAgICAgY29uc3Qgc2VydmljZU9wdGlvbnM6IENvbmZpZ1NlcnZpY2VPcHRpb25zPFQ+ID0ge1xyXG4gICAgICAgICAgc2NoZW1hOiBvcHRpb25zLnNjaGVtYSxcclxuICAgICAgICAgIGxvYWRlcnMsXHJcbiAgICAgICAgICB2YWxpZGF0ZU9uTG9hZDogIW9wdGlvbnMuaWdub3JlVmFsaWRhdGlvbkVycm9ycyxcclxuICAgICAgICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRoZSBzZXJ2aWNlXHJcbiAgICAgICAgY29uc3QgY29uZmlnU2VydmljZSA9IG5ldyBDb25maWdTZXJ2aWNlSW1wbDxUPihzZXJ2aWNlT3B0aW9ucyk7XHJcblxyXG4gICAgICAgIC8vIEluaXRpYWxpemUgY29uZmlndXJhdGlvbiBsb2FkaW5nIGlmIG5vdCBpbiBzeW5jIG1vZGVcclxuICAgICAgICBpZiAoIW9wdGlvbnMubG9hZFN5bmMpIHtcclxuICAgICAgICAgIGF3YWl0IGNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbmZpZ1NlcnZpY2UgYXMgQ29uZmlnU2VydmljZTxUPjtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgcHJvdmlkZXJzIGZvciBhc3luY2hyb25vdXMgbW9kdWxlIHJlZ2lzdHJhdGlvbi5cclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVBc3luY1Byb3ZpZGVyczxUPihcclxuICAgIG9wdGlvbnM6IE5lc3RDb25maWdBd3NNb2R1bGVBc3luY09wdGlvbnM8VD5cclxuICApOiBQcm92aWRlcltdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBORVNUX0NPTkZJR19BV1NfT1BUSU9OUyxcclxuICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zLnVzZUZhY3RvcnksXHJcbiAgICAgICAgaW5qZWN0OiBvcHRpb25zLmluamVjdCB8fCBbXSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIENvbmZpZ1NlcnZpY2UgcHJvdmlkZXIgZm9yIGFzeW5jaHJvbm91cyBtb2R1bGUgcmVnaXN0cmF0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUFzeW5jQ29uZmlnU2VydmljZVByb3ZpZGVyKCk6IFByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb3ZpZGU6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IGFzeW5jIChvcHRpb25zOiBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9ucyk6IFByb21pc2U8Q29uZmlnU2VydmljZT4gPT4ge1xyXG4gICAgICAgIC8vIENyZWF0ZSBsb2FkZXJzIGJhc2VkIG9uIGNvbmZpZ3VyYXRpb25cclxuICAgICAgICBjb25zdCBsb2FkZXJzID0gYnVpbGRBd3NMb2FkZXJzKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgQ29uZmlnU2VydmljZSBvcHRpb25zLiBObyBzY2hlbWEgPT4gdmFsdWVzIGFyZSByZXR1cm5lZCBhcy1pcy5cclxuICAgICAgICBjb25zdCBzZXJ2aWNlT3B0aW9uczogQ29uZmlnU2VydmljZU9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBzY2hlbWE6IG9wdGlvbnMuc2NoZW1hLFxyXG4gICAgICAgICAgbG9hZGVycyxcclxuICAgICAgICAgIHZhbGlkYXRlT25Mb2FkOiAhb3B0aW9ucy5pZ25vcmVWYWxpZGF0aW9uRXJyb3JzLFxyXG4gICAgICAgICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIHNlcnZpY2VcclxuICAgICAgICBjb25zdCBjb25maWdTZXJ2aWNlID0gbmV3IENvbmZpZ1NlcnZpY2VJbXBsKHNlcnZpY2VPcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb25maWd1cmF0aW9uIGxvYWRpbmcgaWYgbm90IGluIHN5bmMgbW9kZVxyXG4gICAgICAgIGlmICghb3B0aW9ucy5sb2FkU3luYykge1xyXG4gICAgICAgICAgYXdhaXQgY29uZmlnU2VydmljZS5pbml0aWFsaXplKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29uZmlnU2VydmljZSBhcyBDb25maWdTZXJ2aWNlO1xyXG4gICAgICB9LFxyXG4gICAgICBpbmplY3Q6IFtORVNUX0NPTkZJR19BV1NfT1BUSU9OU10sXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,18 @@
1
+ // Re-export all public types from @dyanet/config-aws core package
2
+ export {
3
+ // Loaders
4
+ EnvironmentLoader, EnvFileLoader, S3Loader, SecretsManagerLoader, SSMParameterStoreLoader,
5
+ // ConfigManager
6
+ ConfigManager,
7
+ // Error classes
8
+ ConfigurationError, ValidationError, AWSServiceError, ConfigurationLoadError, MissingConfigurationError,
9
+ // Utilities
10
+ ConfigValidationUtil, EnvFileParser, } from '@dyanet/config-aws';
11
+ // NestJS dependency-injection module + service
12
+ export * from './config.module.js';
13
+ export * from './interfaces/index.js';
14
+ export * from './services/config.service.js';
15
+ // @nestjs/config integration: a single factory helper for the `load` array
16
+ export { awsConfigLoader } from './aws-config-loader.js';
17
+ export { buildAwsLoaders } from './build-loaders.js';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFO0FBQ2xFLE9BQU87QUFDTCxVQUFVO0FBQ1YsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLHVCQUF1QjtBQUV2QixnQkFBZ0I7QUFDaEIsYUFBYTtBQUViLGdCQUFnQjtBQUNoQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIseUJBQXlCO0FBRXpCLFlBQVk7QUFDWixvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFzQjVCLCtDQUErQztBQUMvQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsMkVBQTJFO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZS1leHBvcnQgYWxsIHB1YmxpYyB0eXBlcyBmcm9tIEBkeWFuZXQvY29uZmlnLWF3cyBjb3JlIHBhY2thZ2VcbmV4cG9ydCB7XG4gIC8vIExvYWRlcnNcbiAgRW52aXJvbm1lbnRMb2FkZXIsXG4gIEVudkZpbGVMb2FkZXIsXG4gIFMzTG9hZGVyLFxuICBTZWNyZXRzTWFuYWdlckxvYWRlcixcbiAgU1NNUGFyYW1ldGVyU3RvcmVMb2FkZXIsXG5cbiAgLy8gQ29uZmlnTWFuYWdlclxuICBDb25maWdNYW5hZ2VyLFxuXG4gIC8vIEVycm9yIGNsYXNzZXNcbiAgQ29uZmlndXJhdGlvbkVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIEFXU1NlcnZpY2VFcnJvcixcbiAgQ29uZmlndXJhdGlvbkxvYWRFcnJvcixcbiAgTWlzc2luZ0NvbmZpZ3VyYXRpb25FcnJvcixcblxuICAvLyBVdGlsaXRpZXNcbiAgQ29uZmlnVmFsaWRhdGlvblV0aWwsXG4gIEVudkZpbGVQYXJzZXIsXG59IGZyb20gJ0BkeWFuZXQvY29uZmlnLWF3cyc7XG5cbi8vIFJlLWV4cG9ydCB0eXBlcyBmcm9tIEBkeWFuZXQvY29uZmlnLWF3c1xuZXhwb3J0IHR5cGUge1xuICAvLyBDb3JlIGludGVyZmFjZXNcbiAgQ29uZmlnTG9hZGVyLFxuICBDb25maWdNYW5hZ2VyT3B0aW9ucyxcbiAgTG9hZGVyUHJlY2VkZW5jZSxcbiAgVmVyYm9zZU9wdGlvbnMsXG4gIFByZWNlZGVuY2VTdHJhdGVneSxcbiAgQ29uZmlnTG9hZFJlc3VsdCxcbiAgQ29uZmlnU291cmNlSW5mbyxcbiAgTG9nZ2VyLFxuXG4gIC8vIExvYWRlciBjb25maWdzXG4gIEVudmlyb25tZW50TG9hZGVyQ29uZmlnLFxuICBFbnZGaWxlTG9hZGVyQ29uZmlnLFxuICBTM0xvYWRlckNvbmZpZyxcbiAgU2VjcmV0c01hbmFnZXJMb2FkZXJDb25maWcsXG4gIFNTTVBhcmFtZXRlclN0b3JlTG9hZGVyQ29uZmlnLFxufSBmcm9tICdAZHlhbmV0L2NvbmZpZy1hd3MnO1xuXG4vLyBOZXN0SlMgZGVwZW5kZW5jeS1pbmplY3Rpb24gbW9kdWxlICsgc2VydmljZVxuZXhwb3J0ICogZnJvbSAnLi9jb25maWcubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcblxuLy8gQG5lc3Rqcy9jb25maWcgaW50ZWdyYXRpb246IGEgc2luZ2xlIGZhY3RvcnkgaGVscGVyIGZvciB0aGUgYGxvYWRgIGFycmF5XG5leHBvcnQgeyBhd3NDb25maWdMb2FkZXIgfSBmcm9tICcuL2F3cy1jb25maWctbG9hZGVyJztcbmV4cG9ydCB0eXBlIHsgQXdzQ29uZmlnTG9hZGVyT3B0aW9ucyB9IGZyb20gJy4vYXdzLWNvbmZpZy1sb2FkZXInO1xuZXhwb3J0IHsgYnVpbGRBd3NMb2FkZXJzIH0gZnJvbSAnLi9idWlsZC1sb2FkZXJzJztcbmV4cG9ydCB0eXBlIHsgQXdzTG9hZGVyU291cmNlcyB9IGZyb20gJy4vYnVpbGQtbG9hZGVycyc7XG4iXX0=
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Abstract ConfigService interface for dependency injection.
3
+ * Provides type-safe access to configuration values with generic type support.
4
+ */
5
+ export class ConfigService {
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvY29uZmlnLXNlcnZpY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsYUFBYTtDQW1CbEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQWJzdHJhY3QgQ29uZmlnU2VydmljZSBpbnRlcmZhY2UgZm9yIGRlcGVuZGVuY3kgaW5qZWN0aW9uLlxyXG4gKiBQcm92aWRlcyB0eXBlLXNhZmUgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gdmFsdWVzIHdpdGggZ2VuZXJpYyB0eXBlIHN1cHBvcnQuXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29uZmlnU2VydmljZTxUID0gYW55PiB7XHJcbiAgLyoqXHJcbiAgICogR2V0IGEgY29uZmlndXJhdGlvbiB2YWx1ZSBieSBrZXkgd2l0aCB0eXBlIHNhZmV0eS5cclxuICAgKiBAcGFyYW0ga2V5IC0gVGhlIGNvbmZpZ3VyYXRpb24ga2V5IHRvIHJldHJpZXZlXHJcbiAgICogQHJldHVybnMgVGhlIGNvbmZpZ3VyYXRpb24gdmFsdWUgd2l0aCBwcm9wZXIgdHlwaW5nXHJcbiAgICovXHJcbiAgYWJzdHJhY3QgZ2V0PEsgZXh0ZW5kcyBrZXlvZiBUPihrZXk6IEspOiBUW0tdO1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0aGUgY29uZmlndXJhdGlvbiBzZXJ2aWNlIGhhcyBiZWVuIGluaXRpYWxpemVkLlxyXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHNlcnZpY2UgaXMgcmVhZHkgdG8gc2VydmUgY29uZmlndXJhdGlvbiB2YWx1ZXNcclxuICAgKi9cclxuICBhYnN0cmFjdCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhbGwgY29uZmlndXJhdGlvbiB2YWx1ZXMuXHJcbiAgICogQHJldHVybnMgVGhlIGNvbXBsZXRlIGNvbmZpZ3VyYXRpb24gb2JqZWN0XHJcbiAgICovXHJcbiAgYWJzdHJhY3QgZ2V0QWxsKCk6IFQ7XHJcbn1cclxuIl19
@@ -0,0 +1,59 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Default configuration schema using Zod.
4
+ * Provides a flexible base schema that can be extended by applications.
5
+ */
6
+ export const defaultConfigSchema = z.object({
7
+ /** Node.js environment */
8
+ NODE_ENV: z.enum(['production', 'development', 'test']).optional(),
9
+ /** Application environment (mirrors NODE_ENV with 'local' default) */
10
+ APP_ENV: z.enum(['production', 'test', 'development', 'local']).default('local'),
11
+ /** AWS region for services */
12
+ AWS_REGION: z.string().optional(),
13
+ /** AWS profile for local development */
14
+ AWS_PROFILE: z.string().optional(),
15
+ /** Application port */
16
+ PORT: z.coerce.number().positive().optional(),
17
+ /** Application host */
18
+ HOST: z.string().optional(),
19
+ /** Log level */
20
+ LOG_LEVEL: z.enum(['error', 'warn', 'info', 'debug', 'verbose']).optional(),
21
+ /** Database URL */
22
+ DATABASE_URL: z.string().url().optional(),
23
+ /** Redis URL */
24
+ REDIS_URL: z.string().url().optional(),
25
+ });
26
+ /**
27
+ * Environment-specific validation schemas.
28
+ */
29
+ export const environmentSchemas = {
30
+ local: defaultConfigSchema.extend({
31
+ // Local environment may have fewer required fields
32
+ AWS_REGION: z.string().optional(),
33
+ }),
34
+ development: defaultConfigSchema.extend({
35
+ // Development environment requirements
36
+ AWS_REGION: z.string().min(1, 'AWS_REGION is required in development'),
37
+ }),
38
+ test: defaultConfigSchema.extend({
39
+ // Test environment requirements
40
+ AWS_REGION: z.string().min(1, 'AWS_REGION is required in test'),
41
+ }),
42
+ production: defaultConfigSchema.extend({
43
+ // Production environment requirements
44
+ AWS_REGION: z.string().min(1, 'AWS_REGION is required in production'),
45
+ LOG_LEVEL: z.enum(['error', 'warn', 'info']).default('info'),
46
+ }),
47
+ };
48
+ /**
49
+ * Helper function to get the appropriate schema for the current environment.
50
+ */
51
+ export function getSchemaForEnvironment(appEnv) {
52
+ const env = appEnv;
53
+ return environmentSchemas[env] || defaultConfigSchema;
54
+ }
55
+ /**
56
+ * Validation helper for APP_ENV values.
57
+ */
58
+ export const appEnvSchema = z.enum(['production', 'test', 'development', 'local']);
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1zY2hlbWEuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvZGVmYXVsdC1zY2hlbWEuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEI7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMxQywwQkFBMEI7SUFDMUIsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBRWxFLHNFQUFzRTtJQUN0RSxPQUFPLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUVoRiw4QkFBOEI7SUFDOUIsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFFakMsd0NBQXdDO0lBQ3hDLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBRWxDLHVCQUF1QjtJQUN2QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFFN0MsdUJBQXVCO0lBQ3ZCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBRTNCLGdCQUFnQjtJQUNoQixTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUUzRSxtQkFBbUI7SUFDbkIsWUFBWSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFFekMsZ0JBQWdCO0lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3ZDLENBQUMsQ0FBQztBQU9IOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUc7SUFDaEMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUNoQyxtREFBbUQ7UUFDbkQsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDbEMsQ0FBQztJQUVGLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7UUFDdEMsdUNBQXVDO1FBQ3ZDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSx1Q0FBdUMsQ0FBQztLQUN2RSxDQUFDO0lBRUYsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztRQUMvQixnQ0FBZ0M7UUFDaEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLGdDQUFnQyxDQUFDO0tBQ2hFLENBQUM7SUFFRixVQUFVLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1FBQ3JDLHNDQUFzQztRQUN0QyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsc0NBQXNDLENBQUM7UUFDckUsU0FBUyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztLQUM3RCxDQUFDO0NBQ0gsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBeUMsQ0FBQztJQUN0RCxPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLG1CQUFtQixDQUFDO0FBQ3hELENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBzY2hlbWEgdXNpbmcgWm9kLlxyXG4gKiBQcm92aWRlcyBhIGZsZXhpYmxlIGJhc2Ugc2NoZW1hIHRoYXQgY2FuIGJlIGV4dGVuZGVkIGJ5IGFwcGxpY2F0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xyXG4gIC8qKiBOb2RlLmpzIGVudmlyb25tZW50ICovXHJcbiAgTk9ERV9FTlY6IHouZW51bShbJ3Byb2R1Y3Rpb24nLCAnZGV2ZWxvcG1lbnQnLCAndGVzdCddKS5vcHRpb25hbCgpLFxyXG4gIFxyXG4gIC8qKiBBcHBsaWNhdGlvbiBlbnZpcm9ubWVudCAobWlycm9ycyBOT0RFX0VOViB3aXRoICdsb2NhbCcgZGVmYXVsdCkgKi9cclxuICBBUFBfRU5WOiB6LmVudW0oWydwcm9kdWN0aW9uJywgJ3Rlc3QnLCAnZGV2ZWxvcG1lbnQnLCAnbG9jYWwnXSkuZGVmYXVsdCgnbG9jYWwnKSxcclxuICBcclxuICAvKiogQVdTIHJlZ2lvbiBmb3Igc2VydmljZXMgKi9cclxuICBBV1NfUkVHSU9OOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXHJcbiAgXHJcbiAgLyoqIEFXUyBwcm9maWxlIGZvciBsb2NhbCBkZXZlbG9wbWVudCAqL1xyXG4gIEFXU19QUk9GSUxFOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXHJcbiAgXHJcbiAgLyoqIEFwcGxpY2F0aW9uIHBvcnQgKi9cclxuICBQT1JUOiB6LmNvZXJjZS5udW1iZXIoKS5wb3NpdGl2ZSgpLm9wdGlvbmFsKCksXHJcbiAgXHJcbiAgLyoqIEFwcGxpY2F0aW9uIGhvc3QgKi9cclxuICBIT1NUOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXHJcbiAgXHJcbiAgLyoqIExvZyBsZXZlbCAqL1xyXG4gIExPR19MRVZFTDogei5lbnVtKFsnZXJyb3InLCAnd2FybicsICdpbmZvJywgJ2RlYnVnJywgJ3ZlcmJvc2UnXSkub3B0aW9uYWwoKSxcclxuICBcclxuICAvKiogRGF0YWJhc2UgVVJMICovXHJcbiAgREFUQUJBU0VfVVJMOiB6LnN0cmluZygpLnVybCgpLm9wdGlvbmFsKCksXHJcbiAgXHJcbiAgLyoqIFJlZGlzIFVSTCAqL1xyXG4gIFJFRElTX1VSTDogei5zdHJpbmcoKS51cmwoKS5vcHRpb25hbCgpLFxyXG59KTtcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGluZmVyZW5jZSBmb3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzY2hlbWEuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBEZWZhdWx0Q29uZmlnU2NoZW1hID0gei5pbmZlcjx0eXBlb2YgZGVmYXVsdENvbmZpZ1NjaGVtYT47XHJcblxyXG4vKipcclxuICogRW52aXJvbm1lbnQtc3BlY2lmaWMgdmFsaWRhdGlvbiBzY2hlbWFzLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVudmlyb25tZW50U2NoZW1hcyA9IHtcclxuICBsb2NhbDogZGVmYXVsdENvbmZpZ1NjaGVtYS5leHRlbmQoe1xyXG4gICAgLy8gTG9jYWwgZW52aXJvbm1lbnQgbWF5IGhhdmUgZmV3ZXIgcmVxdWlyZWQgZmllbGRzXHJcbiAgICBBV1NfUkVHSU9OOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXHJcbiAgfSksXHJcbiAgXHJcbiAgZGV2ZWxvcG1lbnQ6IGRlZmF1bHRDb25maWdTY2hlbWEuZXh0ZW5kKHtcclxuICAgIC8vIERldmVsb3BtZW50IGVudmlyb25tZW50IHJlcXVpcmVtZW50c1xyXG4gICAgQVdTX1JFR0lPTjogei5zdHJpbmcoKS5taW4oMSwgJ0FXU19SRUdJT04gaXMgcmVxdWlyZWQgaW4gZGV2ZWxvcG1lbnQnKSxcclxuICB9KSxcclxuICBcclxuICB0ZXN0OiBkZWZhdWx0Q29uZmlnU2NoZW1hLmV4dGVuZCh7XHJcbiAgICAvLyBUZXN0IGVudmlyb25tZW50IHJlcXVpcmVtZW50c1xyXG4gICAgQVdTX1JFR0lPTjogei5zdHJpbmcoKS5taW4oMSwgJ0FXU19SRUdJT04gaXMgcmVxdWlyZWQgaW4gdGVzdCcpLFxyXG4gIH0pLFxyXG4gIFxyXG4gIHByb2R1Y3Rpb246IGRlZmF1bHRDb25maWdTY2hlbWEuZXh0ZW5kKHtcclxuICAgIC8vIFByb2R1Y3Rpb24gZW52aXJvbm1lbnQgcmVxdWlyZW1lbnRzXHJcbiAgICBBV1NfUkVHSU9OOiB6LnN0cmluZygpLm1pbigxLCAnQVdTX1JFR0lPTiBpcyByZXF1aXJlZCBpbiBwcm9kdWN0aW9uJyksXHJcbiAgICBMT0dfTEVWRUw6IHouZW51bShbJ2Vycm9yJywgJ3dhcm4nLCAnaW5mbyddKS5kZWZhdWx0KCdpbmZvJyksXHJcbiAgfSksXHJcbn07XHJcblxyXG4vKipcclxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hIGZvciB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTY2hlbWFGb3JFbnZpcm9ubWVudChhcHBFbnY6IHN0cmluZyk6IHouWm9kU2NoZW1hIHtcclxuICBjb25zdCBlbnYgPSBhcHBFbnYgYXMga2V5b2YgdHlwZW9mIGVudmlyb25tZW50U2NoZW1hcztcclxuICByZXR1cm4gZW52aXJvbm1lbnRTY2hlbWFzW2Vudl0gfHwgZGVmYXVsdENvbmZpZ1NjaGVtYTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRpb24gaGVscGVyIGZvciBBUFBfRU5WIHZhbHVlcy5cclxuICovXHJcbmV4cG9ydCBjb25zdCBhcHBFbnZTY2hlbWEgPSB6LmVudW0oWydwcm9kdWN0aW9uJywgJ3Rlc3QnLCAnZGV2ZWxvcG1lbnQnLCAnbG9jYWwnXSk7XHJcblxyXG4vKipcclxuICogVHlwZSBmb3IgdmFsaWQgQVBQX0VOViB2YWx1ZXMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBBcHBFbnYgPSB6LmluZmVyPHR5cGVvZiBhcHBFbnZTY2hlbWE+O1xyXG4iXX0=
@@ -0,0 +1,8 @@
1
+ // Core interfaces
2
+ export * from './config-service.interface.js';
3
+ export * from './module-options.interface.js';
4
+ // Error classes - re-export from core for backward compatibility
5
+ export { ConfigurationError, ValidationError, AWSServiceError, ConfigurationLoadError, MissingConfigurationError, } from '@dyanet/config-aws';
6
+ // Default schema and types
7
+ export * from './default-schema.interface.js';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrQkFBa0I7QUFDbEIsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGlFQUFpRTtBQUNqRSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixlQUFlLEVBQ2Ysc0JBQXNCLEVBQ3RCLHlCQUF5QixHQUMxQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLDJCQUEyQjtBQUMzQixjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29yZSBpbnRlcmZhY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnLXNlcnZpY2UuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5cclxuLy8gRXJyb3IgY2xhc3NlcyAtIHJlLWV4cG9ydCBmcm9tIGNvcmUgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHlcclxuZXhwb3J0IHtcclxuICBDb25maWd1cmF0aW9uRXJyb3IsXHJcbiAgVmFsaWRhdGlvbkVycm9yLFxyXG4gIEFXU1NlcnZpY2VFcnJvcixcclxuICBDb25maWd1cmF0aW9uTG9hZEVycm9yLFxyXG4gIE1pc3NpbmdDb25maWd1cmF0aW9uRXJyb3IsXHJcbn0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcclxuXHJcbi8vIERlZmF1bHQgc2NoZW1hIGFuZCB0eXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtc2NoZW1hLmludGVyZmFjZSc7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVyZmFjZXMvbW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBab2RUeXBlIH0gZnJvbSAnem9kJztcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciBBV1MgU2VjcmV0cyBNYW5hZ2VyIGludGVncmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRzTWFuYWdlckNvbmZpZyB7XHJcbiAgLyoqIEFXUyByZWdpb24gZm9yIFNlY3JldHMgTWFuYWdlciAqL1xyXG4gIHJlZ2lvbj86IHN0cmluZztcclxuICAvKiogQmFzZSBwYXRoIGZvciBzZWNyZXRzIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgKi9cclxuICBwYXRocz86IHtcclxuICAgIGRldmVsb3BtZW50Pzogc3RyaW5nO1xyXG4gICAgdGVzdD86IHN0cmluZztcclxuICAgIHByb2R1Y3Rpb24/OiBzdHJpbmc7XHJcbiAgfTtcclxuICAvKiogV2hldGhlciB0byBlbmFibGUgU2VjcmV0cyBNYW5hZ2VyIGludGVncmF0aW9uICovXHJcbiAgZW5hYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZSBpbnRlZ3JhdGlvbi5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU1NNQ29uZmlnIHtcclxuICAvKiogQVdTIHJlZ2lvbiBmb3IgU1NNIFBhcmFtZXRlciBTdG9yZSAqL1xyXG4gIHJlZ2lvbj86IHN0cmluZztcclxuICAvKiogQmFzZSBwYXRoIGZvciBwYXJhbWV0ZXJzIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMgKi9cclxuICBwYXRocz86IHtcclxuICAgIGRldmVsb3BtZW50Pzogc3RyaW5nO1xyXG4gICAgdGVzdD86IHN0cmluZztcclxuICAgIHByb2R1Y3Rpb24/OiBzdHJpbmc7XHJcbiAgfTtcclxuICAvKiogV2hldGhlciB0byBlbmFibGUgU1NNIFBhcmFtZXRlciBTdG9yZSBpbnRlZ3JhdGlvbiAqL1xyXG4gIGVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGRlY3J5cHQgU2VjdXJlU3RyaW5nIHBhcmFtZXRlcnMgKi9cclxuICBkZWNyeXB0PzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNpbXBsZSwgZmxhdCBBV1Mgb3B0aW9ucyDigJQgdGhlIHNhbWUgZXJnb25vbWljIHNoYXBlIHVzZWQgYnkgdGhlIE5leHQuanMgYWRhcHRlcidzXHJcbiAqIGBnZXRDb25maWdgLiBXaGVuIHByb3ZpZGVkLCBleGFjdGx5IHRoZSBuYW1lZCBzb3VyY2VzIGFyZSBsb2FkZWQgKGEgYHNlY3JldE5hbWVgXHJcbiAqIGFkZHMgYSBTZWNyZXRzIE1hbmFnZXIgbG9hZGVyLCBhbiBgc3NtUHJlZml4YCBhZGRzIGFuIFNTTSBsb2FkZXIpOyB0aGUgZ3JhbnVsYXJcclxuICogYHNlY3JldHNNYW5hZ2VyQ29uZmlnYCAvIGBzc21Db25maWdgIG9wdGlvbnMgYXJlIG5vdCBhcHBsaWVkLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBd3NPcHRpb25zIHtcclxuICAvKiogU2VjcmV0IG5hbWUvcGF0aCBmb3IgQVdTIFNlY3JldHMgTWFuYWdlci4gKi9cclxuICBzZWNyZXROYW1lPzogc3RyaW5nO1xyXG4gIC8qKiBQYXJhbWV0ZXIgcGF0aCBwcmVmaXggZm9yIEFXUyBTU00gUGFyYW1ldGVyIFN0b3JlLiAqL1xyXG4gIHNzbVByZWZpeD86IHN0cmluZztcclxuICAvKiogQVdTIHJlZ2lvbiAoZGVmYXVsdHMgdG8gdGhlIGBBV1NfUkVHSU9OYCBlbnYgdmFyLCB0aGVuIGB1cy1lYXN0LTFgKS4gKi9cclxuICByZWdpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgTmVzdEpTIEFXUyBDb25maWd1cmF0aW9uIG1vZHVsZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmVzdENvbmZpZ0F3c01vZHVsZU9wdGlvbnM8VCA9IGFueT4ge1xyXG4gIC8qKiBab2Qgc2NoZW1hIGZvciBjb25maWd1cmF0aW9uIHZhbGlkYXRpb24uIFdoZW4gb21pdHRlZCwgdmFsdWVzIGFyZSByZXR1cm5lZCBhcy1pcyAobm8gdmFsaWRhdGlvbikuICovXHJcbiAgc2NoZW1hPzogWm9kVHlwZTxUPjtcclxuXHJcbiAgLyoqXHJcbiAgICogU2ltcGxlIEFXUyBvcHRpb25zIChgeyBzZWNyZXROYW1lLCBzc21QcmVmaXgsIHJlZ2lvbiB9YCkg4oCUIG1pcnJvcnMgdGhlIE5leHQuanNcclxuICAgKiBhZGFwdGVyLiBXaGVuIHNldCwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGBzZWNyZXRzTWFuYWdlckNvbmZpZ2AgLyBgc3NtQ29uZmlnYC5cclxuICAgKi9cclxuICBhd3M/OiBBd3NPcHRpb25zO1xyXG5cclxuICAvKiogQ29uZmlndXJhdGlvbiBmb3IgQVdTIFNlY3JldHMgTWFuYWdlciBpbnRlZ3JhdGlvbiAoYWR2YW5jZWQpLiAqL1xyXG4gIHNlY3JldHNNYW5hZ2VyQ29uZmlnPzogU2VjcmV0c01hbmFnZXJDb25maWc7XHJcblxyXG4gIC8qKiBDb25maWd1cmF0aW9uIGZvciBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZSBpbnRlZ3JhdGlvbiAoYWR2YW5jZWQpLiAqL1xyXG4gIHNzbUNvbmZpZz86IFNTTUNvbmZpZztcclxuXHJcbiAgLyoqIFByZWZpeCBmb3IgZW52aXJvbm1lbnQgdmFyaWFibGVzIChlLmcuLCAnQVBQXycpICovXHJcbiAgZW52UHJlZml4Pzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRvIGlnbm9yZSB2YWxpZGF0aW9uIGVycm9ycyBhbmQgY29udGludWUgd2l0aCBwYXJ0aWFsIGNvbmZpZyAqL1xyXG4gIGlnbm9yZVZhbGlkYXRpb25FcnJvcnM/OiBib29sZWFuO1xyXG4gIFxyXG4gIC8qKiBDdXN0b20gZW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZSBmb3IgQVBQX0VOViAoZGVmYXVsdHMgdG8gJ0FQUF9FTlYnKSAqL1xyXG4gIGFwcEVudlZhcmlhYmxlPzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRvIGxvYWQgY29uZmlndXJhdGlvbiBzeW5jaHJvbm91c2x5IGR1cmluZyBtb2R1bGUgaW5pdGlhbGl6YXRpb24gKi9cclxuICBsb2FkU3luYz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBc3luYyBmYWN0b3J5IG9wdGlvbnMgZm9yIGR5bmFtaWMgbW9kdWxlIGNvbmZpZ3VyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5lc3RDb25maWdBd3NNb2R1bGVBc3luY09wdGlvbnM8VCA9IGFueT4ge1xyXG4gIC8qKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBtb2R1bGUgb3B0aW9ucyAqL1xyXG4gIHVzZUZhY3Rvcnk6ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPj4gfCBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPjtcclxuICBcclxuICAvKiogRGVwZW5kZW5jaWVzIHRvIGluamVjdCBpbnRvIHRoZSBmYWN0b3J5IGZ1bmN0aW9uICovXHJcbiAgaW5qZWN0PzogYW55W107XHJcbiAgXHJcbiAgLyoqIEltcG9ydHMgcmVxdWlyZWQgZm9yIHRoZSBmYWN0b3J5IGZ1bmN0aW9uICovXHJcbiAgaW1wb3J0cz86IGFueVtdO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }