@decaf-ts/for-nest 0.11.2 → 0.12.1

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 (322) hide show
  1. package/README.md +274 -2
  2. package/dist/for-nest.cjs +1 -1
  3. package/dist/for-nest.cjs.map +1 -1
  4. package/dist/for-nest.js +1 -1
  5. package/dist/for-nest.js.map +1 -1
  6. package/lib/cjs/auth/AuthInterceptor.cjs +93 -0
  7. package/lib/cjs/auth/AuthInterceptor.cjs.map +1 -0
  8. package/lib/cjs/auth/DecafAuthHandler.cjs +37 -0
  9. package/lib/cjs/auth/DecafAuthHandler.cjs.map +1 -0
  10. package/lib/cjs/auth/DecafAuthModule.cjs +50 -0
  11. package/lib/cjs/auth/DecafAuthModule.cjs.map +1 -0
  12. package/lib/cjs/auth/constants.cjs +10 -0
  13. package/lib/cjs/auth/constants.cjs.map +1 -0
  14. package/lib/cjs/auth/decorators.cjs +28 -0
  15. package/lib/cjs/auth/decorators.cjs.map +1 -0
  16. package/lib/cjs/{ram → auth}/index.cjs +6 -2
  17. package/lib/cjs/auth/index.cjs.map +1 -0
  18. package/lib/cjs/bin/cli.cjs +1 -1
  19. package/lib/cjs/bin/cli.cjs.map +1 -1
  20. package/lib/cjs/cli-module.cjs +63 -6
  21. package/lib/cjs/cli-module.cjs.map +1 -1
  22. package/lib/cjs/constants.cjs +4 -5
  23. package/lib/cjs/constants.cjs.map +1 -1
  24. package/lib/cjs/controllers.cjs +15 -112
  25. package/lib/cjs/controllers.cjs.map +1 -1
  26. package/lib/cjs/core-module.cjs +7 -7
  27. package/lib/cjs/core-module.cjs.map +1 -1
  28. package/lib/cjs/decaf-model/DecafModelModule.cjs +27 -3
  29. package/lib/cjs/decaf-model/DecafModelModule.cjs.map +1 -1
  30. package/lib/cjs/decaf-model/FromModelController.cjs +618 -792
  31. package/lib/cjs/decaf-model/FromModelController.cjs.map +1 -1
  32. package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs +52 -15
  33. package/lib/cjs/decaf-model/decorators/ApiOperationFromModel.cjs.map +1 -1
  34. package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs +1 -1
  35. package/lib/cjs/decaf-model/decorators/ApiParamsFromModel.cjs.map +1 -1
  36. package/lib/cjs/decaf-model/decorators/DecafBody.cjs +1 -1
  37. package/lib/cjs/decaf-model/decorators/DecafBody.cjs.map +1 -1
  38. package/lib/cjs/decaf-model/decorators/DecafParams.cjs +1 -1
  39. package/lib/cjs/decaf-model/decorators/DecafParams.cjs.map +1 -1
  40. package/lib/cjs/decaf-model/decorators/controller-config.cjs +29 -0
  41. package/lib/cjs/decaf-model/decorators/controller-config.cjs.map +1 -0
  42. package/lib/cjs/decaf-model/decorators/decorators.cjs +4 -44
  43. package/lib/cjs/decaf-model/decorators/decorators.cjs.map +1 -1
  44. package/lib/cjs/decaf-model/decorators/expose.cjs +13 -0
  45. package/lib/cjs/decaf-model/decorators/expose.cjs.map +1 -0
  46. package/lib/cjs/decaf-model/decorators/index.cjs +2 -1
  47. package/lib/cjs/decaf-model/decorators/index.cjs.map +1 -1
  48. package/lib/cjs/decaf-model/decorators/types.cjs +1 -1
  49. package/lib/cjs/decaf-model/decorators/types.cjs.map +1 -1
  50. package/lib/cjs/decaf-model/decorators/utils.cjs +3 -2
  51. package/lib/cjs/decaf-model/decorators/utils.cjs.map +1 -1
  52. package/lib/cjs/decaf-model/index.cjs +27 -18
  53. package/lib/cjs/decaf-model/index.cjs.map +1 -1
  54. package/lib/cjs/decaf-model/types.cjs +1 -1
  55. package/lib/cjs/decaf-model/types.cjs.map +1 -1
  56. package/lib/cjs/decaf-model/utils.cjs +10 -4
  57. package/lib/cjs/decaf-model/utils.cjs.map +1 -1
  58. package/lib/cjs/decoration.cjs +1 -1
  59. package/lib/cjs/decoration.cjs.map +1 -1
  60. package/lib/cjs/decorators.cjs +93 -0
  61. package/lib/cjs/decorators.cjs.map +1 -0
  62. package/lib/cjs/events-module/DecafStreamModule.cjs +1 -1
  63. package/lib/cjs/events-module/DecafStreamModule.cjs.map +1 -1
  64. package/lib/cjs/events-module/EventsController.cjs +1 -1
  65. package/lib/cjs/events-module/EventsController.cjs.map +1 -1
  66. package/lib/cjs/events-module/constant.cjs +1 -1
  67. package/lib/cjs/events-module/constant.cjs.map +1 -1
  68. package/lib/cjs/events-module/index.cjs +1 -1
  69. package/lib/cjs/events-module/index.cjs.map +1 -1
  70. package/lib/cjs/events-module/utils.cjs +1 -1
  71. package/lib/cjs/events-module/utils.cjs.map +1 -1
  72. package/lib/cjs/factory/NestBootstraper.cjs +11 -4
  73. package/lib/cjs/factory/NestBootstraper.cjs.map +1 -1
  74. package/lib/cjs/factory/errors/cors.cjs +1 -1
  75. package/lib/cjs/factory/errors/cors.cjs.map +1 -1
  76. package/lib/cjs/factory/errors/index.cjs +1 -1
  77. package/lib/cjs/factory/errors/index.cjs.map +1 -1
  78. package/lib/cjs/factory/errors/throttling.cjs +1 -1
  79. package/lib/cjs/factory/errors/throttling.cjs.map +1 -1
  80. package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs +105 -6
  81. package/lib/cjs/factory/exceptions/DecafErrorFilter.cjs.map +1 -1
  82. package/lib/cjs/factory/exceptions/decorators.cjs +4 -1
  83. package/lib/cjs/factory/exceptions/decorators.cjs.map +1 -1
  84. package/lib/cjs/factory/exceptions/index.cjs +1 -1
  85. package/lib/cjs/factory/exceptions/index.cjs.map +1 -1
  86. package/lib/cjs/factory/index.cjs +1 -1
  87. package/lib/cjs/factory/index.cjs.map +1 -1
  88. package/lib/cjs/factory/openapi/DtoBuilder.cjs +36 -5
  89. package/lib/cjs/factory/openapi/DtoBuilder.cjs.map +1 -1
  90. package/lib/cjs/factory/openapi/SwaggerBuilder.cjs +1 -1
  91. package/lib/cjs/factory/openapi/SwaggerBuilder.cjs.map +1 -1
  92. package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs +1 -1
  93. package/lib/cjs/factory/openapi/SwaggerCustomUI.cjs.map +1 -1
  94. package/lib/cjs/factory/openapi/constants.cjs +1 -1
  95. package/lib/cjs/factory/openapi/constants.cjs.map +1 -1
  96. package/lib/cjs/factory/openapi/index.cjs +1 -1
  97. package/lib/cjs/factory/openapi/index.cjs.map +1 -1
  98. package/lib/cjs/index.cjs +6 -5
  99. package/lib/cjs/index.cjs.map +1 -1
  100. package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +24 -20
  101. package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs.map +1 -1
  102. package/lib/cjs/interceptors/index.cjs +2 -3
  103. package/lib/cjs/interceptors/index.cjs.map +1 -1
  104. package/lib/cjs/module.cjs +4 -1
  105. package/lib/cjs/module.cjs.map +1 -1
  106. package/lib/cjs/overrides/Adapter.cjs +1 -1
  107. package/lib/cjs/overrides/Adapter.cjs.map +1 -1
  108. package/lib/cjs/overrides/ModelBuilderExtensions.cjs +1 -1
  109. package/lib/cjs/overrides/ModelBuilderExtensions.cjs.map +1 -1
  110. package/lib/cjs/overrides/constants.cjs +1 -1
  111. package/lib/cjs/overrides/constants.cjs.map +1 -1
  112. package/lib/cjs/overrides/decoration.cjs +1 -1
  113. package/lib/cjs/overrides/decoration.cjs.map +1 -1
  114. package/lib/cjs/overrides/helpers.cjs +1 -1
  115. package/lib/cjs/overrides/helpers.cjs.map +1 -1
  116. package/lib/cjs/overrides/index.cjs +2 -1
  117. package/lib/cjs/overrides/index.cjs.map +1 -1
  118. package/lib/cjs/overrides/logging.cjs +5 -0
  119. package/lib/cjs/overrides/logging.cjs.map +1 -0
  120. package/lib/cjs/overrides/overrides.cjs +1 -1
  121. package/lib/cjs/overrides/overrides.cjs.map +1 -1
  122. package/lib/cjs/request/DecafAuthHandler.cjs +4 -38
  123. package/lib/cjs/request/DecafAuthHandler.cjs.map +1 -1
  124. package/lib/cjs/request/DecafHandlerExecutor.cjs +1 -1
  125. package/lib/cjs/request/DecafHandlerExecutor.cjs.map +1 -1
  126. package/lib/cjs/request/DecafRequestContext.cjs +12 -19
  127. package/lib/cjs/request/DecafRequestContext.cjs.map +1 -1
  128. package/lib/cjs/request/DecafResponseInterceptor.cjs +5 -3
  129. package/lib/cjs/request/DecafResponseInterceptor.cjs.map +1 -1
  130. package/lib/cjs/request/index.cjs +1 -1
  131. package/lib/cjs/request/index.cjs.map +1 -1
  132. package/lib/cjs/swagger-types.cjs +1 -1
  133. package/lib/cjs/swagger-types.cjs.map +1 -1
  134. package/lib/cjs/types.cjs +1 -1
  135. package/lib/cjs/types.cjs.map +1 -1
  136. package/lib/cjs/utils.cjs +1 -1
  137. package/lib/cjs/utils.cjs.map +1 -1
  138. package/lib/cjs/webhooks/DecafWebhookModule.cjs +4 -3
  139. package/lib/cjs/webhooks/DecafWebhookModule.cjs.map +1 -1
  140. package/lib/cjs/webhooks/controllers.cjs +49 -54
  141. package/lib/cjs/webhooks/controllers.cjs.map +1 -1
  142. package/lib/cjs/webhooks/index.cjs +1 -1
  143. package/lib/cjs/webhooks/index.cjs.map +1 -1
  144. package/lib/cjs/webhooks/types.cjs +1 -1
  145. package/lib/cjs/webhooks/types.cjs.map +1 -1
  146. package/lib/esm/auth/AuthInterceptor.js +84 -0
  147. package/lib/esm/auth/AuthInterceptor.js.map +1 -0
  148. package/lib/esm/auth/DecafAuthHandler.js +31 -0
  149. package/lib/esm/auth/DecafAuthHandler.js.map +1 -0
  150. package/lib/esm/auth/DecafAuthModule.js +42 -0
  151. package/lib/esm/auth/DecafAuthModule.js.map +1 -0
  152. package/lib/esm/auth/constants.js +6 -0
  153. package/lib/esm/auth/constants.js.map +1 -0
  154. package/lib/esm/auth/decorators.js +22 -0
  155. package/lib/esm/auth/decorators.js.map +1 -0
  156. package/lib/esm/auth/index.js +6 -0
  157. package/lib/esm/auth/index.js.map +1 -0
  158. package/lib/esm/cli-module.js +62 -5
  159. package/lib/esm/cli-module.js.map +1 -1
  160. package/lib/esm/constants.js +2 -3
  161. package/lib/esm/constants.js.map +1 -1
  162. package/lib/esm/controllers.js +15 -112
  163. package/lib/esm/controllers.js.map +1 -1
  164. package/lib/esm/core-module.js +6 -6
  165. package/lib/esm/core-module.js.map +1 -1
  166. package/lib/esm/decaf-model/DecafModelModule.js +26 -2
  167. package/lib/esm/decaf-model/DecafModelModule.js.map +1 -1
  168. package/lib/esm/decaf-model/FromModelController.js +622 -796
  169. package/lib/esm/decaf-model/FromModelController.js.map +1 -1
  170. package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js +52 -14
  171. package/lib/esm/decaf-model/decorators/ApiOperationFromModel.js.map +1 -1
  172. package/lib/esm/decaf-model/decorators/controller-config.js +25 -0
  173. package/lib/esm/decaf-model/decorators/controller-config.js.map +1 -0
  174. package/lib/esm/decaf-model/decorators/decorators.js +1 -42
  175. package/lib/esm/decaf-model/decorators/decorators.js.map +1 -1
  176. package/lib/esm/decaf-model/decorators/expose.js +9 -0
  177. package/lib/esm/decaf-model/decorators/expose.js.map +1 -0
  178. package/lib/esm/decaf-model/decorators/index.js +1 -0
  179. package/lib/esm/decaf-model/decorators/index.js.map +1 -1
  180. package/lib/esm/decaf-model/decorators/utils.js +2 -1
  181. package/lib/esm/decaf-model/decorators/utils.js.map +1 -1
  182. package/lib/esm/decaf-model/index.js +10 -3
  183. package/lib/esm/decaf-model/index.js.map +1 -1
  184. package/lib/esm/decaf-model/utils.js +9 -3
  185. package/lib/esm/decaf-model/utils.js.map +1 -1
  186. package/lib/esm/decorators.js +87 -0
  187. package/lib/esm/decorators.js.map +1 -0
  188. package/lib/esm/events-module/utils.js.map +1 -1
  189. package/lib/esm/factory/NestBootstraper.js +10 -3
  190. package/lib/esm/factory/NestBootstraper.js.map +1 -1
  191. package/lib/esm/factory/exceptions/DecafErrorFilter.js +105 -7
  192. package/lib/esm/factory/exceptions/DecafErrorFilter.js.map +1 -1
  193. package/lib/esm/factory/exceptions/decorators.js +3 -0
  194. package/lib/esm/factory/exceptions/decorators.js.map +1 -1
  195. package/lib/esm/factory/openapi/DtoBuilder.js +35 -4
  196. package/lib/esm/factory/openapi/DtoBuilder.js.map +1 -1
  197. package/lib/esm/index.js +5 -4
  198. package/lib/esm/index.js.map +1 -1
  199. package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +24 -20
  200. package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js.map +1 -1
  201. package/lib/esm/interceptors/index.js +1 -2
  202. package/lib/esm/interceptors/index.js.map +1 -1
  203. package/lib/esm/module.js +3 -0
  204. package/lib/esm/module.js.map +1 -1
  205. package/lib/esm/overrides/index.js +1 -0
  206. package/lib/esm/overrides/index.js.map +1 -1
  207. package/lib/esm/overrides/logging.js +2 -0
  208. package/lib/esm/overrides/logging.js.map +1 -0
  209. package/lib/esm/request/DecafAuthHandler.js +1 -35
  210. package/lib/esm/request/DecafAuthHandler.js.map +1 -1
  211. package/lib/esm/request/DecafRequestContext.js +11 -18
  212. package/lib/esm/request/DecafRequestContext.js.map +1 -1
  213. package/lib/esm/request/DecafResponseInterceptor.js +4 -2
  214. package/lib/esm/request/DecafResponseInterceptor.js.map +1 -1
  215. package/lib/esm/webhooks/DecafWebhookModule.js +2 -1
  216. package/lib/esm/webhooks/DecafWebhookModule.js.map +1 -1
  217. package/lib/esm/webhooks/controllers.js +48 -53
  218. package/lib/esm/webhooks/controllers.js.map +1 -1
  219. package/lib/types/{interceptors → auth}/AuthInterceptor.d.cts +4 -1
  220. package/lib/types/{interceptors → auth}/AuthInterceptor.d.mts +4 -1
  221. package/lib/types/auth/DecafAuthHandler.d.cts +22 -0
  222. package/lib/types/auth/DecafAuthHandler.d.mts +22 -0
  223. package/lib/types/auth/DecafAuthModule.d.cts +9 -0
  224. package/lib/types/auth/DecafAuthModule.d.mts +9 -0
  225. package/lib/types/auth/constants.d.cts +5 -0
  226. package/lib/types/auth/constants.d.mts +5 -0
  227. package/lib/types/auth/decorators.d.cts +4 -0
  228. package/lib/types/auth/decorators.d.mts +4 -0
  229. package/lib/types/auth/index.d.cts +6 -0
  230. package/lib/types/auth/index.d.mts +6 -0
  231. package/lib/types/cli-module.d.cts +1 -4
  232. package/lib/types/cli-module.d.mts +1 -4
  233. package/lib/types/constants.d.cts +2 -3
  234. package/lib/types/constants.d.mts +2 -3
  235. package/lib/types/controllers.d.cts +7 -12
  236. package/lib/types/controllers.d.mts +7 -12
  237. package/lib/types/decaf-model/DecafModelModule.d.cts +1 -0
  238. package/lib/types/decaf-model/DecafModelModule.d.mts +1 -0
  239. package/lib/types/decaf-model/FromModelController.d.cts +32 -52
  240. package/lib/types/decaf-model/FromModelController.d.mts +32 -52
  241. package/lib/types/decaf-model/decorators/ApiOperationFromModel.d.cts +0 -2
  242. package/lib/types/decaf-model/decorators/ApiOperationFromModel.d.mts +0 -2
  243. package/lib/types/decaf-model/decorators/controller-config.d.cts +18 -0
  244. package/lib/types/decaf-model/decorators/controller-config.d.mts +18 -0
  245. package/lib/types/decaf-model/decorators/decorators.d.cts +1 -29
  246. package/lib/types/decaf-model/decorators/decorators.d.mts +1 -29
  247. package/lib/types/decaf-model/decorators/expose.d.cts +1 -0
  248. package/lib/types/decaf-model/decorators/expose.d.mts +1 -0
  249. package/lib/types/decaf-model/decorators/index.d.cts +1 -0
  250. package/lib/types/decaf-model/decorators/index.d.mts +1 -0
  251. package/lib/types/decaf-model/decorators/types.d.cts +8 -21
  252. package/lib/types/decaf-model/decorators/types.d.mts +8 -21
  253. package/lib/types/decaf-model/index.d.cts +11 -3
  254. package/lib/types/decaf-model/index.d.mts +11 -3
  255. package/lib/types/decaf-model/utils.d.cts +2 -1
  256. package/lib/types/decaf-model/utils.d.mts +2 -1
  257. package/lib/types/decorators.d.cts +35 -0
  258. package/lib/types/decorators.d.mts +35 -0
  259. package/lib/types/factory/NestBootstraper.d.cts +5 -0
  260. package/lib/types/factory/NestBootstraper.d.mts +5 -0
  261. package/lib/types/factory/exceptions/DecafErrorFilter.d.cts +33 -1
  262. package/lib/types/factory/exceptions/DecafErrorFilter.d.mts +33 -1
  263. package/lib/types/factory/openapi/DtoBuilder.d.cts +7 -3
  264. package/lib/types/factory/openapi/DtoBuilder.d.mts +7 -3
  265. package/lib/types/index.d.cts +5 -4
  266. package/lib/types/index.d.mts +5 -4
  267. package/lib/types/interceptors/DecafRequestHandlerInterceptor.d.cts +1 -2
  268. package/lib/types/interceptors/DecafRequestHandlerInterceptor.d.mts +1 -2
  269. package/lib/types/interceptors/index.d.cts +1 -2
  270. package/lib/types/interceptors/index.d.mts +1 -2
  271. package/lib/types/overrides/Adapter.d.cts +1 -1
  272. package/lib/types/overrides/Adapter.d.mts +1 -1
  273. package/lib/types/overrides/index.d.cts +1 -0
  274. package/lib/types/overrides/index.d.mts +1 -0
  275. package/lib/types/overrides/logging.d.cts +1 -0
  276. package/lib/types/overrides/logging.d.mts +1 -0
  277. package/lib/types/request/DecafAuthHandler.d.cts +1 -10
  278. package/lib/types/request/DecafAuthHandler.d.mts +1 -10
  279. package/lib/types/request/DecafRequestContext.d.cts +5 -5
  280. package/lib/types/request/DecafRequestContext.d.mts +5 -5
  281. package/lib/types/types.d.cts +12 -24
  282. package/lib/types/types.d.mts +12 -24
  283. package/package.json +12 -13
  284. package/lib/cjs/interceptors/AuthInterceptor.cjs +0 -52
  285. package/lib/cjs/interceptors/AuthInterceptor.cjs.map +0 -1
  286. package/lib/cjs/interceptors/context.cjs +0 -18
  287. package/lib/cjs/interceptors/context.cjs.map +0 -1
  288. package/lib/cjs/migrations/index.cjs +0 -35
  289. package/lib/cjs/migrations/index.cjs.map +0 -1
  290. package/lib/cjs/migrations/migration-module.cjs +0 -60
  291. package/lib/cjs/migrations/migration-module.cjs.map +0 -1
  292. package/lib/cjs/migrations/migration-options.cjs +0 -4
  293. package/lib/cjs/migrations/migration-options.cjs.map +0 -1
  294. package/lib/cjs/ram/RamRequestTransformer.cjs +0 -26
  295. package/lib/cjs/ram/RamRequestTransformer.cjs.map +0 -1
  296. package/lib/cjs/ram/index.cjs.map +0 -1
  297. package/lib/esm/interceptors/AuthInterceptor.js +0 -43
  298. package/lib/esm/interceptors/AuthInterceptor.js.map +0 -1
  299. package/lib/esm/interceptors/context.js +0 -12
  300. package/lib/esm/interceptors/context.js.map +0 -1
  301. package/lib/esm/migrations/index.js +0 -18
  302. package/lib/esm/migrations/index.js.map +0 -1
  303. package/lib/esm/migrations/migration-module.js +0 -52
  304. package/lib/esm/migrations/migration-module.js.map +0 -1
  305. package/lib/esm/migrations/migration-options.js +0 -7
  306. package/lib/esm/migrations/migration-options.js.map +0 -1
  307. package/lib/esm/ram/RamRequestTransformer.js +0 -21
  308. package/lib/esm/ram/RamRequestTransformer.js.map +0 -1
  309. package/lib/esm/ram/index.js +0 -2
  310. package/lib/esm/ram/index.js.map +0 -1
  311. package/lib/types/interceptors/context.d.cts +0 -6
  312. package/lib/types/interceptors/context.d.mts +0 -6
  313. package/lib/types/migrations/index.d.cts +0 -17
  314. package/lib/types/migrations/index.d.mts +0 -17
  315. package/lib/types/migrations/migration-module.d.cts +0 -15
  316. package/lib/types/migrations/migration-module.d.mts +0 -15
  317. package/lib/types/migrations/migration-options.d.cts +0 -11
  318. package/lib/types/migrations/migration-options.d.mts +0 -11
  319. package/lib/types/ram/RamRequestTransformer.d.cts +0 -5
  320. package/lib/types/ram/RamRequestTransformer.d.mts +0 -5
  321. package/lib/types/ram/index.d.cts +0 -1
  322. package/lib/types/ram/index.d.mts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/decaf-model/decorators/utils.ts","../src/constants.ts","../src/decaf-model/decorators/decorators.ts","../src/interceptors/AuthInterceptor.ts","../src/request/DecafAuthHandler.ts","../src/request/DecafRequestContext.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/decaf-model/utils.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/errors/throttling.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/interceptors/context.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/migrations/migration-module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","isOperationBlocked","ModelConstructor","op","handler","args","Metadata","get","OperationKeys","REFLECT","BLOCK","ApiOperationFromModel","verb","path","httpToCrud","GET","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","apply","ApiExcludeEndpoint","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","HttpVerbToDecorator","decorator","Error","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_ADAPTER_OPTIONS","AUTH_HANDLER","AUTH_META_KEY","DECAF_CONTEXT_KEY","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","AuthInterceptor","push","SetMetadata","reflector","authHandler","this","intercept","next","log","Logging","for","modelName","getHandler","verbose","authorize","debug","handle","__decorate","Injectable","__param","Optional","Inject","Reflector","DecafAuthHandler","parseRequest","userRole","headers","authorization","split","AuthorizationError","Model","PersistenceKeys","AUTH_ROLE","DecafRequestContext","uuid","UUID","instance","generate","request","put","record","overrides","e","_ctx","accumulate","assign","applyCtx","InternalError","scope","Scope","REQUEST","Request","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","apiParamSpec","getApiDecorators","methodName","routePath","httpVerb","includeQueryParams","NestHttpRouteDec","apiPathParams","startsWith","slice","extractPathParams","swaggerQueryParams","ApiQuery","OrderDirection","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","Query","applyApiDecorators","descriptor","proto","prototype","forEach","d","index","resolvePersistenceMethod","persistence","ModelService","statement","createRouteHandler","async","pathParams","queryParams","JSON","stringify","direction","error","defineRouteMethod","ControllerClass","defineProperty","writable","getOwnPropertyDescriptor","DecafController","Service","clientContext","super","logCtx","operation","allowCreate","ip","result","ContextualLoggedClass","call","bindLoggerToRequest","self","applyRequestIp","ctxArgs","forwarded","parseIpHeader","socket","connection","remoteAddress","extractRequestIp","config","decorateLoggerWithIp","then","isPromise","DecafModelController","_persistence","getService","Repository","forModel","certs","override","contextual","repo","segment","trim","Boolean","dtoCache","Map","DtoFor","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","DynamicDTO","toPascalCase","pkProp","pk","pkPropsMetadata","pkProps","pkDesignType","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","from","Set","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","relationDto","addRelationUpdate","addRelation","DtoClass","extraModels","dtoRef","pkTypeName","pkType","getPkOpenApiType","oneOfItems","$ref","oneOf","current","Function","getPrototypeOf","Adapter","transformerFor","adapter","alias","bind","flavoursToTransform","Context","pending","header","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","decorated","FromModelController","getPersistence","ModelClazz","createQueryRoutesFromRepository","prefix","QUERY","queryMethods","routeMethods","QueryController","entries","replace","join","message","httpMethod","objValues","fields","f","create","tableName","toKebabCase","modelClazzName","getPK","apiProperties","getRouteParametersFromModel","BaseController","DynamicModelController","info","listBy","details","PreparedStatementKeys","LIST_BY","paginateBy","PAGE_BY","find","FIND","ASC","page","PAGE","ref","findOneBy","FIND_ONE_BY","findBy","FIND_BY","toOverrides","STATEMENT","pathDirection","a","parseInt","resolvedDirection","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","createAll","resp","CREATE_ALL","created","readAll","ids","READ_ALL","normalizedIds","read","routeParams","id","ValidationError","updateAll","updated","update","payload","parse","deleteAll","DELETE_ALL","delete","del","Param","ApiNotFoundResponse","ApiBody","schema","getSchemaPath","ApiCreatedResponse","ApiBadRequestResponse","ApiUnprocessableEntityResponse","Response","passthrough","Controller","ApiTags","ApiExtraModels","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","getModuleFor","flavour","DecafModelModule","DecafModelModule_1","createModelServices","models","provide","useFactory","forRoot","trackedModels","modelServices","autoServices","controllers","module","providers","Module","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","ToManyRequestsError","BaseError","DecafExceptionFilter","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","UnsupportedError","NotAcceptableException","getStatus","status","code","json","timestamp","Date","toISOString","Catch","SWAGGER_UI_CONSTANTS","auth","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","openApiJsonPath","openApiYamlPath","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","registerOpenApiRoute","contentType","bodyFactory","httpAdapter","getHttpAdapter","_req","reply","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","jsonDocumentUrl","yamlDocumentUrl","YAML","requestToContextTransformer","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","requestContext","executor","contextualize","flags","flavours","transformer","DefaultAdapterFlags","logger","DecafCoreModule","_logger","DecafCoreModule_1","moduleRef","useValue","client","H","APP_INTERCEPTOR","useExisting","useClass","exports","bootPersistence","trimmed","conf","contr","pop","PersistenceService","boot","clients","i","c","initialization","onApplicationShutdown","adapters","shutdown","Global","ModuleRef","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","events$","Observable","observer","observerId","Math","random","toUpperCase","cb","refresh","Promise","resolve","modelConstr","serialize","err","normalizeEventResponse","adapterName","observe","unObserve","heartbeat$","interval","ts","merge","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","observerFlavours","DecafMigrationModule","DecafMigrationModule_1","migrate","MigrationService","migrateAdapters","inject","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary","roles","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","toLowerCase","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","UseFilters","m"],"mappings":"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"}
