@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
@@ -0,0 +1,112 @@
1
+ import { ValidationError } from '../errors';
2
+ /**
3
+ * Framework-agnostic validation utility for configuration values.
4
+ * Provides methods for validating configuration objects against Zod schemas.
5
+ */
6
+ export class ConfigValidationUtil {
7
+ /**
8
+ * Validates a value against a Zod schema.
9
+ * @param schema The Zod schema to validate against
10
+ * @param value The value to validate
11
+ * @param context Optional context for error messages
12
+ * @returns The validated and transformed value
13
+ * @throws ValidationError if validation fails
14
+ */
15
+ static validate(schema, value, context) {
16
+ const result = schema.safeParse(value);
17
+ if (result.success) {
18
+ return result.data;
19
+ }
20
+ const errors = this.formatValidationErrors(result.error);
21
+ const contextMessage = context
22
+ ? `Configuration validation failed for ${context}`
23
+ : 'Configuration validation failed';
24
+ throw new ValidationError(contextMessage, errors);
25
+ }
26
+ /**
27
+ * Safely validates a value against a Zod schema without throwing.
28
+ * @param schema The Zod schema to validate against
29
+ * @param value The value to validate
30
+ * @returns Object with success flag and either data or error
31
+ */
32
+ static safeValidate(schema, value) {
33
+ const result = schema.safeParse(value);
34
+ if (result.success) {
35
+ return { success: true, data: result.data };
36
+ }
37
+ const errors = this.formatValidationErrors(result.error);
38
+ const validationError = new ValidationError('Configuration validation failed', errors);
39
+ return { success: false, error: validationError };
40
+ }
41
+ /**
42
+ * Formats Zod validation errors into a structured format.
43
+ * @param error The ZodError to format
44
+ * @returns Formatted error object or string
45
+ */
46
+ static formatValidationErrors(error) {
47
+ // If there's only one error at the root level, return just the message
48
+ if (error.issues.length === 1) {
49
+ const issue = error.issues[0];
50
+ if (issue && Array.isArray(issue.path) && issue.path.length === 0) {
51
+ return issue.message;
52
+ }
53
+ }
54
+ // For multiple errors or nested paths, create a structured object
55
+ return error.issues.reduce((errors, issue) => {
56
+ const path = issue.path.join('.');
57
+ const key = path || 'root';
58
+ if (!errors[key]) {
59
+ errors[key] = [];
60
+ }
61
+ errors[key].push({
62
+ message: issue.message,
63
+ code: issue.code,
64
+ path: issue.path,
65
+ });
66
+ return errors;
67
+ }, {});
68
+ }
69
+ /**
70
+ * Creates a detailed error message for configuration validation failures.
71
+ * @param error The ZodError to create a message for
72
+ * @param context Optional context for the error
73
+ * @returns Detailed error message string
74
+ */
75
+ static createDetailedErrorMessage(error, context) {
76
+ const contextPrefix = context ? `${context}: ` : '';
77
+ if (error.issues.length === 1) {
78
+ const issue = error.issues[0];
79
+ if (issue) {
80
+ const pathStr = issue.path.length > 0 ? ` at '${issue.path.join('.')}'` : '';
81
+ return `${contextPrefix}${issue.message}${pathStr}`;
82
+ }
83
+ }
84
+ const errorMessages = error.issues.map((issue) => {
85
+ const pathStr = issue.path.length > 0 ? ` at '${issue.path.join('.')}'` : '';
86
+ return ` - ${issue.message}${pathStr}`;
87
+ });
88
+ return `${contextPrefix}Multiple validation errors:\n${errorMessages.join('\n')}`;
89
+ }
90
+ /**
91
+ * Validates configuration with enhanced error context.
92
+ * @param schema The Zod schema to validate against
93
+ * @param value The configuration object to validate
94
+ * @param source The source of the configuration (e.g., 'environment', 'secrets-manager')
95
+ * @returns The validated configuration
96
+ * @throws ValidationError with enhanced context
97
+ */
98
+ static validateConfiguration(schema, value, source) {
99
+ try {
100
+ return this.validate(schema, value, `${source} configuration`);
101
+ }
102
+ catch (error) {
103
+ if (error instanceof ValidationError) {
104
+ // Enhance the error with source information
105
+ const enhancedMessage = `Configuration validation failed for source '${source}': ${error.message}`;
106
+ throw new ValidationError(enhancedMessage, error.validationErrors);
107
+ }
108
+ throw error;
109
+ }
110
+ }
111
+ }
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlnLWF3cy9zcmMvdXRpbHMvdmFsaWRhdGlvbi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFNUM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQjs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FDYixNQUFTLEVBQ1QsS0FBYyxFQUNkLE9BQWdCO1FBRWhCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELE1BQU0sY0FBYyxHQUFHLE9BQU87WUFDNUIsQ0FBQyxDQUFDLHVDQUF1QyxPQUFPLEVBQUU7WUFDbEQsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDO1FBRXRDLE1BQU0sSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQ2pCLE1BQVMsRUFDVCxLQUFjO1FBRWQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV2QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQixPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlDLENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENB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LENBQUM7UUFFSCxPQUFPLEdBQUcsYUFBYSxnQ0FBZ0MsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUMxQixNQUFTLEVBQ1QsS0FBYyxFQUNkLE1BQWM7UUFFZCxJQUFJLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxZQUFZLGVBQWUsRUFBRSxDQUFDO2dCQUNyQyw0Q0FBNEM7Z0JBQzVDLE1BQU0sZUFBZSxHQUFHLCtDQUErQyxNQUFNLE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuRyxNQUFNLElBQUksZUFBZSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBab2RUeXBlLCBab2RFcnJvciwgVHlwZU9mIH0gZnJvbSAnem9kJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzJztcclxuXHJcbi8qKlxyXG4gKiBGcmFtZXdvcmstYWdub3N0aWMgdmFsaWRhdGlvbiB1dGlsaXR5IGZvciBjb25maWd1cmF0aW9uIHZhbHVlcy5cclxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgdmFsaWRhdGluZyBjb25maWd1cmF0aW9uIG9iamVjdHMgYWdhaW5zdCBab2Qgc2NoZW1hcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb25maWdWYWxpZGF0aW9uVXRpbCB7XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIGEgdmFsdWUgYWdhaW5zdCBhIFpvZCBzY2hlbWEuXHJcbiAgICogQHBhcmFtIHNjaGVtYSBUaGUgWm9kIHNjaGVtYSB0byB2YWxpZGF0ZSBhZ2FpbnN0XHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxyXG4gICAqIEBwYXJhbSBjb250ZXh0IE9wdGlvbmFsIGNvbnRleHQgZm9yIGVycm9yIG1lc3NhZ2VzXHJcbiAgICogQHJldHVybnMgVGhlIHZhbGlkYXRlZCBhbmQgdHJhbnNmb3JtZWQgdmFsdWVcclxuICAgKiBAdGhyb3dzIFZhbGlkYXRpb25FcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXHJcbiAgICovXHJcbiAgc3RhdGljIHZhbGlkYXRlPFQgZXh0ZW5kcyBab2RUeXBlPihcclxuICAgIHNjaGVtYTogVCxcclxuICAgIHZhbHVlOiB1bmtub3duLFxyXG4gICAgY29udGV4dD86IHN0cmluZyxcclxuICApOiBUeXBlT2Y8VD4ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXN1bHQuZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBlcnJvcnMgPSB0aGlzLmZvcm1hdFZhbGlkYXRpb25FcnJvcnMocmVzdWx0LmVycm9yKTtcclxuICAgIGNvbnN0IGNvbnRleHRNZXNzYWdlID0gY29udGV4dFxyXG4gICAgICA/IGBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gZmFpbGVkIGZvciAke2NvbnRleHR9YFxyXG4gICAgICA6ICdDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gZmFpbGVkJztcclxuXHJcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGNvbnRleHRNZXNzYWdlLCBlcnJvcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2FmZWx5IHZhbGlkYXRlcyBhIHZhbHVlIGFnYWluc3QgYSBab2Qgc2NoZW1hIHdpdGhvdXQgdGhyb3dpbmcuXHJcbiAgICogQHBhcmFtIHNjaGVtYSBUaGUgWm9kIHNjaGVtYSB0byB2YWxpZGF0ZSBhZ2FpbnN0XHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byB2YWxpZGF0ZVxyXG4gICAqIEByZXR1cm5zIE9iamVjdCB3aXRoIHN1Y2Nlc3MgZmxhZyBhbmQgZWl0aGVyIGRhdGEgb3IgZXJyb3JcclxuICAgKi9cclxuICBzdGF0aWMgc2FmZVZhbGlkYXRlPFQgZXh0ZW5kcyBab2RUeXBlPihcclxuICAgIHNjaGVtYTogVCxcclxuICAgIHZhbHVlOiB1bmtub3duLFxyXG4gICk6IHsgc3VjY2VzczogdHJ1ZTsgZGF0YTogVHlwZU9mPFQ+IH0gfCB7IHN1Y2Nlc3M6IGZhbHNlOyBlcnJvcjogVmFsaWRhdGlvbkVycm9yIH0ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnNhZmVQYXJzZSh2YWx1ZSk7XHJcblxyXG4gICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIGRhdGE6IHJlc3VsdC5kYXRhIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5mb3JtYXRWYWxpZGF0aW9uRXJyb3JzKHJlc3VsdC5lcnJvcik7XHJcbiAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSBuZXcgVmFsaWRhdGlvbkVycm9yKCdDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gZmFpbGVkJywgZXJyb3JzKTtcclxuXHJcbiAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3I6IHZhbGlkYXRpb25FcnJvciB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0cyBab2QgdmFsaWRhdGlvbiBlcnJvcnMgaW50byBhIHN0cnVjdHVyZWQgZm9ybWF0LlxyXG4gICAqIEBwYXJhbSBlcnJvciBUaGUgWm9kRXJyb3IgdG8gZm9ybWF0XHJcbiAgICogQHJldHVybnMgRm9ybWF0dGVkIGVycm9yIG9iamVjdCBvciBzdHJpbmdcclxuICAgKi9cclxuICBzdGF0aWMgZm9ybWF0VmFsaWRhdGlvbkVycm9ycyhlcnJvcjogWm9kRXJyb3IpOiB1bmtub3duIHtcclxuICAgIC8vIElmIHRoZXJlJ3Mgb25seSBvbmUgZXJyb3IgYXQgdGhlIHJvb3QgbGV2ZWwsIHJldHVybiBqdXN0IHRoZSBtZXNzYWdlXHJcbiAgICBpZiAoZXJyb3IuaXNzdWVzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBjb25zdCBpc3N1ZSA9IGVycm9yLmlzc3Vlc1swXTtcclxuICAgICAgaWYgKGlzc3VlICYmIEFycmF5LmlzQXJyYXkoaXNzdWUucGF0aCkgJiYgaXNzdWUucGF0aC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gaXNzdWUubWVzc2FnZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEZvciBtdWx0aXBsZSBlcnJvcnMgb3IgbmVzdGVkIHBhdGhzLCBjcmVhdGUgYSBzdHJ1Y3R1cmVkIG9iamVjdFxyXG4gICAgcmV0dXJuIGVycm9yLmlzc3Vlcy5yZWR1Y2UoXHJcbiAgICAgIChlcnJvcnMsIGlzc3VlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IGlzc3VlLnBhdGguam9pbignLicpO1xyXG4gICAgICAgIGNvbnN0IGtleSA9IHBhdGggfHwgJ3Jvb3QnO1xyXG5cclxuICAgICAgICBpZiAoIWVycm9yc1trZXldKSB7XHJcbiAgICAgICAgICBlcnJvcnNba2V5XSA9IFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZXJyb3JzW2tleV0ucHVzaCh7XHJcbiAgICAgICAgICBtZXNzYWdlOiBpc3N1ZS5tZXNzYWdlLFxyXG4gICAgICAgICAgY29kZTogaXNzdWUuY29kZSxcclxuICAgICAgICAgIHBhdGg6IGlzc3VlLnBhdGgsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBlcnJvcnM7XHJcbiAgICAgIH0sXHJcbiAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIEFycmF5PHsgbWVzc2FnZTogc3RyaW5nOyBjb2RlOiBzdHJpbmc7IHBhdGg6IChzdHJpbmcgfCBudW1iZXIpW10gfT4+LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGZvciBjb25maWd1cmF0aW9uIHZhbGlkYXRpb24gZmFpbHVyZXMuXHJcbiAgICogQHBhcmFtIGVycm9yIFRoZSBab2RFcnJvciB0byBjcmVhdGUgYSBtZXNzYWdlIGZvclxyXG4gICAqIEBwYXJhbSBjb250ZXh0IE9wdGlvbmFsIGNvbnRleHQgZm9yIHRoZSBlcnJvclxyXG4gICAqIEByZXR1cm5zIERldGFpbGVkIGVycm9yIG1lc3NhZ2Ugc3RyaW5nXHJcbiAgICovXHJcbiAgc3RhdGljIGNyZWF0ZURldGFpbGVkRXJyb3JNZXNzYWdlKGVycm9yOiBab2RFcnJvciwgY29udGV4dD86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjb250ZXh0UHJlZml4ID0gY29udGV4dCA/IGAke2NvbnRleHR9OiBgIDogJyc7XHJcblxyXG4gICAgaWYgKGVycm9yLmlzc3Vlcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgY29uc3QgaXNzdWUgPSBlcnJvci5pc3N1ZXNbMF07XHJcbiAgICAgIGlmIChpc3N1ZSkge1xyXG4gICAgICAgIGNvbnN0IHBhdGhTdHIgPSBpc3N1ZS5wYXRoLmxlbmd0aCA+IDAgPyBgIGF0ICcke2lzc3VlLnBhdGguam9pbignLicpfSdgIDogJyc7XHJcbiAgICAgICAgcmV0dXJuIGAke2NvbnRleHRQcmVmaXh9JHtpc3N1ZS5tZXNzYWdlfSR7cGF0aFN0cn1gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXJyb3JNZXNzYWdlcyA9IGVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBhdGhTdHIgPSBpc3N1ZS5wYXRoLmxlbmd0aCA+IDAgPyBgIGF0ICcke2lzc3VlLnBhdGguam9pbignLicpfSdgIDogJyc7XHJcbiAgICAgIHJldHVybiBgICAtICR7aXNzdWUubWVzc2FnZX0ke3BhdGhTdHJ9YDtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBgJHtjb250ZXh0UHJlZml4fU11bHRpcGxlIHZhbGlkYXRpb24gZXJyb3JzOlxcbiR7ZXJyb3JNZXNzYWdlcy5qb2luKCdcXG4nKX1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIGNvbmZpZ3VyYXRpb24gd2l0aCBlbmhhbmNlZCBlcnJvciBjb250ZXh0LlxyXG4gICAqIEBwYXJhbSBzY2hlbWEgVGhlIFpvZCBzY2hlbWEgdG8gdmFsaWRhdGUgYWdhaW5zdFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgY29uZmlndXJhdGlvbiBvYmplY3QgdG8gdmFsaWRhdGVcclxuICAgKiBAcGFyYW0gc291cmNlIFRoZSBzb3VyY2Ugb2YgdGhlIGNvbmZpZ3VyYXRpb24gKGUuZy4sICdlbnZpcm9ubWVudCcsICdzZWNyZXRzLW1hbmFnZXInKVxyXG4gICAqIEByZXR1cm5zIFRoZSB2YWxpZGF0ZWQgY29uZmlndXJhdGlvblxyXG4gICAqIEB0aHJvd3MgVmFsaWRhdGlvbkVycm9yIHdpdGggZW5oYW5jZWQgY29udGV4dFxyXG4gICAqL1xyXG4gIHN0YXRpYyB2YWxpZGF0ZUNvbmZpZ3VyYXRpb248VCBleHRlbmRzIFpvZFR5cGU+KFxyXG4gICAgc2NoZW1hOiBULFxyXG4gICAgdmFsdWU6IHVua25vd24sXHJcbiAgICBzb3VyY2U6IHN0cmluZyxcclxuICApOiBUeXBlT2Y8VD4ge1xyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGUoc2NoZW1hLCB2YWx1ZSwgYCR7c291cmNlfSBjb25maWd1cmF0aW9uYCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IpIHtcclxuICAgICAgICAvLyBFbmhhbmNlIHRoZSBlcnJvciB3aXRoIHNvdXJjZSBpbmZvcm1hdGlvblxyXG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTWVzc2FnZSA9IGBDb25maWd1cmF0aW9uIHZhbGlkYXRpb24gZmFpbGVkIGZvciBzb3VyY2UgJyR7c291cmNlfSc6ICR7ZXJyb3IubWVzc2FnZX1gO1xyXG4gICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoZW5oYW5jZWRNZXNzYWdlLCBlcnJvci52YWxpZGF0aW9uRXJyb3JzKTtcclxuICAgICAgfVxyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,172 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var ConfigModule_1;
8
+ import { Global, Module } from '@nestjs/common';
9
+ import { EnvironmentLoader, SecretsManagerLoader, SSMParameterStoreLoader } from '@dyanet/config-aws';
10
+ import { ConfigService } from './interfaces/config-service.interface';
11
+ import { defaultConfigSchema } from './interfaces/default-schema.interface';
12
+ import { ConfigServiceImpl } from './services/config.service';
13
+ /**
14
+ * Token for injecting module options
15
+ */
16
+ export const NEST_CONFIG_AWS_OPTIONS = 'NEST_CONFIG_AWS_OPTIONS';
17
+ /**
18
+ * NestJS module for AWS-integrated configuration management.
19
+ * Provides global configuration service with support for environment variables,
20
+ * AWS Secrets Manager, and AWS Systems Manager Parameter Store.
21
+ */
22
+ let ConfigModule = ConfigModule_1 = class ConfigModule {
23
+ /**
24
+ * Create a synchronous configuration module with provided options.
25
+ *
26
+ * @param options - Configuration options for the module
27
+ * @returns Dynamic module configuration
28
+ */
29
+ static forRoot(options = {}) {
30
+ const configServiceProvider = this.createConfigServiceProvider(options);
31
+ return {
32
+ module: ConfigModule_1,
33
+ providers: [
34
+ {
35
+ provide: NEST_CONFIG_AWS_OPTIONS,
36
+ useValue: options,
37
+ },
38
+ configServiceProvider,
39
+ ],
40
+ exports: [ConfigService],
41
+ global: true,
42
+ };
43
+ }
44
+ /**
45
+ * Create an asynchronous configuration module with factory-based options.
46
+ * Useful when configuration options depend on other services or async operations.
47
+ *
48
+ * @param options - Async configuration options with factory function
49
+ * @returns Dynamic module configuration
50
+ */
51
+ static forRootAsync(options) {
52
+ const asyncProviders = this.createAsyncProviders(options);
53
+ return {
54
+ module: ConfigModule_1,
55
+ imports: options.imports || [],
56
+ providers: [
57
+ ...asyncProviders,
58
+ this.createAsyncConfigServiceProvider(),
59
+ ],
60
+ exports: [ConfigService],
61
+ global: true,
62
+ };
63
+ }
64
+ /**
65
+ * Create the ConfigService provider for synchronous module registration.
66
+ */
67
+ static createConfigServiceProvider(options) {
68
+ return {
69
+ provide: ConfigService,
70
+ useFactory: async () => {
71
+ // Create loaders based on configuration
72
+ const loaders = this.createLoaders(options);
73
+ // Create ConfigService options
74
+ const serviceOptions = {
75
+ schema: options.schema || defaultConfigSchema,
76
+ loaders,
77
+ validateOnLoad: !options.ignoreValidationErrors,
78
+ enableLogging: true,
79
+ };
80
+ // Create and initialize the service
81
+ const configService = new ConfigServiceImpl(serviceOptions);
82
+ // Initialize configuration loading if not in sync mode
83
+ if (!options.loadSync) {
84
+ await configService.initialize();
85
+ }
86
+ return configService;
87
+ },
88
+ };
89
+ }
90
+ /**
91
+ * Create providers for asynchronous module registration.
92
+ */
93
+ static createAsyncProviders(options) {
94
+ return [
95
+ {
96
+ provide: NEST_CONFIG_AWS_OPTIONS,
97
+ useFactory: options.useFactory,
98
+ inject: options.inject || [],
99
+ },
100
+ ];
101
+ }
102
+ /**
103
+ * Create the ConfigService provider for asynchronous module registration.
104
+ */
105
+ static createAsyncConfigServiceProvider() {
106
+ return {
107
+ provide: ConfigService,
108
+ useFactory: async (options) => {
109
+ // Create loaders based on configuration
110
+ const loaders = this.createLoaders(options);
111
+ // Create ConfigService options
112
+ const serviceOptions = {
113
+ schema: options.schema || defaultConfigSchema,
114
+ loaders,
115
+ validateOnLoad: !options.ignoreValidationErrors,
116
+ enableLogging: true,
117
+ };
118
+ // Create and initialize the service
119
+ const configService = new ConfigServiceImpl(serviceOptions);
120
+ // Initialize configuration loading if not in sync mode
121
+ if (!options.loadSync) {
122
+ await configService.initialize();
123
+ }
124
+ return configService;
125
+ },
126
+ inject: [NEST_CONFIG_AWS_OPTIONS],
127
+ };
128
+ }
129
+ /**
130
+ * Create configuration loaders based on module options.
131
+ * Uses loaders from @dyanet/config-aws core package.
132
+ */
133
+ static createLoaders(options) {
134
+ const loaders = [];
135
+ // Always add environment loader first (lowest precedence)
136
+ loaders.push(new EnvironmentLoader({ prefix: options.envPrefix }));
137
+ // Add Secrets Manager loader if enabled
138
+ if (options.secretsManagerConfig?.enabled !== false) {
139
+ const secretsConfig = {
140
+ region: options.secretsManagerConfig?.region,
141
+ // Map paths to environment mapping if provided
142
+ environmentMapping: options.secretsManagerConfig?.paths ? {
143
+ development: options.secretsManagerConfig.paths.development || 'dev',
144
+ test: options.secretsManagerConfig.paths.test || 'test',
145
+ production: options.secretsManagerConfig.paths.production || 'production',
146
+ } : undefined,
147
+ };
148
+ loaders.push(new SecretsManagerLoader(secretsConfig));
149
+ }
150
+ // Add SSM Parameter Store loader if enabled
151
+ if (options.ssmConfig?.enabled !== false) {
152
+ const ssmConfig = {
153
+ region: options.ssmConfig?.region,
154
+ withDecryption: options.ssmConfig?.decrypt,
155
+ // Map paths to environment mapping if provided
156
+ environmentMapping: options.ssmConfig?.paths ? {
157
+ development: options.ssmConfig.paths.development || 'dev',
158
+ test: options.ssmConfig.paths.test || 'test',
159
+ production: options.ssmConfig.paths.production || 'production',
160
+ } : undefined,
161
+ };
162
+ loaders.push(new SSMParameterStoreLoader(ssmConfig));
163
+ }
164
+ return loaders;
165
+ }
166
+ };
167
+ ConfigModule = ConfigModule_1 = __decorate([
168
+ Global(),
169
+ Module({})
170
+ ], ConfigModule);
171
+ export { ConfigModule };
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb25maWcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxPQUFPLEVBQWlCLE1BQU0sRUFBRSxNQUFNLEVBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXRFLE9BQU8sRUFBdUIsbUJBQW1CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFFcEY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyx5QkFBeUIsQ0FBQztBQUVqRTs7OztHQUlHO0FBR0ksSUFBTSxZQUFZLG9CQUFsQixNQUFNLFlBQVk7SUFDdkI7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUNaLFVBQXlDLEVBQUU7UUFFM0MsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEUsT0FBTztZQUNMLE1BQU0sRUFBRSxjQUFZO1lBQ3BCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsdUJBQXVCO29CQUNoQyxRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0QscUJBQXFCO2FBQ3RCO1lBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUNqQixPQUEyQztRQUUzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENB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Q0FBQyxDQUFDLENBQUMsU0FBUzthQUNkLENBQUM7WUFFRixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGLENBQUE7QUE3S1ksWUFBWTtJQUZ4QixNQUFNLEVBQUU7SUFDUixNQUFNLENBQUMsRUFBRSxDQUFDO0dBQ0UsWUFBWSxDQTZLeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljTW9kdWxlLCBHbG9iYWwsIE1vZHVsZSwgUHJvdmlkZXIgfSBmcm9tICdAbmVzdGpzL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbmZpZ0xvYWRlciwgRW52aXJvbm1lbnRMb2FkZXIsIFNlY3JldHNNYW5hZ2VyTG9hZGVyLCBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlciB9IGZyb20gJ0BkeWFuZXQvY29uZmlnLWF3cyc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy1zZXJ2aWNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE5lc3RDb25maWdBd3NNb2R1bGVPcHRpb25zLCBOZXN0Q29uZmlnQXdzTW9kdWxlQXN5bmNPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL21vZHVsZS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERlZmF1bHRDb25maWdTY2hlbWEsIGRlZmF1bHRDb25maWdTY2hlbWEgfSBmcm9tICcuL2ludGVyZmFjZXMvZGVmYXVsdC1zY2hlbWEuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZUltcGwsIENvbmZpZ1NlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb25maWcuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogVG9rZW4gZm9yIGluamVjdGluZyBtb2R1bGUgb3B0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE5FU1RfQ09ORklHX0FXU19PUFRJT05TID0gJ05FU1RfQ09ORklHX0FXU19PUFRJT05TJztcclxuXHJcbi8qKlxyXG4gKiBOZXN0SlMgbW9kdWxlIGZvciBBV1MtaW50ZWdyYXRlZCBjb25maWd1cmF0aW9uIG1hbmFnZW1lbnQuXHJcbiAqIFByb3ZpZGVzIGdsb2JhbCBjb25maWd1cmF0aW9uIHNlcnZpY2Ugd2l0aCBzdXBwb3J0IGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMsXHJcbiAqIEFXUyBTZWNyZXRzIE1hbmFnZXIsIGFuZCBBV1MgU3lzdGVtcyBNYW5hZ2VyIFBhcmFtZXRlciBTdG9yZS5cclxuICovXHJcbkBHbG9iYWwoKVxyXG5ATW9kdWxlKHt9KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlnTW9kdWxlIHtcclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBzeW5jaHJvbm91cyBjb25maWd1cmF0aW9uIG1vZHVsZSB3aXRoIHByb3ZpZGVkIG9wdGlvbnMuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtb2R1bGVcclxuICAgKiBAcmV0dXJucyBEeW5hbWljIG1vZHVsZSBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgc3RhdGljIGZvclJvb3Q8VCA9IERlZmF1bHRDb25maWdTY2hlbWE+KFxyXG4gICAgb3B0aW9uczogTmVzdENvbmZpZ0F3c01vZHVsZU9wdGlvbnM8VD4gPSB7fVxyXG4gICk6IER5bmFtaWNNb2R1bGUge1xyXG4gICAgY29uc3QgY29uZmlnU2VydmljZVByb3ZpZGVyID0gdGhpcy5jcmVhdGVDb25maWdTZXJ2aWNlUHJvdmlkZXIob3B0aW9ucyk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbW9kdWxlOiBDb25maWdNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IE5FU1RfQ09ORklHX0FXU19PUFRJT05TLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb25maWdTZXJ2aWNlUHJvdmlkZXIsXHJcbiAgICAgIF0sXHJcbiAgICAgIGV4cG9ydHM6IFtDb25maWdTZXJ2aWNlXSxcclxuICAgICAgZ2xvYmFsOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBhc3luY2hyb25vdXMgY29uZmlndXJhdGlvbiBtb2R1bGUgd2l0aCBmYWN0b3J5LWJhc2VkIG9wdGlvbnMuXHJcbiAgICogVXNlZnVsIHdoZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGRlcGVuZCBvbiBvdGhlciBzZXJ2aWNlcyBvciBhc3luYyBvcGVyYXRpb25zLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gQXN5bmMgY29uZmlndXJhdGlvbiBvcHRpb25zIHdpdGggZmFjdG9yeSBmdW5jdGlvblxyXG4gICAqIEByZXR1cm5zIER5bmFtaWMgbW9kdWxlIGNvbmZpZ3VyYXRpb25cclxuICAgKi9cclxuICBzdGF0aWMgZm9yUm9vdEFzeW5jPFQgPSBEZWZhdWx0Q29uZmlnU2NoZW1hPihcclxuICAgIG9wdGlvbnM6IE5lc3RDb25maWdBd3NNb2R1bGVBc3luY09wdGlvbnM8VD5cclxuICApOiBEeW5hbWljTW9kdWxlIHtcclxuICAgIGNvbnN0IGFzeW5jUHJvdmlkZXJzID0gdGhpcy5jcmVhdGVBc3luY1Byb3ZpZGVycyhvcHRpb25zKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb2R1bGU6IENvbmZpZ01vZHVsZSxcclxuICAgICAgaW1wb3J0czogb3B0aW9ucy5pbXBvcnRzIHx8IFtdLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICAuLi5hc3luY1Byb3ZpZGVycyxcclxuICAgICAgICB0aGlzLmNyZWF0ZUFzeW5jQ29uZmlnU2VydmljZVByb3ZpZGVyKCksXHJcbiAgICAgIF0sXHJcbiAgICAgIGV4cG9ydHM6IFtDb25maWdTZXJ2aWNlXSxcclxuICAgICAgZ2xvYmFsOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSB0aGUgQ29uZmlnU2VydmljZSBwcm92aWRlciBmb3Igc3luY2hyb25vdXMgbW9kdWxlIHJlZ2lzdHJhdGlvbi5cclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVDb25maWdTZXJ2aWNlUHJvdmlkZXI8VD4oXHJcbiAgICBvcHRpb25zOiBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9uczxUPlxyXG4gICk6IFByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb3ZpZGU6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IGFzeW5jICgpOiBQcm9taXNlPENvbmZpZ1NlcnZpY2U8VD4+ID0+IHtcclxuICAgICAgICAvLyBDcmVhdGUgbG9hZGVycyBiYXNlZCBvbiBjb25maWd1cmF0aW9uXHJcbiAgICAgICAgY29uc3QgbG9hZGVycyA9IHRoaXMuY3JlYXRlTG9hZGVycyhvcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIENvbmZpZ1NlcnZpY2Ugb3B0aW9uc1xyXG4gICAgICAgIGNvbnN0IHNlcnZpY2VPcHRpb25zOiBDb25maWdTZXJ2aWNlT3B0aW9uczxUPiA9IHtcclxuICAgICAgICAgIHNjaGVtYTogb3B0aW9ucy5zY2hlbWEgfHwgKGRlZmF1bHRDb25maWdTY2hlbWEgYXMgYW55KSxcclxuICAgICAgICAgIGxvYWRlcnMsXHJcbiAgICAgICAgICB2YWxpZGF0ZU9uTG9hZDogIW9wdGlvbnMuaWdub3JlVmFsaWRhdGlvbkVycm9ycyxcclxuICAgICAgICAgIGVuYWJsZUxvZ2dpbmc6IHRydWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIGFuZCBpbml0aWFsaXplIHRoZSBzZXJ2aWNlXHJcbiAgICAgICAgY29uc3QgY29uZmlnU2VydmljZSA9IG5ldyBDb25maWdTZXJ2aWNlSW1wbDxUPihzZXJ2aWNlT3B0aW9ucyk7XHJcblxyXG4gICAgICAgIC8vIEluaXRpYWxpemUgY29uZmlndXJhdGlvbiBsb2FkaW5nIGlmIG5vdCBpbiBzeW5jIG1vZGVcclxuICAgICAgICBpZiAoIW9wdGlvbnMubG9hZFN5bmMpIHtcclxuICAgICAgICAgIGF3YWl0IGNvbmZpZ1NlcnZpY2UuaW5pdGlhbGl6ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbmZpZ1NlcnZpY2UgYXMgQ29uZmlnU2VydmljZTxUPjtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgcHJvdmlkZXJzIGZvciBhc3luY2hyb25vdXMgbW9kdWxlIHJlZ2lzdHJhdGlvbi5cclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBjcmVhdGVBc3luY1Byb3ZpZGVyczxUPihcclxuICAgIG9wdGlvbnM6IE5lc3RDb25maWdBd3NNb2R1bGVBc3luY09wdGlvbnM8VD5cclxuICApOiBQcm92aWRlcltdIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBORVNUX0NPTkZJR19BV1NfT1BUSU9OUyxcclxuICAgICAgICB1c2VGYWN0b3J5OiBvcHRpb25zLnVzZUZhY3RvcnksXHJcbiAgICAgICAgaW5qZWN0OiBvcHRpb25zLmluamVjdCB8fCBbXSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgdGhlIENvbmZpZ1NlcnZpY2UgcHJvdmlkZXIgZm9yIGFzeW5jaHJvbm91cyBtb2R1bGUgcmVnaXN0cmF0aW9uLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUFzeW5jQ29uZmlnU2VydmljZVByb3ZpZGVyKCk6IFByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHByb3ZpZGU6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICAgIHVzZUZhY3Rvcnk6IGFzeW5jIChvcHRpb25zOiBOZXN0Q29uZmlnQXdzTW9kdWxlT3B0aW9ucyk6IFByb21pc2U8Q29uZmlnU2VydmljZT4gPT4ge1xyXG4gICAgICAgIC8vIENyZWF0ZSBsb2FkZXJzIGJhc2VkIG9uIGNvbmZpZ3VyYXRpb25cclxuICAgICAgICBjb25zdCBsb2FkZXJzID0gdGhpcy5jcmVhdGVMb2FkZXJzKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgQ29uZmlnU2VydmljZSBvcHRpb25zXHJcbiAgICAgICAgY29uc3Qgc2VydmljZU9wdGlvbnM6IENvbmZpZ1NlcnZpY2VPcHRpb25zID0ge1xyXG4gICAgICAgICAgc2NoZW1hOiBvcHRpb25zLnNjaGVtYSB8fCBkZWZhdWx0Q29uZmlnU2NoZW1hLFxyXG4gICAgICAgICAgbG9hZGVycyxcclxuICAgICAgICAgIHZhbGlkYXRlT25Mb2FkOiAhb3B0aW9ucy5pZ25vcmVWYWxpZGF0aW9uRXJyb3JzLFxyXG4gICAgICAgICAgZW5hYmxlTG9nZ2luZzogdHJ1ZSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgYW5kIGluaXRpYWxpemUgdGhlIHNlcnZpY2VcclxuICAgICAgICBjb25zdCBjb25maWdTZXJ2aWNlID0gbmV3IENvbmZpZ1NlcnZpY2VJbXBsKHNlcnZpY2VPcHRpb25zKTtcclxuXHJcbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjb25maWd1cmF0aW9uIGxvYWRpbmcgaWYgbm90IGluIHN5bmMgbW9kZVxyXG4gICAgICAgIGlmICghb3B0aW9ucy5sb2FkU3luYykge1xyXG4gICAgICAgICAgYXdhaXQgY29uZmlnU2VydmljZS5pbml0aWFsaXplKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29uZmlnU2VydmljZSBhcyBDb25maWdTZXJ2aWNlO1xyXG4gICAgICB9LFxyXG4gICAgICBpbmplY3Q6IFtORVNUX0NPTkZJR19BV1NfT1BUSU9OU10sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGNvbmZpZ3VyYXRpb24gbG9hZGVycyBiYXNlZCBvbiBtb2R1bGUgb3B0aW9ucy5cclxuICAgKiBVc2VzIGxvYWRlcnMgZnJvbSBAZHlhbmV0L2NvbmZpZy1hd3MgY29yZSBwYWNrYWdlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZUxvYWRlcnM8VD4ob3B0aW9uczogTmVzdENvbmZpZ0F3c01vZHVsZU9wdGlvbnM8VD4pOiBDb25maWdMb2FkZXJbXSB7XHJcbiAgICBjb25zdCBsb2FkZXJzOiBDb25maWdMb2FkZXJbXSA9IFtdO1xyXG5cclxuICAgIC8vIEFsd2F5cyBhZGQgZW52aXJvbm1lbnQgbG9hZGVyIGZpcnN0IChsb3dlc3QgcHJlY2VkZW5jZSlcclxuICAgIGxvYWRlcnMucHVzaChuZXcgRW52aXJvbm1lbnRMb2FkZXIoeyBwcmVmaXg6IG9wdGlvbnMuZW52UHJlZml4IH0pKTtcclxuXHJcbiAgICAvLyBBZGQgU2VjcmV0cyBNYW5hZ2VyIGxvYWRlciBpZiBlbmFibGVkXHJcbiAgICBpZiAob3B0aW9ucy5zZWNyZXRzTWFuYWdlckNvbmZpZz8uZW5hYmxlZCAhPT0gZmFsc2UpIHtcclxuICAgICAgY29uc3Qgc2VjcmV0c0NvbmZpZyA9IHtcclxuICAgICAgICByZWdpb246IG9wdGlvbnMuc2VjcmV0c01hbmFnZXJDb25maWc/LnJlZ2lvbixcclxuICAgICAgICAvLyBNYXAgcGF0aHMgdG8gZW52aXJvbm1lbnQgbWFwcGluZyBpZiBwcm92aWRlZFxyXG4gICAgICAgIGVudmlyb25tZW50TWFwcGluZzogb3B0aW9ucy5zZWNyZXRzTWFuYWdlckNvbmZpZz8ucGF0aHMgPyB7XHJcbiAgICAgICAgICBkZXZlbG9wbWVudDogb3B0aW9ucy5zZWNyZXRzTWFuYWdlckNvbmZpZy5wYXRocy5kZXZlbG9wbWVudCB8fCAnZGV2JyxcclxuICAgICAgICAgIHRlc3Q6IG9wdGlvbnMuc2VjcmV0c01hbmFnZXJDb25maWcucGF0aHMudGVzdCB8fCAndGVzdCcsXHJcbiAgICAgICAgICBwcm9kdWN0aW9uOiBvcHRpb25zLnNlY3JldHNNYW5hZ2VyQ29uZmlnLnBhdGhzLnByb2R1Y3Rpb24gfHwgJ3Byb2R1Y3Rpb24nLFxyXG4gICAgICAgIH0gOiB1bmRlZmluZWQsXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBsb2FkZXJzLnB1c2gobmV3IFNlY3JldHNNYW5hZ2VyTG9hZGVyKHNlY3JldHNDb25maWcpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBZGQgU1NNIFBhcmFtZXRlciBTdG9yZSBsb2FkZXIgaWYgZW5hYmxlZFxyXG4gICAgaWYgKG9wdGlvbnMuc3NtQ29uZmlnPy5lbmFibGVkICE9PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBzc21Db25maWcgPSB7XHJcbiAgICAgICAgcmVnaW9uOiBvcHRpb25zLnNzbUNvbmZpZz8ucmVnaW9uLFxyXG4gICAgICAgIHdpdGhEZWNyeXB0aW9uOiBvcHRpb25zLnNzbUNvbmZpZz8uZGVjcnlwdCxcclxuICAgICAgICAvLyBNYXAgcGF0aHMgdG8gZW52aXJvbm1lbnQgbWFwcGluZyBpZiBwcm92aWRlZFxyXG4gICAgICAgIGVudmlyb25tZW50TWFwcGluZzogb3B0aW9ucy5zc21Db25maWc/LnBhdGhzID8ge1xyXG4gICAgICAgICAgZGV2ZWxvcG1lbnQ6IG9wdGlvbnMuc3NtQ29uZmlnLnBhdGhzLmRldmVsb3BtZW50IHx8ICdkZXYnLFxyXG4gICAgICAgICAgdGVzdDogb3B0aW9ucy5zc21Db25maWcucGF0aHMudGVzdCB8fCAndGVzdCcsXHJcbiAgICAgICAgICBwcm9kdWN0aW9uOiBvcHRpb25zLnNzbUNvbmZpZy5wYXRocy5wcm9kdWN0aW9uIHx8ICdwcm9kdWN0aW9uJyxcclxuICAgICAgICB9IDogdW5kZWZpbmVkLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgbG9hZGVycy5wdXNoKG5ldyBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlcihzc21Db25maWcpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbG9hZGVycztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,23 @@
1
+ // Re-export all public types from @dyanet/config-aws core package
2
+ export {
3
+ // Loaders
4
+ EnvironmentLoader, EnvFileLoader, S3Loader, SecretsManagerLoader, SSMParameterStoreLoader,
5
+ // ConfigManager
6
+ ConfigManager,
7
+ // Error classes
8
+ ConfigurationError, ValidationError, AWSServiceError, ConfigurationLoadError, MissingConfigurationError,
9
+ // Utilities
10
+ ConfigValidationUtil, EnvFileParser, } from '@dyanet/config-aws';
11
+ // NestJS-specific exports
12
+ export * from './config.module';
13
+ export * from './interfaces';
14
+ export * from './services/config.service';
15
+ // Integration module exports for @nestjs/config compatibility
16
+ export * from './integration';
17
+ // Utility functions
18
+ export { isAwsSource, isLocalSource, hasMetadata, isValidationResult, isCacheEntry } from './integration/interfaces/utility-types.interface';
19
+ // Decorators and utility functions
20
+ export { InjectEnhancedConfig, ConfigProperty, ConfigClass, ValidateConfig, TransformConfig, createTypeSafeConfigFactory } from './integration/interfaces/nestjs-config-compatibility.interface';
21
+ // Explicit exports for better discoverability
22
+ export { NestConfigAwsIntegrationModule } from './integration/nestjs-config-integration.module';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0VBQWtFO0FBQ2xFLE9BQU87QUFDTCxVQUFVO0FBQ1YsaUJBQWlCLEVBQ2pCLGFBQWEsRUFDYixRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLHVCQUF1QjtBQUV2QixnQkFBZ0I7QUFDaEIsYUFBYTtBQUViLGdCQUFnQjtBQUNoQixrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIseUJBQXlCO0FBRXpCLFlBQVk7QUFDWixvQkFBb0IsRUFDcEIsYUFBYSxHQUNkLE1BQU0sb0JBQW9CLENBQUM7QUFzQjVCLDBCQUEwQjtBQUMxQixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsOERBQThEO0FBQzlELGNBQWMsZUFBZSxDQUFDO0FBRTlCLG9CQUFvQjtBQUNwQixPQUFPLEVBQ0wsV0FBVyxFQUNYLGFBQWEsRUFDYixXQUFXLEVBQ1gsa0JBQWtCLEVBQ2xCLFlBQVksRUFDYixNQUFNLGtEQUFrRCxDQUFDO0FBRTFELG1DQUFtQztBQUNuQyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsY0FBYyxFQUNkLGVBQWUsRUFDZiwyQkFBMkIsRUFDNUIsTUFBTSxnRUFBZ0UsQ0FBQztBQUV4RSw4Q0FBOEM7QUFDOUMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBSZS1leHBvcnQgYWxsIHB1YmxpYyB0eXBlcyBmcm9tIEBkeWFuZXQvY29uZmlnLWF3cyBjb3JlIHBhY2thZ2VcclxuZXhwb3J0IHtcclxuICAvLyBMb2FkZXJzXHJcbiAgRW52aXJvbm1lbnRMb2FkZXIsXHJcbiAgRW52RmlsZUxvYWRlcixcclxuICBTM0xvYWRlcixcclxuICBTZWNyZXRzTWFuYWdlckxvYWRlcixcclxuICBTU01QYXJhbWV0ZXJTdG9yZUxvYWRlcixcclxuICBcclxuICAvLyBDb25maWdNYW5hZ2VyXHJcbiAgQ29uZmlnTWFuYWdlcixcclxuICBcclxuICAvLyBFcnJvciBjbGFzc2VzXHJcbiAgQ29uZmlndXJhdGlvbkVycm9yLFxyXG4gIFZhbGlkYXRpb25FcnJvcixcclxuICBBV1NTZXJ2aWNlRXJyb3IsXHJcbiAgQ29uZmlndXJhdGlvbkxvYWRFcnJvcixcclxuICBNaXNzaW5nQ29uZmlndXJhdGlvbkVycm9yLFxyXG4gIFxyXG4gIC8vIFV0aWxpdGllc1xyXG4gIENvbmZpZ1ZhbGlkYXRpb25VdGlsLFxyXG4gIEVudkZpbGVQYXJzZXIsXHJcbn0gZnJvbSAnQGR5YW5ldC9jb25maWctYXdzJztcclxuXHJcbi8vIFJlLWV4cG9ydCB0eXBlcyBmcm9tIEBkeWFuZXQvY29uZmlnLWF3c1xyXG5leHBvcnQgdHlwZSB7XHJcbiAgLy8gQ29yZSBpbnRlcmZhY2VzXHJcbiAgQ29uZmlnTG9hZGVyLFxyXG4gIENvbmZpZ01hbmFnZXJPcHRpb25zLFxyXG4gIExvYWRlclByZWNlZGVuY2UsXHJcbiAgVmVyYm9zZU9wdGlvbnMsXHJcbiAgUHJlY2VkZW5jZVN0cmF0ZWd5LFxyXG4gIENvbmZpZ0xvYWRSZXN1bHQsXHJcbiAgQ29uZmlnU291cmNlSW5mbyBhcyBDb3JlQ29uZmlnU291cmNlSW5mbyxcclxuICBMb2dnZXIsXHJcbiAgXHJcbiAgLy8gTG9hZGVyIGNvbmZpZ3NcclxuICBFbnZpcm9ubWVudExvYWRlckNvbmZpZyxcclxuICBFbnZGaWxlTG9hZGVyQ29uZmlnLFxyXG4gIFMzTG9hZGVyQ29uZmlnLFxyXG4gIFNlY3JldHNNYW5hZ2VyTG9hZGVyQ29uZmlnLFxyXG4gIFNTTVBhcmFtZXRlclN0b3JlTG9hZGVyQ29uZmlnLFxyXG59IGZyb20gJ0BkeWFuZXQvY29uZmlnLWF3cyc7XHJcblxyXG4vLyBOZXN0SlMtc3BlY2lmaWMgZXhwb3J0c1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuXHJcbi8vIEludGVncmF0aW9uIG1vZHVsZSBleHBvcnRzIGZvciBAbmVzdGpzL2NvbmZpZyBjb21wYXRpYmlsaXR5XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24nO1xyXG5cclxuLy8gVXRpbGl0eSBmdW5jdGlvbnNcclxuZXhwb3J0IHtcclxuICBpc0F3c1NvdXJjZSxcclxuICBpc0xvY2FsU291cmNlLFxyXG4gIGhhc01ldGFkYXRhLFxyXG4gIGlzVmFsaWRhdGlvblJlc3VsdCxcclxuICBpc0NhY2hlRW50cnlcclxufSBmcm9tICcuL2ludGVncmF0aW9uL2ludGVyZmFjZXMvdXRpbGl0eS10eXBlcy5pbnRlcmZhY2UnO1xyXG5cclxuLy8gRGVjb3JhdG9ycyBhbmQgdXRpbGl0eSBmdW5jdGlvbnNcclxuZXhwb3J0IHtcclxuICBJbmplY3RFbmhhbmNlZENvbmZpZyxcclxuICBDb25maWdQcm9wZXJ0eSxcclxuICBDb25maWdDbGFzcyxcclxuICBWYWxpZGF0ZUNvbmZpZyxcclxuICBUcmFuc2Zvcm1Db25maWcsXHJcbiAgY3JlYXRlVHlwZVNhZmVDb25maWdGYWN0b3J5XHJcbn0gZnJvbSAnLi9pbnRlZ3JhdGlvbi9pbnRlcmZhY2VzL25lc3Rqcy1jb25maWctY29tcGF0aWJpbGl0eS5pbnRlcmZhY2UnO1xyXG5cclxuLy8gRXhwbGljaXQgZXhwb3J0cyBmb3IgYmV0dGVyIGRpc2NvdmVyYWJpbGl0eVxyXG5leHBvcnQgeyBOZXN0Q29uZmlnQXdzSW50ZWdyYXRpb25Nb2R1bGUgfSBmcm9tICcuL2ludGVncmF0aW9uL25lc3Rqcy1jb25maWctaW50ZWdyYXRpb24ubW9kdWxlJztcclxuZXhwb3J0IHR5cGUge1xyXG4gIC8vIEludGVncmF0aW9uIE9wdGlvbnNcclxuICBJbnRlZ3JhdGlvbk9wdGlvbnMsXHJcbiAgQXN5bmNJbnRlZ3JhdGlvbk9wdGlvbnMsXHJcbiAgUHJlY2VkZW5jZVJ1bGUsXHJcbiAgRXJyb3JIYW5kbGluZ1N0cmF0ZWd5LFxyXG4gIEZhY3RvcnlPcHRpb25zLFxyXG5cclxuICAvLyBDb25maWd1cmF0aW9uIEZhY3RvcnkgVHlwZXNcclxuICBBd3NDb25maWd1cmF0aW9uRmFjdG9yeSxcclxuICBDb25maWd1cmF0aW9uRmFjdG9yeVByb3ZpZGVyLFxyXG5cclxuICAvLyBDb25maWd1cmF0aW9uIFNvdXJjZSBUeXBlc1xyXG4gIENvbmZpZ3VyYXRpb25Tb3VyY2UsXHJcbiAgQ29uZmlndXJhdGlvblNvdXJjZVR5cGUsXHJcblxyXG4gIC8vIEludGVncmF0aW9uIFN0YXRlIFR5cGVzXHJcbiAgSW50ZWdyYXRpb25TdGF0ZSxcclxuXHJcbiAgLy8gVHlwZWQgQ29uZmlndXJhdGlvbiBUeXBlc1xyXG4gIFR5cGVkQ29uZmlndXJhdGlvbixcclxuICBUeXBlZENvbmZpZ3VyYXRpb25GYWN0b3J5LFxyXG4gIFR5cGVkQ29uZmlndXJhdGlvbkFjY2Vzc29yLFxyXG4gIENvbmZpZ3VyYXRpb25TY2hlbWEsXHJcbiAgVHlwZWRDb25maWd1cmF0aW9uUmVnaXN0cnksXHJcbiAgVHlwZWRDb25maWd1cmF0aW9uT3B0aW9ucyxcclxuICBDb25maWd1cmF0aW9uVHlwZSxcclxuICBTdHJvbmdseVR5cGVkQ29uZmlnLFxyXG4gIENvbmZpZ3VyYXRpb25WYWx1ZSxcclxuICBDb25maWd1cmF0aW9uUGF0aFJlc29sdmVyLFxyXG5cclxuICAvLyBOZXN0SlMgQ29uZmlnIEludGVncmF0aW9uIFR5cGVzXHJcbiAgTmVzdEpTQ29uZmlnSW50ZWdyYXRpb25TZXJ2aWNlLFxyXG4gIEVuaGFuY2VkQ29uZmlnTW9kdWxlT3B0aW9ucyxcclxuICBFbmhhbmNlZEFzeW5jQ29uZmlnTW9kdWxlT3B0aW9ucyxcclxuICBFbmhhbmNlZENvbmZpZ01vZHVsZUZhY3RvcnksXHJcbiAgRW5oYW5jZWRBc3luY0NvbmZpZ01vZHVsZUZhY3RvcnksXHJcbiAgRW5oYW5jZWRDb25maWdNb2R1bGVPcHRpb25zRmFjdG9yeSxcclxuICBJbnRlZ3JhdGlvblN0YXR1cyxcclxuICBBd3NDb25maWd1cmF0aW9uTG9hZGVyLFxyXG4gIENvbmZpZ3VyYXRpb25NZXJnZXIsXHJcbiAgQXdzQ29uZmlndXJhdGlvblZhbGlkYXRvcixcclxuXHJcbiAgLy8gQ29tcGF0aWJpbGl0eSBUeXBlc1xyXG4gIEVuaGFuY2VkQ29uZmlnU2VydmljZSxcclxuICBDb25maWdWYWx1ZVdpdGhTb3VyY2UsXHJcbiAgQ29uZmlnU291cmNlSW5mbyxcclxuICBDb25maWdIZWFsdGhTdGF0dXMsXHJcbiAgQ29uZmlnUHJvcGVydHlPcHRpb25zLFxyXG4gIENvbmZpZ0NsYXNzT3B0aW9ucyxcclxuICBDb25maWdWYWxpZGF0aW9uT3B0aW9ucyxcclxuICBUeXBlU2FmZUNvbmZpZ0ZhY3RvcnksXHJcbiAgQ29uZmlnTW9kdWxlQnVpbGRlcixcclxuICBDb25maWdUZXN0aW5nVXRpbHMsXHJcbiAgQ29uZmlnTW9uaXRvcixcclxuICBDb25maWdNZXRyaWNzLFxyXG4gIENvbmZpZ0V2ZW50LFxyXG4gIENvbmZpZ0F1ZGl0RW50cnksXHJcbiAgQ29uZmlnQXVkaXRMb2dnZXIsXHJcblxyXG4gIC8vIFV0aWxpdHkgVHlwZXNcclxuICBFeHRyYWN0Q29uZmlnVHlwZSxcclxuICBUeXBlZENvbmZpZ1NlcnZpY2UsXHJcbiAgQ29uZmlndXJhdGlvbk5hbWVzcGFjZVJlZ2lzdHJ5LFxyXG4gIERlZXBSZWFkb25seSxcclxuICBQYXJ0aWFsRGVlcCxcclxuICBSZXF1aXJlZERlZXAsXHJcbiAgQ29uZmlnUGF0aCxcclxuICBDb25maWdWYWx1ZSxcclxuICBBd3NDb25maWdTb3VyY2UsXHJcbiAgTG9jYWxDb25maWdTb3VyY2UsXHJcbiAgQWxsQ29uZmlnU291cmNlLFxyXG4gIENvbmZpZ1NvdXJjZU1ldGFkYXRhLFxyXG4gIENvbmZpZ1dpdGhTb3VyY2UsXHJcbiAgRXh0cmFjdENvbmZpZyxcclxuICBDb25maWdGYWN0b3J5TWFwLFxyXG4gIEV4dHJhY3RDb25maWdNYXAsXHJcbiAgTmFtZXNwYWNlQ29uZmlnLFxyXG4gIE11bHRpTmFtZXNwYWNlQ29uZmlnLFxyXG4gIFZhbGlkYXRpb25SZXN1bHQsXHJcbiAgQXN5bmNWYWxpZGF0aW9uUmVzdWx0LFxyXG4gIENvbmZpZ1RyYW5zZm9ybWVyRm4sXHJcbiAgQXN5bmNDb25maWdUcmFuc2Zvcm1lckZuLFxyXG4gIENvbmZpZ1ByZWRpY2F0ZSxcclxuICBBc3luY0NvbmZpZ1ByZWRpY2F0ZSxcclxuICBDb25maWdCdWlsZGVyLFxyXG4gIENvbmZpZ0ZsdWVudEFQSVxyXG59IGZyb20gJy4vaW50ZWdyYXRpb24vaW50ZXJmYWNlcyc7XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ // Integration module exports
2
+ export * from './interfaces';
3
+ export * from './nestjs-config-integration.module';
4
+ export * from './providers';
5
+ export * from './services';
6
+ export * from './utils';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvaW50ZWdyYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkJBQTZCO0FBQzdCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbnRlZ3JhdGlvbiBtb2R1bGUgZXhwb3J0c1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL25lc3Rqcy1jb25maWctaW50ZWdyYXRpb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1mYWN0b3J5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlZ3JhdGlvbi9pbnRlcmZhY2VzL2NvbmZpZ3VyYXRpb24tZmFjdG9yeS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ0ZhY3RvcnkgfSBmcm9tICdAbmVzdGpzL2NvbmZpZyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25Tb3VyY2UgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFByZWNlZGVuY2VSdWxlIH0gZnJvbSAnLi9pbnRlZ3JhdGlvbi1vcHRpb25zLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogRW5oYW5jZWQgY29uZmlndXJhdGlvbiBmYWN0b3J5IHRoYXQgaW5jbHVkZXMgQVdTIGludGVncmF0aW9uIG1ldGFkYXRhLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBd3NDb25maWd1cmF0aW9uRmFjdG9yeSBleHRlbmRzIENvbmZpZ0ZhY3Rvcnkge1xyXG4gIC8qKiBPcHRpb25hbCBuYW1lc3BhY2UgZm9yIHRoZSBjb25maWd1cmF0aW9uICovXHJcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xyXG4gIC8qKiBTb3VyY2VzIHRoYXQgY29udHJpYnV0ZWQgdG8gdGhpcyBjb25maWd1cmF0aW9uICovXHJcbiAgc291cmNlczogQ29uZmlndXJhdGlvblNvdXJjZVtdO1xyXG4gIC8qKiBQcmVjZWRlbmNlIHJ1bGUgYXBwbGllZCB0byB0aGlzIGNvbmZpZ3VyYXRpb24gKi9cclxuICBwcmVjZWRlbmNlUnVsZTogUHJlY2VkZW5jZVJ1bGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm92aWRlciBmb3IgY3JlYXRpbmcgY29uZmlndXJhdGlvbiBmYWN0b3JpZXMgdGhhdCBAbmVzdGpzL2NvbmZpZyBjYW4gY29uc3VtZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvbkZhY3RvcnlQcm92aWRlciB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgY29uZmlndXJhdGlvbiBmYWN0b3J5IGZvciBhIHNwZWNpZmljIG5hbWVzcGFjZS5cclxuICAgKiBAcGFyYW0gbmFtZXNwYWNlIC0gVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb25cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gZGF0YVxyXG4gICAqIEByZXR1cm5zIEEgY29uZmlndXJhdGlvbiBmYWN0b3J5XHJcbiAgICovXHJcbiAgY3JlYXRlRmFjdG9yeShuYW1lc3BhY2U6IHN0cmluZywgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogQ29uZmlnRmFjdG9yeTtcclxuICBcclxuICAvKipcclxuICAgKiBDcmVhdGUgbXVsdGlwbGUgbmFtZXNwYWNlZCBjb25maWd1cmF0aW9uIGZhY3Rvcmllcy5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gVGhlIGNvbmZpZ3VyYXRpb24gZGF0YSBvcmdhbml6ZWQgYnkgbmFtZXNwYWNlXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgY29uZmlndXJhdGlvbiBmYWN0b3JpZXNcclxuICAgKi9cclxuICBjcmVhdGVOYW1lc3BhY2VkRmFjdG9yaWVzKGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55Pik6IENvbmZpZ0ZhY3RvcnlbXTtcclxuICBcclxuICAvKipcclxuICAgKiBNZXJnZSBBV1MgY29uZmlndXJhdGlvbiB3aXRoIGV4aXN0aW5nIGxvY2FsIGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQHBhcmFtIGF3c0NvbmZpZyAtIENvbmZpZ3VyYXRpb24gbG9hZGVkIGZyb20gQVdTIHNvdXJjZXNcclxuICAgKiBAcGFyYW0gbG9jYWxDb25maWcgLSBMb2NhbCBjb25maWd1cmF0aW9uIGRhdGFcclxuICAgKiBAcmV0dXJucyBNZXJnZWQgY29uZmlndXJhdGlvbiBkYXRhXHJcbiAgICovXHJcbiAgbWVyZ2VXaXRoRXhpc3RpbmcoXHJcbiAgICBhd3NDb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sIFxyXG4gICAgbG9jYWxDb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT5cclxuICApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYW4gZW5oYW5jZWQgQVdTIGNvbmZpZ3VyYXRpb24gZmFjdG9yeSB3aXRoIG1ldGFkYXRhLlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBPcHRpb25hbCBuYW1lc3BhY2UgZm9yIHRoZSBjb25maWd1cmF0aW9uXHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIGRhdGFcclxuICAgKiBAcGFyYW0gc291cmNlcyAtIFNvdXJjZXMgdGhhdCBjb250cmlidXRlZCB0byB0aGlzIGNvbmZpZ3VyYXRpb25cclxuICAgKiBAcGFyYW0gcHJlY2VkZW5jZVJ1bGUgLSBQcmVjZWRlbmNlIHJ1bGUgYXBwbGllZCB0byB0aGlzIGNvbmZpZ3VyYXRpb25cclxuICAgKiBAcmV0dXJucyBFbmhhbmNlZCBBV1MgY29uZmlndXJhdGlvbiBmYWN0b3J5XHJcbiAgICovXHJcbiAgY3JlYXRlQXdzQ29uZmlndXJhdGlvbkZhY3RvcnkoXHJcbiAgICBuYW1lc3BhY2U6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcclxuICAgIHNvdXJjZXM6IENvbmZpZ3VyYXRpb25Tb3VyY2VbXSxcclxuICAgIHByZWNlZGVuY2VSdWxlOiBQcmVjZWRlbmNlUnVsZVxyXG4gICk6IEF3c0NvbmZpZ3VyYXRpb25GYWN0b3J5O1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgY29uZmlndXJhdGlvbiBmYWN0b3JpZXMgZnJvbSBtdWx0aXBsZSBzb3VyY2VzIHdpdGggcHJvcGVyIG9yZ2FuaXphdGlvbi5cclxuICAgKiBAcGFyYW0gc291cmNlQ29uZmlncyAtIE1hcCBvZiBzb3VyY2UgbmFtZSB0byBjb25maWd1cmF0aW9uIGRhdGFcclxuICAgKiBAcGFyYW0gbmFtZXNwYWNlcyAtIE9wdGlvbmFsIGxpc3Qgb2YgbmFtZXNwYWNlcyB0byBvcmdhbml6ZSBjb25maWd1cmF0aW9uXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgY29uZmlndXJhdGlvbiBmYWN0b3JpZXMgb3JnYW5pemVkIGJ5IG5hbWVzcGFjZVxyXG4gICAqL1xyXG4gIGNyZWF0ZUZhY3Rvcmllc0Zyb21Tb3VyY2VzKFxyXG4gICAgc291cmNlQ29uZmlnczogTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4sXHJcbiAgICBuYW1lc3BhY2VzPzogc3RyaW5nW11cclxuICApOiBDb25maWdGYWN0b3J5W107XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBjb25maWd1cmF0aW9uIGZhY3RvcmllcyBmcm9tIHNvdXJjZXMgd2l0aCBwcmVjZWRlbmNlIHJ1bGVzLlxyXG4gICAqIEBwYXJhbSBzb3VyY2VzIC0gQXJyYXkgb2YgY29uZmlndXJhdGlvbiBzb3VyY2VzXHJcbiAgICogQHBhcmFtIHByZWNlZGVuY2VSdWxlIC0gUHJlY2VkZW5jZSBydWxlIHRvIGFwcGx5XHJcbiAgICogQHBhcmFtIG5hbWVzcGFjZXMgLSBPcHRpb25hbCBsaXN0IG9mIG5hbWVzcGFjZXMgdG8gb3JnYW5pemUgY29uZmlndXJhdGlvblxyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGNvbmZpZ3VyYXRpb24gZmFjdG9yaWVzXHJcbiAgICovXHJcbiAgY3JlYXRlRmFjdG9yaWVzV2l0aFByZWNlZGVuY2UoXHJcbiAgICBzb3VyY2VzOiBDb25maWd1cmF0aW9uU291cmNlW10sXHJcbiAgICBwcmVjZWRlbmNlUnVsZTogUHJlY2VkZW5jZVJ1bGUsXHJcbiAgICBuYW1lc3BhY2VzPzogc3RyaW5nW11cclxuICApOiBDb25maWdGYWN0b3J5W107XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlIGNvbmZpZ3VyYXRpb24gd2l0aCBleHBsaWNpdCBwcmVjZWRlbmNlIHJ1bGUuXHJcbiAgICogQHBhcmFtIHNvdXJjZXMgLSBDb25maWd1cmF0aW9uIHNvdXJjZXNcclxuICAgKiBAcGFyYW0gcHJlY2VkZW5jZVJ1bGUgLSBQcmVjZWRlbmNlIHJ1bGUgdG8gYXBwbHlcclxuICAgKiBAcmV0dXJucyBNZXJnZWQgY29uZmlndXJhdGlvbiBkYXRhXHJcbiAgICovXHJcbiAgbWVyZ2VXaXRoUHJlY2VkZW5jZShcclxuICAgIHNvdXJjZXM6IENvbmZpZ3VyYXRpb25Tb3VyY2VbXSxcclxuICAgIHByZWNlZGVuY2VSdWxlOiBQcmVjZWRlbmNlUnVsZVxyXG4gICk6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1zb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2ludGVncmF0aW9uL2ludGVyZmFjZXMvY29uZmlndXJhdGlvbi1zb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVHlwZXMgb2YgY29uZmlndXJhdGlvbiBzb3VyY2VzIHN1cHBvcnRlZCBieSB0aGUgaW50ZWdyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBDb25maWd1cmF0aW9uU291cmNlVHlwZSA9ICdlbnZpcm9ubWVudCcgfCAnc2VjcmV0cy1tYW5hZ2VyJyB8ICdzc20nIHwgJ2xvY2FsLWZpbGUnO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBjb25maWd1cmF0aW9uIHNvdXJjZSB3aXRoIG1ldGFkYXRhIGFib3V0IGl0cyBvcmlnaW4gYW5kIHN0YXRlLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uU291cmNlIHtcclxuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGUgY29uZmlndXJhdGlvbiBzb3VyY2UgKi9cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gc291cmNlICovXHJcbiAgdHlwZTogQ29uZmlndXJhdGlvblNvdXJjZVR5cGU7XHJcbiAgLyoqIFByaW9yaXR5IG9mIHRoaXMgc291cmNlIChoaWdoZXIgbnVtYmVycyBoYXZlIGhpZ2hlciBwcmlvcml0eSkgKi9cclxuICBwcmlvcml0eTogbnVtYmVyO1xyXG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBkYXRhIGZyb20gdGhpcyBzb3VyY2UgKi9cclxuICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIC8qKiBPcHRpb25hbCBuYW1lc3BhY2UgZm9yIHRoaXMgY29uZmlndXJhdGlvbiAqL1xyXG4gIG5hbWVzcGFjZT86IHN0cmluZztcclxuICAvKiogVGltZXN0YW1wIHdoZW4gdGhpcyBjb25maWd1cmF0aW9uIHdhcyBsb2FkZWQgKi9cclxuICBsb2FkZWRBdDogRGF0ZTtcclxuICAvKiogQW55IGVycm9ycyBlbmNvdW50ZXJlZCB3aGlsZSBsb2FkaW5nIHRoaXMgc291cmNlICovXHJcbiAgZXJyb3JzPzogc3RyaW5nW107XHJcbn0iXX0=
@@ -0,0 +1,10 @@
1
+ // Integration interfaces exports
2
+ export * from './integration-options.interface';
3
+ export * from './configuration-factory.interface';
4
+ export * from './configuration-source.interface';
5
+ export * from './integration-state.interface';
6
+ export * from './typed-configuration.interface';
7
+ export * from './nestjs-config-integration.interface';
8
+ export * from './nestjs-config-compatibility.interface';
9
+ export * from './utility-types.interface';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW50ZWdyYXRpb24vaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFDakMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW50ZWdyYXRpb24gaW50ZXJmYWNlcyBleHBvcnRzXHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24tb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb24tZmFjdG9yeS5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZ3VyYXRpb24tc291cmNlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWdyYXRpb24tc3RhdGUuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi90eXBlZC1jb25maWd1cmF0aW9uLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmVzdGpzLWNvbmZpZy1pbnRlZ3JhdGlvbi5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL25lc3Rqcy1jb25maWctY29tcGF0aWJpbGl0eS5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxpdHktdHlwZXMuaW50ZXJmYWNlJzsiXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tb3B0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW50ZWdyYXRpb24vaW50ZXJmYWNlcy9pbnRlZ3JhdGlvbi1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmV0c01hbmFnZXJDb25maWcsIFNTTUNvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvbW9kdWxlLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBQcmVjZWRlbmNlIHJ1bGVzIGZvciBjb25maWd1cmF0aW9uIHNvdXJjZXMgd2hlbiB0aGUgc2FtZSBrZXkgZXhpc3RzIGluIG11bHRpcGxlIHNvdXJjZXMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBQcmVjZWRlbmNlUnVsZSA9ICdhd3MtZmlyc3QnIHwgJ2xvY2FsLWZpcnN0JyB8ICdtZXJnZSc7XHJcblxyXG4vKipcclxuICogRXJyb3IgaGFuZGxpbmcgc3RyYXRlZ3kgZm9yIHZhcmlvdXMgZmFpbHVyZSBzY2VuYXJpb3MuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEVycm9ySGFuZGxpbmdTdHJhdGVneSB7XHJcbiAgLyoqIEhvdyB0byBoYW5kbGUgQVdTIHNlcnZpY2UgdW5hdmFpbGFiaWxpdHkgKi9cclxuICBvbkF3c1VuYXZhaWxhYmxlOiAnZmFpbCcgfCAnd2FybicgfCAnc2lsZW50JztcclxuICAvKiogSG93IHRvIGhhbmRsZSBjb25maWd1cmF0aW9uIGVycm9ycyAqL1xyXG4gIG9uQ29uZmlndXJhdGlvbkVycm9yOiAnZmFpbCcgfCAnd2FybicgfCAndXNlLWRlZmF1bHQnO1xyXG4gIC8qKiBIb3cgdG8gaGFuZGxlIHZhbGlkYXRpb24gZXJyb3JzICovXHJcbiAgb25WYWxpZGF0aW9uRXJyb3I6ICdmYWlsJyB8ICd3YXJuJyB8ICdza2lwLWludmFsaWQnO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGVuYWJsZSBkZXRhaWxlZCBsb2dnaW5nICovXHJcbiAgZW5hYmxlRGV0YWlsZWRMb2dnaW5nOiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogRmFjdG9yeSBvcHRpb25zIGZvciBAbmVzdGpzL2NvbmZpZyBjb21wYXRpYmlsaXR5LlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBGYWN0b3J5T3B0aW9ucyB7XHJcbiAgLyoqIFdoZXRoZXIgdG8gY2FjaGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgKi9cclxuICBjYWNoZT86IGJvb2xlYW47XHJcbiAgLyoqIFdoZXRoZXIgdG8gZXhwYW5kIHZhcmlhYmxlcyBpbiBjb25maWd1cmF0aW9uIHZhbHVlcyAqL1xyXG4gIGV4cGFuZFZhcmlhYmxlcz86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBOZXN0SlMgQ29uZmlnIEFXUyBJbnRlZ3JhdGlvbiBtb2R1bGUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uT3B0aW9ucyB7XHJcbiAgLy8gQVdTIENvbmZpZ3VyYXRpb25cclxuICAvKiogQ29uZmlndXJhdGlvbiBmb3IgQVdTIFNlY3JldHMgTWFuYWdlciBpbnRlZ3JhdGlvbiAqL1xyXG4gIHNlY3JldHNNYW5hZ2VyQ29uZmlnPzogU2VjcmV0c01hbmFnZXJDb25maWc7XHJcbiAgLyoqIENvbmZpZ3VyYXRpb24gZm9yIEFXUyBTeXN0ZW1zIE1hbmFnZXIgUGFyYW1ldGVyIFN0b3JlIGludGVncmF0aW9uICovXHJcbiAgc3NtQ29uZmlnPzogU1NNQ29uZmlnO1xyXG4gIFxyXG4gIC8vIEludGVncmF0aW9uIFNldHRpbmdzXHJcbiAgLyoqIFByZWNlZGVuY2UgcnVsZSBmb3IgY29uZmlndXJhdGlvbiBzb3VyY2VzICovXHJcbiAgcHJlY2VkZW5jZT86IFByZWNlZGVuY2VSdWxlO1xyXG4gIC8qKiBOYW1lc3BhY2VzIHRvIGxvYWQgY29uZmlndXJhdGlvbiBmb3IgKi9cclxuICBuYW1lc3BhY2VzPzogc3RyaW5nW107XHJcbiAgLyoqIFdoZXRoZXIgdG8gZW5hYmxlIGxvZ2dpbmcgKi9cclxuICBlbmFibGVMb2dnaW5nPzogYm9vbGVhbjtcclxuICBcclxuICAvLyBAbmVzdGpzL2NvbmZpZyBjb21wYXRpYmlsaXR5XHJcbiAgLyoqIFdoZXRoZXIgdG8gcmVnaXN0ZXIgdGhlIG1vZHVsZSBnbG9iYWxseSAqL1xyXG4gIHJlZ2lzdGVyR2xvYmFsbHk/OiBib29sZWFuO1xyXG4gIC8qKiBGYWN0b3J5IG9wdGlvbnMgZm9yIEBuZXN0anMvY29uZmlnIGNvbXBhdGliaWxpdHkgKi9cclxuICBmYWN0b3J5T3B0aW9ucz86IEZhY3RvcnlPcHRpb25zO1xyXG4gIFxyXG4gIC8vIEVycm9yIGhhbmRsaW5nXHJcbiAgLyoqIFdoZXRoZXIgdG8gZmFpbCBvbiBBV1MgZXJyb3JzICovXHJcbiAgZmFpbE9uQXdzRXJyb3I/OiBib29sZWFuO1xyXG4gIC8qKiBXaGV0aGVyIHRvIGZhbGxiYWNrIHRvIGxvY2FsIGNvbmZpZ3VyYXRpb24gb24gQVdTIGVycm9ycyAqL1xyXG4gIGZhbGxiYWNrVG9Mb2NhbD86IGJvb2xlYW47XHJcbiAgLyoqIEVycm9yIGhhbmRsaW5nIHN0cmF0ZWd5ICovXHJcbiAgZXJyb3JIYW5kbGluZz86IEVycm9ySGFuZGxpbmdTdHJhdGVneTtcclxuICBcclxuICAvKiogUHJlZml4IGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKGUuZy4sICdBUFBfJykgKi9cclxuICBlbnZQcmVmaXg/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBc3luYyBmYWN0b3J5IG9wdGlvbnMgZm9yIGR5bmFtaWMgaW50ZWdyYXRpb24gbW9kdWxlIGNvbmZpZ3VyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFzeW5jSW50ZWdyYXRpb25PcHRpb25zIHtcclxuICAvKiogRmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgaW50ZWdyYXRpb24gb3B0aW9ucyAqL1xyXG4gIHVzZUZhY3Rvcnk6ICguLi5hcmdzOiBhbnlbXSkgPT4gUHJvbWlzZTxJbnRlZ3JhdGlvbk9wdGlvbnM+IHwgSW50ZWdyYXRpb25PcHRpb25zO1xyXG4gIFxyXG4gIC8qKiBEZXBlbmRlbmNpZXMgdG8gaW5qZWN0IGludG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24gKi9cclxuICBpbmplY3Q/OiBhbnlbXTtcclxuICBcclxuICAvKiogSW1wb3J0cyByZXF1aXJlZCBmb3IgdGhlIGZhY3RvcnkgZnVuY3Rpb24gKi9cclxuICBpbXBvcnRzPzogYW55W107XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWdyYXRpb24tc3RhdGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2ludGVncmF0aW9uL2ludGVyZmFjZXMvaW50ZWdyYXRpb24tc3RhdGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWd1cmF0aW9uU291cmNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGludGVncmF0aW9uIG1vZHVsZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdyYXRpb25TdGF0ZSB7XHJcbiAgLyoqIFdoZXRoZXIgdGhlIGludGVncmF0aW9uIGhhcyBiZWVuIGluaXRpYWxpemVkICovXHJcbiAgaXNJbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAvKiogV2hldGhlciBBV1Mgc2VydmljZXMgYXJlIGF2YWlsYWJsZSAqL1xyXG4gIGF3c0F2YWlsYWJsZTogYm9vbGVhbjtcclxuICAvKiogTGlzdCBvZiBjb25maWd1cmF0aW9uIHNvdXJjZXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkICovXHJcbiAgbG9hZGVkU291cmNlczogQ29uZmlndXJhdGlvblNvdXJjZVtdO1xyXG4gIC8qKiBMaXN0IG9mIGZhY3RvcnkgbmFtZXMgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZCB3aXRoIEBuZXN0anMvY29uZmlnICovXHJcbiAgcmVnaXN0ZXJlZEZhY3Rvcmllczogc3RyaW5nW107XHJcbiAgLyoqIEFueSBlcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIGluaXRpYWxpemF0aW9uIG9yIG9wZXJhdGlvbiAqL1xyXG4gIGVycm9yczogc3RyaW5nW107XHJcbn0iXX0=
@@ -0,0 +1,64 @@
1
+ import { ConfigService } from '@nestjs/config';
2
+ /**
3
+ * Decorator for injecting enhanced config service.
4
+ */
5
+ export const InjectEnhancedConfig = () => {
6
+ return (_target, _propertyKey, _parameterIndex) => {
7
+ // Implementation would be handled by the actual decorator
8
+ };
9
+ };
10
+ /**
11
+ * Configuration property decorator.
12
+ */
13
+ export function ConfigProperty(options) {
14
+ return function (target, propertyKey) {
15
+ // Store metadata for the property
16
+ Reflect.defineMetadata('config:property', options, target, propertyKey);
17
+ };
18
+ }
19
+ /**
20
+ * Configuration class decorator.
21
+ */
22
+ export function ConfigClass(options) {
23
+ return function (target) {
24
+ // Store metadata for the class
25
+ Reflect.defineMetadata('config:class', options || {}, target);
26
+ return target;
27
+ };
28
+ }
29
+ /**
30
+ * Configuration validation decorator.
31
+ */
32
+ export function ValidateConfig(options) {
33
+ return function (target) {
34
+ // Store validation metadata
35
+ Reflect.defineMetadata('config:validation', options, target);
36
+ return target;
37
+ };
38
+ }
39
+ /**
40
+ * Configuration transformer decorator.
41
+ */
42
+ export function TransformConfig(transformer) {
43
+ return function (target, propertyKey) {
44
+ // Store transformer metadata
45
+ Reflect.defineMetadata('config:transformer', transformer, target, propertyKey);
46
+ };
47
+ }
48
+ /**
49
+ * Create a type-safe configuration factory.
50
+ */
51
+ export function createTypeSafeConfigFactory(key, factory) {
52
+ const configFactory = () => {
53
+ const configService = new ConfigService();
54
+ return factory(configService);
55
+ };
56
+ configFactory.KEY = key;
57
+ configFactory.asProvider = () => ({
58
+ provide: key,
59
+ useFactory: factory,
60
+ inject: [ConfigService],
61
+ });
62
+ return configFactory;
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGpzLWNvbmZpZy1jb21wYXRpYmlsaXR5LmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbnRlZ3JhdGlvbi9pbnRlcmZhY2VzL25lc3Rqcy1jb25maWctY29tcGF0aWJpbGl0eS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBc0gvQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLEdBQXVCLEVBQUU7SUFDM0QsT0FBTyxDQUFDLE9BQVksRUFBRSxZQUF5QyxFQUFFLGVBQXVCLEVBQUUsRUFBRTtRQUMxRiwwREFBMEQ7SUFDNUQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBb0JGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QjtJQUMzRCxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQTRCO1FBQ3hELGtDQUFrQztRQUNsQyxPQUFPLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUE0QjtJQUN0RCxPQUFPLFVBQThCLE1BQVM7UUFDNUMsK0JBQStCO1FBQy9CLE9BQU8sQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQWNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQztJQUM3RCxPQUFPLFVBQThCLE1BQVM7UUFDNUMsNEJBQTRCO1FBQzVCLE9BQU8sQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFlRDs7R0FFRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLFdBQStDO0lBRS9DLE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBNEI7UUFDeEQsNkJBQTZCO1FBQzdCLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUM7QUFDSixDQUFDO0FBZUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLEdBQVcsRUFDWCxPQUFxQztJQUVyQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7UUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUMxQyxPQUFPLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFDRCxhQUFxQixDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDaEMsYUFBcUIsQ0FBQyxVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsR0FBRztRQUNaLFVBQVUsRUFBRSxPQUFPO1FBQ25CLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUN4QixDQUFDLENBQUM7SUFDSCxPQUFPLGFBQXlDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmVzdGpzL2NvbmZpZyc7XHJcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbmVzdGpzL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogRW5oYW5jZWQgQ29uZmlnU2VydmljZSB0aGF0IHByb3ZpZGVzIEFXUyBpbnRlZ3JhdGlvbiBjYXBhYmlsaXRpZXMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEVuaGFuY2VkQ29uZmlnU2VydmljZSBleHRlbmRzIENvbmZpZ1NlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEdldCBjb25maWd1cmF0aW9uIHZhbHVlIHdpdGggQVdTIHNvdXJjZSBpbmZvcm1hdGlvbi5cclxuICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0eSBwYXRoXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIERlZmF1bHQgdmFsdWUgaWYgcHJvcGVydHkgaXMgbm90IGZvdW5kXHJcbiAgICogQHJldHVybnMgQ29uZmlndXJhdGlvbiB2YWx1ZSB3aXRoIHNvdXJjZSBtZXRhZGF0YVxyXG4gICAqL1xyXG4gIGdldFdpdGhTb3VyY2U8VCA9IGFueT4ocHJvcGVydHlQYXRoOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpOiBDb25maWdWYWx1ZVdpdGhTb3VyY2U8VD47XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjb25maWd1cmF0aW9uIHZhbHVlIGZyb20gQVdTIHNvdXJjZXMgb25seS5cclxuICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0eSBwYXRoXHJcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSAtIERlZmF1bHQgdmFsdWUgaWYgcHJvcGVydHkgaXMgbm90IGZvdW5kXHJcbiAgICogQHJldHVybnMgQ29uZmlndXJhdGlvbiB2YWx1ZSBmcm9tIEFXUyBzb3VyY2VzXHJcbiAgICovXHJcbiAgZ2V0RnJvbUF3czxUID0gYW55Pihwcm9wZXJ0eVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjb25maWd1cmF0aW9uIHZhbHVlIGZyb20gbG9jYWwgc291cmNlcyBvbmx5LlxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVBhdGggLSBDb25maWd1cmF0aW9uIHByb3BlcnR5IHBhdGhcclxuICAgKiBAcGFyYW0gZGVmYXVsdFZhbHVlIC0gRGVmYXVsdCB2YWx1ZSBpZiBwcm9wZXJ0eSBpcyBub3QgZm91bmRcclxuICAgKiBAcmV0dXJucyBDb25maWd1cmF0aW9uIHZhbHVlIGZyb20gbG9jYWwgc291cmNlc1xyXG4gICAqL1xyXG4gIGdldEZyb21Mb2NhbDxUID0gYW55Pihwcm9wZXJ0eVBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGEgY29uZmlndXJhdGlvbiB2YWx1ZSBjb21lcyBmcm9tIEFXUyBzb3VyY2VzLlxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eVBhdGggLSBDb25maWd1cmF0aW9uIHByb3BlcnR5IHBhdGhcclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHZhbHVlIGNvbWVzIGZyb20gQVdTLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBpc0Zyb21Bd3MocHJvcGVydHlQYXRoOiBzdHJpbmcpOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIGNvbmZpZ3VyYXRpb24ga2V5cyBmcm9tIEFXUyBzb3VyY2VzLlxyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGNvbmZpZ3VyYXRpb24ga2V5cyBmcm9tIEFXUyBzb3VyY2VzXHJcbiAgICovXHJcbiAgZ2V0QXdzS2V5cygpOiBzdHJpbmdbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBjb25maWd1cmF0aW9uIGtleXMgZnJvbSBsb2NhbCBzb3VyY2VzLlxyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGNvbmZpZ3VyYXRpb24ga2V5cyBmcm9tIGxvY2FsIHNvdXJjZXNcclxuICAgKi9cclxuICBnZXRMb2NhbEtleXMoKTogc3RyaW5nW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjb25maWd1cmF0aW9uIHNvdXJjZSBpbmZvcm1hdGlvbiBmb3IgYSBwcm9wZXJ0eS5cclxuICAgKiBAcGFyYW0gcHJvcGVydHlQYXRoIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0eSBwYXRoXHJcbiAgICogQHJldHVybnMgU291cmNlIGluZm9ybWF0aW9uIG9yIHVuZGVmaW5lZFxyXG4gICAqL1xyXG4gIGdldFNvdXJjZUluZm8ocHJvcGVydHlQYXRoOiBzdHJpbmcpOiBDb25maWdTb3VyY2VJbmZvIHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBSZWZyZXNoIEFXUyBjb25maWd1cmF0aW9uIHZhbHVlcy5cclxuICAgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiByZWZyZXNoIGlzIGNvbXBsZXRlXHJcbiAgICovXHJcbiAgcmVmcmVzaEF3c0NvbmZpZygpOiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgY29uZmlndXJhdGlvbiBoZWFsdGggc3RhdHVzLlxyXG4gICAqIEByZXR1cm5zIENvbmZpZ3VyYXRpb24gaGVhbHRoIGluZm9ybWF0aW9uXHJcbiAgICovXHJcbiAgZ2V0SGVhbHRoU3RhdHVzKCk6IENvbmZpZ0hlYWx0aFN0YXR1cztcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gdmFsdWUgd2l0aCBzb3VyY2UgbWV0YWRhdGEuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1ZhbHVlV2l0aFNvdXJjZTxUID0gYW55PiB7XHJcbiAgLyoqIFRoZSBjb25maWd1cmF0aW9uIHZhbHVlICovXHJcbiAgdmFsdWU6IFQ7XHJcbiAgLyoqIFNvdXJjZSBpbmZvcm1hdGlvbiAqL1xyXG4gIHNvdXJjZTogQ29uZmlnU291cmNlSW5mbztcclxuICAvKiogV2hldGhlciB0aGUgdmFsdWUgd2FzIGZvdW5kICovXHJcbiAgZm91bmQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHNvdXJjZSBpbmZvcm1hdGlvbi5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnU291cmNlSW5mbyB7XHJcbiAgLyoqIFNvdXJjZSB0eXBlICovXHJcbiAgdHlwZTogJ2Vudmlyb25tZW50JyB8ICdzZWNyZXRzLW1hbmFnZXInIHwgJ3NzbScgfCAnbG9jYWwtZmlsZSc7XHJcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBhbiBBV1Mgc291cmNlICovXHJcbiAgaXNBd3M6IGJvb2xlYW47XHJcbiAgLyoqIFNvdXJjZSBwcmlvcml0eSAqL1xyXG4gIHByaW9yaXR5OiBudW1iZXI7XHJcbiAgLyoqIE5hbWVzcGFjZSBpZiBhcHBsaWNhYmxlICovXHJcbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xyXG4gIC8qKiBXaGVuIHRoZSB2YWx1ZSB3YXMgbG9hZGVkICovXHJcbiAgbG9hZGVkQXQ6IERhdGU7XHJcbiAgLyoqIE9yaWdpbmFsIGtleSB1c2VkIHRvIGxvYWQgdGhlIHZhbHVlICovXHJcbiAgb3JpZ2luYWxLZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGhlYWx0aCBzdGF0dXMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0hlYWx0aFN0YXR1cyB7XHJcbiAgLyoqIE92ZXJhbGwgaGVhbHRoIHN0YXR1cyAqL1xyXG4gIGhlYWx0aHk6IGJvb2xlYW47XHJcbiAgLyoqIEFXUyBzZXJ2aWNlcyBhdmFpbGFiaWxpdHkgKi9cclxuICBhd3NBdmFpbGFibGU6IGJvb2xlYW47XHJcbiAgLyoqIE51bWJlciBvZiBsb2FkZWQgY29uZmlndXJhdGlvbiBzb3VyY2VzICovXHJcbiAgc291cmNlc0xvYWRlZDogbnVtYmVyO1xyXG4gIC8qKiBOdW1iZXIgb2YgZmFpbGVkIHNvdXJjZXMgKi9cclxuICBzb3VyY2VzRmFpbGVkOiBudW1iZXI7XHJcbiAgLyoqIExhc3Qgc3VjY2Vzc2Z1bCBBV1MgbG9hZCB0aW1lICovXHJcbiAgbGFzdEF3c0xvYWQ/OiBEYXRlO1xyXG4gIC8qKiBBbnkgaGVhbHRoIGlzc3VlcyAqL1xyXG4gIGlzc3Vlczogc3RyaW5nW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIGluamVjdGluZyBlbmhhbmNlZCBjb25maWcgc2VydmljZS5cclxuICovXHJcbmV4cG9ydCBjb25zdCBJbmplY3RFbmhhbmNlZENvbmZpZyA9ICgpOiBQYXJhbWV0ZXJEZWNvcmF0b3IgPT4ge1xyXG4gIHJldHVybiAoX3RhcmdldDogYW55LCBfcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCwgX3BhcmFtZXRlckluZGV4OiBudW1iZXIpID0+IHtcclxuICAgIC8vIEltcGxlbWVudGF0aW9uIHdvdWxkIGJlIGhhbmRsZWQgYnkgdGhlIGFjdHVhbCBkZWNvcmF0b3JcclxuICB9O1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydHkgZGVjb3JhdG9yIGZvciB0eXBlLXNhZmUgY29uZmlndXJhdGlvbiBhY2Nlc3MuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1Byb3BlcnR5T3B0aW9ucyB7XHJcbiAgLyoqIENvbmZpZ3VyYXRpb24ga2V5ICovXHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgLyoqIERlZmF1bHQgdmFsdWUgKi9cclxuICBkZWZhdWx0VmFsdWU/OiBhbnk7XHJcbiAgLyoqIFdoZXRoZXIgdG8gcmVxdWlyZSB0aGUgcHJvcGVydHkgKi9cclxuICByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgLyoqIFZhbGlkYXRpb24gZnVuY3Rpb24gKi9cclxuICB2YWxpZGF0ZT86ICh2YWx1ZTogYW55KSA9PiBib29sZWFuO1xyXG4gIC8qKiBUcmFuc2Zvcm1hdGlvbiBmdW5jdGlvbiAqL1xyXG4gIHRyYW5zZm9ybT86ICh2YWx1ZTogYW55KSA9PiBhbnk7XHJcbiAgLyoqIFdoZXRoZXIgdG8gcHJlZmVyIEFXUyBzb3VyY2VzICovXHJcbiAgcHJlZmVyQXdzPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydHkgZGVjb3JhdG9yLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIENvbmZpZ1Byb3BlcnR5KG9wdGlvbnM6IENvbmZpZ1Byb3BlcnR5T3B0aW9ucyk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSB7XHJcbiAgICAvLyBTdG9yZSBtZXRhZGF0YSBmb3IgdGhlIHByb3BlcnR5XHJcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKCdjb25maWc6cHJvcGVydHknLCBvcHRpb25zLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBjbGFzcyBkZWNvcmF0b3IgZm9yIGF1dG9tYXRpYyBjb25maWd1cmF0aW9uIGluamVjdGlvbi5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQ2xhc3NPcHRpb25zIHtcclxuICAvKiogQ29uZmlndXJhdGlvbiBuYW1lc3BhY2UgKi9cclxuICBuYW1lc3BhY2U/OiBzdHJpbmc7XHJcbiAgLyoqIFdoZXRoZXIgdG8gdmFsaWRhdGUgYWxsIHByb3BlcnRpZXMgKi9cclxuICB2YWxpZGF0ZT86IGJvb2xlYW47XHJcbiAgLyoqIFdoZXRoZXIgdG8gcHJlZmVyIEFXUyBzb3VyY2VzICovXHJcbiAgcHJlZmVyQXdzPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gY2xhc3MgZGVjb3JhdG9yLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIENvbmZpZ0NsYXNzKG9wdGlvbnM/OiBDb25maWdDbGFzc09wdGlvbnMpOiBDbGFzc0RlY29yYXRvciB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIDxUIGV4dGVuZHMgRnVuY3Rpb24+KHRhcmdldDogVCkge1xyXG4gICAgLy8gU3RvcmUgbWV0YWRhdGEgZm9yIHRoZSBjbGFzc1xyXG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSgnY29uZmlnOmNsYXNzJywgb3B0aW9ucyB8fCB7fSwgdGFyZ2V0KTtcclxuICAgIHJldHVybiB0YXJnZXQ7XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gdmFsaWRhdGlvbiBkZWNvcmF0b3IuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1ZhbGlkYXRpb25PcHRpb25zIHtcclxuICAvKiogVmFsaWRhdGlvbiBzY2hlbWEgKi9cclxuICBzY2hlbWE/OiBhbnk7XHJcbiAgLyoqIEN1c3RvbSB2YWxpZGF0aW9uIGZ1bmN0aW9uICovXHJcbiAgdmFsaWRhdG9yPzogKGNvbmZpZzogYW55KSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcclxuICAvKiogV2hldGhlciB0byB0aHJvdyBvbiB2YWxpZGF0aW9uIGZhaWx1cmUgKi9cclxuICB0aHJvd09uRXJyb3I/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIGRlY29yYXRvci5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBWYWxpZGF0ZUNvbmZpZyhvcHRpb25zOiBDb25maWdWYWxpZGF0aW9uT3B0aW9ucyk6IENsYXNzRGVjb3JhdG9yIHtcclxuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBGdW5jdGlvbj4odGFyZ2V0OiBUKSB7XHJcbiAgICAvLyBTdG9yZSB2YWxpZGF0aW9uIG1ldGFkYXRhXHJcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKCdjb25maWc6dmFsaWRhdGlvbicsIG9wdGlvbnMsIHRhcmdldCk7XHJcbiAgICByZXR1cm4gdGFyZ2V0O1xyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHRyYW5zZm9ybWVyIGludGVyZmFjZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnVHJhbnNmb3JtZXI8VElucHV0ID0gYW55LCBUT3V0cHV0ID0gYW55PiB7XHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtIGNvbmZpZ3VyYXRpb24gdmFsdWUuXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gSW5wdXQgdmFsdWVcclxuICAgKiBAcGFyYW0ga2V5IC0gQ29uZmlndXJhdGlvbiBrZXlcclxuICAgKiBAcmV0dXJucyBUcmFuc2Zvcm1lZCB2YWx1ZVxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogVElucHV0LCBrZXk6IHN0cmluZyk6IFRPdXRwdXQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHRyYW5zZm9ybWVyIGRlY29yYXRvci5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2Zvcm1Db25maWc8VElucHV0LCBUT3V0cHV0PihcclxuICB0cmFuc2Zvcm1lcjogQ29uZmlnVHJhbnNmb3JtZXI8VElucHV0LCBUT3V0cHV0PlxyXG4pOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCkge1xyXG4gICAgLy8gU3RvcmUgdHJhbnNmb3JtZXIgbWV0YWRhdGFcclxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoJ2NvbmZpZzp0cmFuc2Zvcm1lcicsIHRyYW5zZm9ybWVyLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBmYWN0b3J5IHdpdGggZW5oYW5jZWQgdHlwZSBzYWZldHkuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVTYWZlQ29uZmlnRmFjdG9yeTxUID0gYW55PiB7XHJcbiAgKCk6IFQ7XHJcbiAgS0VZOiBzdHJpbmc7XHJcbiAgYXNQcm92aWRlcigpOiB7XHJcbiAgICBwcm92aWRlOiBzdHJpbmc7XHJcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBUO1xyXG4gICAgaW5qZWN0OiBbQ29uZmlnU2VydmljZV07XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSBhIHR5cGUtc2FmZSBjb25maWd1cmF0aW9uIGZhY3RvcnkuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHlwZVNhZmVDb25maWdGYWN0b3J5PFQ+KFxyXG4gIGtleTogc3RyaW5nLFxyXG4gIGZhY3Rvcnk6IChjb25maWc6IENvbmZpZ1NlcnZpY2UpID0+IFRcclxuKTogVHlwZVNhZmVDb25maWdGYWN0b3J5PFQ+IHtcclxuICBjb25zdCBjb25maWdGYWN0b3J5ID0gKCkgPT4ge1xyXG4gICAgY29uc3QgY29uZmlnU2VydmljZSA9IG5ldyBDb25maWdTZXJ2aWNlKCk7XHJcbiAgICByZXR1cm4gZmFjdG9yeShjb25maWdTZXJ2aWNlKTtcclxuICB9O1xyXG4gIChjb25maWdGYWN0b3J5IGFzIGFueSkuS0VZID0ga2V5O1xyXG4gIChjb25maWdGYWN0b3J5IGFzIGFueSkuYXNQcm92aWRlciA9ICgpID0+ICh7XHJcbiAgICBwcm92aWRlOiBrZXksXHJcbiAgICB1c2VGYWN0b3J5OiBmYWN0b3J5LFxyXG4gICAgaW5qZWN0OiBbQ29uZmlnU2VydmljZV0sXHJcbiAgfSk7XHJcbiAgcmV0dXJuIGNvbmZpZ0ZhY3RvcnkgYXMgVHlwZVNhZmVDb25maWdGYWN0b3J5PFQ+O1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBtb2R1bGUgYnVpbGRlciBmb3IgZW5oYW5jZWQgc2V0dXAuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ01vZHVsZUJ1aWxkZXIge1xyXG4gIC8qKlxyXG4gICAqIEFkZCBBV1MgaW50ZWdyYXRpb24uXHJcbiAgICovXHJcbiAgd2l0aEF3c0ludGVncmF0aW9uKG9wdGlvbnM6IGFueSk6IENvbmZpZ01vZHVsZUJ1aWxkZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBjb25maWd1cmF0aW9uIGZhY3Rvcmllcy5cclxuICAgKi9cclxuICB3aXRoRmFjdG9yaWVzKGZhY3RvcmllczogVHlwZVNhZmVDb25maWdGYWN0b3J5W10pOiBDb25maWdNb2R1bGVCdWlsZGVyO1xyXG5cclxuICAvKipcclxuICAgKiBBZGQgdmFsaWRhdGlvbi5cclxuICAgKi9cclxuICB3aXRoVmFsaWRhdGlvbihzY2hlbWE6IGFueSk6IENvbmZpZ01vZHVsZUJ1aWxkZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhcyBnbG9iYWwgbW9kdWxlLlxyXG4gICAqL1xyXG4gIGFzR2xvYmFsKCk6IENvbmZpZ01vZHVsZUJ1aWxkZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuYWJsZSBjYWNoaW5nLlxyXG4gICAqL1xyXG4gIHdpdGhDYWNoaW5nKCk6IENvbmZpZ01vZHVsZUJ1aWxkZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1aWxkIHRoZSBtb2R1bGUuXHJcbiAgICovXHJcbiAgYnVpbGQoKTogVHlwZTxhbnk+O1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiB0ZXN0aW5nIHV0aWxpdGllcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnVGVzdGluZ1V0aWxzIHtcclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBtb2NrIGNvbmZpZyBzZXJ2aWNlLlxyXG4gICAqL1xyXG4gIGNyZWF0ZU1vY2tDb25maWdTZXJ2aWNlKGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55Pik6IEVuaGFuY2VkQ29uZmlnU2VydmljZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRlc3QgY29uZmlndXJhdGlvbiBtb2R1bGUuXHJcbiAgICovXHJcbiAgY3JlYXRlVGVzdENvbmZpZ01vZHVsZShjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBUeXBlPGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vY2sgQVdTIGNvbmZpZ3VyYXRpb24gc291cmNlcy5cclxuICAgKi9cclxuICBtb2NrQXdzU291cmNlcyhjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBhbGwgbW9ja3MuXHJcbiAgICovXHJcbiAgcmVzZXRNb2NrcygpOiB2b2lkO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBtb25pdG9yaW5nIGludGVyZmFjZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnTW9uaXRvciB7XHJcbiAgLyoqXHJcbiAgICogU3RhcnQgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgc3RhcnRNb25pdG9yaW5nKCk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3AgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uIGNoYW5nZXMuXHJcbiAgICovXHJcbiAgc3RvcE1vbml0b3JpbmcoKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGNvbmZpZ3VyYXRpb24gbWV0cmljcy5cclxuICAgKi9cclxuICBnZXRNZXRyaWNzKCk6IENvbmZpZ01ldHJpY3M7XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZSB0byBjb25maWd1cmF0aW9uIGV2ZW50cy5cclxuICAgKi9cclxuICBzdWJzY3JpYmUoY2FsbGJhY2s6IChldmVudDogQ29uZmlnRXZlbnQpID0+IHZvaWQpOiAoKSA9PiB2b2lkO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBtZXRyaWNzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maWdNZXRyaWNzIHtcclxuICAvKiogVG90YWwgY29uZmlndXJhdGlvbiBsb2FkcyAqL1xyXG4gIHRvdGFsTG9hZHM6IG51bWJlcjtcclxuICAvKiogU3VjY2Vzc2Z1bCBBV1MgbG9hZHMgKi9cclxuICBzdWNjZXNzZnVsQXdzTG9hZHM6IG51bWJlcjtcclxuICAvKiogRmFpbGVkIEFXUyBsb2FkcyAqL1xyXG4gIGZhaWxlZEF3c0xvYWRzOiBudW1iZXI7XHJcbiAgLyoqIEF2ZXJhZ2UgbG9hZCB0aW1lICovXHJcbiAgYXZlcmFnZUxvYWRUaW1lOiBudW1iZXI7XHJcbiAgLyoqIExhc3QgbG9hZCB0aW1lICovXHJcbiAgbGFzdExvYWRUaW1lPzogRGF0ZTtcclxuICAvKiogQ29uZmlndXJhdGlvbiBjYWNoZSBoaXQgcmF0ZSAqL1xyXG4gIGNhY2hlSGl0UmF0ZTogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBldmVudC5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnRXZlbnQge1xyXG4gIC8qKiBFdmVudCB0eXBlICovXHJcbiAgdHlwZTogJ2xvYWRlZCcgfCAndXBkYXRlZCcgfCAnZXJyb3InIHwgJ3ZhbGlkYXRlZCc7XHJcbiAgLyoqIEV2ZW50IHRpbWVzdGFtcCAqL1xyXG4gIHRpbWVzdGFtcDogRGF0ZTtcclxuICAvKiogRXZlbnQgZGF0YSAqL1xyXG4gIGRhdGE6IGFueTtcclxuICAvKiogU291cmNlIG9mIHRoZSBldmVudCAqL1xyXG4gIHNvdXJjZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBhdWRpdCBsb2cgZW50cnkuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ0F1ZGl0RW50cnkge1xyXG4gIC8qKiBBdWRpdCBlbnRyeSBJRCAqL1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgLyoqIFRpbWVzdGFtcCAqL1xyXG4gIHRpbWVzdGFtcDogRGF0ZTtcclxuICAvKiogQWN0aW9uIHBlcmZvcm1lZCAqL1xyXG4gIGFjdGlvbjogJ2xvYWQnIHwgJ3VwZGF0ZScgfCAnZGVsZXRlJyB8ICd2YWxpZGF0ZSc7XHJcbiAgLyoqIENvbmZpZ3VyYXRpb24ga2V5IGFmZmVjdGVkICovXHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgLyoqIE9sZCB2YWx1ZSAoZm9yIHVwZGF0ZXMpICovXHJcbiAgb2xkVmFsdWU/OiBhbnk7XHJcbiAgLyoqIE5ldyB2YWx1ZSAqL1xyXG4gIG5ld1ZhbHVlPzogYW55O1xyXG4gIC8qKiBTb3VyY2Ugb2YgdGhlIGNoYW5nZSAqL1xyXG4gIHNvdXJjZTogc3RyaW5nO1xyXG4gIC8qKiBVc2VyIG9yIHN5c3RlbSB0aGF0IG1hZGUgdGhlIGNoYW5nZSAqL1xyXG4gIGFjdG9yOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGF1ZGl0IGxvZ2dlci5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnQXVkaXRMb2dnZXIge1xyXG4gIC8qKlxyXG4gICAqIExvZyBhIGNvbmZpZ3VyYXRpb24gY2hhbmdlLlxyXG4gICAqL1xyXG4gIGxvZyhlbnRyeTogT21pdDxDb25maWdBdWRpdEVudHJ5LCAnaWQnIHwgJ3RpbWVzdGFtcCc+KTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGF1ZGl0IGxvZyBlbnRyaWVzLlxyXG4gICAqL1xyXG4gIGdldEVudHJpZXMoZmlsdGVyPzogUGFydGlhbDxDb25maWdBdWRpdEVudHJ5Pik6IENvbmZpZ0F1ZGl0RW50cnlbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgYXVkaXQgbG9nLlxyXG4gICAqL1xyXG4gIGNsZWFyKCk6IHZvaWQ7XHJcbn0iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVzdGpzLWNvbmZpZy1pbnRlZ3JhdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW50ZWdyYXRpb24vaW50ZXJmYWNlcy9uZXN0anMtY29uZmlnLWludGVncmF0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnRmFjdG9yeSwgQ29uZmlnTW9kdWxlT3B0aW9ucyB9IGZyb20gJ0BuZXN0anMvY29uZmlnJztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZSwgTW9kdWxlTWV0YWRhdGEsIFR5cGUgfSBmcm9tICdAbmVzdGpzL2NvbW1vbic7XHJcbmltcG9ydCB7IEludGVncmF0aW9uT3B0aW9ucyB9IGZyb20gJy4vaW50ZWdyYXRpb24tb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU291cmNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBUeXBlZENvbmZpZ3VyYXRpb24sIENvbmZpZ3VyYXRpb25TY2hlbWEgfSBmcm9tICcuL3R5cGVkLWNvbmZpZ3VyYXRpb24uaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBFbmhhbmNlZCBtb2R1bGUgb3B0aW9ucyB0aGF0IGV4dGVuZCBAbmVzdGpzL2NvbmZpZyBvcHRpb25zIHdpdGggQVdTIGludGVncmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBFbmhhbmNlZENvbmZpZ01vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25maWdNb2R1bGVPcHRpb25zIHtcclxuICAvKiogQVdTIGludGVncmF0aW9uIG9wdGlvbnMgKi9cclxuICBhd3NJbnRlZ3JhdGlvbj86IEludGVncmF0aW9uT3B0aW9ucztcclxuICAvKiogV2hldGhlciB0byBlbmFibGUgQVdTIGNvbmZpZ3VyYXRpb24gbG9hZGluZyAqL1xyXG4gIGVuYWJsZUF3c0ludGVncmF0aW9uPzogYm9vbGVhbjtcclxuICAvKiogQ3VzdG9tIGNvbmZpZ3VyYXRpb24gc2NoZW1hcyBmb3IgdHlwZSBzYWZldHkgKi9cclxuICBzY2hlbWFzPzogQ29uZmlndXJhdGlvblNjaGVtYVtdO1xyXG59XHJcblxyXG4vKipcclxuICogRmFjdG9yeSBmdW5jdGlvbiB0eXBlIGZvciBjcmVhdGluZyBlbmhhbmNlZCBjb25maWd1cmF0aW9uIG1vZHVsZXMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBFbmhhbmNlZENvbmZpZ01vZHVsZUZhY3RvcnkgPSAoXHJcbiAgb3B0aW9ucz86IEVuaGFuY2VkQ29uZmlnTW9kdWxlT3B0aW9uc1xyXG4pID0+IER5bmFtaWNNb2R1bGU7XHJcblxyXG4vKipcclxuICogQXN5bmMgZmFjdG9yeSBmdW5jdGlvbiB0eXBlIGZvciBjcmVhdGluZyBlbmhhbmNlZCBjb25maWd1cmF0aW9uIG1vZHVsZXMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBFbmhhbmNlZEFzeW5jQ29uZmlnTW9kdWxlRmFjdG9yeSA9IChcclxuICBvcHRpb25zOiBFbmhhbmNlZEFzeW5jQ29uZmlnTW9kdWxlT3B0aW9uc1xyXG4pID0+IER5bmFtaWNNb2R1bGU7XHJcblxyXG4vKipcclxuICogQXN5bmMgb3B0aW9ucyBmb3IgZW5oYW5jZWQgY29uZmlndXJhdGlvbiBtb2R1bGUuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEVuaGFuY2VkQXN5bmNDb25maWdNb2R1bGVPcHRpb25zIGV4dGVuZHMgTW9kdWxlTWV0YWRhdGEge1xyXG4gIC8qKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBlbmhhbmNlZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgKi9cclxuICB1c2VGYWN0b3J5PzogKFxyXG4gICAgLi4uYXJnczogYW55W11cclxuICApID0+IFByb21pc2U8RW5oYW5jZWRDb25maWdNb2R1bGVPcHRpb25zPiB8IEVuaGFuY2VkQ29uZmlnTW9kdWxlT3B0aW9ucztcclxuICBcclxuICAvKiogQ2xhc3MgdG8gdXNlIGFzIGZhY3RvcnkgKi9cclxuICB1c2VDbGFzcz86IFR5cGU8RW5oYW5jZWRDb25maWdNb2R1bGVPcHRpb25zRmFjdG9yeT47XHJcbiAgXHJcbiAgLyoqIEV4aXN0aW5nIGluc3RhbmNlIHRvIHVzZSBhcyBmYWN0b3J5ICovXHJcbiAgdXNlRXhpc3Rpbmc/OiBUeXBlPEVuaGFuY2VkQ29uZmlnTW9kdWxlT3B0aW9uc0ZhY3Rvcnk+O1xyXG4gIFxyXG4gIC8qKiBEZXBlbmRlbmNpZXMgdG8gaW5qZWN0IGludG8gdGhlIGZhY3RvcnkgZnVuY3Rpb24gKi9cclxuICBpbmplY3Q/OiBhbnlbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZhY3RvcnkgaW50ZXJmYWNlIGZvciBjcmVhdGluZyBlbmhhbmNlZCBjb25maWd1cmF0aW9uIG1vZHVsZSBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBFbmhhbmNlZENvbmZpZ01vZHVsZU9wdGlvbnNGYWN0b3J5IHtcclxuICAvKipcclxuICAgKiBDcmVhdGUgZW5oYW5jZWQgY29uZmlndXJhdGlvbiBtb2R1bGUgb3B0aW9ucy5cclxuICAgKiBAcmV0dXJucyBFbmhhbmNlZCBjb25maWd1cmF0aW9uIG1vZHVsZSBvcHRpb25zXHJcbiAgICovXHJcbiAgY3JlYXRlQ29uZmlnT3B0aW9ucygpOiBQcm9taXNlPEVuaGFuY2VkQ29uZmlnTW9kdWxlT3B0aW9ucz4gfCBFbmhhbmNlZENvbmZpZ01vZHVsZU9wdGlvbnM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlZ3JhdGlvbiBzZXJ2aWNlIGludGVyZmFjZSBmb3IgbWFuYWdpbmcgQVdTIGFuZCBAbmVzdGpzL2NvbmZpZyBpbnRlZ3JhdGlvbi5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmVzdEpTQ29uZmlnSW50ZWdyYXRpb25TZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBpbnRlZ3JhdGlvbiB3aXRoIEBuZXN0anMvY29uZmlnLlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gSW50ZWdyYXRpb24gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGluaXRpYWxpemUob3B0aW9uczogSW50ZWdyYXRpb25PcHRpb25zKTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgY29uZmlndXJhdGlvbiBmYWN0b3JpZXMgd2l0aCBAbmVzdGpzL2NvbmZpZy5cclxuICAgKiBAcGFyYW0gZmFjdG9yaWVzIC0gQ29uZmlndXJhdGlvbiBmYWN0b3JpZXMgdG8gcmVnaXN0ZXJcclxuICAgKi9cclxuICByZWdpc3RlckZhY3RvcmllcyhmYWN0b3JpZXM6IENvbmZpZ0ZhY3RvcnlbXSk6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBjb25maWd1cmF0aW9uIGZyb20gQVdTIHNvdXJjZXMgYW5kIGZvcm1hdCBmb3IgQG5lc3Rqcy9jb25maWcuXHJcbiAgICogQHBhcmFtIG5hbWVzcGFjZXMgLSBPcHRpb25hbCBuYW1lc3BhY2VzIHRvIGxvYWRcclxuICAgKiBAcmV0dXJucyBDb25maWd1cmF0aW9uIGRhdGEgb3JnYW5pemVkIGZvciBAbmVzdGpzL2NvbmZpZ1xyXG4gICAqL1xyXG4gIGdldENvbmZpZ3VyYXRpb25Gb3JOZXN0SlMobmFtZXNwYWNlcz86IHN0cmluZ1tdKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGNvbmZpZ3VyYXRpb24gZmFjdG9yaWVzIGZyb20gQVdTIHNvdXJjZXMuXHJcbiAgICogQHBhcmFtIHNvdXJjZXMgLSBDb25maWd1cmF0aW9uIHNvdXJjZXMgZnJvbSBBV1NcclxuICAgKiBAcGFyYW0gbmFtZXNwYWNlcyAtIE9wdGlvbmFsIG5hbWVzcGFjZXMgdG8gb3JnYW5pemUgY29uZmlndXJhdGlvblxyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGNvbmZpZ3VyYXRpb24gZmFjdG9yaWVzXHJcbiAgICovXHJcbiAgY3JlYXRlRmFjdG9yaWVzRnJvbUF3c1NvdXJjZXMoXHJcbiAgICBzb3VyY2VzOiBDb25maWd1cmF0aW9uU291cmNlW10sXHJcbiAgICBuYW1lc3BhY2VzPzogc3RyaW5nW11cclxuICApOiBDb25maWdGYWN0b3J5W107XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlIEFXUyBjb25maWd1cmF0aW9uIHdpdGggZXhpc3RpbmcgQG5lc3Rqcy9jb25maWcgY29uZmlndXJhdGlvbi5cclxuICAgKiBAcGFyYW0gYXdzQ29uZmlnIC0gQ29uZmlndXJhdGlvbiBmcm9tIEFXUyBzb3VyY2VzXHJcbiAgICogQHBhcmFtIGV4aXN0aW5nQ29uZmlnIC0gRXhpc3RpbmcgQG5lc3Rqcy9jb25maWcgY29uZmlndXJhdGlvblxyXG4gICAqIEByZXR1cm5zIE1lcmdlZCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgbWVyZ2VXaXRoRXhpc3RpbmdDb25maWcoXHJcbiAgICBhd3NDb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4sXHJcbiAgICBleGlzdGluZ0NvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PlxyXG4gICk6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gdXNpbmcgQG5lc3Rqcy9jb25maWcgdmFsaWRhdGlvbiBwYXR0ZXJucy5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiB0byB2YWxpZGF0ZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uU2NoZW1hIC0gT3B0aW9uYWwgdmFsaWRhdGlvbiBzY2hlbWFcclxuICAgKiBAcmV0dXJucyBWYWxpZGF0aW9uIHJlc3VsdFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlQ29uZmlndXJhdGlvbihcclxuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PixcclxuICAgIHZhbGlkYXRpb25TY2hlbWE/OiBhbnlcclxuICApOiBQcm9taXNlPGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgdHlwZWQgY29uZmlndXJhdGlvbiB3aXRoIGZ1bGwgdHlwZSBzYWZldHkuXHJcbiAgICogQHBhcmFtIGtleSAtIENvbmZpZ3VyYXRpb24ga2V5IG9yIG5hbWVzcGFjZVxyXG4gICAqIEByZXR1cm5zIFR5cGVkIGNvbmZpZ3VyYXRpb25cclxuICAgKi9cclxuICBnZXRUeXBlZENvbmZpZ3VyYXRpb248VCA9IGFueT4oa2V5OiBzdHJpbmcpOiBUeXBlZENvbmZpZ3VyYXRpb248VD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoZSBpbnRlZ3JhdGlvbiBpcyBwcm9wZXJseSBpbml0aWFsaXplZC5cclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIGluaXRpYWxpemVkLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBpbnRlZ3JhdGlvbiBzdGF0dXMgYW5kIGhlYWx0aCBpbmZvcm1hdGlvbi5cclxuICAgKiBAcmV0dXJucyBJbnRlZ3JhdGlvbiBzdGF0dXMgaW5mb3JtYXRpb25cclxuICAgKi9cclxuICBnZXRTdGF0dXMoKTogSW50ZWdyYXRpb25TdGF0dXM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlZ3JhdGlvbiBzdGF0dXMgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEludGVncmF0aW9uU3RhdHVzIHtcclxuICAvKiogV2hldGhlciB0aGUgaW50ZWdyYXRpb24gaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBpbml0aWFsaXplZDogYm9vbGVhbjtcclxuICAvKiogV2hldGhlciBBV1Mgc2VydmljZXMgYXJlIGF2YWlsYWJsZSAqL1xyXG4gIGF3c0F2YWlsYWJsZTogYm9vbGVhbjtcclxuICAvKiogTnVtYmVyIG9mIGNvbmZpZ3VyYXRpb24gc291cmNlcyBsb2FkZWQgKi9cclxuICBzb3VyY2VzTG9hZGVkOiBudW1iZXI7XHJcbiAgLyoqIE51bWJlciBvZiBmYWN0b3JpZXMgcmVnaXN0ZXJlZCAqL1xyXG4gIGZhY3Rvcmllc1JlZ2lzdGVyZWQ6IG51bWJlcjtcclxuICAvKiogQW55IGVycm9ycyBlbmNvdW50ZXJlZCAqL1xyXG4gIGVycm9yczogc3RyaW5nW107XHJcbiAgLyoqIExhc3QgdXBkYXRlIHRpbWVzdGFtcCAqL1xyXG4gIGxhc3RVcGRhdGVkOiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBsb2FkZXIgaW50ZXJmYWNlIGZvciBBV1MgaW50ZWdyYXRpb24gd2l0aCBAbmVzdGpzL2NvbmZpZy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ29uZmlndXJhdGlvbkxvYWRlciB7XHJcbiAgLyoqXHJcbiAgICogTG9hZCBjb25maWd1cmF0aW9uIGZyb20gQVdTIHNvdXJjZXMgZm9yIEBuZXN0anMvY29uZmlnIGludGVncmF0aW9uLlxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gSW50ZWdyYXRpb24gb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIGNvbmZpZ3VyYXRpb24gZGF0YVxyXG4gICAqL1xyXG4gIGxvYWRGb3JOZXN0SlNDb25maWcob3B0aW9uczogSW50ZWdyYXRpb25PcHRpb25zKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBuYW1lc3BhY2VkIGNvbmZpZ3VyYXRpb24gZnJvbSBBV1Mgc291cmNlcy5cclxuICAgKiBAcGFyYW0gbmFtZXNwYWNlcyAtIE5hbWVzcGFjZXMgdG8gbG9hZFxyXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gSW50ZWdyYXRpb24gb3B0aW9uc1xyXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIG5hbWVzcGFjZWQgY29uZmlndXJhdGlvbiBkYXRhXHJcbiAgICovXHJcbiAgbG9hZE5hbWVzcGFjZWRGb3JOZXN0SlNDb25maWcoXHJcbiAgICBuYW1lc3BhY2VzOiBzdHJpbmdbXSxcclxuICAgIG9wdGlvbnM6IEludGVncmF0aW9uT3B0aW9uc1xyXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgYW55Pj4+O1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBBV1Mgc2VydmljZXMgYXJlIGF2YWlsYWJsZSBmb3IgY29uZmlndXJhdGlvbiBsb2FkaW5nLlxyXG4gICAqIEByZXR1cm5zIFByb21pc2UgcmVzb2x2aW5nIHRvIGF2YWlsYWJpbGl0eSBzdGF0dXNcclxuICAgKi9cclxuICBjaGVja0F3c0F2YWlsYWJpbGl0eSgpOiBQcm9taXNlPGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgY29uZmlndXJhdGlvbiBzb3VyY2VzIHRoYXQgYXJlIGF2YWlsYWJsZS5cclxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEludGVncmF0aW9uIG9wdGlvbnNcclxuICAgKiBAcmV0dXJucyBQcm9taXNlIHJlc29sdmluZyB0byBhdmFpbGFibGUgc291cmNlc1xyXG4gICAqL1xyXG4gIGdldEF2YWlsYWJsZVNvdXJjZXMob3B0aW9uczogSW50ZWdyYXRpb25PcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIG1lcmdlciBpbnRlcmZhY2UgZm9yIGhhbmRsaW5nIHByZWNlZGVuY2UgcnVsZXMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25NZXJnZXIge1xyXG4gIC8qKlxyXG4gICAqIE1lcmdlIGNvbmZpZ3VyYXRpb25zIHdpdGggcHJlY2VkZW5jZSBydWxlcy5cclxuICAgKiBAcGFyYW0gc291cmNlcyAtIENvbmZpZ3VyYXRpb24gc291cmNlcyB0byBtZXJnZVxyXG4gICAqIEBwYXJhbSBwcmVjZWRlbmNlUnVsZSAtIFByZWNlZGVuY2UgcnVsZSB0byBhcHBseVxyXG4gICAqIEByZXR1cm5zIE1lcmdlZCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgbWVyZ2VXaXRoUHJlY2VkZW5jZShcclxuICAgIHNvdXJjZXM6IENvbmZpZ3VyYXRpb25Tb3VyY2VbXSxcclxuICAgIHByZWNlZGVuY2VSdWxlOiAnYXdzLWZpcnN0JyB8ICdsb2NhbC1maXJzdCcgfCAnbWVyZ2UnXHJcbiAgKTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWVyZ2UgdHdvIGNvbmZpZ3VyYXRpb24gb2JqZWN0cy5cclxuICAgKiBAcGFyYW0gcHJpbWFyeSAtIFByaW1hcnkgY29uZmlndXJhdGlvbiAoaGlnaGVyIHByZWNlZGVuY2UpXHJcbiAgICogQHBhcmFtIHNlY29uZGFyeSAtIFNlY29uZGFyeSBjb25maWd1cmF0aW9uIChsb3dlciBwcmVjZWRlbmNlKVxyXG4gICAqIEByZXR1cm5zIE1lcmdlZCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgbWVyZ2UoXHJcbiAgICBwcmltYXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgc2Vjb25kYXJ5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgKTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVlcCBtZXJnZSBjb25maWd1cmF0aW9uIG9iamVjdHMgd2l0aCBjb25mbGljdCByZXNvbHV0aW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWdzIC0gQXJyYXkgb2YgY29uZmlndXJhdGlvbiBvYmplY3RzIHRvIG1lcmdlXHJcbiAgICogQHBhcmFtIGNvbmZsaWN0UmVzb2x1dGlvbiAtIEhvdyB0byByZXNvbHZlIGNvbmZsaWN0c1xyXG4gICAqIEByZXR1cm5zIE1lcmdlZCBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgZGVlcE1lcmdlKFxyXG4gICAgY29uZmlnczogUmVjb3JkPHN0cmluZywgYW55PltdLFxyXG4gICAgY29uZmxpY3RSZXNvbHV0aW9uPzogJ2ZpcnN0LXdpbnMnIHwgJ2xhc3Qtd2lucycgfCAnbWVyZ2UtYXJyYXlzJ1xyXG4gICk6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHZhbGlkYXRvciBpbnRlcmZhY2UgZm9yIEFXUy1zb3VyY2VkIHZhbHVlcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXdzQ29uZmlndXJhdGlvblZhbGlkYXRvciB7XHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGUgY29uZmlndXJhdGlvbiB1c2luZyBKb2kgc2NoZW1hLlxyXG4gICAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmF0aW9uIHRvIHZhbGlkYXRlXHJcbiAgICogQHBhcmFtIHNjaGVtYSAtIEpvaSB2YWxpZGF0aW9uIHNjaGVtYVxyXG4gICAqIEByZXR1cm5zIFZhbGlkYXRpb24gcmVzdWx0XHJcbiAgICovXHJcbiAgdmFsaWRhdGVXaXRoSm9pKGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55Piwgc2NoZW1hOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+O1xyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZSBjb25maWd1cmF0aW9uIHVzaW5nIGNsYXNzLXZhbGlkYXRvci5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiB0byB2YWxpZGF0ZVxyXG4gICAqIEBwYXJhbSB2YWxpZGF0aW9uQ2xhc3MgLSBDbGFzcyB3aXRoIHZhbGlkYXRpb24gZGVjb3JhdG9yc1xyXG4gICAqIEByZXR1cm5zIFZhbGlkYXRpb24gcmVzdWx0XHJcbiAgICovXHJcbiAgdmFsaWRhdGVXaXRoQ2xhc3NWYWxpZGF0b3IoY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB2YWxpZGF0aW9uQ2xhc3M6IGFueSk6IFByb21pc2U8Ym9vbGVhbj47XHJcblxyXG4gIC8qKlxyXG4gICAqIFZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gdXNpbmcgY3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb24uXHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gdG8gdmFsaWRhdGVcclxuICAgKiBAcGFyYW0gdmFsaWRhdGlvbkZuIC0gQ3VzdG9tIHZhbGlkYXRpb24gZnVuY3Rpb25cclxuICAgKiBAcmV0dXJucyBWYWxpZGF0aW9uIHJlc3VsdFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlV2l0aEN1c3RvbUZ1bmN0aW9uKFxyXG4gICAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxyXG4gICAgdmFsaWRhdGlvbkZuOiAoY29uZmlnOiBhbnkpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+XHJcbiAgKTogUHJvbWlzZTxib29sZWFuPjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHZhbGlkYXRpb24gZXJyb3JzIGZvciBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmF0aW9uIHRvIHZhbGlkYXRlXHJcbiAgICogQHBhcmFtIHNjaGVtYSAtIFZhbGlkYXRpb24gc2NoZW1hXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgdmFsaWRhdGlvbiBlcnJvcnNcclxuICAgKi9cclxuICBnZXRWYWxpZGF0aW9uRXJyb3JzKGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55Piwgc2NoZW1hOiBhbnkpOiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgdHlwZSBmb3IgZXh0cmFjdGluZyBjb25maWd1cmF0aW9uIHR5cGUgZnJvbSBAbmVzdGpzL2NvbmZpZyBmYWN0b3J5LlxyXG4gKi9cclxuZXhwb3J0IHR5cGUgRXh0cmFjdENvbmZpZ1R5cGU8VD4gPSBUIGV4dGVuZHMgKCkgPT4gaW5mZXIgVSA/IFUgOiBuZXZlcjtcclxuXHJcbi8qKlxyXG4gKiBVdGlsaXR5IHR5cGUgZm9yIGNyZWF0aW5nIHN0cm9uZ2x5IHR5cGVkIGNvbmZpZ3VyYXRpb24gc2VydmljZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIFR5cGVkQ29uZmlnU2VydmljZTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgQ29uZmlnRmFjdG9yeT4+ID0ge1xyXG4gIGdldDxLIGV4dGVuZHMga2V5b2YgVD4oa2V5OiBLKTogRXh0cmFjdENvbmZpZ1R5cGU8VFtLXT4gfCB1bmRlZmluZWQ7XHJcbiAgZ2V0T3JUaHJvdzxLIGV4dGVuZHMga2V5b2YgVD4oa2V5OiBLKTogRXh0cmFjdENvbmZpZ1R5cGU8VFtLXT47XHJcbn07XHJcblxyXG4vKipcclxuICogQ29uZmlndXJhdGlvbiBuYW1lc3BhY2UgcmVnaXN0cnkgZm9yIG1hbmFnaW5nIG5hbWVzcGFjZWQgY29uZmlndXJhdGlvbnMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25OYW1lc3BhY2VSZWdpc3RyeSB7XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgYSBuYW1lc3BhY2Ugd2l0aCBpdHMgY29uZmlndXJhdGlvbiBmYWN0b3J5LlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBOYW1lc3BhY2UgbmFtZVxyXG4gICAqIEBwYXJhbSBmYWN0b3J5IC0gQ29uZmlndXJhdGlvbiBmYWN0b3J5IGZvciB0aGUgbmFtZXNwYWNlXHJcbiAgICovXHJcbiAgcmVnaXN0ZXIobmFtZXNwYWNlOiBzdHJpbmcsIGZhY3Rvcnk6IENvbmZpZ0ZhY3RvcnkpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgYSBjb25maWd1cmF0aW9uIGZhY3RvcnkgYnkgbmFtZXNwYWNlLlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBOYW1lc3BhY2UgbmFtZVxyXG4gICAqIEByZXR1cm5zIENvbmZpZ3VyYXRpb24gZmFjdG9yeSBvciB1bmRlZmluZWRcclxuICAgKi9cclxuICBnZXQobmFtZXNwYWNlOiBzdHJpbmcpOiBDb25maWdGYWN0b3J5IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhIG5hbWVzcGFjZSBpcyByZWdpc3RlcmVkLlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBOYW1lc3BhY2UgbmFtZVxyXG4gICAqIEByZXR1cm5zIFRydWUgaWYgcmVnaXN0ZXJlZCwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAgICovXHJcbiAgaGFzKG5hbWVzcGFjZTogc3RyaW5nKTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCByZWdpc3RlcmVkIG5hbWVzcGFjZXMuXHJcbiAgICogQHJldHVybnMgQXJyYXkgb2YgbmFtZXNwYWNlIG5hbWVzXHJcbiAgICovXHJcbiAgZ2V0TmFtZXNwYWNlcygpOiBzdHJpbmdbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVW5yZWdpc3RlciBhIG5hbWVzcGFjZS5cclxuICAgKiBAcGFyYW0gbmFtZXNwYWNlIC0gTmFtZXNwYWNlIG5hbWVcclxuICAgKi9cclxuICB1bnJlZ2lzdGVyKG5hbWVzcGFjZTogc3RyaW5nKTogdm9pZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgYWxsIHJlZ2lzdGVyZWQgbmFtZXNwYWNlcy5cclxuICAgKi9cclxuICBjbGVhcigpOiB2b2lkO1xyXG59Il19
@@ -0,0 +1,3 @@
1
+ // Type definitions for typed configuration access
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtY29uZmlndXJhdGlvbi5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW50ZWdyYXRpb24vaW50ZXJmYWNlcy90eXBlZC1jb25maWd1cmF0aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrREFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUeXBlIGRlZmluaXRpb25zIGZvciB0eXBlZCBjb25maWd1cmF0aW9uIGFjY2Vzc1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyaWMgdHlwZSBmb3IgdHlwZWQgY29uZmlndXJhdGlvbiBhY2Nlc3MuXHJcbiAqIFByb3ZpZGVzIHR5cGUgc2FmZXR5IGZvciBjb25maWd1cmF0aW9uIHZhbHVlcyBsb2FkZWQgZnJvbSBBV1Mgc291cmNlcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRDb25maWd1cmF0aW9uPFQgPSBhbnk+IHtcclxuICAvKiogVGhlIGNvbmZpZ3VyYXRpb24gZGF0YSB3aXRoIHByb3BlciB0eXBpbmcgKi9cclxuICBkYXRhOiBUO1xyXG4gIC8qKiBOYW1lc3BhY2UgZm9yIHRoaXMgY29uZmlndXJhdGlvbiAqL1xyXG4gIG5hbWVzcGFjZT86IHN0cmluZztcclxuICAvKiogV2hldGhlciB0aGlzIGNvbmZpZ3VyYXRpb24gd2FzIGxvYWRlZCBmcm9tIEFXUyBzb3VyY2VzICovXHJcbiAgZnJvbUF3czogYm9vbGVhbjtcclxuICAvKiogVGltZXN0YW1wIHdoZW4gdGhpcyBjb25maWd1cmF0aW9uIHdhcyBsb2FkZWQgKi9cclxuICBsb2FkZWRBdDogRGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdlbmVyaWMgY29uZmlndXJhdGlvbiBmYWN0b3J5IHdpdGggdHlwZSBzYWZldHkuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVkQ29uZmlndXJhdGlvbkZhY3Rvcnk8VCA9IGFueT4ge1xyXG4gIC8qKiBUeXBlLXNhZmUgY29uZmlndXJhdGlvbiBkYXRhICovXHJcbiAgKCk6IFQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGFjY2Vzc29yIHdpdGggdHlwZSBzYWZldHkgZm9yIEFXUy1zb3VyY2VkIHZhbHVlcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZWRDb25maWd1cmF0aW9uQWNjZXNzb3Ige1xyXG4gIC8qKlxyXG4gICAqIEdldCB0eXBlZCBjb25maWd1cmF0aW9uIHZhbHVlIHdpdGggdHlwZSBzYWZldHkuXHJcbiAgICogQHBhcmFtIGtleSAtIENvbmZpZ3VyYXRpb24ga2V5IChzdXBwb3J0cyBkb3Qgbm90YXRpb24pXHJcbiAgICogQHJldHVybnMgVHlwZWQgY29uZmlndXJhdGlvbiB2YWx1ZVxyXG4gICAqL1xyXG4gIGdldDxUID0gYW55PihrZXk6IHN0cmluZyk6IFQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0eXBlZCBjb25maWd1cmF0aW9uIHZhbHVlIG9yIHRocm93IGlmIG5vdCBmb3VuZC5cclxuICAgKiBAcGFyYW0ga2V5IC0gQ29uZmlndXJhdGlvbiBrZXkgKHN1cHBvcnRzIGRvdCBub3RhdGlvbilcclxuICAgKiBAcmV0dXJucyBUeXBlZCBjb25maWd1cmF0aW9uIHZhbHVlXHJcbiAgICogQHRocm93cyBFcnJvciBpZiBrZXkgaXMgbm90IGZvdW5kXHJcbiAgICovXHJcbiAgZ2V0T3JUaHJvdzxUID0gYW55PihrZXk6IHN0cmluZyk6IFQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBuYW1lc3BhY2VkIHR5cGVkIGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQHBhcmFtIG5hbWVzcGFjZSAtIENvbmZpZ3VyYXRpb24gbmFtZXNwYWNlXHJcbiAgICogQHJldHVybnMgVHlwZWQgY29uZmlndXJhdGlvbiBmb3IgdGhlIG5hbWVzcGFjZVxyXG4gICAqL1xyXG4gIGdldE5hbWVzcGFjZWQ8VCA9IGFueT4obmFtZXNwYWNlOiBzdHJpbmcpOiBUeXBlZENvbmZpZ3VyYXRpb248VD4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBuYW1lc3BhY2VkIHR5cGVkIGNvbmZpZ3VyYXRpb24gb3IgdGhyb3cgaWYgbm90IGZvdW5kLlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBDb25maWd1cmF0aW9uIG5hbWVzcGFjZVxyXG4gICAqIEByZXR1cm5zIFR5cGVkIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBuYW1lc3BhY2VcclxuICAgKiBAdGhyb3dzIEVycm9yIGlmIG5hbWVzcGFjZSBpcyBub3QgZm91bmRcclxuICAgKi9cclxuICBnZXROYW1lc3BhY2VkT3JUaHJvdzxUID0gYW55PihuYW1lc3BhY2U6IHN0cmluZyk6IFR5cGVkQ29uZmlndXJhdGlvbjxUPjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2sgaWYgYSBjb25maWd1cmF0aW9uIGtleSBleGlzdHMuXHJcbiAgICogQHBhcmFtIGtleSAtIENvbmZpZ3VyYXRpb24ga2V5IChzdXBwb3J0cyBkb3Qgbm90YXRpb24pXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiBrZXkgZXhpc3RzLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhIG5hbWVzcGFjZSBleGlzdHMuXHJcbiAgICogQHBhcmFtIG5hbWVzcGFjZSAtIENvbmZpZ3VyYXRpb24gbmFtZXNwYWNlXHJcbiAgICogQHJldHVybnMgVHJ1ZSBpZiBuYW1lc3BhY2UgZXhpc3RzLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBoYXNOYW1lc3BhY2UobmFtZXNwYWNlOiBzdHJpbmcpOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIGNvbmZpZ3VyYXRpb24ga2V5cy5cclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBhbGwgY29uZmlndXJhdGlvbiBrZXlzXHJcbiAgICovXHJcbiAgZ2V0S2V5cygpOiBzdHJpbmdbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBuYW1lc3BhY2VzLlxyXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIGFsbCBuYW1lc3BhY2VzXHJcbiAgICovXHJcbiAgZ2V0TmFtZXNwYWNlcygpOiBzdHJpbmdbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFR5cGUtc2FmZSBjb25maWd1cmF0aW9uIHNjaGVtYSBkZWZpbml0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb25maWd1cmF0aW9uU2NoZW1hPFQgPSBhbnk+IHtcclxuICAvKiogU2NoZW1hIG5hbWUvaWRlbnRpZmllciAqL1xyXG4gIG5hbWU6IHN0cmluZztcclxuICAvKiogT3B0aW9uYWwgbmFtZXNwYWNlIGZvciB0aGlzIHNjaGVtYSAqL1xyXG4gIG5hbWVzcGFjZT86IHN0cmluZztcclxuICAvKiogVHlwZSBkZWZpbml0aW9uIGZvciB0aGUgY29uZmlndXJhdGlvbiAqL1xyXG4gIHR5cGU6IG5ldyAoKSA9PiBUO1xyXG4gIC8qKiBPcHRpb25hbCB2YWxpZGF0aW9uIGZ1bmN0aW9uICovXHJcbiAgdmFsaWRhdGU/OiAoY29uZmlnOiBhbnkpID0+IGNvbmZpZyBpcyBUO1xyXG4gIC8qKiBPcHRpb25hbCBkZWZhdWx0IHZhbHVlcyAqL1xyXG4gIGRlZmF1bHRzPzogUGFydGlhbDxUPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gcmVnaXN0cnkgZm9yIG1hbmFnaW5nIHR5cGVkIGNvbmZpZ3VyYXRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlZENvbmZpZ3VyYXRpb25SZWdpc3RyeSB7XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgYSB0eXBlZCBjb25maWd1cmF0aW9uIHNjaGVtYS5cclxuICAgKiBAcGFyYW0gc2NoZW1hIC0gQ29uZmlndXJhdGlvbiBzY2hlbWEgdG8gcmVnaXN0ZXJcclxuICAgKi9cclxuICByZWdpc3RlcjxUPihzY2hlbWE6IENvbmZpZ3VyYXRpb25TY2hlbWE8VD4pOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgYSB0eXBlZCBjb25maWd1cmF0aW9uIGJ5IG5hbWUuXHJcbiAgICogQHBhcmFtIG5hbWUgLSBTY2hlbWEgbmFtZVxyXG4gICAqIEByZXR1cm5zIFR5cGVkIGNvbmZpZ3VyYXRpb24gb3IgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgZ2V0PFQgPSBhbnk+KG5hbWU6IHN0cmluZyk6IFR5cGVkQ29uZmlndXJhdGlvbjxUPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGEgdHlwZWQgY29uZmlndXJhdGlvbiBieSBuYW1lIG9yIHRocm93IGlmIG5vdCBmb3VuZC5cclxuICAgKiBAcGFyYW0gbmFtZSAtIFNjaGVtYSBuYW1lXHJcbiAgICogQHJldHVybnMgVHlwZWQgY29uZmlndXJhdGlvblxyXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgc2NoZW1hIGlzIG5vdCBmb3VuZFxyXG4gICAqL1xyXG4gIGdldE9yVGhyb3c8VCA9IGFueT4obmFtZTogc3RyaW5nKTogVHlwZWRDb25maWd1cmF0aW9uPFQ+O1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhIHNjaGVtYSBpcyByZWdpc3RlcmVkLlxyXG4gICAqIEBwYXJhbSBuYW1lIC0gU2NoZW1hIG5hbWVcclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHNjaGVtYSBpcyByZWdpc3RlcmVkLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBoYXMobmFtZTogc3RyaW5nKTogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCByZWdpc3RlcmVkIHNjaGVtYSBuYW1lcy5cclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzY2hlbWEgbmFtZXNcclxuICAgKi9cclxuICBnZXRTY2hlbWFOYW1lcygpOiBzdHJpbmdbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogVW5yZWdpc3RlciBhIHNjaGVtYS5cclxuICAgKiBAcGFyYW0gbmFtZSAtIFNjaGVtYSBuYW1lIHRvIHVucmVnaXN0ZXJcclxuICAgKi9cclxuICB1bnJlZ2lzdGVyKG5hbWU6IHN0cmluZyk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGFsbCByZWdpc3RlcmVkIHNjaGVtYXMuXHJcbiAgICovXHJcbiAgY2xlYXIoKTogdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIE9wdGlvbnMgZm9yIHR5cGVkIGNvbmZpZ3VyYXRpb24gYWNjZXNzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBUeXBlZENvbmZpZ3VyYXRpb25PcHRpb25zIHtcclxuICAvKiogV2hldGhlciB0byBlbmFibGUgc3RyaWN0IHR5cGUgY2hlY2tpbmcgKi9cclxuICBzdHJpY3RUeXBlcz86IGJvb2xlYW47XHJcbiAgLyoqIFdoZXRoZXIgdG8gY2FjaGUgdHlwZWQgY29uZmlndXJhdGlvbnMgKi9cclxuICBjYWNoZT86IGJvb2xlYW47XHJcbiAgLyoqIERlZmF1bHQgbmFtZXNwYWNlIGZvciB1bm5hbWVzcGFjZWQgY29uZmlndXJhdGlvbnMgKi9cclxuICBkZWZhdWx0TmFtZXNwYWNlPzogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRvIHRocm93IG9uIHR5cGUgdmFsaWRhdGlvbiBmYWlsdXJlcyAqL1xyXG4gIHRocm93T25WYWxpZGF0aW9uRXJyb3I/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogVXRpbGl0eSB0eXBlIGZvciBleHRyYWN0aW5nIGNvbmZpZ3VyYXRpb24gdHlwZSBmcm9tIGEgZmFjdG9yeS5cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYXRpb25UeXBlPFQ+ID0gVCBleHRlbmRzIFR5cGVkQ29uZmlndXJhdGlvbkZhY3Rvcnk8aW5mZXIgVT4gPyBVIDogbmV2ZXI7XHJcblxyXG4vKipcclxuICogVXRpbGl0eSB0eXBlIGZvciBjcmVhdGluZyBzdHJvbmdseSB0eXBlZCBjb25maWd1cmF0aW9uIG9iamVjdHMuXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBTdHJvbmdseVR5cGVkQ29uZmlnPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PiA9IHtcclxuICByZWFkb25seSBbSyBpbiBrZXlvZiBUXTogVFtLXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHZhbHVlIHdpdGggbWV0YWRhdGEgYWJvdXQgaXRzIHNvdXJjZSBhbmQgdHlwZS5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblZhbHVlPFQgPSBhbnk+IHtcclxuICAvKiogVGhlIGFjdHVhbCBjb25maWd1cmF0aW9uIHZhbHVlICovXHJcbiAgdmFsdWU6IFQ7XHJcbiAgLyoqIFNvdXJjZSBvZiB0aGlzIGNvbmZpZ3VyYXRpb24gdmFsdWUgKi9cclxuICBzb3VyY2U6ICdlbnZpcm9ubWVudCcgfCAnc2VjcmV0cy1tYW5hZ2VyJyB8ICdzc20nIHwgJ2xvY2FsLWZpbGUnO1xyXG4gIC8qKiBXaGV0aGVyIHRoaXMgdmFsdWUgY2FtZSBmcm9tIEFXUyAqL1xyXG4gIGZyb21Bd3M6IGJvb2xlYW47XHJcbiAgLyoqIE5hbWVzcGFjZSB0aGlzIHZhbHVlIGJlbG9uZ3MgdG8gKi9cclxuICBuYW1lc3BhY2U/OiBzdHJpbmc7XHJcbiAgLyoqIE9yaWdpbmFsIGtleSB1c2VkIHRvIGFjY2VzcyB0aGlzIHZhbHVlICovXHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgLyoqIFR5cGUgb2YgdGhlIHZhbHVlICovXHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIC8qKiBXaGV0aGVyIHRoaXMgdmFsdWUgd2FzIHZhbGlkYXRlZCAqL1xyXG4gIHZhbGlkYXRlZDogYm9vbGVhbjtcclxuICAvKiogVGltZXN0YW1wIHdoZW4gdGhpcyB2YWx1ZSB3YXMgbG9hZGVkICovXHJcbiAgbG9hZGVkQXQ6IERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIHBhdGggcmVzb2x2ZXIgZm9yIG5lc3RlZCBjb25maWd1cmF0aW9uIGFjY2Vzcy5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblBhdGhSZXNvbHZlciB7XHJcbiAgLyoqXHJcbiAgICogUmVzb2x2ZSBhIGNvbmZpZ3VyYXRpb24gcGF0aCB0byBpdHMgdmFsdWUuXHJcbiAgICogQHBhcmFtIHBhdGggLSBDb25maWd1cmF0aW9uIHBhdGggKHN1cHBvcnRzIGRvdCBub3RhdGlvbilcclxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBvYmplY3QgdG8gcmVzb2x2ZSBhZ2FpbnN0XHJcbiAgICogQHJldHVybnMgUmVzb2x2ZWQgdmFsdWUgb3IgdW5kZWZpbmVkXHJcbiAgICovXHJcbiAgcmVzb2x2ZTxUID0gYW55PihwYXRoOiBzdHJpbmcsIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55Pik6IFQgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCBhIHZhbHVlIGF0IGEgY29uZmlndXJhdGlvbiBwYXRoLlxyXG4gICAqIEBwYXJhbSBwYXRoIC0gQ29uZmlndXJhdGlvbiBwYXRoIChzdXBwb3J0cyBkb3Qgbm90YXRpb24pXHJcbiAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gc2V0XHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIG1vZGlmeVxyXG4gICAqL1xyXG4gIHNldDxUID0gYW55PihwYXRoOiBzdHJpbmcsIHZhbHVlOiBULCBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBhIGNvbmZpZ3VyYXRpb24gcGF0aCBleGlzdHMuXHJcbiAgICogQHBhcmFtIHBhdGggLSBDb25maWd1cmF0aW9uIHBhdGggKHN1cHBvcnRzIGRvdCBub3RhdGlvbilcclxuICAgKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhdGlvbiBvYmplY3QgdG8gY2hlY2tcclxuICAgKiBAcmV0dXJucyBUcnVlIGlmIHBhdGggZXhpc3RzLCBmYWxzZSBvdGhlcndpc2VcclxuICAgKi9cclxuICBleGlzdHMocGF0aDogc3RyaW5nLCBjb25maWc6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgYWxsIHBhdGhzIGluIGEgY29uZmlndXJhdGlvbiBvYmplY3QuXHJcbiAgICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGFuYWx5emVcclxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBhbGwgY29uZmlndXJhdGlvbiBwYXRoc1xyXG4gICAqL1xyXG4gIGdldEFsbFBhdGhzKGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZ1tdO1xyXG59Il19