@dyanet/nestjs-config-aws 1.0.1 → 1.2.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 (391) hide show
  1. package/README.md +213 -1013
  2. package/dist/cjs/config-aws/src/config-manager.js +366 -0
  3. package/dist/cjs/config-aws/src/errors/index.js +77 -0
  4. package/dist/cjs/config-aws/src/index.js +37 -0
  5. package/dist/cjs/config-aws/src/interfaces/config-loader.interface.js +3 -0
  6. package/dist/cjs/config-aws/src/interfaces/config-manager.interface.js +3 -0
  7. package/dist/cjs/config-aws/src/interfaces/env-file-loader.interface.js +3 -0
  8. package/dist/cjs/config-aws/src/interfaces/environment-loader.interface.js +3 -0
  9. package/dist/cjs/config-aws/src/interfaces/s3-loader.interface.js +3 -0
  10. package/dist/cjs/config-aws/src/interfaces/secrets-manager-loader.interface.js +3 -0
  11. package/dist/cjs/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +3 -0
  12. package/dist/cjs/config-aws/src/loaders/env-file.loader.js +169 -0
  13. package/dist/cjs/config-aws/src/loaders/environment.loader.js +85 -0
  14. package/dist/cjs/config-aws/src/loaders/s3.loader.js +145 -0
  15. package/dist/cjs/config-aws/src/loaders/secrets-manager.loader.js +169 -0
  16. package/dist/cjs/config-aws/src/loaders/ssm-parameter-store.loader.js +199 -0
  17. package/dist/cjs/config-aws/src/utils/env-file-parser.util.js +98 -0
  18. package/dist/cjs/config-aws/src/utils/validation.util.js +116 -0
  19. package/dist/cjs/nestjs-config-aws/src/config.module.js +175 -0
  20. package/dist/cjs/nestjs-config-aws/src/index.js +61 -0
  21. package/dist/cjs/{integration → nestjs-config-aws/src/integration}/index.js +1 -1
  22. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +3 -0
  23. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +3 -0
  24. package/dist/cjs/{integration → nestjs-config-aws/src/integration}/interfaces/index.js +1 -1
  25. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +3 -0
  26. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +3 -0
  27. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +73 -0
  28. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +3 -0
  29. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +4 -0
  30. package/dist/cjs/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +52 -0
  31. package/dist/cjs/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +124 -0
  32. package/dist/cjs/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +592 -0
  33. package/dist/cjs/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +385 -0
  34. package/dist/cjs/{integration → nestjs-config-aws/src/integration}/providers/index.js +1 -1
  35. package/dist/cjs/nestjs-config-aws/src/integration/services/async-config-helper.service.js +366 -0
  36. package/dist/cjs/nestjs-config-aws/src/integration/services/error-handler.service.js +267 -0
  37. package/dist/cjs/nestjs-config-aws/src/integration/services/factory-registration.service.js +517 -0
  38. package/dist/cjs/{integration → nestjs-config-aws/src/integration}/services/index.js +1 -1
  39. package/dist/cjs/nestjs-config-aws/src/integration/services/integration-state.service.js +81 -0
  40. package/dist/cjs/nestjs-config-aws/src/integration/services/namespace-handler.service.js +465 -0
  41. package/dist/cjs/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +318 -0
  42. package/dist/cjs/nestjs-config-aws/src/integration/services/precedence-handler.service.js +292 -0
  43. package/dist/cjs/nestjs-config-aws/src/integration/services/validation-integration.service.js +595 -0
  44. package/dist/cjs/nestjs-config-aws/src/integration/utils/config-integration.util.js +283 -0
  45. package/dist/cjs/{integration → nestjs-config-aws/src/integration}/utils/index.js +1 -1
  46. package/dist/cjs/nestjs-config-aws/src/interfaces/config-service.interface.js +11 -0
  47. package/dist/cjs/nestjs-config-aws/src/interfaces/default-schema.interface.js +63 -0
  48. package/dist/cjs/nestjs-config-aws/src/interfaces/index.js +30 -0
  49. package/dist/cjs/nestjs-config-aws/src/interfaces/module-options.interface.js +3 -0
  50. package/dist/cjs/nestjs-config-aws/src/services/config.service.js +142 -0
  51. package/dist/esm/config-aws/src/config-manager.js +362 -0
  52. package/dist/esm/config-aws/src/errors/index.js +69 -0
  53. package/dist/esm/config-aws/src/index.js +21 -0
  54. package/dist/esm/config-aws/src/interfaces/config-loader.interface.js +2 -0
  55. package/dist/esm/config-aws/src/interfaces/config-manager.interface.js +2 -0
  56. package/dist/esm/config-aws/src/interfaces/env-file-loader.interface.js +2 -0
  57. package/dist/esm/config-aws/src/interfaces/environment-loader.interface.js +2 -0
  58. package/dist/esm/config-aws/src/interfaces/s3-loader.interface.js +2 -0
  59. package/dist/esm/config-aws/src/interfaces/secrets-manager-loader.interface.js +2 -0
  60. package/dist/esm/config-aws/src/interfaces/ssm-parameter-store-loader.interface.js +2 -0
  61. package/dist/esm/config-aws/src/loaders/env-file.loader.js +132 -0
  62. package/dist/esm/config-aws/src/loaders/environment.loader.js +81 -0
  63. package/dist/esm/config-aws/src/loaders/s3.loader.js +141 -0
  64. package/dist/esm/config-aws/src/loaders/secrets-manager.loader.js +165 -0
  65. package/dist/esm/config-aws/src/loaders/ssm-parameter-store.loader.js +195 -0
  66. package/dist/esm/config-aws/src/utils/env-file-parser.util.js +94 -0
  67. package/dist/esm/config-aws/src/utils/validation.util.js +112 -0
  68. package/dist/esm/nestjs-config-aws/src/config.module.js +172 -0
  69. package/dist/esm/nestjs-config-aws/src/index.js +23 -0
  70. package/dist/esm/nestjs-config-aws/src/integration/index.js +7 -0
  71. package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.js +2 -0
  72. package/dist/esm/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.js +2 -0
  73. package/dist/esm/nestjs-config-aws/src/integration/interfaces/index.js +10 -0
  74. package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-options.interface.js +2 -0
  75. package/dist/esm/nestjs-config-aws/src/integration/interfaces/integration-state.interface.js +2 -0
  76. package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.js +64 -0
  77. package/dist/esm/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.js +2 -0
  78. package/dist/esm/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.js +3 -0
  79. package/dist/esm/nestjs-config-aws/src/integration/interfaces/utility-types.interface.js +44 -0
  80. package/dist/esm/nestjs-config-aws/src/integration/nestjs-config-integration.module.js +121 -0
  81. package/dist/esm/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.js +589 -0
  82. package/dist/esm/nestjs-config-aws/src/integration/providers/configuration-factory.provider.js +382 -0
  83. package/dist/esm/nestjs-config-aws/src/integration/providers/index.js +4 -0
  84. package/dist/esm/nestjs-config-aws/src/integration/services/async-config-helper.service.js +363 -0
  85. package/dist/esm/nestjs-config-aws/src/integration/services/error-handler.service.js +264 -0
  86. package/dist/esm/nestjs-config-aws/src/integration/services/factory-registration.service.js +514 -0
  87. package/dist/esm/nestjs-config-aws/src/integration/services/index.js +10 -0
  88. package/dist/esm/nestjs-config-aws/src/integration/services/integration-state.service.js +78 -0
  89. package/dist/esm/nestjs-config-aws/src/integration/services/namespace-handler.service.js +462 -0
  90. package/dist/esm/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.js +315 -0
  91. package/dist/esm/nestjs-config-aws/src/integration/services/precedence-handler.service.js +289 -0
  92. package/dist/esm/nestjs-config-aws/src/integration/services/validation-integration.service.js +589 -0
  93. package/dist/esm/nestjs-config-aws/src/integration/utils/config-integration.util.js +240 -0
  94. package/dist/esm/nestjs-config-aws/src/integration/utils/index.js +3 -0
  95. package/dist/esm/nestjs-config-aws/src/interfaces/config-service.interface.js +7 -0
  96. package/dist/esm/nestjs-config-aws/src/interfaces/default-schema.interface.js +59 -0
  97. package/dist/esm/nestjs-config-aws/src/interfaces/index.js +8 -0
  98. package/dist/esm/nestjs-config-aws/src/interfaces/module-options.interface.js +2 -0
  99. package/dist/esm/nestjs-config-aws/src/services/config.service.js +139 -0
  100. package/dist/types/config-aws/src/config-manager.d.ts +119 -0
  101. package/dist/types/config-aws/src/config-manager.d.ts.map +1 -0
  102. package/dist/types/config-aws/src/errors/index.d.ts +43 -0
  103. package/dist/types/config-aws/src/errors/index.d.ts.map +1 -0
  104. package/dist/types/config-aws/src/index.d.ts +24 -0
  105. package/dist/types/config-aws/src/index.d.ts.map +1 -0
  106. package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts +33 -0
  107. package/dist/types/config-aws/src/interfaces/config-loader.interface.d.ts.map +1 -0
  108. package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts +86 -0
  109. package/dist/types/config-aws/src/interfaces/config-manager.interface.d.ts.map +1 -0
  110. package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts +12 -0
  111. package/dist/types/config-aws/src/interfaces/env-file-loader.interface.d.ts.map +1 -0
  112. package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts +10 -0
  113. package/dist/types/config-aws/src/interfaces/environment-loader.interface.d.ts.map +1 -0
  114. package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts +14 -0
  115. package/dist/types/config-aws/src/interfaces/s3-loader.interface.d.ts.map +1 -0
  116. package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts +12 -0
  117. package/dist/types/config-aws/src/interfaces/secrets-manager-loader.interface.d.ts.map +1 -0
  118. package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts +14 -0
  119. package/dist/types/config-aws/src/interfaces/ssm-parameter-store-loader.interface.d.ts.map +1 -0
  120. package/dist/types/config-aws/src/loaders/env-file.loader.d.ts +69 -0
  121. package/dist/types/config-aws/src/loaders/env-file.loader.d.ts.map +1 -0
  122. package/dist/types/config-aws/src/loaders/environment.loader.d.ts +46 -0
  123. package/dist/types/config-aws/src/loaders/environment.loader.d.ts.map +1 -0
  124. package/dist/types/config-aws/src/loaders/s3.loader.d.ts +62 -0
  125. package/dist/types/config-aws/src/loaders/s3.loader.d.ts.map +1 -0
  126. package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts +68 -0
  127. package/dist/types/config-aws/src/loaders/secrets-manager.loader.d.ts.map +1 -0
  128. package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts +78 -0
  129. package/dist/types/config-aws/src/loaders/ssm-parameter-store.loader.d.ts.map +1 -0
  130. package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts +45 -0
  131. package/dist/types/config-aws/src/utils/env-file-parser.util.d.ts.map +1 -0
  132. package/dist/types/{utils → config-aws/src/utils}/validation.util.d.ts +10 -10
  133. package/dist/types/config-aws/src/utils/validation.util.d.ts.map +1 -0
  134. package/dist/types/{config.module.d.ts → nestjs-config-aws/src/config.module.d.ts} +1 -0
  135. package/dist/types/nestjs-config-aws/src/config.module.d.ts.map +1 -0
  136. package/dist/types/{index.d.ts → nestjs-config-aws/src/index.d.ts} +2 -4
  137. package/dist/types/nestjs-config-aws/src/index.d.ts.map +1 -0
  138. package/dist/types/nestjs-config-aws/src/integration/index.d.ts.map +1 -0
  139. package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-factory.interface.d.ts.map +1 -0
  140. package/dist/types/nestjs-config-aws/src/integration/interfaces/configuration-source.interface.d.ts.map +1 -0
  141. package/dist/types/nestjs-config-aws/src/integration/interfaces/index.d.ts.map +1 -0
  142. package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-options.interface.d.ts.map +1 -0
  143. package/dist/types/nestjs-config-aws/src/integration/interfaces/integration-state.interface.d.ts.map +1 -0
  144. package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +1 -0
  145. package/dist/types/nestjs-config-aws/src/integration/interfaces/nestjs-config-integration.interface.d.ts.map +1 -0
  146. package/dist/types/nestjs-config-aws/src/integration/interfaces/typed-configuration.interface.d.ts.map +1 -0
  147. package/dist/types/nestjs-config-aws/src/integration/interfaces/utility-types.interface.d.ts.map +1 -0
  148. package/dist/types/nestjs-config-aws/src/integration/nestjs-config-integration.module.d.ts.map +1 -0
  149. package/dist/types/nestjs-config-aws/src/integration/providers/aws-configuration-loader.service.d.ts.map +1 -0
  150. package/dist/types/nestjs-config-aws/src/integration/providers/configuration-factory.provider.d.ts.map +1 -0
  151. package/dist/types/nestjs-config-aws/src/integration/providers/index.d.ts.map +1 -0
  152. package/dist/types/nestjs-config-aws/src/integration/services/async-config-helper.service.d.ts.map +1 -0
  153. package/dist/types/nestjs-config-aws/src/integration/services/error-handler.service.d.ts.map +1 -0
  154. package/dist/types/nestjs-config-aws/src/integration/services/factory-registration.service.d.ts.map +1 -0
  155. package/dist/types/nestjs-config-aws/src/integration/services/index.d.ts.map +1 -0
  156. package/dist/types/nestjs-config-aws/src/integration/services/integration-state.service.d.ts.map +1 -0
  157. package/dist/types/nestjs-config-aws/src/integration/services/namespace-handler.service.d.ts.map +1 -0
  158. package/dist/types/nestjs-config-aws/src/integration/services/nestjs-config-integration.service.d.ts.map +1 -0
  159. package/dist/types/nestjs-config-aws/src/integration/services/precedence-handler.service.d.ts.map +1 -0
  160. package/dist/types/nestjs-config-aws/src/integration/services/validation-integration.service.d.ts.map +1 -0
  161. package/dist/types/nestjs-config-aws/src/integration/utils/config-integration.util.d.ts.map +1 -0
  162. package/dist/types/nestjs-config-aws/src/integration/utils/index.d.ts.map +1 -0
  163. package/dist/types/nestjs-config-aws/src/interfaces/config-service.interface.d.ts.map +1 -0
  164. package/dist/types/{interfaces → nestjs-config-aws/src/interfaces}/default-schema.interface.d.ts +28 -28
  165. package/dist/types/nestjs-config-aws/src/interfaces/default-schema.interface.d.ts.map +1 -0
  166. package/dist/types/nestjs-config-aws/src/interfaces/index.d.ts +5 -0
  167. package/dist/types/nestjs-config-aws/src/interfaces/index.d.ts.map +1 -0
  168. package/dist/types/nestjs-config-aws/src/interfaces/module-options.interface.d.ts.map +1 -0
  169. package/dist/types/nestjs-config-aws/src/services/config.service.d.ts +88 -0
  170. package/dist/types/nestjs-config-aws/src/services/config.service.d.ts.map +1 -0
  171. package/package.json +20 -27
  172. package/LICENSE +0 -21
  173. package/dist/cjs/config.module.js +0 -178
  174. package/dist/cjs/config.module.js.map +0 -1
  175. package/dist/cjs/index.js +0 -47
  176. package/dist/cjs/index.js.map +0 -1
  177. package/dist/cjs/integration/index.js.map +0 -1
  178. package/dist/cjs/integration/interfaces/configuration-factory.interface.js +0 -3
  179. package/dist/cjs/integration/interfaces/configuration-factory.interface.js.map +0 -1
  180. package/dist/cjs/integration/interfaces/configuration-source.interface.js +0 -3
  181. package/dist/cjs/integration/interfaces/configuration-source.interface.js.map +0 -1
  182. package/dist/cjs/integration/interfaces/index.js.map +0 -1
  183. package/dist/cjs/integration/interfaces/integration-options.interface.js +0 -3
  184. package/dist/cjs/integration/interfaces/integration-options.interface.js.map +0 -1
  185. package/dist/cjs/integration/interfaces/integration-state.interface.js +0 -3
  186. package/dist/cjs/integration/interfaces/integration-state.interface.js.map +0 -1
  187. package/dist/cjs/integration/interfaces/nestjs-config-compatibility.interface.js +0 -73
  188. package/dist/cjs/integration/interfaces/nestjs-config-compatibility.interface.js.map +0 -1
  189. package/dist/cjs/integration/interfaces/nestjs-config-integration.interface.js +0 -3
  190. package/dist/cjs/integration/interfaces/nestjs-config-integration.interface.js.map +0 -1
  191. package/dist/cjs/integration/interfaces/typed-configuration.interface.js +0 -4
  192. package/dist/cjs/integration/interfaces/typed-configuration.interface.js.map +0 -1
  193. package/dist/cjs/integration/interfaces/utility-types.interface.js +0 -52
  194. package/dist/cjs/integration/interfaces/utility-types.interface.js.map +0 -1
  195. package/dist/cjs/integration/nestjs-config-integration.module.js +0 -124
  196. package/dist/cjs/integration/nestjs-config-integration.module.js.map +0 -1
  197. package/dist/cjs/integration/providers/aws-configuration-loader.service.js +0 -591
  198. package/dist/cjs/integration/providers/aws-configuration-loader.service.js.map +0 -1
  199. package/dist/cjs/integration/providers/configuration-factory.provider.js +0 -383
  200. package/dist/cjs/integration/providers/configuration-factory.provider.js.map +0 -1
  201. package/dist/cjs/integration/providers/index.js.map +0 -1
  202. package/dist/cjs/integration/services/async-config-helper.service.js +0 -356
  203. package/dist/cjs/integration/services/async-config-helper.service.js.map +0 -1
  204. package/dist/cjs/integration/services/error-handler.service.js +0 -265
  205. package/dist/cjs/integration/services/error-handler.service.js.map +0 -1
  206. package/dist/cjs/integration/services/factory-registration.service.js +0 -512
  207. package/dist/cjs/integration/services/factory-registration.service.js.map +0 -1
  208. package/dist/cjs/integration/services/index.js.map +0 -1
  209. package/dist/cjs/integration/services/integration-state.service.js +0 -83
  210. package/dist/cjs/integration/services/integration-state.service.js.map +0 -1
  211. package/dist/cjs/integration/services/namespace-handler.service.js +0 -467
  212. package/dist/cjs/integration/services/namespace-handler.service.js.map +0 -1
  213. package/dist/cjs/integration/services/nestjs-config-integration.service.js +0 -316
  214. package/dist/cjs/integration/services/nestjs-config-integration.service.js.map +0 -1
  215. package/dist/cjs/integration/services/precedence-handler.service.js +0 -294
  216. package/dist/cjs/integration/services/precedence-handler.service.js.map +0 -1
  217. package/dist/cjs/integration/services/validation-integration.service.js +0 -591
  218. package/dist/cjs/integration/services/validation-integration.service.js.map +0 -1
  219. package/dist/cjs/integration/utils/config-integration.util.js +0 -283
  220. package/dist/cjs/integration/utils/config-integration.util.js.map +0 -1
  221. package/dist/cjs/integration/utils/index.js.map +0 -1
  222. package/dist/cjs/interfaces/config-loader.interface.js +0 -3
  223. package/dist/cjs/interfaces/config-loader.interface.js.map +0 -1
  224. package/dist/cjs/interfaces/config-service.interface.js +0 -11
  225. package/dist/cjs/interfaces/config-service.interface.js.map +0 -1
  226. package/dist/cjs/interfaces/default-schema.interface.js +0 -63
  227. package/dist/cjs/interfaces/default-schema.interface.js.map +0 -1
  228. package/dist/cjs/interfaces/errors.interface.js +0 -77
  229. package/dist/cjs/interfaces/errors.interface.js.map +0 -1
  230. package/dist/cjs/interfaces/index.js +0 -25
  231. package/dist/cjs/interfaces/index.js.map +0 -1
  232. package/dist/cjs/interfaces/module-options.interface.js +0 -3
  233. package/dist/cjs/interfaces/module-options.interface.js.map +0 -1
  234. package/dist/cjs/loaders/environment.loader.js +0 -59
  235. package/dist/cjs/loaders/environment.loader.js.map +0 -1
  236. package/dist/cjs/loaders/secrets-manager.loader.js +0 -122
  237. package/dist/cjs/loaders/secrets-manager.loader.js.map +0 -1
  238. package/dist/cjs/loaders/ssm-parameter-store.loader.js +0 -146
  239. package/dist/cjs/loaders/ssm-parameter-store.loader.js.map +0 -1
  240. package/dist/cjs/services/config.service.js +0 -297
  241. package/dist/cjs/services/config.service.js.map +0 -1
  242. package/dist/cjs/utils/validation.util.js +0 -114
  243. package/dist/cjs/utils/validation.util.js.map +0 -1
  244. package/dist/esm/config.module.js +0 -175
  245. package/dist/esm/config.module.js.map +0 -1
  246. package/dist/esm/index.js +0 -18
  247. package/dist/esm/index.js.map +0 -1
  248. package/dist/esm/integration/index.js +0 -7
  249. package/dist/esm/integration/index.js.map +0 -1
  250. package/dist/esm/integration/interfaces/configuration-factory.interface.js +0 -2
  251. package/dist/esm/integration/interfaces/configuration-factory.interface.js.map +0 -1
  252. package/dist/esm/integration/interfaces/configuration-source.interface.js +0 -2
  253. package/dist/esm/integration/interfaces/configuration-source.interface.js.map +0 -1
  254. package/dist/esm/integration/interfaces/index.js +0 -10
  255. package/dist/esm/integration/interfaces/index.js.map +0 -1
  256. package/dist/esm/integration/interfaces/integration-options.interface.js +0 -2
  257. package/dist/esm/integration/interfaces/integration-options.interface.js.map +0 -1
  258. package/dist/esm/integration/interfaces/integration-state.interface.js +0 -2
  259. package/dist/esm/integration/interfaces/integration-state.interface.js.map +0 -1
  260. package/dist/esm/integration/interfaces/nestjs-config-compatibility.interface.js +0 -64
  261. package/dist/esm/integration/interfaces/nestjs-config-compatibility.interface.js.map +0 -1
  262. package/dist/esm/integration/interfaces/nestjs-config-integration.interface.js +0 -2
  263. package/dist/esm/integration/interfaces/nestjs-config-integration.interface.js.map +0 -1
  264. package/dist/esm/integration/interfaces/typed-configuration.interface.js +0 -3
  265. package/dist/esm/integration/interfaces/typed-configuration.interface.js.map +0 -1
  266. package/dist/esm/integration/interfaces/utility-types.interface.js +0 -44
  267. package/dist/esm/integration/interfaces/utility-types.interface.js.map +0 -1
  268. package/dist/esm/integration/nestjs-config-integration.module.js +0 -121
  269. package/dist/esm/integration/nestjs-config-integration.module.js.map +0 -1
  270. package/dist/esm/integration/providers/aws-configuration-loader.service.js +0 -588
  271. package/dist/esm/integration/providers/aws-configuration-loader.service.js.map +0 -1
  272. package/dist/esm/integration/providers/configuration-factory.provider.js +0 -380
  273. package/dist/esm/integration/providers/configuration-factory.provider.js.map +0 -1
  274. package/dist/esm/integration/providers/index.js +0 -4
  275. package/dist/esm/integration/providers/index.js.map +0 -1
  276. package/dist/esm/integration/services/async-config-helper.service.js +0 -353
  277. package/dist/esm/integration/services/async-config-helper.service.js.map +0 -1
  278. package/dist/esm/integration/services/error-handler.service.js +0 -262
  279. package/dist/esm/integration/services/error-handler.service.js.map +0 -1
  280. package/dist/esm/integration/services/factory-registration.service.js +0 -509
  281. package/dist/esm/integration/services/factory-registration.service.js.map +0 -1
  282. package/dist/esm/integration/services/index.js +0 -10
  283. package/dist/esm/integration/services/index.js.map +0 -1
  284. package/dist/esm/integration/services/integration-state.service.js +0 -80
  285. package/dist/esm/integration/services/integration-state.service.js.map +0 -1
  286. package/dist/esm/integration/services/namespace-handler.service.js +0 -464
  287. package/dist/esm/integration/services/namespace-handler.service.js.map +0 -1
  288. package/dist/esm/integration/services/nestjs-config-integration.service.js +0 -313
  289. package/dist/esm/integration/services/nestjs-config-integration.service.js.map +0 -1
  290. package/dist/esm/integration/services/precedence-handler.service.js +0 -291
  291. package/dist/esm/integration/services/precedence-handler.service.js.map +0 -1
  292. package/dist/esm/integration/services/validation-integration.service.js +0 -585
  293. package/dist/esm/integration/services/validation-integration.service.js.map +0 -1
  294. package/dist/esm/integration/utils/config-integration.util.js +0 -240
  295. package/dist/esm/integration/utils/config-integration.util.js.map +0 -1
  296. package/dist/esm/integration/utils/index.js +0 -3
  297. package/dist/esm/integration/utils/index.js.map +0 -1
  298. package/dist/esm/interfaces/config-loader.interface.js +0 -2
  299. package/dist/esm/interfaces/config-loader.interface.js.map +0 -1
  300. package/dist/esm/interfaces/config-service.interface.js +0 -7
  301. package/dist/esm/interfaces/config-service.interface.js.map +0 -1
  302. package/dist/esm/interfaces/default-schema.interface.js +0 -59
  303. package/dist/esm/interfaces/default-schema.interface.js.map +0 -1
  304. package/dist/esm/interfaces/errors.interface.js +0 -69
  305. package/dist/esm/interfaces/errors.interface.js.map +0 -1
  306. package/dist/esm/interfaces/index.js +0 -9
  307. package/dist/esm/interfaces/index.js.map +0 -1
  308. package/dist/esm/interfaces/module-options.interface.js +0 -2
  309. package/dist/esm/interfaces/module-options.interface.js.map +0 -1
  310. package/dist/esm/loaders/environment.loader.js +0 -55
  311. package/dist/esm/loaders/environment.loader.js.map +0 -1
  312. package/dist/esm/loaders/secrets-manager.loader.js +0 -118
  313. package/dist/esm/loaders/secrets-manager.loader.js.map +0 -1
  314. package/dist/esm/loaders/ssm-parameter-store.loader.js +0 -142
  315. package/dist/esm/loaders/ssm-parameter-store.loader.js.map +0 -1
  316. package/dist/esm/services/config.service.js +0 -261
  317. package/dist/esm/services/config.service.js.map +0 -1
  318. package/dist/esm/utils/validation.util.js +0 -110
  319. package/dist/esm/utils/validation.util.js.map +0 -1
  320. package/dist/types/config.module.d.ts.map +0 -1
  321. package/dist/types/index.d.ts.map +0 -1
  322. package/dist/types/integration/index.d.ts.map +0 -1
  323. package/dist/types/integration/interfaces/configuration-factory.interface.d.ts.map +0 -1
  324. package/dist/types/integration/interfaces/configuration-source.interface.d.ts.map +0 -1
  325. package/dist/types/integration/interfaces/index.d.ts.map +0 -1
  326. package/dist/types/integration/interfaces/integration-options.interface.d.ts.map +0 -1
  327. package/dist/types/integration/interfaces/integration-state.interface.d.ts.map +0 -1
  328. package/dist/types/integration/interfaces/nestjs-config-compatibility.interface.d.ts.map +0 -1
  329. package/dist/types/integration/interfaces/nestjs-config-integration.interface.d.ts.map +0 -1
  330. package/dist/types/integration/interfaces/typed-configuration.interface.d.ts.map +0 -1
  331. package/dist/types/integration/interfaces/utility-types.interface.d.ts.map +0 -1
  332. package/dist/types/integration/nestjs-config-integration.module.d.ts.map +0 -1
  333. package/dist/types/integration/providers/aws-configuration-loader.service.d.ts.map +0 -1
  334. package/dist/types/integration/providers/configuration-factory.provider.d.ts.map +0 -1
  335. package/dist/types/integration/providers/index.d.ts.map +0 -1
  336. package/dist/types/integration/services/async-config-helper.service.d.ts.map +0 -1
  337. package/dist/types/integration/services/error-handler.service.d.ts.map +0 -1
  338. package/dist/types/integration/services/factory-registration.service.d.ts.map +0 -1
  339. package/dist/types/integration/services/index.d.ts.map +0 -1
  340. package/dist/types/integration/services/integration-state.service.d.ts.map +0 -1
  341. package/dist/types/integration/services/namespace-handler.service.d.ts.map +0 -1
  342. package/dist/types/integration/services/nestjs-config-integration.service.d.ts.map +0 -1
  343. package/dist/types/integration/services/precedence-handler.service.d.ts.map +0 -1
  344. package/dist/types/integration/services/validation-integration.service.d.ts.map +0 -1
  345. package/dist/types/integration/utils/config-integration.util.d.ts.map +0 -1
  346. package/dist/types/integration/utils/index.d.ts.map +0 -1
  347. package/dist/types/interfaces/config-loader.interface.d.ts +0 -22
  348. package/dist/types/interfaces/config-loader.interface.d.ts.map +0 -1
  349. package/dist/types/interfaces/config-service.interface.d.ts.map +0 -1
  350. package/dist/types/interfaces/default-schema.interface.d.ts.map +0 -1
  351. package/dist/types/interfaces/errors.interface.d.ts +0 -38
  352. package/dist/types/interfaces/errors.interface.d.ts.map +0 -1
  353. package/dist/types/interfaces/index.d.ts +0 -6
  354. package/dist/types/interfaces/index.d.ts.map +0 -1
  355. package/dist/types/interfaces/module-options.interface.d.ts.map +0 -1
  356. package/dist/types/loaders/environment.loader.d.ts +0 -26
  357. package/dist/types/loaders/environment.loader.d.ts.map +0 -1
  358. package/dist/types/loaders/secrets-manager.loader.d.ts +0 -52
  359. package/dist/types/loaders/secrets-manager.loader.d.ts.map +0 -1
  360. package/dist/types/loaders/ssm-parameter-store.loader.d.ts +0 -68
  361. package/dist/types/loaders/ssm-parameter-store.loader.d.ts.map +0 -1
  362. package/dist/types/services/config.service.d.ts +0 -94
  363. package/dist/types/services/config.service.d.ts.map +0 -1
  364. package/dist/types/utils/validation.util.d.ts.map +0 -1
  365. /package/dist/types/{integration → nestjs-config-aws/src/integration}/index.d.ts +0 -0
  366. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/configuration-factory.interface.d.ts +0 -0
  367. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/configuration-source.interface.d.ts +0 -0
  368. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/index.d.ts +0 -0
  369. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/integration-options.interface.d.ts +0 -0
  370. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/integration-state.interface.d.ts +0 -0
  371. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/nestjs-config-compatibility.interface.d.ts +0 -0
  372. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/nestjs-config-integration.interface.d.ts +0 -0
  373. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/typed-configuration.interface.d.ts +0 -0
  374. /package/dist/types/{integration → nestjs-config-aws/src/integration}/interfaces/utility-types.interface.d.ts +0 -0
  375. /package/dist/types/{integration → nestjs-config-aws/src/integration}/nestjs-config-integration.module.d.ts +0 -0
  376. /package/dist/types/{integration → nestjs-config-aws/src/integration}/providers/aws-configuration-loader.service.d.ts +0 -0
  377. /package/dist/types/{integration → nestjs-config-aws/src/integration}/providers/configuration-factory.provider.d.ts +0 -0
  378. /package/dist/types/{integration → nestjs-config-aws/src/integration}/providers/index.d.ts +0 -0
  379. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/async-config-helper.service.d.ts +0 -0
  380. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/error-handler.service.d.ts +0 -0
  381. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/factory-registration.service.d.ts +0 -0
  382. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/index.d.ts +0 -0
  383. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/integration-state.service.d.ts +0 -0
  384. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/namespace-handler.service.d.ts +0 -0
  385. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/nestjs-config-integration.service.d.ts +0 -0
  386. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/precedence-handler.service.d.ts +0 -0
  387. /package/dist/types/{integration → nestjs-config-aws/src/integration}/services/validation-integration.service.d.ts +0 -0
  388. /package/dist/types/{integration → nestjs-config-aws/src/integration}/utils/config-integration.util.d.ts +0 -0
  389. /package/dist/types/{integration → nestjs-config-aws/src/integration}/utils/index.d.ts +0 -0
  390. /package/dist/types/{interfaces → nestjs-config-aws/src/interfaces}/config-service.interface.d.ts +0 -0
  391. /package/dist/types/{interfaces → nestjs-config-aws/src/interfaces}/module-options.interface.d.ts +0 -0
