@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,591 +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 AwsConfigurationLoaderService_1;
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.AwsConfigurationLoaderService = void 0;
17
- const common_1 = require("@nestjs/common");
18
- const secrets_manager_loader_1 = require("../../loaders/secrets-manager.loader");
19
- const ssm_parameter_store_loader_1 = require("../../loaders/ssm-parameter-store.loader");
20
- const environment_loader_1 = require("../../loaders/environment.loader");
21
- const error_handler_service_1 = require("../services/error-handler.service");
22
- /**
23
- * Service for loading configuration from AWS sources for integration with @nestjs/config.
24
- * Uses existing AWS loaders to fetch configuration and provides namespace-aware loading capabilities.
25
- */
26
- let AwsConfigurationLoaderService = AwsConfigurationLoaderService_1 = class AwsConfigurationLoaderService {
27
- constructor(options) {
28
- this.logger = new common_1.Logger(AwsConfigurationLoaderService_1.name);
29
- this.options = options || {};
30
- this.errorHandler = new error_handler_service_1.ErrorHandlerService(this.options);
31
- this.loaders = this.createLoaders();
32
- }
33
- /**
34
- * Load configuration from AWS sources.
35
- * @returns Promise resolving to configuration data
36
- */
37
- async loadConfiguration() {
38
- const mergedConfig = {};
39
- const sources = [];
40
- for (const loader of this.loaders) {
41
- try {
42
- // Check if loader is available in current environment with timeout
43
- const isAvailable = await this.checkAvailabilityWithTimeout(loader);
44
- if (!isAvailable) {
45
- if (this.options.enableLogging) {
46
- this.logger.debug(`Skipping ${loader.getName()} - not available in current environment`);
47
- }
48
- continue;
49
- }
50
- if (this.options.enableLogging) {
51
- this.logger.debug(`Loading configuration from ${loader.getName()}`);
52
- }
53
- // Load configuration from this source with retry logic for AWS services
54
- const loaderConfig = loader instanceof environment_loader_1.EnvironmentLoader
55
- ? await loader.load()
56
- : await this.loadWithRetry(loader);
57
- // Create configuration source metadata
58
- const source = {
59
- name: loader.getName(),
60
- type: this.getSourceType(loader),
61
- priority: this.getSourcePriority(loader),
62
- data: loaderConfig,
63
- loadedAt: new Date(),
64
- };
65
- sources.push(source);
66
- // Merge with existing configuration based on precedence
67
- Object.assign(mergedConfig, loaderConfig);
68
- if (this.options.enableLogging) {
69
- const keyCount = Object.keys(loaderConfig).length;
70
- this.logger.debug(`Loaded ${keyCount} configuration values from ${loader.getName()}`);
71
- }
72
- }
73
- catch (error) {
74
- const loaderError = error instanceof Error ? error : new Error(String(error));
75
- // Log detailed error information for troubleshooting
76
- this.errorHandler.logDetailedError(`loadConfiguration - ${loader.getName()}`, loaderError, {
77
- loaderName: loader.getName(),
78
- loaderType: this.getSourceType(loader),
79
- });
80
- // Handle specific error types
81
- if (this.isAwsServiceError(loaderError)) {
82
- const shouldContinue = this.handleAwsSpecificError(loader, loaderError);
83
- if (!shouldContinue) {
84
- throw loaderError;
85
- }
86
- }
87
- else {
88
- // Handle general configuration errors
89
- const shouldContinue = this.errorHandler.handleConfigurationError(loader.getName(), loaderError);
90
- if (!shouldContinue) {
91
- throw loaderError;
92
- }
93
- }
94
- // Add error to source metadata
95
- const errorSource = {
96
- name: loader.getName(),
97
- type: this.getSourceType(loader),
98
- priority: this.getSourcePriority(loader),
99
- data: {},
100
- loadedAt: new Date(),
101
- errors: [loaderError.message],
102
- };
103
- sources.push(errorSource);
104
- }
105
- }
106
- return mergedConfig;
107
- }
108
- /**
109
- * Load configuration for specific namespaces from AWS sources.
110
- * @param namespaces - Array of namespace names to load
111
- * @returns Promise resolving to namespaced configuration data
112
- */
113
- async loadNamespacedConfiguration(namespaces) {
114
- const result = {};
115
- // Initialize all namespaces
116
- for (const namespace of namespaces) {
117
- result[namespace] = {};
118
- }
119
- for (const loader of this.loaders) {
120
- try {
121
- // Check if loader is available in current environment with timeout
122
- const isAvailable = await this.checkAvailabilityWithTimeout(loader);
123
- if (!isAvailable) {
124
- if (this.options.enableLogging) {
125
- this.logger.debug(`Skipping ${loader.getName()} for namespace loading - not available`);
126
- }
127
- continue;
128
- }
129
- if (this.options.enableLogging) {
130
- this.logger.debug(`Loading namespaced configuration from ${loader.getName()}`);
131
- }
132
- // Load configuration from this source with retry logic for AWS services
133
- const loaderConfig = loader instanceof environment_loader_1.EnvironmentLoader
134
- ? await loader.load()
135
- : await this.loadWithRetry(loader);
136
- // Distribute configuration to namespaces based on key prefixes or patterns
137
- for (const namespace of namespaces) {
138
- const namespacedConfig = this.extractNamespaceConfig(loaderConfig, namespace);
139
- if (Object.keys(namespacedConfig).length > 0) {
140
- Object.assign(result[namespace], namespacedConfig);
141
- if (this.options.enableLogging) {
142
- const keyCount = Object.keys(namespacedConfig).length;
143
- this.logger.debug(`Loaded ${keyCount} values for namespace '${namespace}' from ${loader.getName()}`);
144
- }
145
- }
146
- }
147
- }
148
- catch (error) {
149
- const loaderError = error instanceof Error ? error : new Error(String(error));
150
- // Log detailed error information for troubleshooting
151
- this.errorHandler.logDetailedError(`loadNamespacedConfiguration - ${loader.getName()}`, loaderError, {
152
- loaderName: loader.getName(),
153
- loaderType: this.getSourceType(loader),
154
- namespaces,
155
- });
156
- // Handle specific error types
157
- if (this.isAwsServiceError(loaderError)) {
158
- const shouldContinue = this.handleAwsSpecificError(loader, loaderError);
159
- if (!shouldContinue) {
160
- throw loaderError;
161
- }
162
- }
163
- else {
164
- // Handle general configuration errors
165
- const shouldContinue = this.errorHandler.handleConfigurationError(loader.getName(), loaderError);
166
- if (!shouldContinue) {
167
- throw loaderError;
168
- }
169
- }
170
- // Create fallback configuration for each namespace
171
- if (this.options.fallbackToLocal) {
172
- for (const namespace of namespaces) {
173
- const fallbackConfig = this.errorHandler.createFallbackConfiguration(namespace);
174
- Object.assign(result[namespace], fallbackConfig);
175
- }
176
- }
177
- }
178
- }
179
- return result;
180
- }
181
- /**
182
- * Check if AWS services are available.
183
- * @returns Promise resolving to availability status
184
- */
185
- async isAvailable() {
186
- try {
187
- // Check if at least one AWS loader is available
188
- const availabilityChecks = this.loaders
189
- .filter(loader => !(loader instanceof environment_loader_1.EnvironmentLoader)) // Skip environment loader
190
- .map(loader => this.checkAvailabilityWithTimeout(loader));
191
- if (availabilityChecks.length === 0) {
192
- // No AWS loaders configured
193
- return false;
194
- }
195
- // Wait for all availability checks to complete
196
- const results = await Promise.allSettled(availabilityChecks);
197
- // Return true if at least one AWS service is available
198
- return results.some(result => result.status === 'fulfilled' && result.value === true);
199
- }
200
- catch (error) {
201
- const availabilityError = error instanceof Error ? error : new Error(String(error));
202
- this.errorHandler.logDetailedError('isAvailable', availabilityError);
203
- // Handle as AWS unavailable
204
- this.errorHandler.handleAwsUnavailable('AWS Services', availabilityError);
205
- return false;
206
- }
207
- }
208
- /**
209
- * Get all available configuration sources with their metadata.
210
- * @returns Promise resolving to array of configuration sources
211
- */
212
- async getAvailableSources() {
213
- const sources = [];
214
- for (const loader of this.loaders) {
215
- try {
216
- const isAvailable = await loader.isAvailable();
217
- if (isAvailable) {
218
- const loaderConfig = await loader.load();
219
- const source = {
220
- name: loader.getName(),
221
- type: this.getSourceType(loader),
222
- priority: this.getSourcePriority(loader),
223
- data: loaderConfig,
224
- loadedAt: new Date(),
225
- };
226
- sources.push(source);
227
- }
228
- }
229
- catch (error) {
230
- // Add source with error information
231
- const source = {
232
- name: loader.getName(),
233
- type: this.getSourceType(loader),
234
- priority: this.getSourcePriority(loader),
235
- data: {},
236
- loadedAt: new Date(),
237
- errors: [error instanceof Error ? error.message : String(error)],
238
- };
239
- sources.push(source);
240
- }
241
- }
242
- return sources;
243
- }
244
- /**
245
- * Create configuration loaders based on integration options.
246
- * @returns Array of configuration loaders
247
- */
248
- createLoaders() {
249
- const loaders = [];
250
- // Always include environment loader
251
- loaders.push(new environment_loader_1.EnvironmentLoader(this.options.envPrefix));
252
- // Add AWS Secrets Manager loader if configured
253
- if (this.options.secretsManagerConfig?.enabled !== false) {
254
- const secretsConfig = {
255
- region: this.options.secretsManagerConfig?.region,
256
- // Convert paths to secretName format expected by SecretsManagerLoader
257
- secretName: this.getSecretsManagerPath(),
258
- };
259
- loaders.push(new secrets_manager_loader_1.SecretsManagerLoader(secretsConfig));
260
- }
261
- // Add SSM Parameter Store loader if configured
262
- if (this.options.ssmConfig?.enabled !== false) {
263
- const ssmConfig = {
264
- region: this.options.ssmConfig?.region,
265
- // Convert paths to parameterPath format expected by SSMParameterStoreLoader
266
- parameterPath: this.getSSMParameterPath(),
267
- withDecryption: this.options.ssmConfig?.decrypt ?? true,
268
- };
269
- loaders.push(new ssm_parameter_store_loader_1.SSMParameterStoreLoader(ssmConfig));
270
- }
271
- return loaders;
272
- }
273
- /**
274
- * Get the source type for a given loader.
275
- * @param loader - The configuration loader
276
- * @returns The configuration source type
277
- */
278
- getSourceType(loader) {
279
- if (loader instanceof environment_loader_1.EnvironmentLoader) {
280
- return 'environment';
281
- }
282
- else if (loader instanceof secrets_manager_loader_1.SecretsManagerLoader) {
283
- return 'secrets-manager';
284
- }
285
- else if (loader instanceof ssm_parameter_store_loader_1.SSMParameterStoreLoader) {
286
- return 'ssm';
287
- }
288
- else {
289
- return 'local-file';
290
- }
291
- }
292
- /**
293
- * Get the priority for a given loader based on precedence rules.
294
- * @param loader - The configuration loader
295
- * @returns The priority number (higher = higher priority)
296
- */
297
- getSourcePriority(loader) {
298
- const precedence = this.options.precedence || 'aws-first';
299
- if (precedence === 'local-first') {
300
- // Environment variables have highest priority
301
- if (loader instanceof environment_loader_1.EnvironmentLoader)
302
- return 100;
303
- if (loader instanceof secrets_manager_loader_1.SecretsManagerLoader)
304
- return 50;
305
- if (loader instanceof ssm_parameter_store_loader_1.SSMParameterStoreLoader)
306
- return 40;
307
- }
308
- else if (precedence === 'aws-first') {
309
- // AWS sources have higher priority
310
- if (loader instanceof secrets_manager_loader_1.SecretsManagerLoader)
311
- return 100;
312
- if (loader instanceof ssm_parameter_store_loader_1.SSMParameterStoreLoader)
313
- return 90;
314
- if (loader instanceof environment_loader_1.EnvironmentLoader)
315
- return 50;
316
- }
317
- else {
318
- // merge - equal priority, order matters
319
- return 50;
320
- }
321
- return 50;
322
- }
323
- /**
324
- * Extract configuration for a specific namespace from loaded configuration.
325
- * @param config - The loaded configuration
326
- * @param namespace - The namespace to extract
327
- * @returns Configuration values for the namespace
328
- */
329
- extractNamespaceConfig(config, namespace) {
330
- const namespaceConfig = {};
331
- const namespacePrefix = namespace.toUpperCase();
332
- // Strategy 1: Look for direct namespace key (e.g., config.database)
333
- if (config[namespace]) {
334
- Object.assign(namespaceConfig, config[namespace]);
335
- }
336
- // Strategy 2: Look for keys that start with the namespace prefix (e.g., DATABASE_HOST)
337
- for (const [key, value] of Object.entries(config)) {
338
- const upperKey = key.toUpperCase();
339
- // Check if key starts with namespace prefix followed by underscore
340
- if (upperKey.startsWith(`${namespacePrefix}_`)) {
341
- // Remove namespace prefix and underscore, convert to camelCase
342
- const namespacedKey = key.substring(namespace.length + 1);
343
- const camelCaseKey = this.toCamelCase(namespacedKey);
344
- if (camelCaseKey) {
345
- namespaceConfig[camelCaseKey] = value;
346
- }
347
- }
348
- }
349
- // Strategy 3: Look for nested namespace paths (e.g., /app/database/host)
350
- const nestedConfig = this.extractNestedNamespaceConfig(config, namespace);
351
- Object.assign(namespaceConfig, nestedConfig);
352
- return namespaceConfig;
353
- }
354
- /**
355
- * Extract nested namespace configuration from hierarchical keys.
356
- * @param config - The loaded configuration
357
- * @param namespace - The namespace to extract
358
- * @returns Configuration values for the namespace
359
- */
360
- extractNestedNamespaceConfig(config, namespace) {
361
- const namespaceConfig = {};
362
- const namespacePath = `/${namespace}/`;
363
- for (const [key, value] of Object.entries(config)) {
364
- // Check if key contains namespace path
365
- if (key.includes(namespacePath)) {
366
- // Extract the part after the namespace path
367
- const pathIndex = key.indexOf(namespacePath);
368
- const afterNamespace = key.substring(pathIndex + namespacePath.length);
369
- if (afterNamespace) {
370
- // Convert path segments to nested object structure
371
- const nestedKey = this.pathToNestedKey(afterNamespace);
372
- this.setNestedValue(namespaceConfig, nestedKey, value);
373
- }
374
- }
375
- }
376
- return namespaceConfig;
377
- }
378
- /**
379
- * Convert snake_case or kebab-case to camelCase.
380
- * @param str - String to convert
381
- * @returns camelCase string
382
- */
383
- toCamelCase(str) {
384
- return str
385
- .toLowerCase()
386
- .replace(/[_-](.)/g, (_, char) => char.toUpperCase());
387
- }
388
- /**
389
- * Convert path segments to nested key structure.
390
- * @param path - Path string (e.g., "host/port")
391
- * @returns Nested key structure
392
- */
393
- pathToNestedKey(path) {
394
- return path
395
- .split('/')
396
- .map(segment => this.toCamelCase(segment))
397
- .join('.');
398
- }
399
- /**
400
- * Set a nested value in an object using dot notation.
401
- * @param obj - Target object
402
- * @param path - Dot notation path
403
- * @param value - Value to set
404
- */
405
- setNestedValue(obj, path, value) {
406
- const keys = path.split('.');
407
- let current = obj;
408
- for (let i = 0; i < keys.length - 1; i++) {
409
- const key = keys[i];
410
- if (key && (!(key in current) || typeof current[key] !== 'object')) {
411
- current[key] = {};
412
- }
413
- if (key) {
414
- current = current[key];
415
- }
416
- }
417
- const lastKey = keys[keys.length - 1];
418
- if (lastKey) {
419
- current[lastKey] = value;
420
- }
421
- }
422
- /**
423
- * Get the Secrets Manager path based on configuration.
424
- * @returns The secrets manager path
425
- */
426
- getSecretsManagerPath() {
427
- const paths = this.options.secretsManagerConfig?.paths;
428
- if (!paths) {
429
- return '/nestjs-config-aws';
430
- }
431
- // Use the first available path or default
432
- return paths.production || paths.development || paths.test || '/nestjs-config-aws';
433
- }
434
- /**
435
- * Get the SSM Parameter Store path based on configuration.
436
- * @returns The SSM parameter path
437
- */
438
- getSSMParameterPath() {
439
- const paths = this.options.ssmConfig?.paths;
440
- if (!paths) {
441
- return '/nestjs-config-aws';
442
- }
443
- // Use the first available path or default
444
- return paths.production || paths.development || paths.test || '/nestjs-config-aws';
445
- }
446
- /**
447
- * Check if an error is an AWS service error.
448
- * @param error - The error to check
449
- * @returns Whether the error is from an AWS service
450
- */
451
- isAwsServiceError(error) {
452
- // AWS SDK errors typically have specific names
453
- const awsErrorNames = [
454
- 'AccessDeniedException',
455
- 'ResourceNotFoundException',
456
- 'InvalidRequestException',
457
- 'ThrottlingException',
458
- 'ServiceUnavailableException',
459
- 'NetworkingError',
460
- 'TimeoutError',
461
- 'CredentialsError',
462
- 'UnknownEndpoint',
463
- ];
464
- return awsErrorNames.includes(error.name) || error.message.includes('AWS');
465
- }
466
- /**
467
- * Handle AWS-specific errors with appropriate strategies.
468
- * @param loader - The loader that encountered the error
469
- * @param error - The AWS error
470
- * @returns Whether to continue processing
471
- */
472
- handleAwsSpecificError(loader, error) {
473
- const serviceName = this.getServiceName(loader);
474
- switch (error.name) {
475
- case 'AccessDeniedException':
476
- return this.errorHandler.handlePermissionError(serviceName, this.getResourceName(loader), error);
477
- case 'ResourceNotFoundException':
478
- return this.errorHandler.handleResourceNotFound(serviceName, this.getResourceName(loader), error);
479
- case 'NetworkingError':
480
- case 'TimeoutError':
481
- const networkResult = this.errorHandler.handleNetworkError(serviceName, error);
482
- return networkResult.shouldContinue;
483
- case 'ThrottlingException':
484
- case 'TooManyRequestsException':
485
- this.logger.warn(`Rate limiting encountered for ${serviceName}, continuing with other sources`);
486
- return true;
487
- case 'ServiceUnavailableException':
488
- return this.errorHandler.handleAwsUnavailable(serviceName, error);
489
- case 'CredentialsError':
490
- this.logger.error(`AWS credentials error for ${serviceName}: ${error.message}`);
491
- this.logger.error('Please check AWS credentials configuration');
492
- return this.errorHandler.handleAwsUnavailable(serviceName, error);
493
- default:
494
- // Handle as general configuration error
495
- return this.errorHandler.handleConfigurationError(serviceName, error);
496
- }
497
- }
498
- /**
499
- * Get the service name for a loader.
500
- * @param loader - The configuration loader
501
- * @returns The service name
502
- */
503
- getServiceName(loader) {
504
- if (loader instanceof secrets_manager_loader_1.SecretsManagerLoader) {
505
- return 'AWS Secrets Manager';
506
- }
507
- else if (loader instanceof ssm_parameter_store_loader_1.SSMParameterStoreLoader) {
508
- return 'AWS Systems Manager Parameter Store';
509
- }
510
- else if (loader instanceof environment_loader_1.EnvironmentLoader) {
511
- return 'Environment Variables';
512
- }
513
- else {
514
- return 'Unknown Service';
515
- }
516
- }
517
- /**
518
- * Get the resource name for a loader.
519
- * @param loader - The configuration loader
520
- * @returns The resource name
521
- */
522
- getResourceName(loader) {
523
- if (loader instanceof secrets_manager_loader_1.SecretsManagerLoader) {
524
- return this.getSecretsManagerPath();
525
- }
526
- else if (loader instanceof ssm_parameter_store_loader_1.SSMParameterStoreLoader) {
527
- return this.getSSMParameterPath();
528
- }
529
- else {
530
- return 'configuration';
531
- }
532
- }
533
- /**
534
- * Load configuration with retry logic for retryable errors.
535
- * @param loader - The configuration loader
536
- * @param maxRetries - Maximum number of retries
537
- * @returns Promise resolving to configuration data
538
- */
539
- async loadWithRetry(loader, maxRetries = 3) {
540
- let lastError = null;
541
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
542
- try {
543
- return await loader.load();
544
- }
545
- catch (error) {
546
- const loaderError = error instanceof Error ? error : new Error(String(error));
547
- lastError = loaderError;
548
- // Check if error is retryable
549
- if (!this.errorHandler.isRetryableError(loaderError) || attempt === maxRetries) {
550
- throw loaderError;
551
- }
552
- // Wait before retrying
553
- const delay = this.errorHandler.getRetryDelay(attempt);
554
- this.logger.warn(`Retrying ${loader.getName()} in ${delay}ms (attempt ${attempt}/${maxRetries})`);
555
- await new Promise(resolve => setTimeout(resolve, delay));
556
- }
557
- }
558
- // This should never be reached, but just in case
559
- throw lastError || new Error('Unknown error during retry');
560
- }
561
- /**
562
- * Check availability with timeout and error handling.
563
- * @param loader - The configuration loader
564
- * @param timeoutMs - Timeout in milliseconds
565
- * @returns Promise resolving to availability status
566
- */
567
- async checkAvailabilityWithTimeout(loader, timeoutMs = 5000) {
568
- try {
569
- const timeoutPromise = new Promise((_, reject) => {
570
- setTimeout(() => reject(new Error('Availability check timeout')), timeoutMs);
571
- });
572
- const availabilityPromise = loader.isAvailable();
573
- return await Promise.race([availabilityPromise, timeoutPromise]);
574
- }
575
- catch (error) {
576
- const loaderError = error instanceof Error ? error : new Error(String(error));
577
- if (this.options.enableLogging) {
578
- this.logger.debug(`Availability check failed for ${loader.getName()}: ${loaderError.message}`);
579
- }
580
- return false;
581
- }
582
- }
583
- };
584
- exports.AwsConfigurationLoaderService = AwsConfigurationLoaderService;
585
- exports.AwsConfigurationLoaderService = AwsConfigurationLoaderService = AwsConfigurationLoaderService_1 = __decorate([
586
- (0, common_1.Injectable)(),
587
- __param(0, (0, common_1.Optional)()),
588
- __param(0, (0, common_1.Inject)('INTEGRATION_OPTIONS')),
589
- __metadata("design:paramtypes", [Object])
590
- ], AwsConfigurationLoaderService);
591
- //# sourceMappingURL=aws-configuration-loader.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aws-configuration-loader.service.js","sourceRoot":"","sources":["../../../../src/integration/providers/aws-configuration-loader.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAsE;AAEtE,iFAA4E;AAC5E,yFAAmF;AACnF,yEAAqE;AAIrE,6EAAwE;AAExE;;;GAGG;AAEI,IAAM,6BAA6B,qCAAnC,MAAM,6BAA6B;IAMxC,YAC6C,OAA4B;QANxD,WAAM,GAAG,IAAI,eAAM,CAAC,+BAA6B,CAAC,IAAI,CAAC,CAAC;QAQvE,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,YAAY,GAAwB,EAAE,CAAC;QAC7C,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,mEAAmE;gBACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;oBAC3F,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAED,wEAAwE;gBACxE,MAAM,YAAY,GAAG,MAAM,YAAY,sCAAiB;oBACtD,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE;oBACrB,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAErC,uCAAuC;gBACvC,MAAM,MAAM,GAAwB;oBAClC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;oBACtB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBAChC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACxC,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI,IAAI,EAAE;iBACrB,CAAC;gBAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAErB,wDAAwD;gBACxD,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;gBAE1C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;oBAClD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,8BAA8B,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE9E,qDAAqD;gBACrD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,uBAAuB,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE;oBACzF,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC5B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;iBACvC,CAAC,CAAC;gBAEH,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxC,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBACxE,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;oBACjG,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,WAAW,GAAwB;oBACvC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;oBACtB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBAChC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACxC,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,IAAI,IAAI,EAAE;oBACpB,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;iBAC9B,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,2BAA2B,CAAC,UAAoB;QACpD,MAAM,MAAM,GAAwC,EAAE,CAAC;QAEvD,4BAA4B;QAC5B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,mEAAmE;gBACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;gBAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;wBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;oBAC1F,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yCAAyC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACjF,CAAC;gBAED,wEAAwE;gBACxE,MAAM,YAAY,GAAG,MAAM,YAAY,sCAAiB;oBACtD,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE;oBACrB,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBAErC,2EAA2E;gBAC3E,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;oBAE9E,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAE,EAAE,gBAAgB,CAAC,CAAC;wBAEpD,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;4BAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;4BACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,QAAQ,0BAA0B,SAAS,UAAU,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;wBACvG,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAE9E,qDAAqD;gBACrD,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,iCAAiC,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE;oBACnG,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC5B,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBACtC,UAAU;iBACX,CAAC,CAAC;gBAEH,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;oBACxC,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;oBACxE,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,sCAAsC;oBACtC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;oBACjG,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,mDAAmD;gBACnD,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;oBACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;wBACnC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;wBAChF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAE,EAAE,cAAc,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO;iBACpC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,YAAY,sCAAiB,CAAC,CAAC,CAAC,0BAA0B;iBACnF,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC;YAE5D,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,4BAA4B;gBAC5B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,+CAA+C;YAC/C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;YAE7D,uDAAuD;YACvD,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,iBAAiB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEpF,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;YAErE,4BAA4B;YAC5B,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;YAE1E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;gBAE/C,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oBAEzC,MAAM,MAAM,GAAwB;wBAClC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;wBACtB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;wBAChC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;wBACxC,IAAI,EAAE,YAAY;wBAClB,QAAQ,EAAE,IAAI,IAAI,EAAE;qBACrB,CAAC;oBAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oCAAoC;gBACpC,MAAM,MAAM,GAAwB;oBAClC,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE;oBACtB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;oBAChC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;oBACxC,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE,IAAI,IAAI,EAAE;oBACpB,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBACjE,CAAC;gBAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACK,aAAa;QACnB,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,oCAAoC;QACpC,OAAO,CAAC,IAAI,CAAC,IAAI,sCAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAE5D,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACzD,MAAM,aAAa,GAAG;gBACpB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM;gBACjD,sEAAsE;gBACtE,UAAU,EAAE,IAAI,CAAC,qBAAqB,EAAE;aACzC,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAI,6CAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG;gBAChB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM;gBACtC,4EAA4E;gBAC5E,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACzC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI;aACxD,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAI,oDAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,MAAoB;QACxC,IAAI,MAAM,YAAY,sCAAiB,EAAE,CAAC;YACxC,OAAO,aAAa,CAAC;QACvB,CAAC;aAAM,IAAI,MAAM,YAAY,6CAAoB,EAAE,CAAC;YAClD,OAAO,iBAAiB,CAAC;QAC3B,CAAC;aAAM,IAAI,MAAM,YAAY,oDAAuB,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,MAAoB;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,WAAW,CAAC;QAE1D,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YACjC,8CAA8C;YAC9C,IAAI,MAAM,YAAY,sCAAiB;gBAAE,OAAO,GAAG,CAAC;YACpD,IAAI,MAAM,YAAY,6CAAoB;gBAAE,OAAO,EAAE,CAAC;YACtD,IAAI,MAAM,YAAY,oDAAuB;gBAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;aAAM,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YACtC,mCAAmC;YACnC,IAAI,MAAM,YAAY,6CAAoB;gBAAE,OAAO,GAAG,CAAC;YACvD,IAAI,MAAM,YAAY,oDAAuB;gBAAE,OAAO,EAAE,CAAC;YACzD,IAAI,MAAM,YAAY,sCAAiB;gBAAE,OAAO,EAAE,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAAC,MAA2B,EAAE,SAAiB;QAC3E,MAAM,eAAe,GAAwB,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;QAEhD,oEAAoE;QACpE,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,uFAAuF;QACvF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAEnC,mEAAmE;YACnE,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,GAAG,CAAC,EAAE,CAAC;gBAC/C,+DAA+D;gBAC/D,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAErD,IAAI,YAAY,EAAE,CAAC;oBACjB,eAAe,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;QAE7C,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACK,4BAA4B,CAAC,MAA2B,EAAE,SAAiB;QACjF,MAAM,eAAe,GAAwB,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,IAAI,SAAS,GAAG,CAAC;QAEvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,uCAAuC;YACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBAChC,4CAA4C;gBAC5C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC7C,MAAM,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBAEvE,IAAI,cAAc,EAAE,CAAC;oBACnB,mDAAmD;oBACnD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;oBACvD,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACK,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG;aACP,WAAW,EAAE;aACb,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,IAAY;QAClC,OAAO,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;aACzC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,GAAwB,EAAE,IAAY,EAAE,KAAU;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAG,GAAG,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACnE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC;YACD,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,qBAAqB;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC;QACvD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,0CAA0C;QAC1C,OAAO,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,IAAI,oBAAoB,CAAC;IACrF,CAAC;IAED;;;OAGG;IACK,mBAAmB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,oBAAoB,CAAC;QAC9B,CAAC;QAED,0CAA0C;QAC1C,OAAO,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,IAAI,oBAAoB,CAAC;IACrF,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CAAC,KAAY;QACpC,+CAA+C;QAC/C,MAAM,aAAa,GAAG;YACpB,uBAAuB;YACvB,2BAA2B;YAC3B,yBAAyB;YACzB,qBAAqB;YACrB,6BAA6B;YAC7B,iBAAiB;YACjB,cAAc;YACd,kBAAkB;YAClB,iBAAiB;SAClB,CAAC;QAEF,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACK,sBAAsB,CAAC,MAAoB,EAAE,KAAY;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEhD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,uBAAuB;gBAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAC5C,WAAW,EACX,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAC5B,KAAK,CACN,CAAC;YAEJ,KAAK,2BAA2B;gBAC9B,OAAO,IAAI,CAAC,YAAY,CAAC,sBAAsB,CAC7C,WAAW,EACX,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAC5B,KAAK,CACN,CAAC;YAEJ,KAAK,iBAAiB,CAAC;YACvB,KAAK,cAAc;gBACjB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;gBAC/E,OAAO,aAAa,CAAC,cAAc,CAAC;YAEtC,KAAK,qBAAqB,CAAC;YAC3B,KAAK,0BAA0B;gBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,WAAW,iCAAiC,CAAC,CAAC;gBAChG,OAAO,IAAI,CAAC;YAEd,KAAK,6BAA6B;gBAChC,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAEpE,KAAK,kBAAkB;gBACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,WAAW,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAEpE;gBACE,wCAAwC;gBACxC,OAAO,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,cAAc,CAAC,MAAoB;QACzC,IAAI,MAAM,YAAY,6CAAoB,EAAE,CAAC;YAC3C,OAAO,qBAAqB,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,YAAY,oDAAuB,EAAE,CAAC;YACrD,OAAO,qCAAqC,CAAC;QAC/C,CAAC;aAAM,IAAI,MAAM,YAAY,sCAAiB,EAAE,CAAC;YAC/C,OAAO,uBAAuB,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,MAAoB;QAC1C,IAAI,MAAM,YAAY,6CAAoB,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;aAAM,IAAI,MAAM,YAAY,oDAAuB,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,aAAa,CAAC,MAAoB,EAAE,aAAqB,CAAC;QACtE,IAAI,SAAS,GAAiB,IAAI,CAAC;QAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9E,SAAS,GAAG,WAAW,CAAC;gBAExB,8BAA8B;gBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;oBAC/E,MAAM,WAAW,CAAC;gBACpB,CAAC;gBAED,uBAAuB;gBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,OAAO,IAAI,UAAU,GAAG,CAAC,CAAC;gBAElG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,4BAA4B,CAAC,MAAoB,EAAE,YAAoB,IAAI;QACvF,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,OAAO,CAAU,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBACxD,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YAEH,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;YAEjD,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAE9E,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,CAAC,OAAO,EAAE,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACjG,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF,CAAA;AA/nBY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,mBAAU,GAAE;IAQR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IAAE,WAAA,IAAA,eAAM,EAAC,qBAAqB,CAAC,CAAA;;GAPjC,6BAA6B,CA+nBzC"}