1
+ {"version":3,"file":"for-nest.cjs","sources":["../src/overrides/constants.ts","../src/overrides/decoration.ts","../src/overrides/helpers.ts","../src/decaf-model/decorators/ApiOperationFromModel.ts","../src/decaf-model/decorators/ApiParamsFromModel.ts","../src/decaf-model/decorators/DecafBody.ts","../src/decaf-model/decorators/DecafParams.ts","../src/constants.ts","../src/auth/constants.ts","../src/auth/decorators.ts","../src/decaf-model/decorators/utils.ts","../src/request/DecafRequestContext.ts","../src/auth/AuthInterceptor.ts","../src/decaf-model/utils.ts","../src/auth/DecafAuthHandler.ts","../src/auth/DecafAuthModule.ts","../src/request/DecafHandlerExecutor.ts","../src/request/DecafResponseInterceptor.ts","../src/controllers.ts","../src/factory/openapi/DtoBuilder.ts","../src/overrides/overrides.ts","../src/overrides/ModelBuilderExtensions.ts","../src/decaf-model/FromModelController.ts","../src/decaf-model/DecafModelModule.ts","../src/decoration.ts","../src/factory/errors/cors.ts","../src/factory/errors/throttling.ts","../src/factory/exceptions/DecafErrorFilter.ts","../src/factory/openapi/constants.ts","../src/factory/openapi/SwaggerCustomUI.ts","../src/factory/openapi/SwaggerBuilder.ts","../src/interceptors/DecafRequestHandlerInterceptor.ts","../src/decorators.ts","../src/core-module.ts","../src/events-module/constant.ts","../src/events-module/EventsController.ts","../src/events-module/utils.ts","../src/events-module/DecafStreamModule.ts","../src/module.ts","../src/index.ts","../src/factory/NestBootstraper.ts","../src/factory/exceptions/decorators.ts","../src/decaf-model/decorators/controller-config.ts","../src/decaf-model/decorators/expose.ts","../src/utils.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["DECORATORS_PREFIX","DECORATORS","API_OPERATION","API_RESPONSE","API_PRODUCES","API_CONSUMES","API_TAGS","API_CALLBACKS","API_PARAMETERS","API_HEADERS","API_MODEL_PROPERTIES","API_MODEL_PROPERTIES_ARRAY","API_SECURITY","API_EXCLUDE_ENDPOINT","API_EXCLUDE_CONTROLLER","API_EXTRA_MODELS","API_EXTENSION","API_SCHEMA","API_DEFAULT_GETTER","API_LINK","isUndefined","obj","getEnumValues","enumType","Array","isArray","numericValues","Object","values","filter","value","map","toString","keys","key","includes","getEnumType","isString","length","createPropertyDecorator","metakey","metadata","overrideExisting","target","propertyKey","properties","Reflect","getMetadata","defineMetadata","existingMetadata","newMetadata","pickBy","negate","metadataToSave","type","constructor","required","ApiProperty","options","createApiPropertyDecorator","input","isArrayFlag","isInputArray","getTypeIsArrayTuple","opts","undefined","enum","enumValues","items","ApiOperationFromModel","ModelConstructor","verb","path","httpToCrud","GET","OperationKeys","READ","Get","POST","CREATE","Post","PUT","UPDATE","Put","PATCH","Patch","DELETE","Delete","crudOp","HttpMethodDecorator","resolveBlockTarget","coreIsOperationBlocked","kind","apply","ApiExcludeEndpoint","normalized","replace","statementTargets","PreparedStatementKeys","LIST_BY","PAGE_BY","FIND","PAGE","FIND_ONE_BY","FIND_BY","COUNT_OF","MAX_OF","MIN_OF","AVG_OF","SUM_OF","DISTINCT_OF","GROUP_OF","startsWith","statementValue","ApiParamsFromModel","props","decorators","p","ApiParamDec","name","description","String","applyDecorators","DecafBody","createParamDecorator","data","ctx","body","switchToHttp","getRequest","controller","getClass","ModelConstr","class","InternalServerErrorException","item","OrderedParams","order","req","original","params","orderList","ordered","k","raw","valuesInOrder","keysInOrder","DecafParams","DecafQuery","_","parsed","query","limit","n","Number","isNaN","offset","bookmark","DECAF_MODULE_OPTIONS","DECAF_ADAPTER_ID","DECAF_ROUTE","DECAF_HANDLERS","Symbol","DECAF_EXPOSE","DECAF_CONTROLLER_CONFIG","DECAF_CONTEXT_KEY","AUTH_HANDLER","AUTH_META_KEY","IS_PUBLIC_KEY","REQUIRED_ROLES_KEY","SKIP_MODEL_ROLES_KEY","Auth","model","resource","decs","ApiBearerAuth","UseInterceptors","AuthInterceptor","push","SetMetadata","Public","RequireRoles","roles","ApiSecurity","HttpVerbToDecorator","decorator","UnsupportedError","DecafRequestContext","RequestContext","super","headersOf","request","headers","this","uuid","UUID","instance","generate","getOrUndefined","put","record","overrides","get","e","accumulate","assign","__decorate","Injectable","scope","Scope","REQUEST","__param","Inject","reflector","requestContext","authHandler","intercept","next","log","Logging","for","isPublic","getAllAndOverride","getHandler","modelName","requiredRoles","effectiveModel","verbose","debug","authorize","applyTransformers","user","organization","childLog","logger","handle","flavours","Adapter","flavoursToTransform","flavour","transformer","transformerFor","from","Optional","Reflector","apiParamSpec","resolvePersistenceMethod","persistence","methodName","args","ModelService","statement","InternalError","DecafAuthHandler","AuthHandler","parseRequest","userRole","authorization","split","extractFromAuth","AuthorizationError","DecafAuthModule","DecafAuthModule_1","forRoot","providers","handler","provide","useClass","global","APP_INTERCEPTOR","useExisting","module","exports","Module","DecafHandlerExecutor","DecafHandlerExecutor_1","handlers","context","exec","res","method","url","DecafResponseInterceptor","response","getResponse","pipe","tap","toResponse","DecafController","HttpDecafController","clientContext","_name","DecafModelController","_persistence","Service","getService","Repository","forModel","toOverrides","override","dtoCache","Map","DtoFor","op","stack","Set","TransactionOperationKeys","cache","has","set","WeakMap","getDtoCache","cached","isUpdateOp","BulkCrudOperationKeys","UPDATE_ALL","DynamicDTO","defineProperty","toPascalCase","pkProp","Model","pk","pkPropsMetadata","pkProps","pkDesignType","prototype","pkTypeIsNumeric","BigInt","pkIsGenerated","generated","generatedBySequence","isPropertyGeneratedAcrossInheritance","allProps","Metadata","relations","scalarProps","prop","validation","getValidationAcrossInheritance","isRequired","ValidationKeys","REQUIRED","typeHint","getTypeAcrossInheritance","apiOptions","designType","writable","enumerable","configurable","relation","relationMeta","relationType","meta","validationFor","LIST","addRelationPkRef","getPkOpenApiType","relationDto","add","addRelationUpdate","addRelation","DtoClass","pkTypeName","extraModels","oneOfItems","$ref","oneOf","pkType","current","Function","getPrototypeOf","adapter","alias","bind","Context","pending","header","JSON","stringify","ModelBuilder","decorateClass","_classDecorators","__hasClassDecoratorSupport","originalBuild","build","result","call","decorated","FromModelController","toDecafError","error","fallbackMessage","BaseError","Error","message","getPersistence","ModelClazz","e2","createQueryRoutesFromRepository","prefix","PersistenceKeys","QUERY","repo","queryMethods","routeMethods","QueryController","entries","routePath","segment","trim","join","createComplexQueryHandler","defineMethod","httpDecorator","httpMethod","getQueryDecorators","objValues","fields","f","create","moduleConfigOverrides","globalDefaults","tableName","toKebabCase","modelClazzName","factoryPersistence","decoratorConfig","moduleOverride","mergedConfig","factoryRoutes","ModelControllerFactory","__routes__","getPK","apiProperties","pkPath","getRouteParametersFromModel","authConfig","auth","DynamicModelController","DynamicModelController_1","info","Controller","ApiTags","ApiExtraModels","public","skipModelRoles","sortedRoutes","sort","a","b","aSegments","Boolean","bSegments","aParamCount","s","bParamCount","aLiteralCount","bLiteralCount","route","implementation","toLowerCase","registration","matchRoute","registeredMethodName","paramDecorators","composed","DBKeys","COMPOSED","composedKeys","uniqueKeys","separator","routeParamDecorators","paramIndex","flatMap","Param","slice","index","getOwnPropertyDescriptor","methodDecorators","proto","descriptor","forEach","d","normalizedPath","createRegistration","createCreateDecorators","Response","passthrough","bulkCreateDecorators","bulkReadDecorators","Query","bulkUpdateDecorators","bulkDeleteDecorators","readDecorators","routeParams","updateDecorators","deleteDecorators","fallbackSegments","every","fallbackApiProps","suffix","statementDecorators","statementShortcutDecorators","statementShortcutParams","statementKey","statementMethodName","queryMethod","complexQueryParams","pathSegments","knownPrefixes","apiPathParams","ApiParam","ApiOperation","summary","ApiOkResponse","ApiNoContentResponse","segments","seg","i","async","complexQuery","logCtx","spreadArgs","normalizeQueryArgs","extractQueryArgs","last","queryObj","pop","hasDirection","direction","hasLimit","hasOffset","extras","ApiBody","ApiCreatedResponse","schema","getSchemaPath","ApiBadRequestResponse","ApiUnprocessableEntityResponse","ApiQuery","ApiNotFoundResponse","OrderDirection","base","httpVerb","includeQueryParams","getModuleFor","DecafModelModule","DecafModelModule_1","createModelServices","models","useFactory","isExposed","exposure","trackedModels","controllerExposure","modelServices","autoServices","aggregations","allowGroupingQueries","controllers","controllerConfig","Decoration","InjectablesKeys","INJECTABLE","extend","category","cfg","DefaultInjectablesConfig","singleton","DEFAULT","durable","INJECT","MAX","max","maximum","MIN","min","minimum","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","TYPE","DATE","format","ENUM","PATTERN","pat","pattern","source","COLUMN","DecorationKeys","DESCRIPTION","AUTH","CorsError","ForbiddenError","msg","ToManyRequestsError","HTTP_EXCEPTION_TO_DECAF_ERROR","UnauthorizedException","ForbiddenException","BadRequestException","BadRequestError","ConflictException","ConflictError","UnprocessableEntityException","ValidationError","DecafExceptionFilter","moduleRef","exception","host","isProduction","LoggedEnvironment","env","statusCode","NotFoundException","NotAcceptableException","getStatus","decafErrorFor","status","HttpException","logError","code","json","timestamp","Date","toISOString","factory","resolveLogger","contextId","ContextIdFactory","getByRequest","resolve","strict","Catch","ModuleRef","SWAGGER_UI_CONSTANTS","scheme","bearerFormat","in","topbarBgColor","SwaggerCustomUI","customCSS","css","topbarIconPath","b64","getCustomOptions","favicon","faviconPath","customSiteTitle","title","customCss","swaggerOptions","persistAuthorization","file","img","filePath","assetsPath","readFileSync","encoding","SwaggerBuilder","app","createDocument","openApiJsonPath","openApiYamlPath","config","DocumentBuilder","setTitle","setDescription","setVersion","version","addBearerAuth","SwaggerModule","registerOpenApiRoute","contentType","bodyFactory","httpAdapter","getHttpAdapter","_req","reply","setupSwagger","document","swaggerUI","faviconFilePath","topbarIconFilePath","setup","jsonDocumentUrl","yamlDocumentUrl","YAML","DecafRequestHandlerInterceptor","DecafRequestHandlerInterceptor_1","executor","contextualize","flags","ip","parseIpHeader","extractIp","DefaultAdapterFlags","operation","pendingProviders","getRegisteredDecafProviders","registerProvider","token","DecafCoreModule","_logger","DecafCoreModule_1","decafProviders","useValue","client","H","provider","bootPersistence","trimmed","conf","contr","PersistenceService","boot","clients","c","requestToContextTransformer","initialization","onApplicationShutdown","adapters","shutdown","Global","LISTENING_ADAPTERS_FLAVOURS","EventsController","EventsController_1","listen","events$","Observable","observer","observerId","Math","random","toUpperCase","cb","refresh","Promise","then","modelConstr","id","payload","serialize","err","normalizeEventResponse","adapterName","observe","unObserve","heartbeat$","interval","ts","merge","listenForModel","Sse","DecafStreamModule","DecafStreamModule_1","forFlavours","imports","RouterModule","register","DecafModule","DecafModule_1","forRootAsync","autoControllers","observerOptions","enableObserverEvents","observerFlavours","VERSION","PACKAGE_NAME","allowReregistration","registerLibrary","READ_ALL","CREATE_ALL","DELETE_ALL","Logger","initialize","enableLogger","customLogger","useLogger","enableCors","origins","allowMethods","allowedOrigins","o","corsOptions","origin","callback","credentials","methods","useHelmet","helmet","require","use","warn","useGlobalPipes","pipes","useGlobalFilters","filters","useGlobalInterceptors","interceptors","start","port","process","PORT","getUrl","parameterIndex","modelRepositoryToken","CoreRepository","resolved","paramTypes","asModel","injectableServiceKey","CoreService","UseFilters","pathParams","queryParams","ControllerClass","NestHttpRouteDec","extractPathParams","swaggerQueryParams","m"],"mappings":"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"}
package/dist/for-nest.js CHANGED
@@ -1,2 +1,2 @@
1
- import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o,metadata as s}from"@decaf-ts/decoration";import{InjectablesKeys as i,DefaultInjectablesConfig as n}from"@decaf-ts/injectable-decorators";import{Delete as a,Patch as c,Put as p,Post as d,Get as l,applyDecorators as u,createParamDecorator as h,InternalServerErrorException as f,Injectable as m,Optional as g,Inject as y,UseInterceptors as b,SetMetadata as A,Scope as w,Query as v,Param as E,Response as P,Controller as T,Module as O,Catch as R,NotFoundException as $,NotAcceptableException as x,UseFilters as S,Logger as _,Global as C,Sse as I}from"@nestjs/common";import{Model as N,ValidationKeys as k,ModelBuilder as q}from"@decaf-ts/decorator-validation";import{AuthorizationError as D,PersistenceKeys as F,UUID as L,OrderDirection as M,ModelService as j,Service as U,Repository as B,ContextualLoggedClass as G,TransactionOperationKeys as H,Adapter as z,Context as Y,PreparedStatementKeys as J,ForbiddenError as X,UnsupportedError as Q,DefaultAdapterFlags as V,PersistenceService as K}from"@decaf-ts/core";import{isArray as W,isString as Z,pickBy as ee,negate as te}from"lodash";import{ApiExcludeEndpoint as re,ApiParam as oe,ApiBearerAuth as se,ApiQuery as ie,ApiOperation as ne,ApiOkResponse as ae,ApiNoContentResponse as ce,ApiNotFoundResponse as pe,ApiBody as de,getSchemaPath as le,ApiCreatedResponse as ue,ApiBadRequestResponse as he,ApiUnprocessableEntityResponse as fe,ApiTags as me,ApiExtraModels as ge,DocumentBuilder as ye,SwaggerModule as be}from"@nestjs/swagger";import{OperationKeys as Ae,BulkCrudOperationKeys as we,InternalError as ve,DBKeys as Ee,ValidationError as Pe,BaseError as Te}from"@decaf-ts/db-decorators";import{__decorate as Oe,__param as Re,__metadata as $e}from"tslib";import{Reflector as xe,REQUEST as Se,ModuleRef as _e,APP_INTERCEPTOR as Ce,RouterModule as Ie}from"@nestjs/core";import{Logging as Ne,toPascalCase as ke,toKebabCase as qe,LoggedEnvironment as De}from"@decaf-ts/logging";import{tap as Fe,Observable as Le,interval as Me,merge as je}from"rxjs";import{readFileSync as Ue}from"fs";import*as Be from"path";import Ge from"yaml";import{tap as He,map as ze}from"rxjs/operators";import{MigrationService as Ye}from"@decaf-ts/core/migrations";const Je="swagger",Xe={API_OPERATION:Je+"/apiOperation",API_RESPONSE:Je+"/apiResponse",API_PRODUCES:Je+"/apiProduces",API_CONSUMES:Je+"/apiConsumes",API_TAGS:Je+"/apiUseTags",API_CALLBACKS:Je+"/apiCallbacks",API_PARAMETERS:Je+"/apiParameters",API_HEADERS:Je+"/apiHeaders",API_MODEL_PROPERTIES:Je+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:Je+"/apiModelPropertiesArray",API_SECURITY:Je+"/apiSecurity",API_EXCLUDE_ENDPOINT:Je+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:Je+"/apiExcludeController",API_EXTRA_MODELS:Je+"/apiExtraModels",API_EXTENSION:Je+"/apiExtension",API_SCHEMA:Je+"/apiSchema",API_DEFAULT_GETTER:Je+"/apiDefaultGetter",API_LINK:Je+"/apiLink"};function Qe(e,t){if(!e)return[e,t];if(t)return[e,t];const r=W(e);return[r?e[0]:e,r]}const Ve=e=>void 0===e;function Ke(e){if("function"==typeof e)return Ke(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function We(e){return e.filter(Z).length>0?"string":"number"}function Ze(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(Xe.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(Xe.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ee(t,te(Ve)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...ee(t,te(Ve))},o,s)}}}function et(e={}){return tt(e)}function tt(e={},t=!0){const[r,o]=Qe(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=Ke(e.enum);e.items={type:We(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=Ke(e.enum);e.enum=t,e.type=We(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),Ze(Xe.API_MODEL_PROPERTIES,e,t)}function rt(e,r){const{handler:o,args:s}=t.get(e,Ae.REFLECT+Ae.BLOCK)||{};return!!o&&(o(...s,r)??!1)}function ot(t,r,o){const s={GET:[Ae.READ,l],POST:[Ae.CREATE,d],PUT:[Ae.UPDATE,p],PATCH:[Ae.UPDATE,c],DELETE:[Ae.DELETE,a]},[i,n]=s[r];return rt(t,i)?e(re()):e(n(o))}function st(t,r,o){const s={GET:[we.READ_ALL,l],POST:[we.CREATE_ALL,d],PUT:[we.UPDATE_ALL,p],PATCH:[we.UPDATE_ALL,c],DELETE:[we.DELETE_ALL,a]},[i,n]=s[r];return rt(t,i)?e(re()):e(n(o))}function it(e=[]){const t=e.map(e=>oe({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return u(...t)}const nt=h((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new f(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),at=h((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function ct(e=[]){const t=e.map(e=>e.name);return at(t)}const pt=h((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r});function dt(e){const t={GET:l,POST:d,PUT:p,PATCH:c,DELETE:a}[e];if(!t)throw Error(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}const lt="DecafModuleOptions",ut="DecafAdapter",ht="DecafTaskService",ft="DecafRoute",mt=Symbol("DecafHandlers"),gt=Symbol("DecafAdapterForOptions"),yt=Symbol("AUTH_HANDLER"),bt="auth:meta",At=Symbol("decaf:context");let wt=class{constructor(e,t){this.reflector=e,this.authHandler=t}async intercept(e,t){const r=Ne.for(this).for(this.intercept),o=this.reflector.get(bt,e.getHandler())??this.reflector.get(bt,e.getClass());return r.verbose("Intercepted request"+(o?" for "+o:"")),this.authHandler?await this.authHandler.authorize(e,o):r.debug("No auth handler/model"),t.handle()}};function vt(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[se(),b(wt)];return t&&r.push(A(bt,t)),u(...r)}wt=Oe([m(),Re(1,g()),Re(1,y(yt)),$e("design:paramtypes",[xe,Object])],wt);class Et{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");if(!t.get(N.get(r),F.AUTH_ROLE).includes(s))throw new D("Missing role: "+s)}}class Pt extends Et{constructor(){super()}async authorize(e,r){const o=e.switchToHttp().getRequest(),s=this.parseRequest(o);if(!s)throw new D("Unauthenticated");const i=t.get(N.get(r),F.AUTH_ROLE);if(!i.includes(s))throw new D("Missing role: "+s);return i}}let Tt=class{constructor(e){this.req=e,this.uuid=L.instance.generate()}get request(){return this.req}put(e){let t;try{t=this.ctx.get("overrides")}catch(e){t={}}this._ctx=this.ctx.accumulate({overrides:Object.assign(t,e)})}applyCtx(e){if(this._ctx)throw new ve("Trying to overwrite context");this._ctx=e}get ctx(){if(!this._ctx)throw new ve("Context not initialized for request");return this._ctx}};var Ot;Tt=Oe([m({scope:w.REQUEST}),Re(0,y(Se)),$e("design:paramtypes",[Request])],Tt);let Rt=Ot=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ne.for(Ot.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}};Rt=Ot=Oe([m({scope:w.REQUEST}),Re(0,y(mt)),$e("design:paramtypes",[Array,Tt])],Rt);let $t=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Fe(e=>{r=this.ctx.ctx.toResponse(r)}))}};$t=Oe([m(),$e("design:paramtypes",[Tt])],$t);const xt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function St(e,t,r,o=!1){const s=dt(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(xt),n=[];return"GET"===r&&o&&n.push(ie({name:"direction",required:!1,enum:M,description:"the sort order when applicable"}),ie({name:"limit",required:!1,description:"limit or page size when applicable"}),ie({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(oe),...n,ne({summary:`Retrieve records using according to "${e}".`}),ae({description:"Result successfully retrieved."}),ce({description:"No content returned by the method."})],params:[ct(i),v()]}}function _t(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function Ct(e,t,...r){if(e instanceof j)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw Error(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function It(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:i,offset:n}=r;return await Ct(this.persistence(),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),t}}}function Nt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class kt extends U{constructor(e,t){super(),this.clientContext=e}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;e=e.filter(e=>void 0!==e),o&&(o.headers||o.ip)&&(i=o,o={});const n=G.logCtx.call(this,t,o||{},r,...e,s);return this.bindLoggerToRequest(n,i)}bindLoggerToRequest(e,t){const r=this;function o(e,t){return e.log=((e,t)=>{const o=(e=>{if(!e)return;const t=e.headers,r=Dt(t?.["x-forwarded-for"])??Dt(t?.["x-real-ip"])??Dt(t?.["X-Forwarded-For"])??Dt(t?.["X-Real-IP"]);if(r)return r;if("string"==typeof e.ip&&e.ip.length)return e.ip;const o=e.socket||e.connection;return o&&"string"==typeof o.remoteAddress&&o.remoteAddress.length?o.remoteAddress:void 0})(t??r.clientContext.request);if(!o)return e;const s={ip:o};return e.for(s)})(e.log,t),e}return(e=>"object"==typeof e&&null!==e&&"function"==typeof e.then)(e)?e.then(e=>o(e,t)):o(e,t)}}class qt extends kt{persistence(e){if(!this._persistence)try{this._persistence=U.get(this.class)}catch(e){try{this._persistence=j.getService(this.class)}catch(e){this._persistence=B.forModel(this.class)}}const t=this.clientContext.request[gt]||{};return e&&this.clientContext.put(t),e?this._persistence instanceof B?this._persistence.override(t):this._persistence.for(t):this._persistence}constructor(e,t){super(e,t)}logCtx(e,t,r=!1,o){const s=this.clientContext.ctx;let i;o&&(o.headers||o.ip)&&(i=o,o={});try{o=s.get("overrides")}catch(e){}const n=this.persistence(s);let a,c;return n instanceof j?a=n.repo._adapter:n instanceof B?a=n._adapter:n.context&&(a=n),r?a.logCtx(e,t,!0,o).then(e=>this.bindLoggerToRequest(e,i)):(c=a.logCtx(e,t,!1,o),this.bindLoggerToRequest(c,i))}}function Dt(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}const Ft=new Map;function Lt(e,r){if(!H.includes(e))return r;const o=(e=>(Ft.has(e)||Ft.set(e,new WeakMap),Ft.get(e)))(e),s=o.get(r);if(s)return s;const i=[Ae.UPDATE,we.UPDATE_ALL].includes(e);class n{}o.set(r,n),Object.defineProperty(n,"name",{value:`${ke(r.name)}${ke(e)}DTO`});const a=(()=>{try{return N.pk(r)}catch{return}})(),c=a?N.pkProps(r):void 0,p=a?Reflect.getMetadata("design:type",r.prototype,a):void 0,d=p===Number||p===BigInt,l=!!c?.generated||!!a&&(N.generatedBySequence(r,a)||Ut(r,a)||d),u=Array.from(new Set(t.properties(r)||[])),h=new Set(N.relations(r)||[]),f=[];for(const e of u)e&&(h.has(e)||e===a&&!i&&l||e!==a&&Ut(r,e)||f.push(e));for(const e of f){const t=Bt(r,e),o=!!t?.[k.REQUIRED],s=Gt(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),et(i)(n.prototype,e);const a=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==a&&Reflect.defineMetadata("design:type",a,n.prototype,e),Object.defineProperty(n.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const o of h){const s=t.relations(r,o);if(!s)throw new ve(`Metadata for relation ${o} not found`);let a=s.class;if("function"!=typeof a||a.name||(a=a()),!a||"function"!=typeof a)throw new ve(`Type for relation ${o} not found`);if(!N.get(a.name))continue;const c=t.validationFor(r,o),p=!!c?.[k.LIST],d=!!c?.[k.REQUIRED],l=Lt(e,a);i?jt(n,o,a,l,p,d):Mt(n,o,l,p,d)}return n}function Mt(e,t,r,o,s){et({type:r,required:s,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function jt(e,t,r,o,s,i){const n=Reflect.getMetadata(Xe.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(Xe.API_EXTRA_MODELS,[...n,o],e);const a="#/components/schemas/"+o.name,c=(e=>{try{const t=N.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}})(r),p=[{$ref:a},{type:c}];et(s?{type:"array",required:i,oneOf:p}:{type:Object,required:i,oneOf:p})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function Ut(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(N.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function Bt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function Gt(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}z.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(z),z.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(z),Y.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const Ht=q.prototype;if(Ht.decorateClass||(Ht.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),Ht.Auth=function(e){return this.decorateClass(vt(e))},!Ht.__hasClassDecoratorSupport){const e=Ht.build;Ht.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},Ht.__hasClassDecoratorSupport=!0}class zt{static{this.log=Ne.for(zt.name)}static getPersistence(e){try{return U.get(e)}catch(t){try{return j.getService(e)}catch(t){return B.forModel(e)}}}static createQueryRoutesFromRepository(e,r=F.QUERY){const o=zt.log.for(zt.createQueryRoutesFromRepository),s=e instanceof j?e.repo:e,i=s.class,n=t.get(s.constructor,t.key(F.QUERY))??{},a=t.get(e.constructor,t.key(ft))??{};class c extends qt{get class(){throw Error("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(a)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),s=It(e);if(!s){const t=`Invalid or missing handler for model ${i.name} on decorated method ${e}`;throw o.error(t),Error(t)}const n=Nt(c,e,s);n&&_t(c,e,n,St(e,r,t.httpMethod))}for(const[e,t]of Object.entries(n)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=Nt(c,e,It(e));s&&_t(c,e,s,St(e,o,"GET",!0))}return c}static create(e){const t=zt.log.for(zt.create),r=N.tableName(e),o=qe(r),s=e.name,i=zt.getPersistence(e),{description:n,getPK:a,apiProperties:c,path:p}=zt.getRouteParametersFromModel(e);t.debug("Creating controller for model: "+s);const d=zt.createQueryRoutesFromRepository(i);let l=class extends d{static get class(){return e}get class(){return e}constructor(r){super(r),this.pk=N.pk(e),t.info(`Registering dynamic controller for model: ${this.class.name} route: /${o}`)}async listBy(e,t){const{ctx:r}=(await this.logCtx([],J.LIST_BY,!0)).for(this.listBy);return this.persistence(r).listBy(e,t.direction,r)}async paginateBy(e,t){const{ctx:r}=(await this.logCtx([],J.PAGE_BY,!0)).for(this.paginateBy);return this.persistence(r).paginateBy(e,t.direction,t,r)}async find(e,t){const{ctx:r}=(await this.logCtx([],J.FIND,!0)).for(this.find),o=t.direction??M.ASC;return Ct(this.persistence(r),this.find.name,e,o,r)}async page(e,t){const{ctx:r}=(await this.logCtx([],J.PAGE,!0)).for(this.page),{direction:o=M.ASC,limit:s,offset:i,bookmark:n}=t,a={offset:i??1,limit:s??10,bookmark:n};return Ct(this.persistence(r),this.page.name,e,o,a,r)}async findOneBy(e,t){const{ctx:r}=(await this.logCtx([],J.FIND_ONE_BY,!0)).for(this.findOneBy);return this.persistence(r).findOneBy(e,t,r)}async findBy(e,t,r){const{ctx:o}=(await this.logCtx([],J.FIND_BY,!0)).for(this.findBy);return this.persistence(o).for(o.toOverrides()).findBy(e,t,o)}async statement(e,t,r){const{ctx:o}=(await this.logCtx([],F.STATEMENT,!0)).for(this.statement),{direction:s,offset:i,limit:n,bookmark:a}=r,c=(t=t.map(e=>("string"==typeof e?parseInt(e):e)||e)).length>1?t[1]:void 0,p=s??c;switch(p&&t.length>1&&(t[1]=p),e){case J.FIND:case J.FIND_BY:break;case J.LIST_BY:t.push(s);break;case J.PAGE:case J.PAGE_BY:t=[t[0],p,{limit:n,offset:i,bookmark:a}];case J.FIND_ONE_BY:case J.COUNT_OF:case J.MAX_OF:case J.MIN_OF:case J.AVG_OF:case J.SUM_OF:case J.DISTINCT_OF:case J.GROUP_OF:}return this.persistence(o).statement(e,...t,o)}async createAll(t,r){const{ctx:o,log:i}=(await this.logCtx([],we.CREATE_ALL,!0)).for(this.createAll);let n;i.verbose("creating new "+s);try{n=await this.persistence(o).createAll(t.map(t=>new e(t)),o)}catch(e){throw i.error("Failed to create new "+s,e),e}return i.info(`created new ${s} with id ${n[this.pk]}`),o.toResponse(r),n}async create(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ae.CREATE,!0)).for(this.create);let i;o.verbose("creating new "+s);try{const t=this.persistence(r);i=await t.create(e,r)}catch(e){throw o.error("Failed to create new "+s,e),e}return o.info(`created new ${s} with id ${i[this.pk]}`),r.toResponse(t),i}async readAll(e){const{ctx:t,log:r}=(await this.logCtx([],we.READ_ALL,!0)).for(this.readAll),o=Array.isArray(e)?e:[e];let i;try{r.debug(`reading ${o} ${s}: ${o}`);const e=this.persistence(t);i=await e.readAll(o,t)}catch(e){throw r.error(`Failed to ${s} with id ${o}`,e),e}return r.info(`read ${i.length} ${s}`),i}async read(e){const{ctx:t,log:r}=(await this.logCtx([],Ae.READ,!0)).for(this.read),o=a(...e.valuesInOrder);if(void 0===o)throw new Pe(`No ${this.pk} provided`);let i;try{r.debug(`reading ${s} with ${this.pk} ${o}`);const e=this.persistence(t);i=await e.read(o,t)}catch(e){throw r.error(`Failed to read ${s} with id ${o}`,e),e}return r.info(`read ${s} with id ${i[this.pk]}`),i}async updateAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.UPDATE_ALL,!0)).for(this.updateAll);let i;try{o.info(`updating ${e.length} ${s}`),i=await this.persistence(r).updateAll(e,r)}catch(e){throw o.error(e),e}return r.toResponse(t),i}async update(t,r,o){const{ctx:i,log:n}=(await this.logCtx([],Ae.UPDATE,!0)).for(this.update),c=a(...t.valuesInOrder);if(void 0===c)throw new Pe(`No ${this.pk} provided`);let p;try{n.info(`updating ${s} with ${this.pk} ${c}`);const t=JSON.parse(JSON.stringify(r)),o=this.persistence(i);p=await o.update(new e({...t,[this.pk]:c}),i)}catch(e){throw n.error(e),e}return i.toResponse(o),p}async deleteAll(e,t){const{ctx:r,log:o}=(await this.logCtx([],we.DELETE_ALL,!0)).for(this.deleteAll),i=Array.isArray(e)?e:[e];let n;try{o.debug(`deleting ${i.length} ${s}: ${i}`),n=await this.persistence(r).deleteAll(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${n.length} ${s}`),r.toResponse(t),n}async delete(e,t){const{ctx:r,log:o}=(await this.logCtx([],Ae.DELETE,!0)).for(this.delete),i=a(...e.valuesInOrder);if(void 0===i)throw new Pe(`No ${this.pk} provided`);let n;try{o.debug(`deleting ${s} with ${this.pk} ${i}`),n=await this.persistence(r).delete(i,r)}catch(e){throw o.error(`Failed to delete ${s} with id ${i}`,e),e}return o.info(`deleted ${s} with id ${i}`),r.toResponse(t),n}};return Oe([ot(e,"GET","listBy/:key"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),ie({name:"direction",required:!0,enum:M}),ae({description:s+" listed successfully."}),Re(0,E("key")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"listBy",null),Oe([ot(e,"GET","paginateBy/:key/:page"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),oe({name:"page",description:"the page to retrieve or the bookmark"}),ie({name:"direction",required:!0,enum:M,description:"the sort order"}),ie({name:"limit",required:!0,description:"the page size"}),ie({name:"offset",description:"the bookmark when necessary"}),ae({description:s+" listed paginated."}),Re(0,E("key")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"paginateBy",null),Oe([ot(e,"GET","find/:value"),ne({summary:`Find ${s} records using the default query attributes.`}),oe({name:"value",description:"The string to match against the default query attributes"}),ie({name:"direction",required:!1,enum:M,description:"the sort order for the matching results"}),ae({description:s+" records matching the provided prefix."}),Re(0,E("value")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"find",null),Oe([ot(e,"GET","page/:value"),ne({summary:`Page ${s} records using the default query attributes.`}),oe({name:"value",description:"The string to match against the default query attributes"}),ie({name:"direction",required:!1,enum:M,description:"the sort order for the paged results"}),ie({name:"limit",required:!1,description:"page size"}),ie({name:"offset",required:!1,description:"page number"}),ie({name:"bookmark",required:!1,description:"bookmark for cursor pagination"}),ae({description:s+" records paged by the provided prefix."}),Re(0,E("value")),Re(1,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"page",null),Oe([ot(e,"GET","findOneBy/:key"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to sort by"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,E("key")),Re(1,E("value")),$e("design:type",Function),$e("design:paramtypes",[String,Object]),$e("design:returntype",Promise)],l.prototype,"findOneBy",null),Oe([ot(e,"GET","findBy/:key/:value"),ne({summary:`Retrieve ${s} records by query.`}),oe({name:"key",description:"the model key to compare"}),oe({name:"value",description:"the value to match"}),ie({name:"direction",required:!0,enum:M,description:"the sort order when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,E("key")),Re(1,E("value")),Re(2,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Object,Object]),$e("design:returntype",Promise)],l.prototype,"findBy",null),Oe([ot(e,"GET","statement/:method/*args"),ne({summary:`Executes a prepared statement on ${s}.`}),oe({name:"method",description:"the prepared statement to execute"}),oe({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),ie({name:"direction",required:!0,enum:M,description:"the sort order when applicable"}),ie({name:"limit",required:!0,description:"limit or page size when applicable"}),ie({name:"offset",required:!0,description:"offset or bookmark when applicable"}),ae({description:s+" listed found."}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,E("method")),Re(1,E("args")),Re(2,pt()),$e("design:type",Function),$e("design:paramtypes",[String,Array,Object]),$e("design:returntype",Promise)],l.prototype,"statement",null),Oe([ot(e,"POST","bulk"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,schema:{type:"array",items:{$ref:le(e)}}}),ue({description:s+" created successfully.",schema:{type:"array",items:{$ref:le(e)}}}),he({description:"Payload validation failed."}),fe({description:"Repository rejected the provided payload."}),Re(0,nt()),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Array,Object]),$e("design:returntype",Promise)],l.prototype,"createAll",null),Oe([ot(e,"POST"),ne({summary:`Create a new ${s}.`}),de({description:"Payload for "+s,type:Lt(Ae.CREATE,e)}),ue({description:s+" created successfully.",schema:{$ref:le(e)}}),he({description:"Payload validation failed."}),fe({description:"Repository rejected the provided payload."}),Re(0,nt()),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Object,Object]),$e("design:returntype",Promise)],l.prototype,"create",null),Oe([ot(e,"GET","bulk"),ne({summary:`Retrieve a ${s} record by id.`}),ie({name:"ids",required:!0,type:"array"}),ae({description:s+" retrieved successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("ids")),$e("design:type",Function),$e("design:paramtypes",[Array]),$e("design:returntype",Promise)],l.prototype,"readAll",null),Oe([ot(e,"GET",p),it(c),ne({summary:`Retrieve a ${s} record by id.`}),ae({description:s+" retrieved successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,ct(c)),$e("design:type",Function),$e("design:paramtypes",[Object]),$e("design:returntype",Promise)],l.prototype,"read",null),Oe([ot(e,"PUT","bulk"),it(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,schema:{type:"array",$ref:le(Lt(Ae.UPDATE,e))}}),ae({description:s+" updated successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),he({description:"Payload validation failed."}),Re(0,nt()),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Array,Object]),$e("design:returntype",Promise)],l.prototype,"updateAll",null),Oe([ot(e,"PUT",p),it(c),ne({summary:`Replace an existing ${s} record with a new payload.`}),de({description:"Payload for replace a existing record of "+s,type:Lt(Ae.UPDATE,e)}),ae({description:s+" updated successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),he({description:"Payload validation failed."}),Re(0,ct(c)),Re(1,nt()),Re(2,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Object,Object,Object]),$e("design:returntype",Promise)],l.prototype,"update",null),Oe([ot(e,"DELETE","bulk"),it(c),ne({summary:`Retrieve a ${s} record by id.`}),ie({name:"ids",required:!0,type:"array"}),ae({description:s+" deleted successfully.",schema:{type:"array",items:{$ref:le(e)}}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,v("ids")),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Array,Object]),$e("design:returntype",Promise)],l.prototype,"deleteAll",null),Oe([ot(e,"DELETE",p),it(c),ne({summary:`Delete a ${s} record by id.`}),ae({description:s+" deleted successfully.",schema:{$ref:le(e)}}),pe({description:`No ${s} record matches the provided identifier.`}),Re(0,ct(c)),Re(1,P({passthrough:!0})),$e("design:type",Function),$e("design:paramtypes",[Object,Object]),$e("design:returntype",Promise)],l.prototype,"delete",null),l=Oe([T(o),me(s),ge(e),vt(e),$e("design:paramtypes",[Tt])],l),l}static getRouteParametersFromModel(e){const r=N.pk(e),o=t.get(e,t.key(Ee.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e);return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}}function Yt(e){var t;let r=class{static{t=this}static{this.log=Ne.for(t.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>j.forModel(e)}))}static forRoot(e,r={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=z.models(e);let i=[];r.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n=s.map(zt.create);return o.info(`Generated ${n.length} controllers`),{module:t,controllers:n,providers:[...i]}}};return r=t=Oe([O({})],r),Object.assign(r,"name",{value:"DecafModule"+e}),r}r.for(i.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,n):n),m({scope:t.singleton?w.DEFAULT:w.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(i.INJECT).extend({decorator:(e,t)=>(t,r,o)=>y(e||t)(t,r,o)}).apply(),r.for(k.REQUIRED).extend(et({required:!0})).apply(),r.for(k.MAX).extend({decorator:e=>et({maximum:e,required:!1})}).apply(),r.for(k.MIN).extend({decorator:e=>et({minimum:e,required:!1})}).apply(),r.for(k.MAX_LENGTH).extend({decorator:e=>et({maxLength:e,required:!1})}).apply(),r.for(k.MIN_LENGTH).extend({decorator:e=>et({minLength:e,required:!1})}).apply(),r.for(k.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),et({type:e,required:!1})(t,r))}).apply(),r.for(k.DATE).extend({decorator:e=>et({type:String,format:"date-time",required:!1})}).apply(),r.for(k.ENUM).extend({decorator:e=>et({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(k.PATTERN).extend({decorator:e=>et({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(F.COLUMN).extend({decorator:e=>et({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>et({description:e,required:!1})}).apply(),r.for(F.AUTH).extend({decorator:vt}).apply();class Jt extends X{constructor(e){super(e,Jt.name)}}class Xt extends Te{constructor(e){super(Xt.name,e,429)}}let Qt=class{catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===De.env;let n;e instanceof $||e instanceof Q?n=(e=new x(e.message)).getStatus():e instanceof Te||(e=429===e.status?new Xt(e.message):new ve(e.message)),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}};function Vt(){return S(new Qt)}function Kt(){return b($t)}Qt=Oe([R()],Qt);const Wt={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class Zt{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||Wt.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization}}}b64(e,t=!1){const r=Be.join(this.options.assetsPath||"",e),o=Ue(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class er{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | `+`<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`:this.options.description,t=(new ye).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||Wt.auth).build();return be.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}registerOpenApiRoute(e,t,r){if(!e)return;const o=this.app.getHttpAdapter();e=e.startsWith("/")?e:"/"+e,o.get(e,(e,s)=>{o.reply(s,r(),200,{"Content-Type":t})})}setupSwagger(){const e=this.createDocument(),t=new Zt({title:this.options.title,path:this.options.path||Wt.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});be.setup(this.options.path||Wt.path,this.app,e,{...t.getCustomOptions(),jsonDocumentUrl:this.options.openApiJsonPath?""+this.options.openApiJsonPath:void 0,yamlDocumentUrl:this.options.openApiYamlPath?""+this.options.openApiYamlPath:void 0}),this.registerOpenApiRoute(this.options.openApiJsonPath,"application/json",()=>e),this.registerOpenApiRoute(this.options.openApiYamlPath,"application/x-yaml",()=>Ge.stringify(e))}}class tr{static get logger(){return this._logger||(this._logger=new _("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new _("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new Jt(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch(e){this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new er(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor,openApiJsonPath:e.openApiJsonPath,openApiYamlPath:e.openApiYamlPath}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new Qt]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}var rr;let or=rr=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=z.flavoursToTransform();if(r)for(const o of r)try{const r=z.transformerFor(o),s=await r.from(e);Object.assign(t.overrides,s)}catch(e){throw new ve("Failed to contextualize request: "+e)}return(new Y).accumulate(Object.assign({},V,{logger:Ne.get(),timestamp:new Date},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ne.for(rr).for(this.intercept);s.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`);const i=await this.contextualize(r);return s.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),this.requestContext.applyCtx(i),s.debug(`CONTEXT ${this.requestContext.uuid} applied - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),s.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}};or=rr=Oe([m({scope:w.REQUEST}),$e("design:paramtypes",[Tt,Rt])],or);class sr{}function ir(e){return r=>(t.set("transformers",e,r),"function"==typeof r?s("transformers",e)(r):r)}var nr;let ar=class{static{nr=this}static get persistence(){if(!this._persistence)throw new ve("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ne.for(nr)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot);return{module:nr,providers:[{provide:lt,useValue:e},{provide:ut,useValue:this.persistence?.client},{provide:mt,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},wt,{provide:Ce,useExisting:wt},Tt,Rt,{provide:Ce,useClass:or}],exports:[lt,ut,mt,Tt,Rt]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new K,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=z.transformerFor(o[t].flavour);if(!e)throw new ve(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new ve(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}ir(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new ve("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=nr.log.for(this.onApplicationShutdown),t=this.moduleRef.get(ut);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}try{await U.shutdown()}catch(t){e.error("Failed to shutdown services",t)}}};ar=nr=Oe([C(),O({}),Re(0,y(lt)),$e("design:paramtypes",[Object,_e])],ar);const cr=Symbol("LISTENING_ADAPTERS_FLAVOURS");var pr;let dr=pr=class extends kt{constructor(e,t){super(e,pr.name),this.adapters=t.map(e=>z.get(e))}listen(){const e=Ne.for(pr.name),t=new Le(t=>{const r=("B-"+Math.random().toString(36).slice(2,8)).toUpperCase();e.info(`Creating SSE observer: ${r} for client ${this.clientContext.uuid}`);const o=new class{constructor(){this.observerId=r}refresh(...r){return e.debug(`SSE observer ${this.observerId} received refresh event`),Promise.resolve().then(()=>{const o=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>{try{return"function"==typeof e.serialize?e.serialize():"string"==typeof e?e:JSON.stringify(e)}catch(e){return}}):s&&"function"==typeof s.serialize?s.serialize():"string"==typeof s?s:JSON.stringify(s)]})(r);t.next({type:"message",data:o}),e.debug(`SSE observer ${this.observerId} event pushed to client`)})}};e.verbose(`Registering observer ${r} across ${this.adapters.length} adapter(s)`);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Registering observer ${r} in adapter ${s}`),t.observe(o)}catch(t){e.debug(`Failed to register observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}return()=>{e.debug("Cleaning up SSE observer "+r);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Unregistering observer ${r} from adapter ${s}`),t.unObserve(o)}catch(t){e.debug(`Failed during cleanup of observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}}}),r=Me(15e3).pipe(He(()=>{e.debug("Sending heartbeat")}),ze(()=>({type:"heartbeat",data:{ts:(new Date).toISOString()}})));return je(t,r)}listenForModel(e){const t=Ne.for(pr.name);return new Le(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var lr;Oe([I(),$e("design:type",Function),$e("design:paramtypes",[]),$e("design:returntype",Le)],dr.prototype,"listen",null),Oe([I("/:model"),Re(0,v("model")),$e("design:type",Function),$e("design:paramtypes",[String]),$e("design:returntype",Le)],dr.prototype,"listenForModel",null),dr=pr=Oe([T(),Re(1,y(cr)),$e("design:paramtypes",[Tt,Array])],dr);let ur=lr=class{static forFlavours(e,t="events"){return{module:lr,controllers:[dr],imports:[Ie.register([{path:t.replace(/^\//,""),module:lr}])],providers:[Tt,{provide:cr,useValue:e??[]}]}}};var hr;ur=lr=Oe([O({})],ur);let fr=hr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await ar.bootPersistence(e)).map(e=>e.flavour),s=[ar.forRoot(e)];return t&&o.forEach(e=>{s.push(Yt(e).forRoot(e,{autoServices:r}))}),e.observerOptions?.enableObserverEvents&&s.push(ur.forFlavours(e.observerOptions.observerFlavours||o)),{module:hr,imports:s}}};async function mr(){}var gr;fr=hr=Oe([O({})],fr);const yr=Ne.for("DecafMigrationModule");let br=gr=class{static forRoot(){return{module:gr}}static async migrate(e,t){const r=yr.for(this.migrate);if(!t||0===t.length)throw new ve("No adapters provided. Make sure DecafCoreModule is configured and adapters are available.");return r.info("Running migrations with config: "+JSON.stringify(e)),Ye.migrateAdapters(t,e||{})}};function Ar(e){const t=N.get(e);if(!t)throw new ve("Failed to find repository for "+e);return B.forModel(t)}br=gr=Oe([C(),O({providers:[{provide:"MIGRATION_ADAPTERS",useFactory:e=>e,inject:[ut]}],exports:["MIGRATION_ADAPTERS"]})],br);const wr="##VERSION##",vr="##COMMIT##",Er="##FULL_VERSION##",Pr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(Pr,wr),t.allowReregistration(!1);export{yt as AUTH_HANDLER,bt as AUTH_META_KEY,ot as ApiOperationFromModel,it as ApiParamsFromModel,et as ApiProperty,vt as Auth,wt as AuthInterceptor,st as BulkApiOperationFromModel,vr as COMMIT,Jt as CorsError,ut as DECAF_ADAPTER_ID,gt as DECAF_ADAPTER_OPTIONS,At as DECAF_CONTEXT_KEY,mt as DECAF_HANDLERS,lt as DECAF_MODULE_OPTIONS,ft as DECAF_ROUTE,ht as DECAF_TASK_SERVICE_ID,Xe as DECORATORS,Je as DECORATORS_PREFIX,Et as DecafAuthHandler,nt as DecafBody,kt as DecafController,ar as DecafCoreModule,Qt as DecafExceptionFilter,Rt as DecafHandlerExecutor,br as DecafMigrationModule,qt as DecafModelController,fr as DecafModule,ct as DecafParams,pt as DecafQuery,Tt as DecafRequestContext,or as DecafRequestHandlerInterceptor,$t as DecafResponseInterceptor,Pt as DecafRoleAuthHandler,ur as DecafStreamModule,Lt as DtoFor,dr as EventsController,Er as FULL_VERSION,zt as FromModelController,dt as HttpVerbToDecorator,tr as NestBootstraper,Pr as PACKAGE_NAME,sr as RequestToContextTransformer,er as SwaggerBuilder,Vt as UseDecafFilter,Kt as UseDecafHeaders,wr as VERSION,tt as createApiPropertyDecorator,Ze as createPropertyDecorator,We as getEnumType,Ke as getEnumValues,Yt as getModuleFor,rt as isOperationBlocked,Ve as isUndefined,Ar as repoForModel,ir as requestToContextTransformer,mr as runMigrations};
1
+ import{apply as e,Metadata as t,Decoration as r,DecorationKeys as o}from"@decaf-ts/decoration";import{InjectablesKeys as s,DefaultInjectablesConfig as i}from"@decaf-ts/injectable-decorators";import{Delete as n,Patch as a,Put as c,Post as p,Get as u,applyDecorators as d,createParamDecorator as l,InternalServerErrorException as f,Injectable as h,Scope as m,Inject as g,Optional as y,UseInterceptors as v,SetMetadata as b,Query as E,Module as A,Controller as P,Param as O,Response as R,Catch as w,NotFoundException as T,NotAcceptableException as S,HttpException as D,UnauthorizedException as x,ForbiddenException as _,BadRequestException as C,ConflictException as $,UnprocessableEntityException as q,UseFilters as I,Logger as N,Global as k,Sse as M}from"@nestjs/common";import{Model as F,ValidationKeys as L,ModelBuilder as U}from"@decaf-ts/decorator-validation";import{isOperationBlocked as B,PreparedStatementKeys as j,UUID as G,Adapter as H,UnsupportedError as W,OrderDirection as z,ModelService as Q,AuthorizationError as Y,Service as J,Repository as X,TransactionOperationKeys as V,Context as K,PersistenceKeys as Z,ForbiddenError as ee,DefaultAdapterFlags as te,injectableServiceKey as re,PersistenceService as oe}from"@decaf-ts/core";import{isArray as se,isString as ie,pickBy as ne,negate as ae}from"lodash";import{ApiExcludeEndpoint as ce,ApiParam as pe,ApiBearerAuth as ue,ApiSecurity as de,ApiQuery as le,ApiOperation as fe,ApiOkResponse as he,ApiNoContentResponse as me,ApiTags as ge,ApiExtraModels as ye,ApiBody as ve,ApiCreatedResponse as be,getSchemaPath as Ee,ApiBadRequestResponse as Ae,ApiUnprocessableEntityResponse as Pe,ApiNotFoundResponse as Oe,DocumentBuilder as Re,SwaggerModule as we}from"@nestjs/swagger";import{OperationKeys as Te,BulkCrudOperationKeys as Se,InternalError as De,BaseError as xe,DBKeys as _e,BadRequestError as Ce,ConflictError as $e,ValidationError as qe}from"@decaf-ts/db-decorators";import{__decorate as Ie,__param as Ne,__metadata as ke}from"tslib";import{REQUEST as Me,Reflector as Fe,APP_INTERCEPTOR as Le,ModuleRef as Ue,ContextIdFactory as Be,RouterModule as je}from"@nestjs/core";import{Logging as Ge,toPascalCase as He,toKebabCase as We,LoggedEnvironment as ze}from"@decaf-ts/logging";import{RequestContext as Qe,AuthHandler as Ye,DecafController as Je,ModelControllerFactory as Xe,requestToContextTransformer as Ve}from"@decaf-ts/for-http/server";import{tap as Ke,Observable as Ze,interval as et,merge as tt}from"rxjs";import{readFileSync as rt}from"fs";import*as ot from"path";import st from"yaml";import{tap as it,map as nt}from"rxjs/operators";const at="swagger",ct={API_OPERATION:at+"/apiOperation",API_RESPONSE:at+"/apiResponse",API_PRODUCES:at+"/apiProduces",API_CONSUMES:at+"/apiConsumes",API_TAGS:at+"/apiUseTags",API_CALLBACKS:at+"/apiCallbacks",API_PARAMETERS:at+"/apiParameters",API_HEADERS:at+"/apiHeaders",API_MODEL_PROPERTIES:at+"/apiModelProperties",API_MODEL_PROPERTIES_ARRAY:at+"/apiModelPropertiesArray",API_SECURITY:at+"/apiSecurity",API_EXCLUDE_ENDPOINT:at+"/apiExcludeEndpoint",API_EXCLUDE_CONTROLLER:at+"/apiExcludeController",API_EXTRA_MODELS:at+"/apiExtraModels",API_EXTENSION:at+"/apiExtension",API_SCHEMA:at+"/apiSchema",API_DEFAULT_GETTER:at+"/apiDefaultGetter",API_LINK:at+"/apiLink"};function pt(e,t){if(!e)return[e,t];if(t)return[e,t];const r=se(e);return[r?e[0]:e,r]}const ut=e=>void 0===e;function dt(e){if("function"==typeof e)return dt(e());if(Array.isArray(e))return e;if("object"!=typeof e)return[];const t=Object.values(e).filter(e=>"number"==typeof e).map(e=>e.toString());return Object.keys(e).filter(e=>!t.includes(e)).map(t=>e[t])}function lt(e){return e.filter(ie).length>0?"string":"number"}function ft(e,t,r=!0){return(o,s)=>{const i=Reflect.getMetadata(ct.API_MODEL_PROPERTIES_ARRAY,o)||[],n=":"+s;i.includes(n)||Reflect.defineMetadata(ct.API_MODEL_PROPERTIES_ARRAY,[...i,":"+s],o);const a=Reflect.getMetadata(e,o,s);if(a){const i=ne(t,ae(ut)),n=r?{...a,...i}:{...i,...a};Reflect.defineMetadata(e,n,o,s)}else{const r=o?.constructor?._OPENAPI_METADATA_FACTORY?.()[s]?.type??Reflect.getMetadata("design:type",o,s);Reflect.defineMetadata(e,{type:r,required:!1,...ne(t,ae(ut))},o,s)}}}function ht(e={}){return mt(e)}function mt(e={},t=!0){const[r,o]=pt(e.type,e.isArray);if((s=e={...e,type:r,isArray:o}).isArray&&"enum"in s&&void 0!==s.enum){e.type="array";const t=dt(e.enum);e.items={type:lt(t),enum:t},delete e.enum}else if("enum"in e&&void 0!==e.enum){const t=dt(e.enum);e.enum=t,e.type=lt(t)}var s;return Array.isArray(e.type)&&(e.type="array",e.items={type:"array",items:{type:e.type[0]}}),ft(ct.API_MODEL_PROPERTIES,e,t)}function gt(t,r,o){const s={GET:[Te.READ,u],POST:[Te.CREATE,p],PUT:[Te.UPDATE,c],PATCH:[Te.UPDATE,a],DELETE:[Te.DELETE,n]},[i,d]=s[r],l=vt(r,o);return l?B(t,l.kind,l.value)?e(ce()):e(d(o)):B(t,i)?e(ce()):e(d(o))}function yt(t,r,o){const s={GET:[Se.READ_ALL,u],POST:[Se.CREATE_ALL,p],PUT:[Se.UPDATE_ALL,c],PATCH:[Se.UPDATE_ALL,a],DELETE:[Se.DELETE_ALL,n]},[i,d]=s[r],l=o?vt(r,o):void 0;return l?B(t,l.kind,l.value)?e(ce()):e(d(o)):B(t,"bulk",i)?e(ce()):e(d(o))}function vt(e,t){if(!t)return;const r=t.replace(/^\/+|\/+$/g,""),o={"listBy/:key":j.LIST_BY,"paginateBy/:key/:page":j.PAGE_BY,"find/:value":j.FIND,"page/:value":j.PAGE,"findOneBy/:key/:value":j.FIND_ONE_BY,"findBy/:key/:value":j.FIND_BY,"statement/:method/*args":"statement","countOf/:field":j.COUNT_OF,"maxOf/:field":j.MAX_OF,"minOf/:field":j.MIN_OF,"avgOf/:field":j.AVG_OF,"sumOf/:field":j.SUM_OF,"distinctOf/:field":j.DISTINCT_OF,"groupOf/:field":j.GROUP_OF};if(r.startsWith("query/"))return{kind:"query",value:r.replace(/^query\//,"")};const s=o[r];return s?{kind:"statement",value:s}:"GET"===e&&""===r?{kind:"crud",value:Te.READ}:void 0}function bt(e=[]){const t=e.map(e=>pe({name:e.name,description:e.description??"Path parameter: "+e.name,required:e.required??!0,type:e.type??String}));return d(...t)}const Et=l((e,t)=>{const r=t.switchToHttp().getRequest().body,o=t.getClass(),s=o.class;if(!s)throw new f(`ModelConstructor not found on controller ${o.name}. Ensure the controller was created via FromModelController.`);return r?Array.isArray(r)?r.map(e=>new s(e)):new s(r):r}),At=l((e,t)=>{const r=t.switchToHttp().getRequest(),o=r?.params??{},s=e??Object.keys(o),i=s.map(e=>o[e]);return{raw:o,valuesInOrder:i,keysInOrder:s}});function Pt(e=[]){const t=e.map(e=>e.name);return At(t)}const Ot=l((e,t)=>{const r={...t.switchToHttp().getRequest().query??{}};if(void 0!==r.limit){const e=Number(r.limit);Number.isNaN(e)||(r.limit=e)}if(void 0!==r.offset){const e=Number(r.offset);Number.isNaN(e)||(r.offset=e)}if(void 0!==r.bookmark){const e=Number(r.bookmark);r.bookmark=Number.isNaN(e)?r.bookmark:e}return r}),Rt="DecafModuleOptions",wt="DecafAdapter",Tt="DecafTaskService",St="DecafRoute",Dt=Symbol("DecafHandlers"),xt="DecafExpose",_t="DecafControllerConfig",Ct=Symbol("decaf:context");function $t(...e){return r=>(t.set(r,xt,!e.length||e),r)}function qt(e){return r=>(t.set(r,_t,e),r)}const It=Symbol("AUTH_HANDLER"),Nt="auth:meta",kt="isPublic",Mt="requiredRoles",Ft="skipModelRoles";let Lt=class extends Qe{constructor(e){super({headersOf:e=>e?.headers||void 0},e),this.req=e,this.uuid=G.instance.generate(),this.request=e}get headers(){return this.getOrUndefined("headers")}put(e){let t;try{t=this.get("overrides")}catch(e){t={}}this.accumulate({overrides:Object.assign(t,e)})}};Lt=Ie([h({scope:m.REQUEST}),Ne(0,g(Me)),ke("design:paramtypes",[Object])],Lt);let Ut=class{constructor(e,t,r){this.reflector=e,this.requestContext=t,this.authHandler=r}async intercept(e,t){const r=Ge.for(this).for(this.intercept),o=this.reflector.getAllAndOverride(kt,[e.getHandler(),e.getClass()]),s=this.reflector.get(Nt,e.getHandler())??this.reflector.get(Nt,e.getClass()),i=this.reflector.getAllAndOverride(Mt,[e.getHandler(),e.getClass()]),n=this.reflector.getAllAndOverride(Ft,[e.getHandler(),e.getClass()])?void 0:s;r.verbose("Intercepted request"+(s?" for "+s:"")),o?r.debug("Public route \u2014 skipping auth"):this.authHandler?await this.authHandler.authorize(e,n,i,this.requestContext):r.debug("No auth handler registered"),await this.applyTransformers();const a=this.requestContext.getOrUndefined("user"),c=this.requestContext.getOrUndefined("organization");if(a||c){const e=this.requestContext.get("logger").for({user:a,organization:c});this.requestContext.accumulate({logger:e})}return t.handle()}async applyTransformers(){const e=H.flavoursToTransform();if(e)for(const t of e){const e=H.transformerFor(t);if(!e)continue;const r=e.from?e:new e,o=await r.from(this.requestContext);o&&this.requestContext.accumulate(o)}}};function Bt(e){const t=e?"string"==typeof e?e:e.name:void 0,r=[ue(),v(Ut)];return t&&r.push(b(Nt,t)),d(...r)}function jt(){return d(b(kt,!0))}function Gt(...e){return d(de("bearer"),b(Mt,e),v(Ut))}function Ht(e){const t={GET:u,POST:p,PUT:c,PATCH:a,DELETE:n}[e];if(!t)throw new W(`Unsupported HTTP verb "${e}". No NestJS decorator mapping was found.`);return t}Ut=Ie([h({scope:m.REQUEST}),Ne(2,y()),Ne(2,g(It)),ke("design:paramtypes",[Fe,Lt,Object])],Ut);const Wt=e=>({name:e,description:e+" parameter for the query",required:!0,type:String});function zt(e,t,r,o=!1){const s=Ht(r),i=(e=>e.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1)))(t).map(Wt),n=[];return"GET"===r&&o&&n.push(le({name:"direction",required:!1,enum:z,description:"the sort order when applicable"}),le({name:"limit",required:!1,description:"limit or page size when applicable"}),le({name:"offset",required:!1,description:"offset or bookmark when applicable"})),{method:[s(t),...i.map(pe),...n,fe({summary:`Retrieve records using according to "${e}".`}),he({description:"Result successfully retrieved."}),me({description:"No content returned by the method."})],params:[Pt(i),E()]}}function Qt(e,t,r,o){const s=e?.prototype??e;o.method.forEach(e=>e(s,t,r)),o.params?.forEach((e,r)=>e(s,t,r))}function Yt(e,t,...r){if(e instanceof Q)return"function"==typeof e[t]?e[t](...r):e.statement(t,...r);if("function"==typeof e[t])return e[t](...r);throw new De(`Persistence method "${t}" not found on ${e?.constructor?.name}`)}function Jt(e){return async function(t,r){const o=this.log.for(e);try{o.debug(`Invoking persistence method "${e}" given parameters: ${JSON.stringify(t.valuesInOrder)}`);const{direction:s,limit:i,offset:n}=r;return await Yt(this.persistence(this.ctx),e,...t.valuesInOrder,s,i,n)}catch(t){throw o.error(`Custom query "${e}" failed`,t),i=`Custom query "${e}" failed`,(s=t)instanceof xe?s:new De(s instanceof Error?`${i}: ${s.message}`:i)}var s,i}}function Xt(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}class Vt extends Ye{parseRequest(e){const t=e.headers.authorization?.split(" ")[1];return t}extractFromAuth(e){const t=e.switchToHttp().getRequest(),r=this.parseRequest(t);if(!r)throw new Y("Unauthenticated");return{user:r,roles:[r]}}}class Kt extends Vt{}var Zt;let er=Zt=class{static forRoot(e={}){const t=[Ut];return e.handler&&(t.push(e.handler),t.push({provide:It,useClass:e.handler})),e.global&&t.push({provide:Le,useExisting:Ut}),{module:Zt,global:e.global??!1,providers:t,exports:[Ut,It]}}};var tr;er=Zt=Ie([A({})],er);let rr=tr=class{constructor(e,t){this.handlers=e,this.context=t}async exec(e,t){Ge.for(tr.name).for(this.exec).debug(`CONTEXT ${this.context.uuid} running ${this.handlers.length} handlers for request ${e.method} ${e.url}`);for(const r of this.handlers)await r.handle(this.context,e,t)}};rr=tr=Ie([h({scope:m.REQUEST}),Ne(0,g(Dt)),ke("design:paramtypes",[Array,Lt])],rr);let or=class{constructor(e){this.ctx=e}intercept(e,t){let r=e.switchToHttp().getResponse();return t.handle().pipe(Ke(e=>{r=this.ctx.toResponse(r)}))}};or=Ie([h(),ke("design:paramtypes",[Lt])],or);class sr extends Je{constructor(e,t){super(e),this.clientContext=e}}class ir extends sr{constructor(e,t){super(e,t),this.clientContext=e}persistence(e){if(!this._persistence)try{this._persistence=J.get(this.class)}catch{try{this._persistence=Q.getService(this.class)}catch{this._persistence=X.forModel(this.class)}}const t=(e??this.clientContext).toOverrides();return e?this._persistence instanceof X?this._persistence.override(t):this._persistence.for(t):this._persistence}}const nr=new Map;function ar(e,r,o=new Set){if(!V.includes(e))return r;const s=(e=>(nr.has(e)||nr.set(e,new WeakMap),nr.get(e)))(e),i=s.get(r);if(i)return i;const n=[Te.UPDATE,Se.UPDATE_ALL].includes(e);class a{}s.set(r,a),Object.defineProperty(a,"name",{value:`${He(r.name)}${He(e)}DTO`});const c=(()=>{try{return F.pk(r)}catch{return}})(),p=c?F.pkProps(r):void 0,u=c?Reflect.getMetadata("design:type",r.prototype,c):void 0,d=u===Number||u===BigInt,l=!!p?.generated||!!c&&(F.generatedBySequence(r,c)||lr(r,c)||d),f=Array.from(new Set(t.properties(r)||[])),h=new Set(F.relations(r)||[]),m=[];for(const e of f)e&&(h.has(e)||e===c&&!n&&l||e!==c&&lr(r,e)||m.push(e));for(const e of m){const t=fr(r,e),o=!!t?.[L.REQUIRED],s=hr(r,e)??Reflect.getMetadata("design:type",r.prototype,e),i={required:o};s&&(i.type=s),ht(i)(a.prototype,e);const n=Reflect.getMetadata("design:type",r.prototype,e)??s;void 0!==n&&Reflect.defineMetadata("design:type",n,a.prototype,e),Object.defineProperty(a.prototype,e,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}for(const s of h){const i=t.relations(r,s);if(!i)throw new De(`Metadata for relation ${s} not found`);let c=i.class;if("function"!=typeof c||c.name||(c=c()),!c||"function"!=typeof c)throw new De(`Type for relation ${s} not found`);if(!F.get(c.name))continue;const p=t.validationFor(r,s),u=!!p?.[L.LIST],d=!!p?.[L.REQUIRED];if(o.has(c)){pr(a,s,dr(c),u,d);continue}const l=ar(e,c,new Set(o).add(r));n?ur(a,s,c,l,u,d):cr(a,s,l,u,d)}return a}function cr(e,t,r,o,s){ht({type:r,required:s,isArray:o})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:r,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function pr(e,t,r,o,s){ht(o?{type:"array",items:{type:r},required:s}:{type:"integer"===r?Number:String,required:s})(e.prototype,t),Reflect.defineMetadata("design:type",o?Array:"integer"===r?Number:String,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function ur(e,t,r,o,s,i){const n=Reflect.getMetadata(ct.API_EXTRA_MODELS,e)||[];n.includes(o)||Reflect.defineMetadata(ct.API_EXTRA_MODELS,[...n,o],e);const a=[{$ref:"#/components/schemas/"+o.name},{type:dr(r)}];ht(s?{type:"array",required:i,oneOf:a}:{type:Object,required:i,oneOf:a})(e.prototype,t),Reflect.defineMetadata("design:type",s?Array:Object,e.prototype,t),Object.defineProperty(e.prototype,t,{value:void 0,writable:!0,enumerable:!0,configurable:!0})}function dr(e){try{const t=F.pkProps(e),r=t?.type;return r===Number||r===BigInt?"integer":"string"}catch{return"string"}}function lr(e,t){let r=e;for(;r&&r!==Object&&r!==Function;){if(F.generated(r,t))return!0;r=Object.getPrototypeOf(r)}return!1}function fr(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.validationFor(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}function hr(e,r){let o=e;for(;o&&o!==Object&&o!==Function;){const e=t.type(o,r);if(e)return e;o=Object.getPrototypeOf(o)}}H.transformerFor=(e=>{const r="string"==typeof e?e:e.alias;return t.innerGet(Symbol.for("transformers"),r)}).bind(H),H.flavoursToTransform=(()=>{const e=t.innerGet(Symbol.for("transformers"));if(e)return Object.keys(e)}).bind(H),K.prototype.toResponse=function(e){const t=this.pending();return t&&e.header("x-pending-task",JSON.stringify(t)),e};const mr=U.prototype;if(mr.decorateClass||(mr.decorateClass=function(e){return this._classDecorators||(this._classDecorators=[]),this._classDecorators.push(e),this}),mr.Auth=function(e){return this.decorateClass(Bt(e))},!mr.__hasClassDecoratorSupport){const e=mr.build;mr.build=function(){let t=e.call(this);const r=this._classDecorators;if(r?.length)for(const e of r){const r=e(t);r&&(t=r)}return t},mr.__hasClassDecoratorSupport=!0}var gr;class yr{static{this.log=Ge.for(yr.name)}static toDecafError(e,t){return e instanceof xe?e:new De(e instanceof Error?`${t}: ${e.message}`:t)}static getPersistence(e){try{return J.get(e)}catch(t){try{return Q.getService(e)}catch(t){return X.forModel(e)}}}static createQueryRoutesFromRepository(e,r=Z.QUERY){const o=e instanceof Q?e.repo:e,s=t.get(o.constructor,t.key(Z.QUERY))??{},i=t.get(e.constructor,t.key(St))??{};class n extends ir{get class(){throw new De("Method not implemented.")}constructor(e,t){super(e,t)}}for(const[e,t]of Object.entries(i)){const r=[t.path.replace(/^\/+|\/+$/g,"")].filter(e=>e&&e.trim()).join("/"),o=yr.createComplexQueryHandler(e);yr.defineMethod(n,e,o);const s=Ht(t.httpMethod)(r||void 0),i=yr.getQueryDecorators(e,r,t.httpMethod);yr.applyDecorators(n,e,[s,...i])}for(const[e,t]of Object.entries(s)){const o=[r,e,...(t.fields??[]).map(e=>":"+e)].filter(e=>e&&e.trim()).join("/"),s=yr.createComplexQueryHandler(e);yr.defineMethod(n,e,s);const i=Ht("GET")(o||void 0),a=yr.getQueryDecorators(e,o,"GET",!0);yr.applyDecorators(n,e,[i,...a])}return n}static create(e,r,o){const s=yr.log.for(yr.create),i=F.tableName(e),n=We(i),a=e.name,c=yr.getPersistence(e),p=c instanceof Q?c.repo:c,u=t.get(e,t.key(_t)),d=r?.[e.name],l={...o||{},...u||{},...d||{}},f=Xe.create(e,p,l).__routes__,{getPK:h,apiProperties:m,path:g}=yr.getRouteParametersFromModel(e);s.debug(`Creating controller for model: ${a} with ${f?.length??0} factory routes`);const y=l.auth;let v=gr=class extends ir{static get class(){return e}get class(){return e}constructor(t){super(t,gr.name),this.pk=F.pk(e),s.info(`Registering dynamic controller for model: ${this.class.name} route: /${n}`)}};var E;if(v=gr=Ie([P(n),ge(a),ye(e),ke("design:paramtypes",[Lt])],v),E=v,y?.public?jt()(E):y?.roles?.length?Gt(...y.roles)(E):Bt(e)(E),y?.skipModelRoles&&b(Ft,!0)(E),f){const t=[...f].sort((e,t)=>{const r=e.path.split("/").filter(Boolean),o=t.path.split("/").filter(Boolean),s=r.filter(e=>e.startsWith(":")).length,i=o.filter(e=>e.startsWith(":")).length,n=r.length-s,a=o.length-i;return n!==a?a-n:s!==i?s-i:0});for(const r of t){const t=r.implementation?.name||r.method.toLowerCase(),o=yr.matchRoute(t,r,g,m,h,e,a);if(!o)continue;const{methodName:s,handler:i,decorators:n,paramDecorators:c}=o;if(yr.defineMethod(v,s,i)){const e=Ht(r.method)(r.path.replace(/^\/+|\/+$/g,"")||void 0);yr.applyDecorators(v,s,[e,...n],c)}}}return v}static getRouteParametersFromModel(e){const r=F.pk(e),o=t.get(e,t.key(_e.COMPOSED,r)),s=o?.args??[],i=Array.isArray(s)&&s.length>0?Array.from(new Set([...s])):Array.from(new Set([r])),n=t.description(e)??"";return{path:":"+i.join("/:"),description:n,apiProperties:i.map(r=>({name:r,description:t.description(e,r),required:!0,type:String})),getPK:(...e)=>o?.separator?e.join(o.separator):e.join("")}}static routeParamDecorators(e){let t=0;return e.split("/").filter(Boolean).flatMap(e=>e.startsWith(":")||e.startsWith("*")?[{decorator:O(e.slice(1)),index:t++}]:[])}static defineMethod(e,t,r){return Object.defineProperty(e.prototype||e,t,{value:r,writable:!1,configurable:!0,enumerable:!1}),Object.getOwnPropertyDescriptor(e.prototype||e,t)}static applyDecorators(e,t,r,o=[]){const s=e?.prototype??e,i=Object.getOwnPropertyDescriptor(s,t);r.forEach(e=>e(s,t,i)),o.forEach(({decorator:e,index:r})=>e(s,t,r))}static matchRoute(e,t,r,o,s,i,n){const{method:a,path:c}=t,p=c.replace(/^\/+|\/+$/g,""),u=t.implementation;if("POST"===a&&""===p)return yr.createRegistration("create",u,yr.createCreateDecorators(i,n),[{decorator:Et(),index:0},{decorator:R({passthrough:!0}),index:1}]);if("POST"===a&&"bulk"===p)return yr.createRegistration("createAll",u,yr.bulkCreateDecorators(i,n),[{decorator:Et(),index:0},{decorator:R({passthrough:!0}),index:1}]);if("GET"===a&&"bulk"===p)return yr.createRegistration("readAll",u,yr.bulkReadDecorators(i,n),[{decorator:E("ids"),index:0}]);if("PUT"===a&&"bulk"===p)return yr.createRegistration("updateAll",u,yr.bulkUpdateDecorators(i,n,o),[{decorator:Et(),index:0},{decorator:R({passthrough:!0}),index:1}]);if("DELETE"===a&&"bulk"===p)return yr.createRegistration("deleteAll",u,yr.bulkDeleteDecorators(i,n,o),[{decorator:E("ids"),index:0},{decorator:R({passthrough:!0}),index:1}]);if("GET"===a&&p===r)return yr.createRegistration("read",u,yr.readDecorators(i,n,o,r),yr.routeParamDecorators(p));if("PUT"===a&&p===r){const e=yr.routeParamDecorators(p);return yr.createRegistration("update",u,yr.updateDecorators(i,n,o,r),[{decorator:Et(),index:0},...e.map(({decorator:e,index:t})=>({decorator:e,index:t+1}))])}if("DELETE"===a&&p===r){const e=yr.routeParamDecorators(p);return yr.createRegistration("delete",u,yr.deleteDecorators(i,n,o,r),e)}const d=p.split("/").filter(Boolean);if(d.length>0&&d.every(e=>e.startsWith(":"))&&p!==r){const e=d.map(e=>e.slice(1)).map(e=>({name:e,description:e+" parameter",required:!0,type:String})),t=d.map(e=>e.slice(1)).join("And"),r=yr.routeParamDecorators(p);if("GET"===a)return yr.createRegistration("readBy"+t,u,yr.readDecorators(i,n,e,p),r);if("PUT"===a)return yr.createRegistration("updateBy"+t,u,yr.updateDecorators(i,n,e,p),[{decorator:Et(),index:0},...r.map(({decorator:e,index:t})=>({decorator:e,index:t+1}))]);if("DELETE"===a)return yr.createRegistration("deleteBy"+t,u,yr.deleteDecorators(i,n,e,p),r)}if("GET"===a&&"statement/:method/*args"===p)return yr.createRegistration("statement",u,yr.statementDecorators(i,n),[{decorator:O("method"),index:0},{decorator:O("args"),index:1},{decorator:Ot(),index:2}]);if("GET"===a&&"findOneBy/:key/:value"===p)return yr.createRegistration("findOneBy",u,yr.statementShortcutDecorators(i,n,p,j.FIND_ONE_BY),yr.statementShortcutParams(p));const l={"listBy/:key":j.LIST_BY,"paginateBy/:key/:page":j.PAGE_BY,"find/:value":j.FIND,"page/:value":j.PAGE,"findOneBy/:key/:value":j.FIND_ONE_BY,"findBy/:key/:value":j.FIND_BY,"countOf/:field":j.COUNT_OF,"maxOf/:field":j.MAX_OF,"minOf/:field":j.MIN_OF,"avgOf/:field":j.AVG_OF,"sumOf/:field":j.SUM_OF,"distinctOf/:field":j.DISTINCT_OF,"groupOf/:field":j.GROUP_OF}[p];if(l&&"GET"===a)return yr.createRegistration(yr.statementMethodName(p),u,yr.statementShortcutDecorators(i,n,p,l),yr.statementShortcutParams(p));if("GET"===a&&p.startsWith("query/")){const e=p.replace(/^query\//,"").split("/")[0];return yr.createRegistration(e,u,yr.getQueryDecorators(e,p,"GET",!0),yr.complexQueryParams(p))}const f=p.split("/").filter(Boolean),h=new Set(["listBy","findBy","findByPaginate","findOneBy","paginateBy","find","page","countOf","maxOf","minOf","avgOf","sumOf","distinctOf","groupOf","statement","bulk","query"]);if(f.length>0&&!p.startsWith("query/")&&!p.startsWith("statement/")&&!h.has(f[0])){const t=f.filter(e=>e.startsWith(":")).map(e=>e.slice(1)).map(e=>({name:e,description:e+" parameter for the query",required:!0,type:String}));return yr.createRegistration(e,u,[...t.map(e=>pe(e)),fe({summary:`Retrieve records using "${e}".`}),he({description:"Result successfully retrieved."}),me({description:"No content returned by the method."})],yr.routeParamDecorators(p))}}static createRegistration(e,t,r,o){return{methodName:e,handler:t,decorators:r,paramDecorators:o}}static statementMethodName(e){return e.split("/")[0]}static statementShortcutParams(e){const t=e.split("/").filter(e=>e.startsWith(":")),r=[];return t.forEach((e,t)=>{const o=e.replace(":","");r.push({decorator:O(o),index:t})}),(e.startsWith("listBy/")||e.startsWith("paginateBy/")||e.startsWith("find/")||e.startsWith("page/"))&&r.push({decorator:Ot(),index:t.length}),r}static complexQueryParams(e){const t=e.split("/").filter(e=>e.startsWith(":")),r=[];return t.forEach((e,t)=>{const o=e.replace(":","");r.push({decorator:O(o),index:t})}),e.startsWith("query/")&&r.push({decorator:Ot(),index:t.length}),r}static createComplexQueryHandler(e){return async function t(...r){const o=this.log?.for?.(t);try{o&&o.debug(`Invoking custom query "${e}"`);const{ctx:s}=(await this.logCtx([],e,!0)).for(t),i=this.persistence(s),n=yr.normalizeQueryArgs(r);if(i?.repo&&"function"==typeof i.repo[e])return i.repo[e](...n);if("function"==typeof i[e])return i[e](...n);if(i?.query&&"function"==typeof i.query)return i.query(e,...n);if("function"==typeof i.statement)return i.statement(e,...n,s);throw new De(`Persistence method "${e}" not found on ${i?.constructor?.name}`)}catch(t){throw o&&o.error(`Custom query "${e}" failed`,t),yr.toDecafError(t,`Custom query "${e}" failed`)}}}static extractQueryArgs(e){if(0===e.length)return e;const t=e[e.length-1];if(t&&"object"==typeof t&&!Array.isArray(t)){const t=e.pop(),r=void 0!==t.direction,o=void 0!==t.limit,s=void 0!==t.offset;if(!r&&!o&&!s)return e;const i=[];return r?i.push(t.direction):(o||s)&&i.push(void 0),o&&i.push(t.limit),s&&i.push(t.offset),[...e,...i]}return e}static normalizeQueryArgs(e){const t=yr.extractQueryArgs(e);if(0===t.length)return t;const r=t[t.length-1];if(!r||"object"!=typeof r||Array.isArray(r))return t;const o=r;return void 0!==o.direction||void 0!==o.limit||void 0!==o.offset||void 0!==o.bookmark?(t.pop(),void 0!==o.direction&&t.push(o.direction),void 0!==o.limit&&t.push(o.limit),void 0!==o.offset&&t.push(o.offset),void 0!==o.bookmark&&t.push(o.bookmark),t):(t.pop(),t)}static createCreateDecorators(e,t){return[gt(e,"POST"),fe({summary:`Create a new ${t}.`}),ve({description:"Payload for "+t,type:ar(Te.CREATE,e)}),be({description:t+" created successfully.",schema:{$ref:Ee(e)}}),Ae({description:"Payload validation failed."}),Pe({description:"Repository rejected the provided payload."})]}static bulkCreateDecorators(e,t){return[gt(e,"POST","bulk"),fe({summary:`Create a new ${t}.`}),ve({description:"Payload for "+t,schema:{type:"array",items:{$ref:Ee(e)}}}),be({description:t+" created successfully.",schema:{type:"array",items:{$ref:Ee(e)}}}),Ae({description:"Payload validation failed."}),Pe({description:"Repository rejected the provided payload."})]}static bulkReadDecorators(e,t){return[gt(e,"GET","bulk"),fe({summary:`Retrieve ${t} records by ids.`}),le({name:"ids",required:!0,type:"array"}),he({description:t+" retrieved successfully.",schema:{type:"array",items:{$ref:Ee(e)}}}),Oe({description:`No ${t} record matches the provided identifier.`})]}static bulkUpdateDecorators(e,t,r){return[gt(e,"PUT","bulk"),bt(r),fe({summary:`Replace existing ${t} records with new payloads.`}),ve({description:"Payload for replacing existing records of "+t,schema:{type:"array",$ref:Ee(ar(Te.UPDATE,e))}}),he({description:t+" updated successfully.",schema:{type:"array",items:{$ref:Ee(e)}}}),Oe({description:`No ${t} record matches the provided identifier.`}),Ae({description:"Payload validation failed."})]}static bulkDeleteDecorators(e,t,r){return[gt(e,"DELETE","bulk"),bt(r),fe({summary:`Delete ${t} records by ids.`}),le({name:"ids",required:!0,type:"array"}),he({description:t+" deleted successfully.",schema:{type:"array",items:{$ref:Ee(e)}}}),Oe({description:`No ${t} record matches the provided identifier.`})]}static readDecorators(e,t,r,o){return[gt(e,"GET",o),bt(r),fe({summary:`Retrieve a ${t} record by id.`}),he({description:t+" retrieved successfully.",schema:{$ref:Ee(e)}}),Oe({description:`No ${t} record matches the provided identifier.`})]}static updateDecorators(e,t,r,o){return[gt(e,"PUT",o),bt(r),fe({summary:`Replace an existing ${t} record with a new payload.`}),ve({description:"Payload for replacing an existing record of "+t,type:ar(Te.UPDATE,e)}),he({description:t+" updated successfully.",schema:{$ref:Ee(e)}}),Oe({description:`No ${t} record matches the provided identifier.`}),Ae({description:"Payload validation failed."})]}static deleteDecorators(e,t,r,o){return[gt(e,"DELETE",o),bt(r),fe({summary:`Delete a ${t} record by id.`}),he({description:t+" deleted successfully.",schema:{$ref:Ee(e)}}),Oe({description:`No ${t} record matches the provided identifier.`})]}static statementDecorators(e,t){return[gt(e,"GET","statement/:method/*args"),fe({summary:`Executes a prepared statement on ${t}.`}),pe({name:"method",description:"the prepared statement to execute"}),pe({name:"args",description:"concatenated list of arguments the prepared statement can accept"}),le({name:"direction",required:!0,enum:z,description:"the sort order when applicable"}),le({name:"limit",required:!0,description:"limit or page size when applicable"}),le({name:"offset",required:!0,description:"offset or bookmark when applicable"}),he({description:t+" listed found."}),Oe({description:`No ${t} record matches the provided identifier.`})]}static statementShortcutDecorators(e,t,r,o){const s=[gt(e,"GET",r),fe({summary:`Retrieve ${t} records.`}),he({description:t+" retrieved successfully."})];return r.split("/").filter(e=>e.startsWith(":")).forEach(e=>{const t=e.replace(":","");s.push(pe({name:t,description:`The ${t} parameter`}))}),(r.startsWith("listBy/")||r.startsWith("paginateBy/")||r.startsWith("find/")||r.startsWith("page/"))&&s.push(le({name:"direction",required:!0,enum:z,description:"the sort order"})),(r.startsWith("paginateBy/")||r.startsWith("page/"))&&s.push(le({name:"limit",required:!1,description:"page size"}),le({name:"offset",required:!1,description:"page number"}),le({name:"bookmark",required:!1,description:"bookmark for cursor pagination"})),(r.startsWith("findOneBy/")||r.startsWith("findBy/"))&&s.push(Oe({description:`No ${t} record matches the provided identifier.`})),o!==j.COUNT_OF&&o!==j.AVG_OF&&o!==j.SUM_OF||s.push(he({description:`Result for ${t}.`,type:Number})),o===j.DISTINCT_OF&&s.push(he({description:`Distinct values for ${t}.`,type:[String]})),s}static getQueryDecorators(e,t,r,o=!1){var s;const i=[...(s=t,s.split("/").filter(e=>e.startsWith(":")).map(e=>e.slice(1))).map(e=>({name:e,description:e+" parameter for the query",required:!0,type:String})).map(e=>pe(e)),fe({summary:`Retrieve records using "${e}".`}),he({description:"Result successfully retrieved."}),me({description:"No content returned by the method."})];return"GET"===r&&o&&i.push(le({name:"direction",required:!1,enum:z,description:"the sort order when applicable"}),le({name:"limit",required:!1,description:"limit or page size"}),le({name:"offset",required:!1,description:"offset or bookmark"})),i}}function vr(e){var r;let o=class{static{r=this}static{this.log=Ge.for(r.name).for(e)}static createModelServices(e){return e.map(e=>({provide:e.name+"Service",useFactory:()=>Q.forModel(e)}))}static isExposed(r,o){const s=o?.[r.name],i=void 0!==s?s:t.get(r,t.key(xt));return void 0===i||!0===i||!!Array.isArray(i)&&i.includes(e)}static forRoot(e,t={}){const o=this.log.for(this.forRoot);o.info("Generating controllers for flavour...");const s=H.models(e).filter(e=>this.isExposed(e,t.controllerExposure));for(const e of s)Q.forModel(e);let i=[];t.autoServices&&(o.info("Auto-services enabled. Initializing service generation."),i=this.createModelServices(s),o.info(`Auto-services completed. ${i.length} services initialized.`));const n={};!1===t.aggregations&&(n.allowGroupingQueries=!1);const a=s.map(e=>yr.create(e,t.controllerConfig,n));return o.info(`Generated ${a.length} controllers`),{module:r,controllers:a,providers:[...i]}}};return o=r=Ie([A({})],o),Object.assign(o,"name",{value:"DecafModule"+e}),o}r.for(s.INJECTABLE).extend({decorator:(e,t)=>(t=t||("object"==typeof e?Object.assign(e,i):i),h({scope:t.singleton?m.DEFAULT:m.REQUEST,durable:!t.singleton||void 0}))}).apply(),r.for(s.INJECT).extend({decorator:(e,t)=>(t,r,o)=>g(e||t)(t,r,o)}).apply(),r.for(L.REQUIRED).extend(ht({required:!0})).apply(),r.for(L.MAX).extend({decorator:e=>ht({maximum:e,required:!1})}).apply(),r.for(L.MIN).extend({decorator:e=>ht({minimum:e,required:!1})}).apply(),r.for(L.MAX_LENGTH).extend({decorator:e=>ht({maxLength:e,required:!1})}).apply(),r.for(L.MIN_LENGTH).extend({decorator:e=>ht({minLength:e,required:!1})}).apply(),r.for(L.TYPE).extend({decorator:e=>(t,r)=>("function"!=typeof(e=Array.isArray(e)?e[0]:e)||e.name||(e=e()),ht({type:e,required:!1})(t,r))}).apply(),r.for(L.DATE).extend({decorator:e=>ht({type:String,format:"date-time",required:!1})}).apply(),r.for(L.ENUM).extend({decorator:e=>ht({enum:Array.isArray(e)?e:Object.values(e),required:!1})}).apply(),r.for(L.PATTERN).extend({decorator:e=>ht({pattern:"string"==typeof e?e:e.source,required:!1})}).apply(),r.for(Z.COLUMN).extend({decorator:e=>ht({name:e,required:!1})}).apply(),r.for(o.DESCRIPTION).extend({decorator:e=>ht({description:e,required:!1})}).apply(),r.for(Z.AUTH).extend({decorator:Bt}).apply();class br extends ee{constructor(e){super(e,br.name)}}class Er extends xe{constructor(e){super(Er.name,e,429)}}const Ar=new Map([[x,e=>new Y(e)],[_,e=>new ee(e)],[C,e=>new Ce(e)],[$,e=>new $e(e)],[q,e=>new qe(e)]]);let Pr=class{constructor(e){this.moduleRef=e}async catch(e,t){const r=t.switchToHttp(),o=r.getResponse(),s=r.getRequest(),i="production"===ze.env;let n;if(e instanceof T||e instanceof W)n=(e=new S(e.message)).getStatus();else if(!(e instanceof xe)){const t=this.decafErrorFor(e);t?e=t(e.message):429===e.status?e=new Er(e.message):e instanceof D?n=e.getStatus():e=new De(e.message)}await this.logError(s,e),o.status(e.code||n).json({status:e.code||n,error:i?e.name:e.message,timestamp:(new Date).toISOString(),path:s.url,method:s.method})}decafErrorFor(e){for(const[t,r]of Ar)if(e instanceof t)return r}async logError(e,t){const r=`Unhandled error on ${e?.method} ${e?.url}`;try{(await this.resolveLogger(e)).error(r,t)}catch{try{Ge.get().error(r,t)}catch{}}}async resolveLogger(e){if(this.moduleRef)try{const t=Be.getByRequest(e),r=await this.moduleRef.resolve(Lt,t,{strict:!1});if(r?.logger)return r.logger}catch{}return Ge.get()}};function Or(){return I(new Pr)}function Rr(){return v(or)}Pr=Ie([w(),h(),Ne(0,y()),ke("design:paramtypes",[Ue])],Pr);const wr={path:"docs",auth:{type:"http",scheme:"bearer",bearerFormat:"JWT",name:"Authorization",description:"Enter JWT token",in:"header"},topbarBgColor:"#000000"};class Tr{constructor(e){this.options={...e}}customCSS(){let e="";return this.options.topbarIconPath&&(e+=`.topbar-wrapper { content: url('data:image/png;base64,${this.b64(this.options.topbarIconPath)}'); width: 200px; height: auto; }\n`),e+`\n .topbar-wrapper svg { visibility: hidden; }\n .swagger-ui .topbar { background-color: ${this.options.topbarBgColor||wr.topbarBgColor}; }\n `}getCustomOptions(){const e={};return this.options.faviconPath&&(e.customfavIcon=this.b64(this.options.faviconPath,!0)),{customSiteTitle:this.options.title,...e,customCss:this.customCSS(),swaggerOptions:{persistAuthorization:this.options.persistAuthorization}}}b64(e,t=!1){const r=ot.join(this.options.assetsPath||"",e),o=rt(r,{encoding:"base64"});return t?"data:image/png;base64,"+o:o}}class Sr{constructor(e,t){this.app=e,this.options=t}createDocument(){const e=this.options.path?this.options.description+""+`<br><br><a href="${this.options.openApiJsonPath}">OpenAPI JSON Spec</a> | `+`<a href="${this.options.openApiYamlPath}">OpenAPI YAML Spec</a>`:this.options.description,t=(new Re).setTitle(this.options.title).setDescription(e).setVersion(this.options.version||"0.0.1").addBearerAuth(this.options.auth||wr.auth).build();return we.createDocument(this.app,t,{extraModels:this.options.extraModels||[]})}registerOpenApiRoute(e,t,r){if(!e)return;const o=this.app.getHttpAdapter();e=e.startsWith("/")?e:"/"+e,o.get(e,(e,s)=>{o.reply(s,r(),200,{"Content-Type":t})})}setupSwagger(){const e=this.createDocument(),t=new Tr({title:this.options.title,path:this.options.path||wr.path,persistAuthorization:this.options.persistAuthorization??!0,assetsPath:this.options.assetsPath,faviconPath:this.options.faviconFilePath,topbarIconPath:this.options.topbarIconFilePath,topbarBgColor:this.options.topbarBgColor});we.setup(this.options.path||wr.path,this.app,e,{...t.getCustomOptions(),jsonDocumentUrl:this.options.openApiJsonPath?""+this.options.openApiJsonPath:void 0,yamlDocumentUrl:this.options.openApiYamlPath?""+this.options.openApiYamlPath:void 0}),this.registerOpenApiRoute(this.options.openApiJsonPath,"application/json",()=>e),this.registerOpenApiRoute(this.options.openApiYamlPath,"application/x-yaml",()=>st.stringify(e))}}class Dr{static get logger(){return this._logger||(this._logger=new N("NestBootstrap")),this._logger}static initialize(e){return this.app=e,this}static enableLogger(e){return this._logger=e||new N("NestBootstrap"),this.app.useLogger(this._logger),this}static enableCors(e=[],t=["GET","POST","PUT","DELETE"]){const r="*"===e?"*":e.map(e=>e.trim().toLowerCase()),o={origin:(e,t)=>e?"*"===r||Array.isArray(r)&&r.includes(e.toLowerCase())?t(null,!0):void t(new br(`Origin ${e} not allowed`)):t(null,!0),credentials:!0,methods:t.join(",")};return this.app.enableCors(o),this}static useHelmet(e){try{const t=require("helmet");this.app.use(t(e)),this.logger.log("Helmet middleware enabled successfully.")}catch{this.logger.warn("Helmet not installed. Skipping middleware.")}return this}static setupSwagger(e){return new Sr(this.app,{title:e.title,description:e.description,version:e.version,path:e.path||"api",persistAuthorization:e.persistAuthorization??!0,assetsPath:e.assetsPath,faviconFilePath:e.faviconPath,topbarIconFilePath:e.topbarIconPath,topbarBgColor:e.topbarBgColor,openApiJsonPath:e.openApiJsonPath,openApiYamlPath:e.openApiYamlPath}).setupSwagger(),this}static useGlobalPipes(...e){return e.length>0&&this.app.useGlobalPipes(...e),this}static useGlobalFilters(...e){return this.app.useGlobalFilters(...e.length>0?e:[new Pr(this.app.get(Ue,{strict:!1}))]),this}static useGlobalInterceptors(...e){return e.length>0&&this.app.useGlobalInterceptors(...e),this}static async start(e=Number(process.env.PORT)||3e3,t=void 0,r=!0){this.app.listen(e,t).then(async()=>{if(r){const e=await this.app.getUrl();this.logger.log("\ud83d\ude80 Application is running at: "+e)}})}}var xr;let _r=xr=class{constructor(e,t){this.requestContext=e,this.executor=t}async contextualize(e){const t={headers:e.headers,overrides:{}},r=(e=>{const t=e.headers;function r(e){if(e)return(Array.isArray(e)?e[0]:e).split(",").map(e=>e.trim()).filter(Boolean)[0]}return r(t?.["x-forwarded-for"])??r(t?.["x-real-ip"])??r(t?.["X-Forwarded-For"])??r(t?.["X-Real-IP"])??e.ip})(e),o=Ge.get().for({ip:r});this.requestContext.accumulate(Object.assign({},te,{logger:o,timestamp:new Date,operation:`${e.method} ${e.url}`},t))}async intercept(e,t){const r=e.switchToHttp().getRequest(),o=e.switchToHttp().getResponse(),s=Ge.for(xr).for(this.intercept);return s.debug(`CONTEXT ${this.requestContext.uuid} - request: ${r.method} ${r.url}`),await this.contextualize(r),s.debug(`CONTEXT ${this.requestContext.uuid} contextualized - request: ${r.method} ${r.url}`),await this.executor.exec(r,o),s.debug(`CONTEXT ${this.requestContext.uuid} executors finished - request: ${r.method} ${r.url}`),t.handle()}};_r=xr=Ie([h({scope:m.REQUEST}),ke("design:paramtypes",[Lt,rr])],_r);const Cr=new Map;function $r(){return Array.from(Cr.values())}function qr(e,t){Cr.has(e)||Cr.set(e,{provide:e,useFactory:t})}function Ir(e){return(t,r,o)=>{let s=e;if(void 0===s){const e=Reflect.getMetadata("design:paramtypes",t)||[];s=e[o]}if(void 0===s)throw new De(`@Service() could not determine an injection type for parameter ${o} of ${t.name}. Provide an explicit argument, e.g. @Service(SomeService).`);const i="string"!=typeof s&&"function"==typeof(n=s)&&n.prototype instanceof F;var n;const a=i?s.name+"Service":re(s);return qr(a,()=>{if(i)try{return J.get(s)}catch{return Q.forModel(s)}return J.get(s)}),g(a)(t,r,o)}}function Nr(e,t){return(r,o,s)=>{const i=((e,t)=>t?`${e.name}Repository@${t}`:e.name+"Repository")(e,t);return qr(i,()=>X.forModel(e,t)),g(i)(r,o,s)}}var kr;let Mr=class{static{kr=this}static get persistence(){if(!this._persistence)throw new De("Persistence service not initialized");return this._persistence}static get log(){return this._logger||(this._logger=Ge.for(kr)),this._logger}constructor(e,t){this.options=e,this.moduleRef=t}static forRoot(e){const t=this.log.for(this.forRoot),r=$r();return{module:kr,providers:[{provide:Rt,useValue:e},{provide:wt,useValue:this.persistence?.client},{provide:Dt,useFactory:()=>e.handlers?.map(e=>(t.info("Registered request handler: "+e.name),new e))??[]},Lt,rr,{provide:Le,useClass:_r},...r],exports:[Rt,wt,Dt,Lt,rr,...r.map(e=>e.provide)]}}static async bootPersistence(e){const t=this.log.for(this.bootPersistence);if(!this._persistence){const r=e.conf.map(([e,t,...r])=>r.pop()?[e,t,...r]:[e,t]);this._persistence=new oe,await this._persistence.boot(r);const o=this._persistence.client;for(let t=0;t<o.length;t++){const r=e.conf[t];let s=r.slice(2,r.length).pop();if(!s||!s.from){const e=H.transformerFor(o[t].flavour);if(!e)throw new De(`No transformer found for flavour ${o[t].flavour}. you should either @requestToContextTransformer or provide a transformer in the config`);try{s=e.from?e:new e}catch(e){throw new De(`Failed to boot transformer for ${o[t].flavour}: ${e}`)}}Ve(o[t].flavour)(s)}if(t.info("persistence layer created successfully!"),e.initialization)try{await e.initialization()}catch(e){throw new De("Failed to initialize application: "+e)}}return this.persistence.client}async onApplicationShutdown(){const e=kr.log.for(this.onApplicationShutdown),t=this.moduleRef.get(wt);for(const r of t)try{r&&(e.info("Shutting down "+r.toString()),await r.shutdown())}catch(t){e.error("Failed to shutdown application",t)}try{await J.shutdown()}catch(t){e.error("Failed to shutdown services",t)}}};Mr=kr=Ie([k(),A({}),Ne(0,g(Rt)),ke("design:paramtypes",[Object,Ue])],Mr);const Fr=Symbol("LISTENING_ADAPTERS_FLAVOURS");var Lr;let Ur=Lr=class extends sr{constructor(e,t){super(e,Lr.name),this.adapters=t.map(e=>H.get(e))}listen(){const e=Ge.for(Lr.name),t=new Ze(t=>{const r=("B-"+Math.random().toString(36).slice(2,8)).toUpperCase();e.info(`Creating SSE observer: ${r} for client ${this.clientContext.uuid}`);const o=new class{constructor(){this.observerId=r}refresh(...r){return e.debug(`SSE observer ${this.observerId} received refresh event`),Promise.resolve().then(()=>{const o=(e=>{const[t,r,o,s]=e;return[t?.name??t,r,o,Array.isArray(s)?s.map(e=>{try{return"function"==typeof e.serialize?e.serialize():"string"==typeof e?e:JSON.stringify(e)}catch(e){return}}):s&&"function"==typeof s.serialize?s.serialize():"string"==typeof s?s:JSON.stringify(s)]})(r);t.next({type:"message",data:o}),e.debug(`SSE observer ${this.observerId} event pushed to client`)})}};e.verbose(`Registering observer ${r} across ${this.adapters.length} adapter(s)`);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Registering observer ${r} in adapter ${s}`),t.observe(o)}catch(t){e.debug(`Failed to register observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}return()=>{e.debug("Cleaning up SSE observer "+r);for(const t of this.adapters){const s=t?.constructor?.name??"UnknownAdapter";try{e.debug(`Unregistering observer ${r} from adapter ${s}`),t.unObserve(o)}catch(t){e.debug(`Failed during cleanup of observer ${r} in adapter ${s}: ${t?.message||t}`),e.error(t)}}}}),r=et(15e3).pipe(it(()=>{e.debug("Sending heartbeat")}),nt(()=>({type:"heartbeat",data:{ts:(new Date).toISOString()}})));return tt(t,r)}listenForModel(e){const t=Ge.for(Lr.name);return new Ze(e=>{const r=new class{refresh(...t){return Promise.resolve().then(()=>{e.next({data:t})})}};try{for(const e of this.adapters)e.observe(r)}catch(t){e.error("Failed to observe event: "+(t.message||t))}return()=>{try{for(const e of this.adapters)e.unObserve(r)}catch(e){t.error(e)}}})}};var Br;Ie([M(),ke("design:type",Function),ke("design:paramtypes",[]),ke("design:returntype",Ze)],Ur.prototype,"listen",null),Ie([M("/:model"),Ne(0,E("model")),ke("design:type",Function),ke("design:paramtypes",[String]),ke("design:returntype",Ze)],Ur.prototype,"listenForModel",null),Ur=Lr=Ie([P(),Ne(1,g(Fr)),ke("design:paramtypes",[Lt,Array])],Ur);let jr=Br=class{static forFlavours(e,t="events"){return{module:Br,controllers:[Ur],imports:[je.register([{path:t.replace(/^\//,""),module:Br}])],providers:[Lt,{provide:Fr,useValue:e??[]}]}}};var Gr;jr=Br=Ie([A({})],jr);let Hr=Gr=class{static async forRootAsync(e){const{autoControllers:t,autoServices:r}=e,o=(await Mr.bootPersistence(e)).map(e=>e.flavour),s=[Mr.forRoot(e)];return t&&o.forEach(t=>{s.push(vr(t).forRoot(t,{autoServices:r,controllerExposure:e.controllerExposure,controllerConfig:e.controllerConfig,aggregations:e.aggregations}))}),e.observerOptions?.enableObserverEvents&&s.push(jr.forFlavours(e.observerOptions.observerFlavours||o)),{module:Gr,imports:s}}};async function Wr(){}function zr(e){const t=F.get(e);if(!t)throw new De("Failed to find repository for "+e);return X.forModel(t)}Hr=Gr=Ie([A({})],Hr);const Qr="##VERSION##",Yr="##COMMIT##",Jr="##FULL_VERSION##",Xr="##PACKAGE##";t.allowReregistration(!0),t.registerLibrary(Xr,Qr),t.allowReregistration(!1);export{It as AUTH_HANDLER,Nt as AUTH_META_KEY,gt as ApiOperationFromModel,bt as ApiParamsFromModel,ht as ApiProperty,Bt as Auth,Ut as AuthInterceptor,yt as BulkApiOperationFromModel,Yr as COMMIT,br as CorsError,wt as DECAF_ADAPTER_ID,Ct as DECAF_CONTEXT_KEY,_t as DECAF_CONTROLLER_CONFIG,xt as DECAF_EXPOSE,Dt as DECAF_HANDLERS,Rt as DECAF_MODULE_OPTIONS,St as DECAF_ROUTE,Tt as DECAF_TASK_SERVICE_ID,ct as DECORATORS,at as DECORATORS_PREFIX,Vt as DecafAuthHandler,er as DecafAuthModule,Et as DecafBody,sr as DecafController,Mr as DecafCoreModule,Pr as DecafExceptionFilter,rr as DecafHandlerExecutor,ir as DecafModelController,Hr as DecafModule,Pt as DecafParams,Lt as DecafRequestContext,_r as DecafRequestHandlerInterceptor,or as DecafResponseInterceptor,Kt as DecafRoleAuthHandler,jr as DecafStreamModule,ar as DtoFor,Ur as EventsController,Jr as FULL_VERSION,yr as FromModelController,kt as IS_PUBLIC_KEY,Dr as NestBootstraper,Xr as PACKAGE_NAME,jt as Public,Mt as REQUIRED_ROLES_KEY,Nr as Repository,Gt as RequireRoles,Ft as SKIP_MODEL_ROLES_KEY,Ir as Service,Sr as SwaggerBuilder,Or as UseDecafFilter,Rr as UseDecafHeaders,Qr as VERSION,Qt as applyApiDecorators,qt as controllerConfig,mt as createApiPropertyDecorator,ft as createPropertyDecorator,Jt as createRouteHandler,Xt as defineRouteMethod,$t as expose,zt as getApiDecorators,lt as getEnumType,dt as getEnumValues,vr as getModuleFor,$r as getRegisteredDecafProviders,ut as isUndefined,zr as repoForModel,Yt as resolvePersistenceMethod,Wr as runMigrations};
2
2
  //# sourceMappingURL=for-nest.js.map