@@ -1,316 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var NestjsConfigIntegrationService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.NestjsConfigIntegrationService = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const config_1 = require("@nestjs/config");
19
- const factory_registration_service_1 = require("./factory-registration.service");
20
- const nestjs_config_integration_module_1 = require("../nestjs-config-integration.module");
21
- /**
22
- * Service that provides integration utilities for working with @nestjs/config.
23
- * This service creates ConfigModule configurations that include AWS-sourced factories.
24
- */
25
- let NestjsConfigIntegrationService = NestjsConfigIntegrationService_1 = class NestjsConfigIntegrationService {
26
- constructor(factoryRegistrationService, options = {}) {
27
- this.factoryRegistrationService = factoryRegistrationService;
28
- this.options = options;
29
- this.logger = new common_1.Logger(NestjsConfigIntegrationService_1.name);
30
- }
31
- /**
32
- * Create a ConfigModule configuration with AWS-sourced factories.
33
- * This method can be used to enhance existing @nestjs/config setups.
34
- *
35
- * @param baseOptions - Base ConfigModule options to enhance
36
- * @returns Promise resolving to enhanced ConfigModule options
37
- */
38
- async createConfigModuleOptions(baseOptions = {}) {
39
- this.logger.debug('Creating ConfigModule options with AWS integration');
40
- try {
41
- // Register AWS configuration factories
42
- const awsFactories = await this.factoryRegistrationService.registerFactories();
43
- // Merge AWS factories with existing load array
44
- const existingLoad = baseOptions.load || [];
45
- const enhancedLoad = [...existingLoad, ...awsFactories];
46
- // Create enhanced options
47
- const enhancedOptions = {
48
- ...baseOptions,
49
- load: enhancedLoad,
50
- // Apply integration-specific options with proper precedence
51
- isGlobal: baseOptions.isGlobal !== undefined ? baseOptions.isGlobal : (this.options.registerGlobally ?? true),
52
- cache: baseOptions.cache !== undefined ? baseOptions.cache : (this.options.factoryOptions?.cache ?? true),
53
- expandVariables: baseOptions.expandVariables !== undefined ? baseOptions.expandVariables : (this.options.factoryOptions?.expandVariables ?? true),
54
- };
55
- this.logger.log(`Enhanced ConfigModule options with ${awsFactories.length} AWS factories`);
56
- return enhancedOptions;
57
- }
58
- catch (error) {
59
- const enhancementError = error instanceof Error ? error : new Error(String(error));
60
- this.logger.error('Failed to create enhanced ConfigModule options:', enhancementError);
61
- // Handle enhancement failure based on options
62
- if (this.options.failOnAwsError) {
63
- throw enhancementError;
64
- }
65
- // Return base options if fallback is enabled
66
- if (this.options.fallbackToLocal) {
67
- this.logger.warn('Falling back to base ConfigModule options due to AWS error');
68
- return baseOptions;
69
- }
70
- throw enhancementError;
71
- }
72
- }
73
- /**
74
- * Create a ConfigModule configuration for async setup.
75
- * This method works with ConfigModule.forRootAsync() pattern.
76
- *
77
- * @param baseOptions - Base async ConfigModule options to enhance
78
- * @returns Promise resolving to enhanced async ConfigModule options
79
- */
80
- async createAsyncConfigModuleOptions(baseOptions = {}) {
81
- this.logger.debug('Creating async ConfigModule options with AWS integration');
82
- try {
83
- // Create a factory function that includes AWS configuration
84
- const enhancedUseFactory = async (...args) => {
85
- // Call original factory if it exists
86
- let baseConfig = {};
87
- if (baseOptions.useFactory) {
88
- baseConfig = await baseOptions.useFactory(...args);
89
- }
90
- // Enhance with AWS configuration
91
- return await this.createConfigModuleOptions(baseConfig);
92
- };
93
- // Create enhanced async options
94
- const enhancedAsyncOptions = {
95
- ...baseOptions,
96
- useFactory: enhancedUseFactory,
97
- // Ensure our service is injected
98
- inject: [...(baseOptions.inject || []), factory_registration_service_1.FactoryRegistrationService],
99
- };
100
- this.logger.debug('Created enhanced async ConfigModule options');
101
- return enhancedAsyncOptions;
102
- }
103
- catch (error) {
104
- const asyncError = error instanceof Error ? error : new Error(String(error));
105
- this.logger.error('Failed to create async ConfigModule options:', asyncError);
106
- if (this.options.failOnAwsError) {
107
- throw asyncError;
108
- }
109
- // Return base options if fallback is enabled
110
- if (this.options.fallbackToLocal) {
111
- this.logger.warn('Falling back to base async ConfigModule options due to AWS error');
112
- return baseOptions;
113
- }
114
- throw asyncError;
115
- }
116
- }
117
- /**
118
- * Create a complete ConfigModule with AWS integration.
119
- * This method returns a ready-to-use DynamicModule.
120
- *
121
- * @param baseOptions - Base ConfigModule options
122
- * @returns Promise resolving to DynamicModule with AWS integration
123
- */
124
- async createIntegratedConfigModule(baseOptions = {}) {
125
- this.logger.debug('Creating integrated ConfigModule with AWS support');
126
- try {
127
- // Create enhanced options
128
- const enhancedOptions = await this.createConfigModuleOptions(baseOptions);
129
- // Create the ConfigModule with enhanced options
130
- const configModule = await config_1.ConfigModule.forRoot(enhancedOptions);
131
- this.logger.log('Created integrated ConfigModule with AWS support');
132
- return configModule;
133
- }
134
- catch (error) {
135
- const moduleError = error instanceof Error ? error : new Error(String(error));
136
- this.logger.error('Failed to create integrated ConfigModule:', moduleError);
137
- if (this.options.failOnAwsError) {
138
- throw moduleError;
139
- }
140
- // Return basic ConfigModule if fallback is enabled
141
- if (this.options.fallbackToLocal) {
142
- this.logger.warn('Falling back to basic ConfigModule due to AWS error');
143
- return await config_1.ConfigModule.forRoot(baseOptions);
144
- }
145
- throw moduleError;
146
- }
147
- }
148
- /**
149
- * Create an async integrated ConfigModule.
150
- * This method returns a ready-to-use async DynamicModule.
151
- *
152
- * @param baseOptions - Base async ConfigModule options
153
- * @returns Promise resolving to DynamicModule with async AWS integration
154
- */
155
- async createAsyncIntegratedConfigModule(baseOptions = {}) {
156
- this.logger.debug('Creating async integrated ConfigModule with AWS support');
157
- try {
158
- // Create enhanced options with AWS integration
159
- const enhancedOptions = await this.createConfigModuleOptions(baseOptions);
160
- // Create the ConfigModule with enhanced options
161
- const asyncConfigModule = await config_1.ConfigModule.forRoot(enhancedOptions);
162
- this.logger.log('Created async integrated ConfigModule with AWS support');
163
- return asyncConfigModule;
164
- }
165
- catch (error) {
166
- const asyncModuleError = error instanceof Error ? error : new Error(String(error));
167
- this.logger.error('Failed to create async integrated ConfigModule:', asyncModuleError);
168
- if (this.options.failOnAwsError) {
169
- throw asyncModuleError;
170
- }
171
- // Return basic async ConfigModule if fallback is enabled
172
- if (this.options.fallbackToLocal) {
173
- this.logger.warn('Falling back to basic async ConfigModule due to AWS error');
174
- return await config_1.ConfigModule.forRoot(baseOptions);
175
- }
176
- throw asyncModuleError;
177
- }
178
- }
179
- /**
180
- * Get configuration factories for manual registration.
181
- * This method allows developers to manually register AWS factories with their own ConfigModule setup.
182
- *
183
- * @returns Promise resolving to array of configuration factories
184
- */
185
- async getConfigurationFactories() {
186
- this.logger.debug('Getting configuration factories for manual registration');
187
- try {
188
- const factories = await this.factoryRegistrationService.registerFactories();
189
- this.logger.debug(`Retrieved ${factories.length} configuration factories`);
190
- return factories;
191
- }
192
- catch (error) {
193
- const factoryError = error instanceof Error ? error : new Error(String(error));
194
- this.logger.error('Failed to get configuration factories:', factoryError);
195
- if (this.options.failOnAwsError) {
196
- throw factoryError;
197
- }
198
- // Return empty array if fallback is enabled
199
- if (this.options.fallbackToLocal) {
200
- this.logger.warn('Returning empty factories array due to AWS error');
201
- return [];
202
- }
203
- throw factoryError;
204
- }
205
- }
206
- /**
207
- * Get namespaced configuration factories.
208
- * This method returns factories for specific namespaces only.
209
- *
210
- * @param namespaces - Array of namespace names to get factories for
211
- * @returns Promise resolving to array of namespaced configuration factories
212
- */
213
- async getNamespacedFactories(namespaces) {
214
- this.logger.debug(`Getting namespaced factories for: ${namespaces.join(', ')}`);
215
- try {
216
- const factories = await this.factoryRegistrationService.registerNamespacedFactories(namespaces);
217
- this.logger.debug(`Retrieved ${factories.length} namespaced factories`);
218
- return factories;
219
- }
220
- catch (error) {
221
- const namespacedError = error instanceof Error ? error : new Error(String(error));
222
- this.logger.error('Failed to get namespaced factories:', namespacedError);
223
- if (this.options.failOnAwsError) {
224
- throw namespacedError;
225
- }
226
- // Return empty array if fallback is enabled
227
- if (this.options.fallbackToLocal) {
228
- this.logger.warn('Returning empty namespaced factories array due to AWS error');
229
- return [];
230
- }
231
- throw namespacedError;
232
- }
233
- }
234
- /**
235
- * Create a configuration factory for immediate use.
236
- * This method creates a single factory that can be used directly with @nestjs/config.
237
- *
238
- * @param namespace - Optional namespace for the factory
239
- * @param config - Optional configuration data to use
240
- * @returns Configuration factory
241
- */
242
- createImmediateFactory(namespace, config) {
243
- this.logger.debug(`Creating immediate factory for namespace: ${namespace || 'default'}`);
244
- try {
245
- const factory = this.factoryRegistrationService.createSyncFactory(namespace, config);
246
- this.logger.debug(`Created immediate factory: ${namespace || 'default'}`);
247
- return factory;
248
- }
249
- catch (error) {
250
- const immediateError = error instanceof Error ? error : new Error(String(error));
251
- this.logger.error('Failed to create immediate factory:', immediateError);
252
- if (this.options.failOnAwsError) {
253
- throw immediateError;
254
- }
255
- // Return empty factory if fallback is enabled
256
- if (this.options.fallbackToLocal) {
257
- this.logger.warn('Creating empty factory due to error');
258
- return () => config || {};
259
- }
260
- throw immediateError;
261
- }
262
- }
263
- /**
264
- * Check if AWS integration is available and working.
265
- * This method can be used to verify the integration status.
266
- *
267
- * @returns Promise resolving to integration status
268
- */
269
- async checkIntegrationStatus() {
270
- this.logger.debug('Checking AWS integration status');
271
- const status = {
272
- isAvailable: false,
273
- factoriesRegistered: 0,
274
- errors: []
275
- };
276
- try {
277
- // Check if factories are initialized
278
- const isInitialized = this.factoryRegistrationService.isFactoriesInitialized();
279
- if (isInitialized) {
280
- const registeredFactories = this.factoryRegistrationService.getRegisteredFactories();
281
- status.factoriesRegistered = registeredFactories.size;
282
- status.isAvailable = true;
283
- }
284
- else {
285
- // Try to register factories to check availability
286
- const factories = await this.factoryRegistrationService.registerFactories();
287
- status.factoriesRegistered = factories.length;
288
- status.isAvailable = true;
289
- }
290
- this.logger.debug(`Integration status: available=${status.isAvailable}, factories=${status.factoriesRegistered}`);
291
- }
292
- catch (error) {
293
- const statusError = error instanceof Error ? error : new Error(String(error));
294
- status.errors.push(statusError.message);
295
- this.logger.error('Integration status check failed:', statusError);
296
- }
297
- return status;
298
- }
299
- /**
300
- * Reset the integration state.
301
- * This method clears all registered factories and resets the integration.
302
- */
303
- resetIntegration() {
304
- this.logger.debug('Resetting AWS integration state');
305
- this.factoryRegistrationService.reset();
306
- this.logger.debug('AWS integration state reset complete');
307
- }
308
- };
309
- exports.NestjsConfigIntegrationService = NestjsConfigIntegrationService;
310
- exports.NestjsConfigIntegrationService = NestjsConfigIntegrationService = NestjsConfigIntegrationService_1 = __decorate([
311
- (0, common_1.Injectable)(),
312
- __param(1, (0, common_1.Optional)()),
313
- __param(1, (0, common_1.Inject)(nestjs_config_integration_module_1.NESTJS_CONFIG_AWS_INTEGRATION_OPTIONS)),
314
- __metadata("design:paramtypes", [factory_registration_service_1.FactoryRegistrationService, Object])
315
- ], NestjsConfigIntegrationService);
316
- //# sourceMappingURL=nestjs-config-integration.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nestjs-config-integration.service.js","sourceRoot":"","sources":["../../../../src/integration/services/nestjs-config-integration.service.ts"],"names":[],"mappings":"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"}
@@ -1,294 +0,0 @@
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 PrecedenceHandlerService_1;
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.PrecedenceHandlerService = void 0;
11
- const common_1 = require("@nestjs/common");
12
- /**
13
- * Service responsible for handling configuration precedence rules and merging strategies.
14
- */
15
- let PrecedenceHandlerService = PrecedenceHandlerService_1 = class PrecedenceHandlerService {
16
- constructor() {
17
- this.logger = new common_1.Logger(PrecedenceHandlerService_1.name);
18
- }
19
- /**
20
- * Apply precedence rules to merge configuration from multiple sources.
21
- * @param sources - Array of configuration sources
22
- * @param precedenceRule - The precedence rule to apply
23
- * @returns Merged configuration data
24
- */
25
- applyPrecedenceRules(sources, precedenceRule) {
26
- this.logger.debug(`Applying precedence rule: ${precedenceRule} to ${sources.length} sources`);
27
- if (sources.length === 0) {
28
- return {};
29
- }
30
- if (sources.length === 1) {
31
- return sources[0]?.data || {};
32
- }
33
- switch (precedenceRule) {
34
- case 'aws-first':
35
- return this.applyAwsFirstPrecedence(sources);
36
- case 'local-first':
37
- return this.applyLocalFirstPrecedence(sources);
38
- case 'merge':
39
- return this.applyMergePrecedence(sources);
40
- default:
41
- this.logger.warn(`Unknown precedence rule: ${precedenceRule}, defaulting to 'aws-first'`);
42
- return this.applyAwsFirstPrecedence(sources);
43
- }
44
- }
45
- /**
46
- * Apply AWS-first precedence: AWS sources override local sources.
47
- * Priority order: AWS Secrets Manager > SSM Parameter Store > Environment > Local Files
48
- * @param sources - Configuration sources
49
- * @returns Merged configuration
50
- */
51
- applyAwsFirstPrecedence(sources) {
52
- this.logger.debug('Applying AWS-first precedence');
53
- const sortedSources = this.sortSourcesByAwsFirstPriority(sources);
54
- return this.mergeSourcesInOrder(sortedSources);
55
- }
56
- /**
57
- * Apply local-first precedence: Local sources override AWS sources.
58
- * Priority order: Local Files > Environment > SSM Parameter Store > AWS Secrets Manager
59
- * @param sources - Configuration sources
60
- * @returns Merged configuration
61
- */
62
- applyLocalFirstPrecedence(sources) {
63
- this.logger.debug('Applying local-first precedence');
64
- const sortedSources = this.sortSourcesByLocalFirstPriority(sources);
65
- return this.mergeSourcesInOrder(sortedSources);
66
- }
67
- /**
68
- * Apply merge precedence: Intelligent merging based on source type and priority.
69
- * Uses a balanced approach where both AWS and local sources contribute.
70
- * @param sources - Configuration sources
71
- * @returns Merged configuration
72
- */
73
- applyMergePrecedence(sources) {
74
- this.logger.debug('Applying merge precedence');
75
- // Group sources by type
76
- const sourceGroups = this.groupSourcesByType(sources);
77
- // Merge within each group first
78
- const mergedGroups = {};
79
- for (const [type, typeSources] of Object.entries(sourceGroups)) {
80
- if (typeSources.length > 0) {
81
- mergedGroups[type] = this.mergeSourcesInOrder(typeSources);
82
- }
83
- }
84
- // Then merge across groups with balanced priority
85
- return this.mergeGroupsWithBalancedPriority(mergedGroups);
86
- }
87
- /**
88
- * Sort sources by AWS-first priority.
89
- * @param sources - Configuration sources
90
- * @returns Sorted sources (lowest priority first, highest priority last)
91
- */
92
- sortSourcesByAwsFirstPriority(sources) {
93
- const priorityMap = {
94
- 'local-file': 1,
95
- 'environment': 2,
96
- 'ssm': 3,
97
- 'secrets-manager': 4
98
- };
99
- return [...sources].sort((a, b) => {
100
- const priorityA = priorityMap[a.type] || 0;
101
- const priorityB = priorityMap[b.type] || 0;
102
- if (priorityA !== priorityB) {
103
- return priorityA - priorityB;
104
- }
105
- // If same type, sort by explicit priority
106
- return a.priority - b.priority;
107
- });
108
- }
109
- /**
110
- * Sort sources by local-first priority.
111
- * @param sources - Configuration sources
112
- * @returns Sorted sources (lowest priority first, highest priority last)
113
- */
114
- sortSourcesByLocalFirstPriority(sources) {
115
- const priorityMap = {
116
- 'secrets-manager': 1,
117
- 'ssm': 2,
118
- 'environment': 3,
119
- 'local-file': 4
120
- };
121
- return [...sources].sort((a, b) => {
122
- const priorityA = priorityMap[a.type] || 0;
123
- const priorityB = priorityMap[b.type] || 0;
124
- if (priorityA !== priorityB) {
125
- return priorityA - priorityB;
126
- }
127
- // If same type, sort by explicit priority
128
- return a.priority - b.priority;
129
- });
130
- }
131
- /**
132
- * Group sources by their type.
133
- * @param sources - Configuration sources
134
- * @returns Sources grouped by type
135
- */
136
- groupSourcesByType(sources) {
137
- const groups = {};
138
- for (const source of sources) {
139
- if (!groups[source.type]) {
140
- groups[source.type] = [];
141
- }
142
- groups[source.type]?.push(source);
143
- }
144
- // Sort within each group by priority
145
- for (const type in groups) {
146
- groups[type]?.sort((a, b) => a.priority - b.priority);
147
- }
148
- return groups;
149
- }
150
- /**
151
- * Merge sources in the given order (later sources override earlier ones).
152
- * @param sources - Ordered configuration sources
153
- * @returns Merged configuration
154
- */
155
- mergeSourcesInOrder(sources) {
156
- let merged = {};
157
- for (const source of sources) {
158
- this.logger.debug(`Merging source: ${source.name} (${source.type})`);
159
- merged = this.deepMerge(merged, source.data);
160
- }
161
- return merged;
162
- }
163
- /**
164
- * Merge groups with balanced priority for merge precedence.
165
- * @param groups - Configuration groups by type
166
- * @returns Merged configuration
167
- */
168
- mergeGroupsWithBalancedPriority(groups) {
169
- let merged = {};
170
- // Merge in balanced order: local-file -> environment -> ssm -> secrets-manager
171
- const mergeOrder = ['local-file', 'environment', 'ssm', 'secrets-manager'];
172
- for (const type of mergeOrder) {
173
- if (groups[type]) {
174
- this.logger.debug(`Merging group: ${type}`);
175
- merged = this.deepMerge(merged, groups[type]);
176
- }
177
- }
178
- return merged;
179
- }
180
- /**
181
- * Deep merge two configuration objects with conflict resolution.
182
- * @param target - Target object (lower priority)
183
- * @param source - Source object (higher priority)
184
- * @returns Merged object
185
- */
186
- deepMerge(target, source) {
187
- const result = { ...target };
188
- for (const [key, value] of Object.entries(source)) {
189
- if (this.shouldDeepMerge(result[key], value)) {
190
- result[key] = this.deepMerge(result[key], value);
191
- }
192
- else {
193
- result[key] = this.cloneValue(value);
194
- }
195
- }
196
- return result;
197
- }
198
- /**
199
- * Determine if two values should be deep merged.
200
- * @param target - Target value
201
- * @param source - Source value
202
- * @returns True if should deep merge, false otherwise
203
- */
204
- shouldDeepMerge(target, source) {
205
- return target !== null &&
206
- source !== null &&
207
- typeof target === 'object' &&
208
- typeof source === 'object' &&
209
- !Array.isArray(target) &&
210
- !Array.isArray(source);
211
- }
212
- /**
213
- * Clone a value to avoid reference issues.
214
- * @param value - Value to clone
215
- * @returns Cloned value
216
- */
217
- cloneValue(value) {
218
- if (value === null || typeof value !== 'object') {
219
- return value;
220
- }
221
- if (Array.isArray(value)) {
222
- return value.map(item => this.cloneValue(item));
223
- }
224
- const cloned = {};
225
- for (const [key, val] of Object.entries(value)) {
226
- cloned[key] = this.cloneValue(val);
227
- }
228
- return cloned;
229
- }
230
- /**
231
- * Validate configuration sources for precedence handling.
232
- * @param sources - Configuration sources to validate
233
- * @returns Validation result with any issues found
234
- */
235
- validateSources(sources) {
236
- const issues = [];
237
- if (!Array.isArray(sources)) {
238
- issues.push('Sources must be an array');
239
- return { valid: false, issues };
240
- }
241
- for (let i = 0; i < sources.length; i++) {
242
- const source = sources[i];
243
- if (!source) {
244
- issues.push(`Source at index ${i} is null or undefined`);
245
- continue;
246
- }
247
- if (!source.name || typeof source.name !== 'string') {
248
- issues.push(`Source at index ${i} must have a valid name`);
249
- }
250
- if (!source.type || !['environment', 'secrets-manager', 'ssm', 'local-file'].includes(source.type)) {
251
- issues.push(`Source at index ${i} must have a valid type`);
252
- }
253
- if (typeof source.priority !== 'number') {
254
- issues.push(`Source at index ${i} must have a numeric priority`);
255
- }
256
- if (!source.data || typeof source.data !== 'object') {
257
- issues.push(`Source at index ${i} must have valid data object`);
258
- }
259
- if (!source.loadedAt || !(source.loadedAt instanceof Date)) {
260
- issues.push(`Source at index ${i} must have a valid loadedAt date`);
261
- }
262
- }
263
- return { valid: issues.length === 0, issues };
264
- }
265
- /**
266
- * Get the effective priority for a source based on precedence rule.
267
- * @param source - Configuration source
268
- * @param precedenceRule - Precedence rule
269
- * @returns Effective priority
270
- */
271
- getEffectivePriority(source, precedenceRule) {
272
- const basePriority = source.priority;
273
- switch (precedenceRule) {
274
- case 'aws-first':
275
- const awsFirstBonus = source.type === 'secrets-manager' ? 1000 :
276
- source.type === 'ssm' ? 500 : 0;
277
- return basePriority + awsFirstBonus;
278
- case 'local-first':
279
- const localFirstBonus = source.type === 'local-file' ? 1000 :
280
- source.type === 'environment' ? 500 : 0;
281
- return basePriority + localFirstBonus;
282
- case 'merge':
283
- // In merge mode, all sources have equal weight
284
- return basePriority;
285
- default:
286
- return basePriority;
287
- }
288
- }
289
- };
290
- exports.PrecedenceHandlerService = PrecedenceHandlerService;
291
- exports.PrecedenceHandlerService = PrecedenceHandlerService = PrecedenceHandlerService_1 = __decorate([
292
- (0, common_1.Injectable)()
293
- ], PrecedenceHandlerService);
294
- //# sourceMappingURL=precedence-handler.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"precedence-handler.service.js","sourceRoot":"","sources":["../../../../src/integration/services/precedence-handler.service.ts"],"names":[],"mappings":"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"}