aws-service-stack 0.18.421 → 0.18.424

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 (321) hide show
  1. package/dist/_examples/controller/local-task-controller.d.ts +17 -0
  2. package/dist/_examples/controller/local-task-controller.d.ts.map +1 -0
  3. package/dist/_examples/controller/local-task-controller.js +87 -0
  4. package/dist/_examples/controller/local-task-controller.js.map +1 -0
  5. package/dist/_examples/controller/order/order-config.d.ts +7 -0
  6. package/dist/_examples/controller/order/order-config.d.ts.map +1 -0
  7. package/dist/_examples/controller/order/order-config.js +54 -0
  8. package/dist/_examples/controller/order/order-config.js.map +1 -0
  9. package/dist/_examples/controller/order/order-controller-cron.d.ts +8 -0
  10. package/dist/_examples/controller/order/order-controller-cron.d.ts.map +1 -0
  11. package/dist/_examples/controller/order/order-controller-cron.js +58 -0
  12. package/dist/_examples/controller/order/order-controller-cron.js.map +1 -0
  13. package/dist/_examples/controller/order/order-controller-streamer.d.ts +7 -0
  14. package/dist/_examples/controller/order/order-controller-streamer.d.ts.map +1 -0
  15. package/dist/_examples/controller/order/order-controller-streamer.js +60 -0
  16. package/dist/_examples/controller/order/order-controller-streamer.js.map +1 -0
  17. package/dist/_examples/controller/order/order-controller.d.ts +15 -0
  18. package/dist/_examples/controller/order/order-controller.d.ts.map +1 -0
  19. package/dist/_examples/controller/order/order-controller.js +121 -0
  20. package/dist/_examples/controller/order/order-controller.js.map +1 -0
  21. package/dist/_examples/controller/order/order-cron.d.ts +6 -0
  22. package/dist/_examples/controller/order/order-cron.d.ts.map +1 -0
  23. package/dist/_examples/controller/order/order-cron.js +57 -0
  24. package/dist/_examples/controller/order/order-cron.js.map +1 -0
  25. package/dist/_examples/controller/order/order-crud.d.ts +5 -0
  26. package/dist/_examples/controller/order/order-crud.d.ts.map +1 -0
  27. package/dist/_examples/controller/order/order-crud.js +57 -0
  28. package/dist/_examples/controller/order/order-crud.js.map +1 -0
  29. package/dist/_examples/controller/order/order-streamer.d.ts +5 -0
  30. package/dist/_examples/controller/order/order-streamer.d.ts.map +1 -0
  31. package/dist/_examples/controller/order/order-streamer.js +57 -0
  32. package/dist/_examples/controller/order/order-streamer.js.map +1 -0
  33. package/dist/_examples/controller/order-item/order-item-config.d.ts +7 -0
  34. package/dist/_examples/controller/order-item/order-item-config.d.ts.map +1 -0
  35. package/dist/_examples/controller/order-item/order-item-config.js +43 -0
  36. package/dist/_examples/controller/order-item/order-item-config.js.map +1 -0
  37. package/dist/_examples/controller/order-item/order-item-controller-streamer.d.ts +7 -0
  38. package/dist/_examples/controller/order-item/order-item-controller-streamer.d.ts.map +1 -0
  39. package/dist/_examples/controller/order-item/order-item-controller-streamer.js +60 -0
  40. package/dist/_examples/controller/order-item/order-item-controller-streamer.js.map +1 -0
  41. package/dist/_examples/controller/order-item/order-item-controller.d.ts +12 -0
  42. package/dist/_examples/controller/order-item/order-item-controller.d.ts.map +1 -0
  43. package/dist/_examples/controller/order-item/order-item-controller.js +78 -0
  44. package/dist/_examples/controller/order-item/order-item-controller.js.map +1 -0
  45. package/dist/_examples/controller/order-item/order-item-crud.d.ts +5 -0
  46. package/dist/_examples/controller/order-item/order-item-crud.d.ts.map +1 -0
  47. package/dist/_examples/controller/order-item/order-item-crud.js +57 -0
  48. package/dist/_examples/controller/order-item/order-item-crud.js.map +1 -0
  49. package/dist/_examples/controller/order-item/order-item-streamer.d.ts +5 -0
  50. package/dist/_examples/controller/order-item/order-item-streamer.d.ts.map +1 -0
  51. package/dist/_examples/controller/order-item/order-item-streamer.js +57 -0
  52. package/dist/_examples/controller/order-item/order-item-streamer.js.map +1 -0
  53. package/dist/_examples/controller/profile/profile-crud-simple.d.ts +1 -0
  54. package/dist/_examples/controller/profile/profile-crud-simple.d.ts.map +1 -0
  55. package/dist/_examples/controller/profile/profile-crud.d.ts +2 -1
  56. package/dist/_examples/controller/profile/profile-crud.d.ts.map +1 -0
  57. package/dist/_examples/controller/profile/profile.config.d.ts +1 -0
  58. package/dist/_examples/controller/profile/profile.config.d.ts.map +1 -0
  59. package/dist/_examples/controller/profile/profile.config.js +20 -45
  60. package/dist/_examples/controller/profile/profile.config.js.map +1 -1
  61. package/dist/_examples/controller/profile/profile.controller.d.ts +4 -3
  62. package/dist/_examples/controller/profile/profile.controller.d.ts.map +1 -0
  63. package/dist/_examples/controller/profile/profile.controller.js +10 -3
  64. package/dist/_examples/controller/profile/profile.controller.js.map +1 -1
  65. package/dist/_examples/model-shared/example.model.d.ts +1 -0
  66. package/dist/_examples/model-shared/example.model.d.ts.map +1 -0
  67. package/dist/_examples/model-shared/order.model.d.ts +74 -0
  68. package/dist/_examples/model-shared/order.model.d.ts.map +1 -0
  69. package/dist/_examples/model-shared/order.model.js +12 -0
  70. package/dist/_examples/model-shared/order.model.js.map +1 -0
  71. package/dist/_examples/repositories/order/order-db.repo.d.ts +8 -0
  72. package/dist/_examples/repositories/order/order-db.repo.d.ts.map +1 -0
  73. package/dist/_examples/repositories/order/order-db.repo.interface.d.ts +5 -0
  74. package/dist/_examples/repositories/order/order-db.repo.interface.d.ts.map +1 -0
  75. package/dist/_examples/repositories/order/order-db.repo.interface.js +3 -0
  76. package/dist/_examples/repositories/order/order-db.repo.interface.js.map +1 -0
  77. package/dist/_examples/repositories/order/order-db.repo.js +20 -0
  78. package/dist/_examples/repositories/order/order-db.repo.js.map +1 -0
  79. package/dist/_examples/repositories/order/order-item-db.repo.d.ts +8 -0
  80. package/dist/_examples/repositories/order/order-item-db.repo.d.ts.map +1 -0
  81. package/dist/_examples/repositories/order/order-item-db.repo.interface.d.ts +5 -0
  82. package/dist/_examples/repositories/order/order-item-db.repo.interface.d.ts.map +1 -0
  83. package/dist/_examples/repositories/order/order-item-db.repo.interface.js +3 -0
  84. package/dist/_examples/repositories/order/order-item-db.repo.interface.js.map +1 -0
  85. package/dist/_examples/repositories/order/order-item-db.repo.js +20 -0
  86. package/dist/_examples/repositories/order/order-item-db.repo.js.map +1 -0
  87. package/dist/_examples/repositories/profile/profile-repo-db.d.ts +1 -0
  88. package/dist/_examples/repositories/profile/profile-repo-db.d.ts.map +1 -0
  89. package/dist/_examples/repositories/profile/profile-repo-db.interface.d.ts +1 -0
  90. package/dist/_examples/repositories/profile/profile-repo-db.interface.d.ts.map +1 -0
  91. package/dist/_examples/service/order/order-item-service-stream.d.ts +13 -0
  92. package/dist/_examples/service/order/order-item-service-stream.d.ts.map +1 -0
  93. package/dist/_examples/service/order/order-item-service-stream.interface.d.ts +5 -0
  94. package/dist/_examples/service/order/order-item-service-stream.interface.d.ts.map +1 -0
  95. package/dist/_examples/service/order/order-item-service-stream.interface.js +3 -0
  96. package/dist/_examples/service/order/order-item-service-stream.interface.js.map +1 -0
  97. package/dist/_examples/service/order/order-item-service-stream.js +81 -0
  98. package/dist/_examples/service/order/order-item-service-stream.js.map +1 -0
  99. package/dist/_examples/service/order/order-item-service.d.ts +16 -0
  100. package/dist/_examples/service/order/order-item-service.d.ts.map +1 -0
  101. package/dist/_examples/service/order/order-item-service.interface.d.ts +14 -0
  102. package/dist/_examples/service/order/order-item-service.interface.d.ts.map +1 -0
  103. package/dist/_examples/service/order/order-item-service.interface.js +3 -0
  104. package/dist/_examples/service/order/order-item-service.interface.js.map +1 -0
  105. package/dist/_examples/service/order/order-item-service.js +120 -0
  106. package/dist/_examples/service/order/order-item-service.js.map +1 -0
  107. package/dist/_examples/service/order/order-service-stream.d.ts +12 -0
  108. package/dist/_examples/service/order/order-service-stream.d.ts.map +1 -0
  109. package/dist/_examples/service/order/order-service-stream.interface.d.ts +5 -0
  110. package/dist/_examples/service/order/order-service-stream.interface.d.ts.map +1 -0
  111. package/dist/_examples/service/order/order-service-stream.interface.js +3 -0
  112. package/dist/_examples/service/order/order-service-stream.interface.js.map +1 -0
  113. package/dist/_examples/service/order/order-service-stream.js +80 -0
  114. package/dist/_examples/service/order/order-service-stream.js.map +1 -0
  115. package/dist/_examples/service/order/order-service.d.ts +19 -0
  116. package/dist/_examples/service/order/order-service.d.ts.map +1 -0
  117. package/dist/_examples/service/order/order-service.interface.d.ts +14 -0
  118. package/dist/_examples/service/order/order-service.interface.d.ts.map +1 -0
  119. package/dist/_examples/service/order/order-service.interface.js +3 -0
  120. package/dist/_examples/service/order/order-service.interface.js.map +1 -0
  121. package/dist/_examples/service/order/order-service.js +127 -0
  122. package/dist/_examples/service/order/order-service.js.map +1 -0
  123. package/dist/_examples/service/profile-service.d.ts +3 -3
  124. package/dist/_examples/service/profile-service.d.ts.map +1 -0
  125. package/dist/_examples/service/profile-service.interface.d.ts +2 -1
  126. package/dist/_examples/service/profile-service.interface.d.ts.map +1 -0
  127. package/dist/_examples/service/profile-service.interface.js.map +1 -1
  128. package/dist/_examples/service/profile-service.js +14 -14
  129. package/dist/_examples/service/profile-service.js.map +1 -1
  130. package/dist/controller/base-controller.d.ts +1 -0
  131. package/dist/controller/base-controller.d.ts.map +1 -0
  132. package/dist/controller/base-controller.js +14 -13
  133. package/dist/controller/base-controller.js.map +1 -1
  134. package/dist/controller/controller-api.d.ts +1 -0
  135. package/dist/controller/controller-api.d.ts.map +1 -0
  136. package/dist/controller/controller-api.js +14 -14
  137. package/dist/controller/controller-api.js.map +1 -1
  138. package/dist/controller/controller-request.d.ts +1 -0
  139. package/dist/controller/controller-request.d.ts.map +1 -0
  140. package/dist/controller/controller-request.js +2 -2
  141. package/dist/controller/controller-request.js.map +1 -1
  142. package/dist/controller/controller-role.d.ts +1 -0
  143. package/dist/controller/controller-role.d.ts.map +1 -0
  144. package/dist/controller/controller-role.js +7 -5
  145. package/dist/controller/controller-role.js.map +1 -1
  146. package/dist/controller/controller-stream.d.ts +1 -0
  147. package/dist/controller/controller-stream.d.ts.map +1 -0
  148. package/dist/controller/index.d.ts +1 -0
  149. package/dist/controller/index.d.ts.map +1 -0
  150. package/dist/exception/errors.d.ts +28 -11
  151. package/dist/exception/errors.d.ts.map +1 -0
  152. package/dist/exception/errors.js +35 -8
  153. package/dist/exception/errors.js.map +1 -1
  154. package/dist/exception/exception-handler.d.ts +6 -0
  155. package/dist/exception/exception-handler.d.ts.map +1 -0
  156. package/dist/exception/exception-handler.js +3 -1
  157. package/dist/exception/exception-handler.js.map +1 -1
  158. package/dist/exception/index.d.ts +1 -0
  159. package/dist/exception/index.d.ts.map +1 -0
  160. package/dist/function/cognito/cognito.function.d.ts +1 -0
  161. package/dist/function/cognito/cognito.function.d.ts.map +1 -0
  162. package/dist/function/cognito/index.d.ts +1 -0
  163. package/dist/function/cognito/index.d.ts.map +1 -0
  164. package/dist/function/index.d.ts +1 -0
  165. package/dist/function/index.d.ts.map +1 -0
  166. package/dist/function/logger.d.ts +1 -0
  167. package/dist/function/logger.d.ts.map +1 -0
  168. package/dist/function/s3/index.d.ts +1 -0
  169. package/dist/function/s3/index.d.ts.map +1 -0
  170. package/dist/function/s3/s3.function.d.ts +1 -0
  171. package/dist/function/s3/s3.function.d.ts.map +1 -0
  172. package/dist/index.d.ts +1 -0
  173. package/dist/index.d.ts.map +1 -0
  174. package/dist/model/base.config.d.ts +1 -0
  175. package/dist/model/base.config.d.ts.map +1 -0
  176. package/dist/model/base.model.d.ts +1 -0
  177. package/dist/model/base.model.d.ts.map +1 -0
  178. package/dist/model/cognito-user.model.d.ts +1 -0
  179. package/dist/model/cognito-user.model.d.ts.map +1 -0
  180. package/dist/model/dynamodb.model.d.ts +1 -0
  181. package/dist/model/dynamodb.model.d.ts.map +1 -0
  182. package/dist/model/filter.model.d.ts +2 -0
  183. package/dist/model/filter.model.d.ts.map +1 -0
  184. package/dist/model/filter.model.js.map +1 -1
  185. package/dist/model/http.model.d.ts +1 -0
  186. package/dist/model/http.model.d.ts.map +1 -0
  187. package/dist/model/index.d.ts +1 -0
  188. package/dist/model/index.d.ts.map +1 -0
  189. package/dist/model/role.model.d.ts +1 -0
  190. package/dist/model/role.model.d.ts.map +1 -0
  191. package/dist/model/validation.model.d.ts +1 -0
  192. package/dist/model/validation.model.d.ts.map +1 -0
  193. package/dist/provider/apigateway.d.ts +1 -0
  194. package/dist/provider/apigateway.d.ts.map +1 -0
  195. package/dist/provider/dynamodb.d.ts +1 -0
  196. package/dist/provider/dynamodb.d.ts.map +1 -0
  197. package/dist/provider/index.d.ts +1 -0
  198. package/dist/provider/index.d.ts.map +1 -0
  199. package/dist/provider/opensearch.d.ts +1 -0
  200. package/dist/provider/opensearch.d.ts.map +1 -0
  201. package/dist/repositories/base-core.repo.interface.d.ts +10 -4
  202. package/dist/repositories/base-core.repo.interface.d.ts.map +1 -0
  203. package/dist/repositories/base-core.repo.interface.js.map +1 -1
  204. package/dist/repositories/base-db.repo.d.ts +14 -8
  205. package/dist/repositories/base-db.repo.d.ts.map +1 -0
  206. package/dist/repositories/base-db.repo.interface.d.ts +25 -4
  207. package/dist/repositories/base-db.repo.interface.d.ts.map +1 -0
  208. package/dist/repositories/base-db.repo.interface.js.map +1 -1
  209. package/dist/repositories/base-db.repo.js +70 -26
  210. package/dist/repositories/base-db.repo.js.map +1 -1
  211. package/dist/repositories/base-es.repo.d.ts +2 -1
  212. package/dist/repositories/base-es.repo.d.ts.map +1 -0
  213. package/dist/repositories/base-es.repo.interface.d.ts +1 -0
  214. package/dist/repositories/base-es.repo.interface.d.ts.map +1 -0
  215. package/dist/repositories/base-es.repo.js +2 -2
  216. package/dist/repositories/base-es.repo.js.map +1 -1
  217. package/dist/repositories/index.d.ts +1 -0
  218. package/dist/repositories/index.d.ts.map +1 -0
  219. package/dist/service/api.services/api.service.d.ts +1 -0
  220. package/dist/service/api.services/api.service.d.ts.map +1 -0
  221. package/dist/service/api.services/api.service.interface.d.ts +1 -0
  222. package/dist/service/api.services/api.service.interface.d.ts.map +1 -0
  223. package/dist/service/api.services/index.d.ts +1 -0
  224. package/dist/service/api.services/index.d.ts.map +1 -0
  225. package/dist/service/auth.service.d.ts +1 -0
  226. package/dist/service/auth.service.d.ts.map +1 -0
  227. package/dist/service/auth.service.interface.d.ts +1 -0
  228. package/dist/service/auth.service.interface.d.ts.map +1 -0
  229. package/dist/service/base.service.d.ts +5 -3
  230. package/dist/service/base.service.d.ts.map +1 -0
  231. package/dist/service/base.service.interface.d.ts +21 -10
  232. package/dist/service/base.service.interface.d.ts.map +1 -0
  233. package/dist/service/base.service.interface.js.map +1 -1
  234. package/dist/service/base.service.js +14 -11
  235. package/dist/service/base.service.js.map +1 -1
  236. package/dist/service/crud-operations.d.ts +103 -0
  237. package/dist/service/crud-operations.d.ts.map +1 -0
  238. package/dist/service/crud-operations.js +459 -0
  239. package/dist/service/crud-operations.js.map +1 -0
  240. package/dist/service/crud.service.d.ts +12 -18
  241. package/dist/service/crud.service.d.ts.map +1 -0
  242. package/dist/service/crud.service.interface.d.ts +55 -13
  243. package/dist/service/crud.service.interface.d.ts.map +1 -0
  244. package/dist/service/crud.service.interface.js.map +1 -1
  245. package/dist/service/crud.service.js +53 -351
  246. package/dist/service/crud.service.js.map +1 -1
  247. package/dist/service/index.d.ts +2 -0
  248. package/dist/service/index.d.ts.map +1 -0
  249. package/dist/service/index.js +1 -0
  250. package/dist/service/index.js.map +1 -1
  251. package/dist/service/key-aws.services.d.ts +1 -0
  252. package/dist/service/key-aws.services.d.ts.map +1 -0
  253. package/dist/service/key.services.interface.d.ts +1 -0
  254. package/dist/service/key.services.interface.d.ts.map +1 -0
  255. package/dist/service/permission.cache.d.ts +1 -0
  256. package/dist/service/permission.cache.d.ts.map +1 -0
  257. package/dist/service/permission.repo.d.ts +1 -0
  258. package/dist/service/permission.repo.d.ts.map +1 -0
  259. package/dist/service/permission.service.d.ts +3 -0
  260. package/dist/service/permission.service.d.ts.map +1 -0
  261. package/dist/service/permission.service.js +29 -13
  262. package/dist/service/permission.service.js.map +1 -1
  263. package/dist/service/socket.service.d.ts +1 -0
  264. package/dist/service/socket.service.d.ts.map +1 -0
  265. package/dist/service/socket.service.interface.d.ts +1 -0
  266. package/dist/service/socket.service.interface.d.ts.map +1 -0
  267. package/dist/service/stream.service.d.ts +1 -0
  268. package/dist/service/stream.service.d.ts.map +1 -0
  269. package/dist/service/stream.service.interface.d.ts +1 -0
  270. package/dist/service/stream.service.interface.d.ts.map +1 -0
  271. package/dist/service/validation.service.interface.d.ts +1 -0
  272. package/dist/service/validation.service.interface.d.ts.map +1 -0
  273. package/dist/utils/array.util.d.ts +1 -0
  274. package/dist/utils/array.util.d.ts.map +1 -0
  275. package/dist/utils/auth.util.d.ts +1 -0
  276. package/dist/utils/auth.util.d.ts.map +1 -0
  277. package/dist/utils/data.util.d.ts +1 -0
  278. package/dist/utils/data.util.d.ts.map +1 -0
  279. package/dist/utils/date.util.d.ts +1 -0
  280. package/dist/utils/date.util.d.ts.map +1 -0
  281. package/dist/utils/dynamodb.utils.d.ts +2 -1
  282. package/dist/utils/dynamodb.utils.d.ts.map +1 -0
  283. package/dist/utils/dynamodb.utils.js +105 -30
  284. package/dist/utils/dynamodb.utils.js.map +1 -1
  285. package/dist/utils/env.util.d.ts +1 -0
  286. package/dist/utils/env.util.d.ts.map +1 -0
  287. package/dist/utils/error.util.d.ts +1 -0
  288. package/dist/utils/error.util.d.ts.map +1 -0
  289. package/dist/utils/http/http-request.d.ts +1 -0
  290. package/dist/utils/http/http-request.d.ts.map +1 -0
  291. package/dist/utils/http/http.util.d.ts +1 -0
  292. package/dist/utils/http/http.util.d.ts.map +1 -0
  293. package/dist/utils/index.d.ts +1 -0
  294. package/dist/utils/index.d.ts.map +1 -0
  295. package/dist/utils/json.util.d.ts +1 -0
  296. package/dist/utils/json.util.d.ts.map +1 -0
  297. package/dist/utils/opensearch/opensearch.parser.aggs.d.ts +1 -0
  298. package/dist/utils/opensearch/opensearch.parser.aggs.d.ts.map +1 -0
  299. package/dist/utils/opensearch/opensearch.parser.d.ts +1 -0
  300. package/dist/utils/opensearch/opensearch.parser.d.ts.map +1 -0
  301. package/dist/utils/opensearch/opensearch.parser.keyword.d.ts +1 -0
  302. package/dist/utils/opensearch/opensearch.parser.keyword.d.ts.map +1 -0
  303. package/dist/utils/opensearch/opensearch.parser.query.map.d.ts +1 -0
  304. package/dist/utils/opensearch/opensearch.parser.query.map.d.ts.map +1 -0
  305. package/dist/utils/opensearch/opensearch.parser.sort.d.ts +1 -0
  306. package/dist/utils/opensearch/opensearch.parser.sort.d.ts.map +1 -0
  307. package/dist/utils/opensearch/opensearch.parser.utils.d.ts +1 -0
  308. package/dist/utils/opensearch/opensearch.parser.utils.d.ts.map +1 -0
  309. package/dist/utils/opensearch/opensearch.transform.d.ts +1 -0
  310. package/dist/utils/opensearch/opensearch.transform.d.ts.map +1 -0
  311. package/dist/utils/opensearch.utils.d.ts +1 -0
  312. package/dist/utils/opensearch.utils.d.ts.map +1 -0
  313. package/dist/utils/reflection.util.d.ts +1 -0
  314. package/dist/utils/reflection.util.d.ts.map +1 -0
  315. package/dist/utils/reflection.util.js +7 -8
  316. package/dist/utils/reflection.util.js.map +1 -1
  317. package/dist/utils/string.util.d.ts +1 -0
  318. package/dist/utils/string.util.d.ts.map +1 -0
  319. package/dist/utils/validation.util.d.ts +1 -0
  320. package/dist/utils/validation.util.d.ts.map +1 -0
  321. package/package.json +1 -1
@@ -57,3 +57,4 @@ export declare class ControllerRole {
57
57
  private isUnset;
58
58
  private clearScopeFilters;
59
59
  }
60
+ //# sourceMappingURL=controller-role.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-role.d.ts","sourceRoot":"","sources":["../../src/controller/controller-role.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAgDzC,qBAAa,cAAc;IACzB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAExD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAKxB;gBAEU,aAAa,EAAE,MAAM;IAQ3B,aAAa,CAAC,KAAK,EAAE;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;KAC9B,GAAG,OAAO,CAAC,UAAU,CAAC;IAKjB,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,GAC3E,OAAO,CAAC,UAAU,CAAC;IAMhB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK9C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAKrD,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAQpE,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;;;;IAKnE,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;IAKhD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;IAKlE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;IASpE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9F,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAQrE,uBAAuB,CAC3B,GAAG,EAAE,WAAW,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,GAAG,CAAC;IAgCT,WAAW,CACf,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,GACtC,OAAO,CAAC,OAAO,CAAC;IAyBnB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;IASnE,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ;YAIF,oBAAoB;IAYlC,OAAO,CAAC,QAAQ;YAcF,oBAAoB;IAgClC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,iBAAiB;IAmBzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,iBAAiB;CAQ1B"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ControllerRole = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const exception_1 = require("../exception");
6
+ const exception_2 = require("../exception");
6
7
  const permission_service_1 = require("../service/permission.service");
7
8
  const cognito_1 = require("../function/cognito");
8
9
  const validation_util_1 = require("../utils/validation.util");
@@ -127,7 +128,7 @@ class ControllerRole {
127
128
  case "DELETE":
128
129
  return this.deletePermission(req.entityId);
129
130
  default:
130
- throw new exception_1.ErrorHttp({ code: 400, error: "BadRequest" }, "[CORE] unsupported method");
131
+ throw new exception_1.ErrorHttp(exception_2.HTTP.BAD_REQUEST, "[CORE] unsupported method");
131
132
  }
132
133
  }
133
134
  // ---------------------------------------------------------------------------
@@ -161,7 +162,7 @@ class ControllerRole {
161
162
  // Private — error + auth helpers
162
163
  // ---------------------------------------------------------------------------
163
164
  deny(message = "Permission denied: no role accessible") {
164
- throw new exception_1.ErrorHttp({ code: 403, error: "PermissionDenied" }, message);
165
+ throw new exception_1.ErrorHttp(exception_2.HTTP.FORBIDDEN, message);
165
166
  }
166
167
  isAdmin(cognitoGroups, adminGroups) {
167
168
  adminGroups = (0, string_util_1.normalizeLower)(adminGroups);
@@ -186,7 +187,8 @@ class ControllerRole {
186
187
  }
187
188
  catch (error) {
188
189
  const formattedErrors = (0, validation_util_1.formatErrors)(error);
189
- throw new exception_1.ErrorHttp({ code: 400, error: "BadRequest" }, formattedErrors);
190
+ const firstError = formattedErrors[0]?.message || "Validation failed";
191
+ throw new exception_1.ErrorHttp(exception_2.HTTP.BAD_REQUEST, firstError, formattedErrors);
190
192
  }
191
193
  }
192
194
  // ---------------------------------------------------------------------------
@@ -202,11 +204,11 @@ class ControllerRole {
202
204
  if (!findById)
203
205
  return;
204
206
  if (!req.entityId) {
205
- throw new exception_1.ErrorHttp({ code: 400, error: "BadRequest" }, "Missing resource id");
207
+ throw new exception_1.ErrorHttp(exception_2.HTTP.BAD_REQUEST, "Missing resource id");
206
208
  }
207
209
  const entity = await findById(req.entityId);
208
210
  if (!entity) {
209
- throw new exception_1.ErrorHttp({ code: 404, error: "NotFound" }, `Resource with id "${req.entityId}" not found`);
211
+ throw new exception_1.ErrorHttp(exception_2.HTTP.NOT_FOUND, `Resource with id "${req.entityId}" not found`);
210
212
  }
211
213
  if (entity[mapping.filterField] !== claimValue) {
212
214
  this.deny(`Scope mismatch: no access to resource "${req.entityId}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"controller-role.js","sourceRoot":"","sources":["../../src/controller/controller-role.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\nimport { ErrorHttp } from \"../exception\";\nimport { Permission } from \"../model/role.model\";\nimport { List, PermissionMap, ScopeMap } from \"../model/base.model\";\nimport { HttpRequest } from \"../utils/http/http.util\";\nimport { PermissionService } from \"../service/permission.service\";\nimport { createGroup, deleteGroup, addUserToGroup, removeUserFromGroup } from \"../function/cognito\";\nimport { validateWithSchema, formatErrors } from \"../utils/validation.util\";\nimport { normalizeLower, trimSpecialChar } from \"../utils/string.util\";\nimport { Filter } from \"@chinggis/types\";\n\n// ---------------------------------------------------------------------------\n// DTO Schemas\n// ---------------------------------------------------------------------------\n\nconst MethodSchema = z.object({\n GET: z.boolean().optional(),\n POST: z.boolean().optional(),\n PATCH: z.boolean().optional(),\n PUT: z.boolean().optional(),\n DELETE: z.boolean().optional(),\n});\n\nconst AddPermissionDto = z.object({\n role: z.string().min(1, \"Role is required\"),\n resource: z.string().min(1, \"Resource is required\"),\n scope: z.string().min(1, \"Scope is required\"),\n method: MethodSchema,\n});\n\nconst UpdatePermissionDto = z.object({\n role: z.string().min(1, \"Role is required\").optional(),\n resource: z.string().min(1, \"Resource is required\").optional(),\n scope: z.string().min(1, \"Scope is required\").optional(),\n method: MethodSchema.optional(),\n});\n\nconst IdParamDto = z.string().min(1, \"Id is required\");\n\nconst GroupDto = z.object({\n userPoolId: z.string().min(1, \"UserPoolId is required\"),\n groupName: z.string().min(1, \"GroupName is required\"),\n description: z.string().optional(),\n});\n\nconst UserGroupDto = z.object({\n userPoolId: z.string().min(1, \"UserPoolId is required\"),\n username: z.string().min(1, \"Username is required\"),\n groupName: z.string().min(1, \"GroupName is required\"),\n});\n\n// ---------------------------------------------------------------------------\n\nconst MUTATING_METHODS = new Set([\"PATCH\", \"PUT\", \"DELETE\"]);\n\ntype RouteHandler = (permissionMap: PermissionMap, body: any) => Promise<any>;\n\nexport class ControllerRole {\n protected readonly permissionService: PermissionService;\n\n private readonly subRoutes: Record<string, RouteHandler> = {\n \"/add-group\": (pm, body) => this.addRole(pm.userPoolId, body.groupName, body.description),\n \"/add-user-group\": (pm, body) => this.assignRole(pm.userPoolId, body.username, body.groupName),\n \"/remove-group\": (pm, body) => this.removeRole(pm.userPoolId, body.groupName),\n \"/remove-user-group\": (pm, body) => this.unassignRole(pm.userPoolId, body.username, body.groupName),\n };\n\n constructor(roleTableName: string) {\n this.permissionService = new PermissionService(roleTableName);\n }\n\n // ---------------------------------------------------------------------------\n // Permission CRUD\n // ---------------------------------------------------------------------------\n\n async addPermission(input: {\n role: string;\n resource: string;\n scope: string;\n method: Permission[\"method\"];\n }): Promise<Permission> {\n this.validate(AddPermissionDto, input);\n return this.permissionService.createPermission(input);\n }\n\n async updatePermission(\n id: string,\n updates: Partial<Pick<Permission, \"role\" | \"resource\" | \"scope\" | \"method\">>,\n ): Promise<Permission> {\n this.validate(IdParamDto, id);\n this.validate(UpdatePermissionDto, updates);\n return this.permissionService.updatePermission(id, updates);\n }\n\n async deletePermission(id: string): Promise<boolean> {\n this.validate(IdParamDto, id);\n return this.permissionService.deletePermission(id);\n }\n\n async getPermission(id: string): Promise<Permission | null> {\n this.validate(IdParamDto, id);\n return this.permissionService.getPermissionById(id);\n }\n\n async listPermissions(filter?: Filter): Promise<List<Partial<Permission>>> {\n return this.permissionService.listPermissions(filter);\n }\n\n // ---------------------------------------------------------------------------\n // Role (Cognito group)\n // ---------------------------------------------------------------------------\n\n async addRole(userPoolId: string, groupName: string, description?: string) {\n this.validate(GroupDto, { userPoolId, groupName, description });\n return createGroup(userPoolId, groupName, description);\n }\n\n async removeRole(userPoolId: string, groupName: string) {\n this.validate(GroupDto, { userPoolId, groupName });\n return deleteGroup(userPoolId, groupName);\n }\n\n async assignRole(userPoolId: string, username: string, groupName: string) {\n this.validate(UserGroupDto, { userPoolId, username, groupName });\n return addUserToGroup(userPoolId, username, groupName);\n }\n\n async unassignRole(userPoolId: string, username: string, groupName: string) {\n this.validate(UserGroupDto, { userPoolId, username, groupName });\n return removeUserFromGroup(userPoolId, username, groupName);\n }\n\n // ---------------------------------------------------------------------------\n // Permission queries\n // ---------------------------------------------------------------------------\n\n async hasPermission(role: string, resource: string, scope: string, method: string): Promise<boolean> {\n return this.permissionService.hasPermission(role, resource, scope, method);\n }\n\n async getPermissionByKey(permissionKey: string): Promise<Permission | null> {\n return this.permissionService.getPermissionByKey(permissionKey);\n }\n\n // ---------------------------------------------------------------------------\n // Permission request handler (routes from ControllerApi)\n // ---------------------------------------------------------------------------\n\n async handlePermissionRequest(\n req: HttpRequest,\n path: string,\n permissionMap: PermissionMap,\n adminGroups: string[],\n ): Promise<any> {\n this.checkAdminPermission(req.identity.groups, adminGroups);\n\n if (req.methode === \"POST\") {\n const normalizedPath = trimSpecialChar(path);\n const rolePath = trimSpecialChar(permissionMap.rolePath ?? \"\");\n\n for (const [suffix, handler] of Object.entries(this.subRoutes)) {\n if (normalizedPath === `${rolePath}${suffix}`) {\n return handler(permissionMap, req.body);\n }\n }\n\n return this.addPermission(req.body);\n }\n\n switch (req.methode) {\n case \"GET\":\n return this.listPermissions(req.filter);\n case \"PATCH\":\n return this.updatePermission(req.entityId, req.body);\n case \"DELETE\":\n return this.deletePermission(req.entityId);\n default:\n throw new ErrorHttp({ code: 400, error: \"BadRequest\" }, \"[CORE] unsupported method\");\n }\n }\n\n // ---------------------------------------------------------------------------\n // RBAC access enforcement\n // ---------------------------------------------------------------------------\n\n async checkAccess(\n req: HttpRequest,\n resource: string,\n scopeMap: ScopeMap,\n adminGroups?: string[],\n findById?: (id: string) => Promise<any>,\n ): Promise<boolean> {\n const roles = this.extractRoles(req);\n if (!roles.length) this.deny();\n\n const method = req.methode.toUpperCase();\n const scope = this.getScope(req, scopeMap);\n\n if (adminGroups?.length && this.isAdmin(roles, adminGroups)) {\n return true;\n }\n\n this.applyMethodFilters(req, method, scope, scopeMap);\n\n const permitted = await this.hasAnyRolePermission(roles, resource, scope, method);\n if (!permitted) {\n this.deny(`Permission denied: ${roles.join(\",\")}: \"${resource}#${scope}.${method}\"`);\n }\n\n if (MUTATING_METHODS.has(method)) {\n await this.verifyScopeOwnership(req, scope, scopeMap, findById);\n }\n\n return true;\n }\n\n checkAdminPermission(cognitoGroups: string[], adminGroups: string[]) {\n if (this.isAdmin(cognitoGroups, adminGroups)) return true;\n this.deny(\"Permission Denied\");\n }\n\n // ---------------------------------------------------------------------------\n // Private — error + auth helpers\n // ---------------------------------------------------------------------------\n\n private deny(message = \"Permission denied: no role accessible\"): never {\n throw new ErrorHttp({ code: 403, error: \"PermissionDenied\" }, message);\n }\n\n private isAdmin(cognitoGroups: string[] | undefined, adminGroups: string[]): boolean {\n adminGroups = normalizeLower(adminGroups);\n return cognitoGroups?.some((group) => adminGroups.includes(group)) ?? false;\n }\n\n private extractRoles(req: HttpRequest): string[] {\n return req.identity?.groups ?? [];\n }\n\n private getScope(req: HttpRequest, scopeMap: ScopeMap): string {\n return req.queryStringParameters?.scope || req.customQueryParameters?.scope || Array.from(scopeMap.keys()).pop();\n }\n\n private async hasAnyRolePermission(\n roles: string[],\n resource: string,\n scope: string,\n method: string,\n ): Promise<boolean> {\n for (const role of roles) {\n if (await this.permissionService.hasPermission(role, resource, scope, method)) return true;\n }\n return false;\n }\n\n private validate<T extends z.ZodType>(schema: T, data: unknown): z.infer<T> {\n try {\n return validateWithSchema(schema, data);\n } catch (error) {\n const formattedErrors = formatErrors(error);\n throw new ErrorHttp({ code: 400, error: \"BadRequest\" }, formattedErrors);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Private — scope ownership verification\n // ---------------------------------------------------------------------------\n\n private async verifyScopeOwnership(\n req: HttpRequest,\n scope: string,\n scopeMap: ScopeMap,\n findById?: (id: string) => Promise<any>,\n ): Promise<void> {\n const mapping = scopeMap.get(scope);\n if (!mapping) return;\n\n const claimValue = this.resolveClaim(req, mapping);\n if (!claimValue) this.deny(`Missing claim for scope \"${scope}\"`);\n\n if (!findById) return;\n\n if (!req.entityId) {\n throw new ErrorHttp({ code: 400, error: \"BadRequest\" }, \"Missing resource id\");\n }\n\n const entity = await findById(req.entityId);\n if (!entity) {\n throw new ErrorHttp({ code: 404, error: \"NotFound\" }, `Resource with id \"${req.entityId}\" not found`);\n }\n\n if (entity[mapping.filterField] !== claimValue) {\n this.deny(`Scope mismatch: no access to resource \"${req.entityId}\"`);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Private — claim resolution\n // ---------------------------------------------------------------------------\n\n private resolveClaim(req: HttpRequest, mapping: { claimKey?: string }): string | undefined {\n return req.identity?.[mapping.claimKey] || req.identity?.attributes?.[mapping.claimKey];\n }\n\n private resolveClaimWithFallback(\n req: HttpRequest,\n mapping: { claimKey?: string },\n scopeName: string,\n ): string | undefined {\n const claimKey = mapping.claimKey ?? \"custom:\" + scopeName;\n return req.identity?.[claimKey] || req.identity?.attributes?.[claimKey] || req.identity?.sub;\n }\n\n // ---------------------------------------------------------------------------\n // Private — filter application\n // ---------------------------------------------------------------------------\n\n private applyMethodFilters(req: HttpRequest, method: string, scope: string, scopeMap: ScopeMap): void {\n if (method === \"POST\") {\n this.setDefaultIndexFields(req, scopeMap);\n } else if (method === \"GET\" && this.isOpenSearchPath(req)) {\n this.setDefaultFilters(req, scopeMap);\n } else if (method === \"GET\") {\n this.applyScopeFilter(req, scope, scopeMap);\n }\n }\n\n private applyScopeFilter(req: HttpRequest, scope: string, scopeMap: ScopeMap): void {\n if (!req.filter) req.filter = {};\n this.clearScopeFilters(req, scopeMap);\n\n const mapping = scopeMap.get(scope);\n if (!mapping) return;\n\n const claimValue = this.resolveClaim(req, mapping);\n if (claimValue || !req.filter[mapping.filterField]) {\n req.filter[mapping.filterField] = claimValue;\n }\n delete req.filter.scope;\n }\n\n private setDefaultIndexFields(req: HttpRequest, scopeMap: ScopeMap): void {\n if (!req.body) req.body = {};\n if (this.isUnset(req.body.ownerId)) req.body.ownerId = req.identity?.sub;\n this.applyAllScopeValues(req, scopeMap, true);\n }\n\n private setDefaultFilters(req: HttpRequest, scopeMap: ScopeMap): void {\n if (!req.filter) req.filter = {};\n\n const requestedScope = this.resolveRequestedScope(req);\n const levelLimit = this.getScopeLevelLimit(requestedScope, scopeMap);\n\n for (const [scopeName, mapping] of scopeMap) {\n if (levelLimit !== undefined && mapping.level !== undefined && mapping.level > levelLimit) continue;\n\n const claimValue = this.resolveClaimWithFallback(req, mapping, scopeName);\n const eqField = mapping.filterField + \".keyword__eq\";\n if (claimValue && this.isUnset(req.filter[eqField])) {\n req.filter[eqField] = claimValue;\n }\n }\n\n delete req.filter.scope;\n }\n\n private applyAllScopeValues(req: HttpRequest, scopeMap: ScopeMap, defaultsOnly = false): void {\n for (const [scopeName, mapping] of scopeMap) {\n const claimValue = this.resolveClaimWithFallback(req, mapping, scopeName);\n if (claimValue && (!defaultsOnly || this.isUnset(req.body[mapping.filterField]))) {\n req.body[mapping.filterField] = claimValue;\n }\n }\n }\n\n private isOpenSearchPath(req: HttpRequest): boolean {\n const path = trimSpecialChar(req.event?.requestContext?.resourcePath ?? req.resourcePath ?? \"\");\n return path.endsWith(\"search/query\");\n }\n\n private resolveRequestedScope(req: HttpRequest): string | undefined {\n const scopeRaw = req.filter?.scope || req.queryStringParameters?.scope || req.customQueryParameters?.scope;\n if (typeof scopeRaw !== \"string\") return undefined;\n const normalized = scopeRaw.trim().toLowerCase();\n return normalized.length ? normalized : undefined;\n }\n\n private getScopeLevelLimit(requestedScope: string | undefined, scopeMap: ScopeMap): number | undefined {\n if (!requestedScope) return undefined;\n for (const [scopeName, mapping] of scopeMap) {\n if (scopeName.toLowerCase() === requestedScope) return mapping.level;\n }\n return undefined;\n }\n\n private isUnset(value: unknown): boolean {\n return value === undefined || value === null || value === \"\";\n }\n\n private clearScopeFilters(req: HttpRequest, scopeMap: ScopeMap): void {\n for (const [, entry] of scopeMap) {\n delete req.filter[entry.filterField];\n }\n delete req.filter[\"profileId\"];\n delete req.filter[\"ownerId\"];\n delete req.filter[\"scope\"];\n }\n}\n"]}
1
+ {"version":3,"file":"controller-role.js","sourceRoot":"","sources":["../../src/controller/controller-role.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,4CAAyC;AACzC,4CAAoC;AAIpC,sEAAkE;AAClE,iDAAoG;AACpG,8DAA4E;AAC5E,sDAAuE;AAGvE,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,GAAG,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC5B,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,GAAG,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;IAC3C,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACnD,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAC7C,MAAM,EAAE,YAAY;CACrB,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACtD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;IAC9D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACxD,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE;CAChC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AAEvD,MAAM,QAAQ,GAAG,OAAC,CAAC,MAAM,CAAC;IACxB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IACvD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IACrD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IAC5B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;IACvD,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;IACnD,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;CACtD,CAAC,CAAC;AAEH,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;AAI7D,MAAa,cAAc;IACN,iBAAiB,CAAoB;IAEvC,SAAS,GAAiC;QACzD,YAAY,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QACzF,iBAAiB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;QAC9F,eAAe,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;QAC7E,oBAAoB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;KACpG,CAAC;IAEF,YAAY,aAAqB;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,sCAAiB,CAAC,aAAa,CAAC,CAAC;IAChE,CAAC;IAED,8EAA8E;IAC9E,kBAAkB;IAClB,8EAA8E;IAE9E,KAAK,CAAC,aAAa,CAAC,KAKnB;QACC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,EAAU,EACV,OAA4E;QAE5E,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAe;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAE9E,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,SAAiB,EAAE,WAAoB;QACvE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAChE,OAAO,IAAA,qBAAW,EAAC,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,SAAiB;QACpD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,OAAO,IAAA,qBAAW,EAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,QAAgB,EAAE,SAAiB;QACtE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO,IAAA,wBAAc,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB,EAAE,SAAiB;QACxE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO,IAAA,6BAAmB,EAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,8EAA8E;IAC9E,qBAAqB;IACrB,8EAA8E;IAE9E,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,QAAgB,EAAE,KAAa,EAAE,MAAc;QAC/E,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,aAAqB;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAClE,CAAC;IAED,8EAA8E;IAC9E,yDAAyD;IACzD,8EAA8E;IAE9E,KAAK,CAAC,uBAAuB,CAC3B,GAAgB,EAChB,IAAY,EACZ,aAA4B,EAC5B,WAAqB;QAErB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAE5D,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,IAAA,6BAAe,EAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,aAAa,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;YAE/D,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/D,IAAI,cAAc,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE,EAAE,CAAC;oBAC9C,OAAO,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAED,QAAQ,GAAG,CAAC,OAAO,EAAE,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACvD,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7C;gBACE,MAAM,IAAI,qBAAS,CAAC,gBAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,0BAA0B;IAC1B,8EAA8E;IAE9E,KAAK,CAAC,WAAW,CACf,GAAgB,EAChB,QAAgB,EAChB,QAAkB,EAClB,WAAsB,EACtB,QAAuC;QAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAE3C,IAAI,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;YAC5D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEtD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAClF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,IAAI,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,aAAuB,EAAE,WAAqB;QACjE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,CAAC;IAED,8EAA8E;IAC9E,iCAAiC;IACjC,8EAA8E;IAEtE,IAAI,CAAC,OAAO,GAAG,uCAAuC;QAC5D,MAAM,IAAI,qBAAS,CAAC,gBAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAEO,OAAO,CAAC,aAAmC,EAAE,WAAqB;QACxE,WAAW,GAAG,IAAA,4BAAc,EAAC,WAAW,CAAC,CAAC;QAC1C,OAAO,aAAa,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC;IAC9E,CAAC;IAEO,YAAY,CAAC,GAAgB;QACnC,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;IACpC,CAAC;IAEO,QAAQ,CAAC,GAAgB,EAAE,QAAkB;QACnD,OAAO,GAAG,CAAC,qBAAqB,EAAE,KAAK,IAAI,GAAG,CAAC,qBAAqB,EAAE,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACnH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,KAAe,EACf,QAAgB,EAChB,KAAa,EACb,MAAc;QAEd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC7F,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,QAAQ,CAAsB,MAAS,EAAE,IAAa;QAC5D,IAAI,CAAC;YACH,OAAO,IAAA,oCAAkB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,eAAe,GAAG,IAAA,8BAAY,EAAC,KAAK,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,mBAAmB,CAAC;YACtE,MAAM,IAAI,qBAAS,CAAC,gBAAI,CAAC,WAAW,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,yCAAyC;IACzC,8EAA8E;IAEtE,KAAK,CAAC,oBAAoB,CAChC,GAAgB,EAChB,KAAa,EACb,QAAkB,EAClB,QAAuC;QAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,4BAA4B,KAAK,GAAG,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,qBAAS,CAAC,gBAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,qBAAS,CAAC,gBAAI,CAAC,SAAS,EAAE,qBAAqB,GAAG,CAAC,QAAQ,aAAa,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,UAAU,EAAE,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,0CAA0C,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,6BAA6B;IAC7B,8EAA8E;IAEtE,YAAY,CAAC,GAAgB,EAAE,OAA8B;QACnE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1F,CAAC;IAEO,wBAAwB,CAC9B,GAAgB,EAChB,OAA8B,EAC9B,SAAiB;QAEjB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC;QAC3D,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC/F,CAAC;IAED,8EAA8E;IAC9E,+BAA+B;IAC/B,8EAA8E;IAEtE,kBAAkB,CAAC,GAAgB,EAAE,MAAc,EAAE,KAAa,EAAE,QAAkB;QAC5F,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1D,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,GAAgB,EAAE,KAAa,EAAE,QAAkB;QAC1E,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEtC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,UAAU,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEO,qBAAqB,CAAC,GAAgB,EAAE,QAAkB;QAChE,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;QACzE,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,iBAAiB,CAAC,GAAgB,EAAE,QAAkB;QAC5D,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjC,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAErE,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC5C,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,GAAG,UAAU;gBAAE,SAAS;YAEpG,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC;YACrD,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBACpD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEO,mBAAmB,CAAC,GAAgB,EAAE,QAAkB,EAAE,YAAY,GAAG,KAAK;QACpF,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1E,IAAI,UAAU,IAAI,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjF,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,GAAgB;QACvC,MAAM,IAAI,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAChG,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvC,CAAC;IAEO,qBAAqB,CAAC,GAAgB;QAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,GAAG,CAAC,qBAAqB,EAAE,KAAK,IAAI,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC;QAC3G,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACnD,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACpD,CAAC;IAEO,kBAAkB,CAAC,cAAkC,EAAE,QAAkB;QAC/E,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QACtC,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,cAAc;gBAAE,OAAO,OAAO,CAAC,KAAK,CAAC;QACvE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,OAAO,CAAC,KAAc;QAC5B,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;IAC/D,CAAC;IAEO,iBAAiB,CAAC,GAAgB,EAAE,QAAkB;QAC5D,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AA9VD,wCA8VC","sourcesContent":["import { z } from \"zod\";\nimport { ErrorHttp } from \"../exception\";\nimport { HTTP } from \"../exception\";\nimport { Permission } from \"../model/role.model\";\nimport { List, PermissionMap, ScopeMap } from \"../model/base.model\";\nimport { HttpRequest } from \"../utils/http/http.util\";\nimport { PermissionService } from \"../service/permission.service\";\nimport { createGroup, deleteGroup, addUserToGroup, removeUserFromGroup } from \"../function/cognito\";\nimport { validateWithSchema, formatErrors } from \"../utils/validation.util\";\nimport { normalizeLower, trimSpecialChar } from \"../utils/string.util\";\nimport { Filter } from \"@chinggis/types\";\n\n// ---------------------------------------------------------------------------\n// DTO Schemas\n// ---------------------------------------------------------------------------\n\nconst MethodSchema = z.object({\n GET: z.boolean().optional(),\n POST: z.boolean().optional(),\n PATCH: z.boolean().optional(),\n PUT: z.boolean().optional(),\n DELETE: z.boolean().optional(),\n});\n\nconst AddPermissionDto = z.object({\n role: z.string().min(1, \"Role is required\"),\n resource: z.string().min(1, \"Resource is required\"),\n scope: z.string().min(1, \"Scope is required\"),\n method: MethodSchema,\n});\n\nconst UpdatePermissionDto = z.object({\n role: z.string().min(1, \"Role is required\").optional(),\n resource: z.string().min(1, \"Resource is required\").optional(),\n scope: z.string().min(1, \"Scope is required\").optional(),\n method: MethodSchema.optional(),\n});\n\nconst IdParamDto = z.string().min(1, \"Id is required\");\n\nconst GroupDto = z.object({\n userPoolId: z.string().min(1, \"UserPoolId is required\"),\n groupName: z.string().min(1, \"GroupName is required\"),\n description: z.string().optional(),\n});\n\nconst UserGroupDto = z.object({\n userPoolId: z.string().min(1, \"UserPoolId is required\"),\n username: z.string().min(1, \"Username is required\"),\n groupName: z.string().min(1, \"GroupName is required\"),\n});\n\n// ---------------------------------------------------------------------------\n\nconst MUTATING_METHODS = new Set([\"PATCH\", \"PUT\", \"DELETE\"]);\n\ntype RouteHandler = (permissionMap: PermissionMap, body: any) => Promise<any>;\n\nexport class ControllerRole {\n protected readonly permissionService: PermissionService;\n\n private readonly subRoutes: Record<string, RouteHandler> = {\n \"/add-group\": (pm, body) => this.addRole(pm.userPoolId, body.groupName, body.description),\n \"/add-user-group\": (pm, body) => this.assignRole(pm.userPoolId, body.username, body.groupName),\n \"/remove-group\": (pm, body) => this.removeRole(pm.userPoolId, body.groupName),\n \"/remove-user-group\": (pm, body) => this.unassignRole(pm.userPoolId, body.username, body.groupName),\n };\n\n constructor(roleTableName: string) {\n this.permissionService = new PermissionService(roleTableName);\n }\n\n // ---------------------------------------------------------------------------\n // Permission CRUD\n // ---------------------------------------------------------------------------\n\n async addPermission(input: {\n role: string;\n resource: string;\n scope: string;\n method: Permission[\"method\"];\n }): Promise<Permission> {\n this.validate(AddPermissionDto, input);\n return this.permissionService.createPermission(input);\n }\n\n async updatePermission(\n id: string,\n updates: Partial<Pick<Permission, \"role\" | \"resource\" | \"scope\" | \"method\">>,\n ): Promise<Permission> {\n this.validate(IdParamDto, id);\n this.validate(UpdatePermissionDto, updates);\n return this.permissionService.updatePermission(id, updates);\n }\n\n async deletePermission(id: string): Promise<boolean> {\n this.validate(IdParamDto, id);\n return this.permissionService.deletePermission(id);\n }\n\n async getPermission(id: string): Promise<Permission | null> {\n this.validate(IdParamDto, id);\n return this.permissionService.getPermissionById(id);\n }\n\n async listPermissions(filter?: Filter): Promise<List<Partial<Permission>>> {\n return this.permissionService.listPermissions(filter);\n }\n\n // ---------------------------------------------------------------------------\n // Role (Cognito group)\n // ---------------------------------------------------------------------------\n\n async addRole(userPoolId: string, groupName: string, description?: string) {\n this.validate(GroupDto, { userPoolId, groupName, description });\n return createGroup(userPoolId, groupName, description);\n }\n\n async removeRole(userPoolId: string, groupName: string) {\n this.validate(GroupDto, { userPoolId, groupName });\n return deleteGroup(userPoolId, groupName);\n }\n\n async assignRole(userPoolId: string, username: string, groupName: string) {\n this.validate(UserGroupDto, { userPoolId, username, groupName });\n return addUserToGroup(userPoolId, username, groupName);\n }\n\n async unassignRole(userPoolId: string, username: string, groupName: string) {\n this.validate(UserGroupDto, { userPoolId, username, groupName });\n return removeUserFromGroup(userPoolId, username, groupName);\n }\n\n // ---------------------------------------------------------------------------\n // Permission queries\n // ---------------------------------------------------------------------------\n\n async hasPermission(role: string, resource: string, scope: string, method: string): Promise<boolean> {\n return this.permissionService.hasPermission(role, resource, scope, method);\n }\n\n async getPermissionByKey(permissionKey: string): Promise<Permission | null> {\n return this.permissionService.getPermissionByKey(permissionKey);\n }\n\n // ---------------------------------------------------------------------------\n // Permission request handler (routes from ControllerApi)\n // ---------------------------------------------------------------------------\n\n async handlePermissionRequest(\n req: HttpRequest,\n path: string,\n permissionMap: PermissionMap,\n adminGroups: string[],\n ): Promise<any> {\n this.checkAdminPermission(req.identity.groups, adminGroups);\n\n if (req.methode === \"POST\") {\n const normalizedPath = trimSpecialChar(path);\n const rolePath = trimSpecialChar(permissionMap.rolePath ?? \"\");\n\n for (const [suffix, handler] of Object.entries(this.subRoutes)) {\n if (normalizedPath === `${rolePath}${suffix}`) {\n return handler(permissionMap, req.body);\n }\n }\n\n return this.addPermission(req.body);\n }\n\n switch (req.methode) {\n case \"GET\":\n return this.listPermissions(req.filter);\n case \"PATCH\":\n return this.updatePermission(req.entityId, req.body);\n case \"DELETE\":\n return this.deletePermission(req.entityId);\n default:\n throw new ErrorHttp(HTTP.BAD_REQUEST, \"[CORE] unsupported method\");\n }\n }\n\n // ---------------------------------------------------------------------------\n // RBAC access enforcement\n // ---------------------------------------------------------------------------\n\n async checkAccess(\n req: HttpRequest,\n resource: string,\n scopeMap: ScopeMap,\n adminGroups?: string[],\n findById?: (id: string) => Promise<any>,\n ): Promise<boolean> {\n const roles = this.extractRoles(req);\n if (!roles.length) this.deny();\n\n const method = req.methode.toUpperCase();\n const scope = this.getScope(req, scopeMap);\n\n if (adminGroups?.length && this.isAdmin(roles, adminGroups)) {\n return true;\n }\n\n this.applyMethodFilters(req, method, scope, scopeMap);\n\n const permitted = await this.hasAnyRolePermission(roles, resource, scope, method);\n if (!permitted) {\n this.deny(`Permission denied: ${roles.join(\",\")}: \"${resource}#${scope}.${method}\"`);\n }\n\n if (MUTATING_METHODS.has(method)) {\n await this.verifyScopeOwnership(req, scope, scopeMap, findById);\n }\n\n return true;\n }\n\n checkAdminPermission(cognitoGroups: string[], adminGroups: string[]) {\n if (this.isAdmin(cognitoGroups, adminGroups)) return true;\n this.deny(\"Permission Denied\");\n }\n\n // ---------------------------------------------------------------------------\n // Private — error + auth helpers\n // ---------------------------------------------------------------------------\n\n private deny(message = \"Permission denied: no role accessible\"): never {\n throw new ErrorHttp(HTTP.FORBIDDEN, message);\n }\n\n private isAdmin(cognitoGroups: string[] | undefined, adminGroups: string[]): boolean {\n adminGroups = normalizeLower(adminGroups);\n return cognitoGroups?.some((group) => adminGroups.includes(group)) ?? false;\n }\n\n private extractRoles(req: HttpRequest): string[] {\n return req.identity?.groups ?? [];\n }\n\n private getScope(req: HttpRequest, scopeMap: ScopeMap): string {\n return req.queryStringParameters?.scope || req.customQueryParameters?.scope || Array.from(scopeMap.keys()).pop();\n }\n\n private async hasAnyRolePermission(\n roles: string[],\n resource: string,\n scope: string,\n method: string,\n ): Promise<boolean> {\n for (const role of roles) {\n if (await this.permissionService.hasPermission(role, resource, scope, method)) return true;\n }\n return false;\n }\n\n private validate<T extends z.ZodType>(schema: T, data: unknown): z.infer<T> {\n try {\n return validateWithSchema(schema, data);\n } catch (error) {\n const formattedErrors = formatErrors(error);\n const firstError = formattedErrors[0]?.message || \"Validation failed\";\n throw new ErrorHttp(HTTP.BAD_REQUEST, firstError, formattedErrors);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Private — scope ownership verification\n // ---------------------------------------------------------------------------\n\n private async verifyScopeOwnership(\n req: HttpRequest,\n scope: string,\n scopeMap: ScopeMap,\n findById?: (id: string) => Promise<any>,\n ): Promise<void> {\n const mapping = scopeMap.get(scope);\n if (!mapping) return;\n\n const claimValue = this.resolveClaim(req, mapping);\n if (!claimValue) this.deny(`Missing claim for scope \"${scope}\"`);\n\n if (!findById) return;\n\n if (!req.entityId) {\n throw new ErrorHttp(HTTP.BAD_REQUEST, \"Missing resource id\");\n }\n\n const entity = await findById(req.entityId);\n if (!entity) {\n throw new ErrorHttp(HTTP.NOT_FOUND, `Resource with id \"${req.entityId}\" not found`);\n }\n\n if (entity[mapping.filterField] !== claimValue) {\n this.deny(`Scope mismatch: no access to resource \"${req.entityId}\"`);\n }\n }\n\n // ---------------------------------------------------------------------------\n // Private — claim resolution\n // ---------------------------------------------------------------------------\n\n private resolveClaim(req: HttpRequest, mapping: { claimKey?: string }): string | undefined {\n return req.identity?.[mapping.claimKey] || req.identity?.attributes?.[mapping.claimKey];\n }\n\n private resolveClaimWithFallback(\n req: HttpRequest,\n mapping: { claimKey?: string },\n scopeName: string,\n ): string | undefined {\n const claimKey = mapping.claimKey ?? \"custom:\" + scopeName;\n return req.identity?.[claimKey] || req.identity?.attributes?.[claimKey] || req.identity?.sub;\n }\n\n // ---------------------------------------------------------------------------\n // Private — filter application\n // ---------------------------------------------------------------------------\n\n private applyMethodFilters(req: HttpRequest, method: string, scope: string, scopeMap: ScopeMap): void {\n if (method === \"POST\") {\n this.setDefaultIndexFields(req, scopeMap);\n } else if (method === \"GET\" && this.isOpenSearchPath(req)) {\n this.setDefaultFilters(req, scopeMap);\n } else if (method === \"GET\") {\n this.applyScopeFilter(req, scope, scopeMap);\n }\n }\n\n private applyScopeFilter(req: HttpRequest, scope: string, scopeMap: ScopeMap): void {\n if (!req.filter) req.filter = {};\n this.clearScopeFilters(req, scopeMap);\n\n const mapping = scopeMap.get(scope);\n if (!mapping) return;\n\n const claimValue = this.resolveClaim(req, mapping);\n if (claimValue || !req.filter[mapping.filterField]) {\n req.filter[mapping.filterField] = claimValue;\n }\n delete req.filter.scope;\n }\n\n private setDefaultIndexFields(req: HttpRequest, scopeMap: ScopeMap): void {\n if (!req.body) req.body = {};\n if (this.isUnset(req.body.ownerId)) req.body.ownerId = req.identity?.sub;\n this.applyAllScopeValues(req, scopeMap, true);\n }\n\n private setDefaultFilters(req: HttpRequest, scopeMap: ScopeMap): void {\n if (!req.filter) req.filter = {};\n\n const requestedScope = this.resolveRequestedScope(req);\n const levelLimit = this.getScopeLevelLimit(requestedScope, scopeMap);\n\n for (const [scopeName, mapping] of scopeMap) {\n if (levelLimit !== undefined && mapping.level !== undefined && mapping.level > levelLimit) continue;\n\n const claimValue = this.resolveClaimWithFallback(req, mapping, scopeName);\n const eqField = mapping.filterField + \".keyword__eq\";\n if (claimValue && this.isUnset(req.filter[eqField])) {\n req.filter[eqField] = claimValue;\n }\n }\n\n delete req.filter.scope;\n }\n\n private applyAllScopeValues(req: HttpRequest, scopeMap: ScopeMap, defaultsOnly = false): void {\n for (const [scopeName, mapping] of scopeMap) {\n const claimValue = this.resolveClaimWithFallback(req, mapping, scopeName);\n if (claimValue && (!defaultsOnly || this.isUnset(req.body[mapping.filterField]))) {\n req.body[mapping.filterField] = claimValue;\n }\n }\n }\n\n private isOpenSearchPath(req: HttpRequest): boolean {\n const path = trimSpecialChar(req.event?.requestContext?.resourcePath ?? req.resourcePath ?? \"\");\n return path.endsWith(\"search/query\");\n }\n\n private resolveRequestedScope(req: HttpRequest): string | undefined {\n const scopeRaw = req.filter?.scope || req.queryStringParameters?.scope || req.customQueryParameters?.scope;\n if (typeof scopeRaw !== \"string\") return undefined;\n const normalized = scopeRaw.trim().toLowerCase();\n return normalized.length ? normalized : undefined;\n }\n\n private getScopeLevelLimit(requestedScope: string | undefined, scopeMap: ScopeMap): number | undefined {\n if (!requestedScope) return undefined;\n for (const [scopeName, mapping] of scopeMap) {\n if (scopeName.toLowerCase() === requestedScope) return mapping.level;\n }\n return undefined;\n }\n\n private isUnset(value: unknown): boolean {\n return value === undefined || value === null || value === \"\";\n }\n\n private clearScopeFilters(req: HttpRequest, scopeMap: ScopeMap): void {\n for (const [, entry] of scopeMap) {\n delete req.filter[entry.filterField];\n }\n delete req.filter[\"profileId\"];\n delete req.filter[\"ownerId\"];\n delete req.filter[\"scope\"];\n }\n}\n"]}
@@ -14,3 +14,4 @@ export declare abstract class ControllerStream<T extends StreamService<any>> {
14
14
  processStreamEventPost(oldItem: T, newItem: T, event: ActionDynamoDB, tableName: string): Promise<void>;
15
15
  private processEventRecord;
16
16
  }
17
+ //# sourceMappingURL=controller-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller-stream.d.ts","sourceRoot":"","sources":["../../src/controller/controller-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgD,MAAM,UAAU,CAAC;AACxF,OAAO,EAAkB,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,8BAAsB,gBAAgB,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,CAAC;IACjE,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IAE9B,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC;IAE/B,SAAS,aAAa,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY;IAWpD,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,qBAAqB,CACzB,OAAO,EAAE,CAAC,EACV,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,CAAC,CAAA;KAAE,CAAC;IAIhC,sBAAsB,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAE/F,kBAAkB;CAoBjC"}
@@ -3,3 +3,4 @@ export * from "./controller-request";
3
3
  export * from "./controller-api";
4
4
  export * from "./controller-stream";
5
5
  export * from "./controller-role";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
@@ -1,3 +1,24 @@
1
+ import { HttpStatus } from "./exception-handler";
2
+ /**
3
+ * Business logic reasons for errors - for frontend to show appropriate UI.
4
+ * These are NOT HTTP status codes, but rather semantic reasons for the error.
5
+ * e.g., reason = VALIDATION_ERROR with data = zod errors array
6
+ */
7
+ export declare enum ErrorReason {
8
+ VALIDATION_ERROR = "VALIDATION_ERROR",
9
+ MISSING_ID = "MISSING_ID",
10
+ MISSING_REQUIRED_FIELD = "MISSING_REQUIRED_FIELD",
11
+ INVALID_INPUT = "INVALID_INPUT",
12
+ DUPLICATE = "DUPLICATE",
13
+ RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND",
14
+ UNAUTHORIZED_ACCESS = "UNAUTHORIZED_ACCESS",
15
+ ACCESS_DENIED = "ACCESS_DENIED",
16
+ RESOURCE_ALREADY_EXISTS = "RESOURCE_ALREADY_EXISTS",
17
+ INVALID_STATE = "INVALID_STATE",
18
+ DATABASE_ERROR = "DATABASE_ERROR",
19
+ EXTERNAL_SERVICE_ERROR = "EXTERNAL_SERVICE_ERROR",
20
+ UNKNOWN = "UNKNOWN"
21
+ }
1
22
  export declare class ErrorBase extends Error {
2
23
  readonly code: number;
3
24
  readonly error?: unknown;
@@ -8,17 +29,12 @@ export declare class ErrorDynamoDB extends Error {
8
29
  command: any;
9
30
  constructor(tableName: string, command: any, errorContent?: any);
10
31
  }
11
- export interface ErrorCodeMsg {
12
- code: number;
13
- msg?: string;
14
- error?: string;
15
- }
16
- export declare class ErrorHttp extends Error {
17
- statusCode: number;
18
- error: string;
19
- message: string;
20
- data: any;
21
- constructor(errorCodeMsg: ErrorCodeMsg, errorMessage?: any, errorData?: any);
32
+ export declare class ErrorHttp<T = unknown> extends Error {
33
+ readonly statusCode: number;
34
+ readonly error: string;
35
+ readonly reason: ErrorReason;
36
+ readonly data?: T;
37
+ constructor(httpStatus: HttpStatus, message?: string, data?: T, reason?: ErrorReason);
22
38
  }
23
39
  export declare class ErrorValidation extends Error {
24
40
  entityName: string;
@@ -30,3 +46,4 @@ export declare class ErrorValidation extends Error {
30
46
  export declare class MissingParameterError extends Error {
31
47
  constructor(paramName: string);
32
48
  }
49
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/exception/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;GAIG;AACH,oBAAY,WAAW;IAErB,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IACzB,sBAAsB,2BAA2B;IACjD,aAAa,kBAAkB;IAG/B,SAAS,cAAc;IACvB,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,aAAa,kBAAkB;IAC/B,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAG/B,cAAc,mBAAmB;IACjC,sBAAsB,2BAA2B;IAGjD,OAAO,YAAY;CACpB;AAED,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAc3D;AAED,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,GAAG,CAAC;gBACD,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,EAAE,GAAG;CAKhE;AAED,qBAAa,SAAS,CAAC,CAAC,GAAG,OAAO,CAAE,SAAQ,KAAK;IAC/C,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,MAAM,EAAE,WAAW,CAAC;IACpC,SAAgB,IAAI,CAAC,EAAE,CAAC,CAAC;gBAGvB,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,CAAC,EACR,MAAM,GAAE,WAAiC;CAY5C;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,GAAG,CAAC;gBAED,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,GAAG;CAMjF;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,SAAS,EAAE,MAAM;CAI9B"}
@@ -1,6 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MissingParameterError = exports.ErrorValidation = exports.ErrorHttp = exports.ErrorDynamoDB = exports.ErrorBase = void 0;
3
+ exports.MissingParameterError = exports.ErrorValidation = exports.ErrorHttp = exports.ErrorDynamoDB = exports.ErrorBase = exports.ErrorReason = void 0;
4
+ /**
5
+ * Business logic reasons for errors - for frontend to show appropriate UI.
6
+ * These are NOT HTTP status codes, but rather semantic reasons for the error.
7
+ * e.g., reason = VALIDATION_ERROR with data = zod errors array
8
+ */
9
+ var ErrorReason;
10
+ (function (ErrorReason) {
11
+ // Validation/Input
12
+ ErrorReason["VALIDATION_ERROR"] = "VALIDATION_ERROR";
13
+ ErrorReason["MISSING_ID"] = "MISSING_ID";
14
+ ErrorReason["MISSING_REQUIRED_FIELD"] = "MISSING_REQUIRED_FIELD";
15
+ ErrorReason["INVALID_INPUT"] = "INVALID_INPUT";
16
+ // Business Logic
17
+ ErrorReason["DUPLICATE"] = "DUPLICATE";
18
+ ErrorReason["RESOURCE_NOT_FOUND"] = "RESOURCE_NOT_FOUND";
19
+ ErrorReason["UNAUTHORIZED_ACCESS"] = "UNAUTHORIZED_ACCESS";
20
+ ErrorReason["ACCESS_DENIED"] = "ACCESS_DENIED";
21
+ ErrorReason["RESOURCE_ALREADY_EXISTS"] = "RESOURCE_ALREADY_EXISTS";
22
+ ErrorReason["INVALID_STATE"] = "INVALID_STATE";
23
+ // External Service/Database
24
+ ErrorReason["DATABASE_ERROR"] = "DATABASE_ERROR";
25
+ ErrorReason["EXTERNAL_SERVICE_ERROR"] = "EXTERNAL_SERVICE_ERROR";
26
+ // Unknown/Generic
27
+ ErrorReason["UNKNOWN"] = "UNKNOWN";
28
+ })(ErrorReason || (exports.ErrorReason = ErrorReason = {}));
4
29
  class ErrorBase extends Error {
5
30
  code;
6
31
  error;
@@ -29,14 +54,16 @@ exports.ErrorDynamoDB = ErrorDynamoDB;
29
54
  class ErrorHttp extends Error {
30
55
  statusCode;
31
56
  error;
32
- message;
57
+ reason;
33
58
  data;
34
- constructor(errorCodeMsg, errorMessage, errorData) {
35
- super(errorData);
36
- this.statusCode = errorCodeMsg.code;
37
- this.error = errorCodeMsg.msg ?? errorCodeMsg.error ?? "";
38
- this.message = typeof errorMessage === "object" ? JSON.stringify(errorMessage) : errorMessage;
39
- this.data = errorData;
59
+ constructor(httpStatus, message, data, reason = ErrorReason.UNKNOWN) {
60
+ super(message ?? httpStatus.msg);
61
+ this.name = "ErrorHttp";
62
+ this.statusCode = httpStatus.code;
63
+ this.error = httpStatus.msg;
64
+ this.reason = reason;
65
+ this.data = data;
66
+ Error.captureStackTrace?.(this, ErrorHttp);
40
67
  }
41
68
  }
42
69
  exports.ErrorHttp = ErrorHttp;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/exception/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAU,SAAQ,KAAK;IAClB,IAAI,CAAS;IACb,KAAK,CAAW;IAEhC,YAAY,IAAY,EAAE,OAAe,EAAE,KAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAElC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAlBD,8BAkBC;AAED,MAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,CAAS;IAClB,OAAO,CAAM;IACb,YAAY,SAAiB,EAAE,OAAY,EAAE,YAAkB;QAC7D,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,sCAQC;AAQD,MAAa,SAAU,SAAQ,KAAK;IAClC,UAAU,CAAS;IACnB,KAAK,CAAS;IACd,OAAO,CAAS;IAChB,IAAI,CAAM;IAEV,YAAY,YAA0B,EAAE,YAAkB,EAAE,SAAe;QACzE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,IAAI,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9F,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAbD,8BAaC;AAED,MAAa,eAAgB,SAAQ,KAAK;IACxC,UAAU,CAAS;IACnB,UAAU,CAAmB;IAC7B,KAAK,CAAM;IACX,OAAO,CAAM;IAEb,YAAY,UAAkB,EAAE,UAA4B,EAAE,YAAkB;QAC9E,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAC9B,CAAC;CACF;AAZD,0CAYC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,SAAiB;QAC3B,KAAK,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC","sourcesContent":["export class ErrorBase extends Error {\n public readonly code: number;\n public readonly error?: unknown;\n\n constructor(code: number, message: string, error?: unknown) {\n super(message);\n\n this.code = code;\n this.error = error;\n\n Object.setPrototypeOf(this, new.target.prototype);\n\n this.name = this.constructor.name;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n\nexport class ErrorDynamoDB extends Error {\n tableName: string;\n command: any;\n constructor(tableName: string, command: any, errorContent?: any) {\n super(errorContent);\n this.tableName = tableName;\n this.command = command;\n }\n}\n\nexport interface ErrorCodeMsg {\n code: number;\n msg?: string;\n error?: string;\n}\n\nexport class ErrorHttp extends Error {\n statusCode: number;\n error: string;\n message: string;\n data: any;\n\n constructor(errorCodeMsg: ErrorCodeMsg, errorMessage?: any, errorData?: any) {\n super(errorData);\n this.statusCode = errorCodeMsg.code;\n this.error = errorCodeMsg.msg ?? errorCodeMsg.error ?? \"\";\n this.message = typeof errorMessage === \"object\" ? JSON.stringify(errorMessage) : errorMessage;\n this.data = errorData;\n }\n}\n\nexport class ErrorValidation extends Error {\n entityName: string;\n validation: Map<string, any>;\n error: any;\n content: any;\n\n constructor(entityName: string, validation: Map<string, any>, errorContent?: any) {\n super(errorContent);\n this.entityName = entityName;\n this.validation = validation;\n this.content = errorContent;\n }\n}\n\nexport class MissingParameterError extends Error {\n constructor(paramName: string) {\n super(`${paramName} is required.`);\n this.name = \"MissingParameterError\";\n }\n}\n"]}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/exception/errors.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,IAAY,WAqBX;AArBD,WAAY,WAAW;IACrB,mBAAmB;IACnB,oDAAqC,CAAA;IACrC,wCAAyB,CAAA;IACzB,gEAAiD,CAAA;IACjD,8CAA+B,CAAA;IAE/B,iBAAiB;IACjB,sCAAuB,CAAA;IACvB,wDAAyC,CAAA;IACzC,0DAA2C,CAAA;IAC3C,8CAA+B,CAAA;IAC/B,kEAAmD,CAAA;IACnD,8CAA+B,CAAA;IAE/B,4BAA4B;IAC5B,gDAAiC,CAAA;IACjC,gEAAiD,CAAA;IAEjD,kBAAkB;IAClB,kCAAmB,CAAA;AACrB,CAAC,EArBW,WAAW,2BAAX,WAAW,QAqBtB;AAED,MAAa,SAAU,SAAQ,KAAK;IAClB,IAAI,CAAS;IACb,KAAK,CAAW;IAEhC,YAAY,IAAY,EAAE,OAAe,EAAE,KAAe;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAElC,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;CACF;AAlBD,8BAkBC;AAED,MAAa,aAAc,SAAQ,KAAK;IACtC,SAAS,CAAS;IAClB,OAAO,CAAM;IACb,YAAY,SAAiB,EAAE,OAAY,EAAE,YAAkB;QAC7D,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,sCAQC;AAED,MAAa,SAAuB,SAAQ,KAAK;IAC/B,UAAU,CAAS;IACnB,KAAK,CAAS;IACd,MAAM,CAAc;IACpB,IAAI,CAAK;IAEzB,YACE,UAAsB,EACtB,OAAgB,EAChB,IAAQ,EACR,SAAsB,WAAW,CAAC,OAAO;QAEzC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC;CACF;AAtBD,8BAsBC;AAED,MAAa,eAAgB,SAAQ,KAAK;IACxC,UAAU,CAAS;IACnB,UAAU,CAAmB;IAC7B,KAAK,CAAM;IACX,OAAO,CAAM;IAEb,YAAY,UAAkB,EAAE,UAA4B,EAAE,YAAkB;QAC9E,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAC9B,CAAC;CACF;AAZD,0CAYC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,SAAiB;QAC3B,KAAK,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC","sourcesContent":["import { HttpStatus } from \"./exception-handler\";\n\n/**\n * Business logic reasons for errors - for frontend to show appropriate UI.\n * These are NOT HTTP status codes, but rather semantic reasons for the error.\n * e.g., reason = VALIDATION_ERROR with data = zod errors array\n */\nexport enum ErrorReason {\n // Validation/Input\n VALIDATION_ERROR = \"VALIDATION_ERROR\",\n MISSING_ID = \"MISSING_ID\",\n MISSING_REQUIRED_FIELD = \"MISSING_REQUIRED_FIELD\",\n INVALID_INPUT = \"INVALID_INPUT\",\n\n // Business Logic\n DUPLICATE = \"DUPLICATE\",\n RESOURCE_NOT_FOUND = \"RESOURCE_NOT_FOUND\",\n UNAUTHORIZED_ACCESS = \"UNAUTHORIZED_ACCESS\",\n ACCESS_DENIED = \"ACCESS_DENIED\",\n RESOURCE_ALREADY_EXISTS = \"RESOURCE_ALREADY_EXISTS\",\n INVALID_STATE = \"INVALID_STATE\",\n\n // External Service/Database\n DATABASE_ERROR = \"DATABASE_ERROR\",\n EXTERNAL_SERVICE_ERROR = \"EXTERNAL_SERVICE_ERROR\",\n\n // Unknown/Generic\n UNKNOWN = \"UNKNOWN\",\n}\n\nexport class ErrorBase extends Error {\n public readonly code: number;\n public readonly error?: unknown;\n\n constructor(code: number, message: string, error?: unknown) {\n super(message);\n\n this.code = code;\n this.error = error;\n\n Object.setPrototypeOf(this, new.target.prototype);\n\n this.name = this.constructor.name;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\n\nexport class ErrorDynamoDB extends Error {\n tableName: string;\n command: any;\n constructor(tableName: string, command: any, errorContent?: any) {\n super(errorContent);\n this.tableName = tableName;\n this.command = command;\n }\n}\n\nexport class ErrorHttp<T = unknown> extends Error {\n public readonly statusCode: number;\n public readonly error: string;\n public readonly reason: ErrorReason;\n public readonly data?: T;\n\n constructor(\n httpStatus: HttpStatus,\n message?: string,\n data?: T,\n reason: ErrorReason = ErrorReason.UNKNOWN\n ) {\n super(message ?? httpStatus.msg);\n\n this.name = \"ErrorHttp\";\n this.statusCode = httpStatus.code;\n this.error = httpStatus.msg;\n this.reason = reason;\n this.data = data;\n\n Error.captureStackTrace?.(this, ErrorHttp);\n }\n}\n\nexport class ErrorValidation extends Error {\n entityName: string;\n validation: Map<string, any>;\n error: any;\n content: any;\n\n constructor(entityName: string, validation: Map<string, any>, errorContent?: any) {\n super(errorContent);\n this.entityName = entityName;\n this.validation = validation;\n this.content = errorContent;\n }\n}\n\nexport class MissingParameterError extends Error {\n constructor(paramName: string) {\n super(`${paramName} is required.`);\n this.name = \"MissingParameterError\";\n }\n}\n"]}
@@ -1,8 +1,13 @@
1
+ export type HttpStatus = {
2
+ code: number;
3
+ msg: string;
4
+ };
1
5
  type HttpErrorResponse = {
2
6
  statusCode: number;
3
7
  content: {
4
8
  error: string;
5
9
  message: unknown;
10
+ reason?: string;
6
11
  data: unknown;
7
12
  };
8
13
  };
@@ -238,3 +243,4 @@ export declare const HTTP: {
238
243
  };
239
244
  };
240
245
  export {};
246
+ //# sourceMappingURL=exception-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-handler.d.ts","sourceRoot":"","sources":["../../src/exception/exception-handler.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,KAAK,GAAG,KAAG,iBAwC1C,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmEhB,CAAC"}
@@ -8,7 +8,8 @@ const refineHttpError = (err) => {
8
8
  msg: err.error ?? exports.HTTP.INTERNAL_SERVER_ERROR.msg,
9
9
  };
10
10
  let message = err.message ?? "An unexpected error occurred.";
11
- let data = err.content;
11
+ let reason = err.reason ?? errors_1.ErrorReason.UNKNOWN;
12
+ let data = err.data;
12
13
  if (err instanceof errors_1.ErrorValidation) {
13
14
  http = exports.HTTP.BAD_REQUEST;
14
15
  http.msg += " - Validation failed.";
@@ -37,6 +38,7 @@ const refineHttpError = (err) => {
37
38
  content: {
38
39
  error: http.msg,
39
40
  message,
41
+ reason,
40
42
  data,
41
43
  },
42
44
  };
@@ -1 +1 @@
1
- {"version":3,"file":"exception-handler.js","sourceRoot":"","sources":["../../src/exception/exception-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ErrorDynamoDB, ErrorValidation } from \"./errors\";\n\ntype HttpStatus = { code: number; msg: string };\n\ntype HttpErrorResponse = {\n statusCode: number;\n content: {\n error: string;\n message: unknown;\n data: unknown;\n };\n};\n\nexport const refineHttpError = (err: any): HttpErrorResponse => {\n let http: HttpStatus = {\n code: err.statusCode ?? HTTP.INTERNAL_SERVER_ERROR.code,\n msg: err.error ?? HTTP.INTERNAL_SERVER_ERROR.msg,\n };\n\n let message = err.message ?? \"An unexpected error occurred.\";\n let data = err.content;\n\n if (err instanceof ErrorValidation) {\n http = HTTP.BAD_REQUEST;\n http.msg += \" - Validation failed.\";\n } else if (err instanceof ErrorDynamoDB) {\n if (message.includes(\"requires indexName and indexValue\")) {\n http = HTTP.BAD_REQUEST;\n message = `Index name and value are required: ${err.tableName}`;\n }\n if (message.includes(\"ResourceNotFoundException\")) {\n http = HTTP.BAD_REQUEST;\n message = `Resource not found: ${err.tableName}`;\n } else if (message.includes(\"ConditionalCheckFailedException\")) {\n http = HTTP.BAD_REQUEST;\n message = `ConditionalCheckFailedException: by table: ${err.tableName}, command: ${err.command}}`;\n }\n message = `Database Error: ${err.tableName}`;\n } else if (message.includes(\"search_phase_execution_exception\")) {\n http = HTTP.BAD_REQUEST;\n message = \"OpenSearch: Cannot sort by text field - use '.keyword' instead.\";\n }\n\n return {\n statusCode: http.code,\n content: {\n error: http.msg,\n message,\n data,\n },\n };\n};\n\nexport const HTTP = {\n // 1xx Informational\n CONTINUE: { msg: \"Continue\", code: 100 },\n SWITCHING_PROTOCOLS: { msg: \"Switching Protocols\", code: 101 },\n PROCESSING: { msg: \"Processing\", code: 102 },\n\n // 2xx Success\n OK: { msg: \"OK\", code: 200 },\n CREATED: { msg: \"Created\", code: 201 },\n ACCEPTED: { msg: \"Accepted\", code: 202 },\n NON_AUTHORITATIVE_INFORMATION: { msg: \"Non-Authoritative Information\", code: 203 },\n NO_CONTENT: { msg: \"No Content\", code: 204 },\n RESET_CONTENT: { msg: \"Reset Content\", code: 205 },\n PARTIAL_CONTENT: { msg: \"Partial Content\", code: 206 },\n\n // 3xx Redirection\n MULTIPLE_CHOICES: { msg: \"Multiple Choices\", code: 300 },\n MOVED_PERMANENTLY: { msg: \"Moved Permanently\", code: 301 },\n FOUND: { msg: \"Found\", code: 302 },\n SEE_OTHER: { msg: \"See Other\", code: 303 },\n NOT_MODIFIED: { msg: \"Not Modified\", code: 304 },\n TEMPORARY_REDIRECT: { msg: \"Temporary Redirect\", code: 307 },\n PERMANENT_REDIRECT: { msg: \"Permanent Redirect\", code: 308 },\n\n // 4xx Client Errors\n BAD_REQUEST: { msg: \"Bad Request\", code: 400 },\n UNAUTHORIZED: { msg: \"Unauthorized\", code: 401 },\n PAYMENT_REQUIRED: { msg: \"Payment Required\", code: 402 },\n FORBIDDEN: { msg: \"Forbidden\", code: 403 },\n NOT_FOUND: { msg: \"Not Found\", code: 404 },\n METHOD_NOT_ALLOWED: { msg: \"Method Not Allowed\", code: 405 },\n NOT_ACCEPTABLE: { msg: \"Not Acceptable\", code: 406 },\n PROXY_AUTHENTICATION_REQUIRED: { msg: \"Proxy Authentication Required\", code: 407 },\n REQUEST_TIMEOUT: { msg: \"Request Timeout\", code: 408 },\n CONFLICT: { msg: \"Conflict\", code: 409 },\n GONE: { msg: \"Gone\", code: 410 },\n LENGTH_REQUIRED: { msg: \"Length Required\", code: 411 },\n PRECONDITION_FAILED: { msg: \"Precondition Failed\", code: 412 },\n PAYLOAD_TOO_LARGE: { msg: \"Payload Too Large\", code: 413 },\n URI_TOO_LONG: { msg: \"URI Too Long\", code: 414 },\n UNSUPPORTED_MEDIA_TYPE: { msg: \"Unsupported Media Type\", code: 415 },\n RANGE_NOT_SATISFIABLE: { msg: \"Range Not Satisfiable\", code: 416 },\n EXPECTATION_FAILED: { msg: \"Expectation Failed\", code: 417 },\n IM_A_TEAPOT: { msg: \"I'm a teapot\", code: 418 },\n MISDIRECTED_REQUEST: { msg: \"Misdirected Request\", code: 421 },\n UNPROCESSABLE_ENTITY: { msg: \"Unprocessable Entity\", code: 422 },\n LOCKED: { msg: \"Locked\", code: 423 },\n FAILED_DEPENDENCY: { msg: \"Failed Dependency\", code: 424 },\n TOO_EARLY: { msg: \"Too Early\", code: 425 },\n UPGRADE_REQUIRED: { msg: \"Upgrade Required\", code: 426 },\n PRECONDITION_REQUIRED: { msg: \"Precondition Required\", code: 428 },\n TOO_MANY_REQUESTS: { msg: \"Too Many Requests\", code: 429 },\n REQUEST_HEADER_FIELDS_TOO_LARGE: { msg: \"Request Header Fields Too Large\", code: 431 },\n UNAVAILABLE_FOR_LEGAL_REASONS: { msg: \"Unavailable For Legal Reasons\", code: 451 },\n\n // 5xx Server Errors\n INTERNAL_SERVER_ERROR: { msg: \"Internal Server Error\", code: 500 },\n NOT_IMPLEMENTED: { msg: \"Not Implemented\", code: 501 },\n BAD_GATEWAY: { msg: \"Bad Gateway\", code: 502 },\n SERVICE_UNAVAILABLE: { msg: \"Service Unavailable\", code: 503 },\n GATEWAY_TIMEOUT: { msg: \"Gateway Timeout\", code: 504 },\n HTTP_VERSION_NOT_SUPPORTED: { msg: \"HTTP Version Not Supported\", code: 505 },\n VARIANT_ALSO_NEGOTIATES: { msg: \"Variant Also Negotiates\", code: 506 },\n INSUFFICIENT_STORAGE: { msg: \"Insufficient Storage\", code: 507 },\n LOOP_DETECTED: { msg: \"Loop Detected\", code: 508 },\n NOT_EXTENDED: { msg: \"Not Extended\", code: 510 },\n NETWORK_AUTHENTICATION_REQUIRED: { msg: \"Network Authentication Required\", code: 511 },\n};\n"]}
1
+ {"version":3,"file":"exception-handler.js","sourceRoot":"","sources":["../../src/exception/exception-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { ErrorDynamoDB, ErrorValidation, ErrorReason } from \"./errors\";\n\nexport type HttpStatus = { code: number; msg: string };\n\ntype HttpErrorResponse = {\n statusCode: number;\n content: {\n error: string;\n message: unknown;\n reason?: string;\n data: unknown;\n };\n};\n\nexport const refineHttpError = (err: any): HttpErrorResponse => {\n let http: HttpStatus = {\n code: err.statusCode ?? HTTP.INTERNAL_SERVER_ERROR.code,\n msg: err.error ?? HTTP.INTERNAL_SERVER_ERROR.msg,\n };\n\n let message = err.message ?? \"An unexpected error occurred.\";\n let reason = err.reason ?? ErrorReason.UNKNOWN;\n let data = err.data;\n\n if (err instanceof ErrorValidation) {\n http = HTTP.BAD_REQUEST;\n http.msg += \" - Validation failed.\";\n } else if (err instanceof ErrorDynamoDB) {\n if (message.includes(\"requires indexName and indexValue\")) {\n http = HTTP.BAD_REQUEST;\n message = `Index name and value are required: ${err.tableName}`;\n }\n if (message.includes(\"ResourceNotFoundException\")) {\n http = HTTP.BAD_REQUEST;\n message = `Resource not found: ${err.tableName}`;\n } else if (message.includes(\"ConditionalCheckFailedException\")) {\n http = HTTP.BAD_REQUEST;\n message = `ConditionalCheckFailedException: by table: ${err.tableName}, command: ${err.command}}`;\n }\n message = `Database Error: ${err.tableName}`;\n } else if (message.includes(\"search_phase_execution_exception\")) {\n http = HTTP.BAD_REQUEST;\n message = \"OpenSearch: Cannot sort by text field - use '.keyword' instead.\";\n }\n\n return {\n statusCode: http.code,\n content: {\n error: http.msg,\n message,\n reason,\n data,\n },\n };\n};\n\nexport const HTTP = {\n // 1xx Informational\n CONTINUE: { msg: \"Continue\", code: 100 },\n SWITCHING_PROTOCOLS: { msg: \"Switching Protocols\", code: 101 },\n PROCESSING: { msg: \"Processing\", code: 102 },\n\n // 2xx Success\n OK: { msg: \"OK\", code: 200 },\n CREATED: { msg: \"Created\", code: 201 },\n ACCEPTED: { msg: \"Accepted\", code: 202 },\n NON_AUTHORITATIVE_INFORMATION: { msg: \"Non-Authoritative Information\", code: 203 },\n NO_CONTENT: { msg: \"No Content\", code: 204 },\n RESET_CONTENT: { msg: \"Reset Content\", code: 205 },\n PARTIAL_CONTENT: { msg: \"Partial Content\", code: 206 },\n\n // 3xx Redirection\n MULTIPLE_CHOICES: { msg: \"Multiple Choices\", code: 300 },\n MOVED_PERMANENTLY: { msg: \"Moved Permanently\", code: 301 },\n FOUND: { msg: \"Found\", code: 302 },\n SEE_OTHER: { msg: \"See Other\", code: 303 },\n NOT_MODIFIED: { msg: \"Not Modified\", code: 304 },\n TEMPORARY_REDIRECT: { msg: \"Temporary Redirect\", code: 307 },\n PERMANENT_REDIRECT: { msg: \"Permanent Redirect\", code: 308 },\n\n // 4xx Client Errors\n BAD_REQUEST: { msg: \"Bad Request\", code: 400 },\n UNAUTHORIZED: { msg: \"Unauthorized\", code: 401 },\n PAYMENT_REQUIRED: { msg: \"Payment Required\", code: 402 },\n FORBIDDEN: { msg: \"Forbidden\", code: 403 },\n NOT_FOUND: { msg: \"Not Found\", code: 404 },\n METHOD_NOT_ALLOWED: { msg: \"Method Not Allowed\", code: 405 },\n NOT_ACCEPTABLE: { msg: \"Not Acceptable\", code: 406 },\n PROXY_AUTHENTICATION_REQUIRED: { msg: \"Proxy Authentication Required\", code: 407 },\n REQUEST_TIMEOUT: { msg: \"Request Timeout\", code: 408 },\n CONFLICT: { msg: \"Conflict\", code: 409 },\n GONE: { msg: \"Gone\", code: 410 },\n LENGTH_REQUIRED: { msg: \"Length Required\", code: 411 },\n PRECONDITION_FAILED: { msg: \"Precondition Failed\", code: 412 },\n PAYLOAD_TOO_LARGE: { msg: \"Payload Too Large\", code: 413 },\n URI_TOO_LONG: { msg: \"URI Too Long\", code: 414 },\n UNSUPPORTED_MEDIA_TYPE: { msg: \"Unsupported Media Type\", code: 415 },\n RANGE_NOT_SATISFIABLE: { msg: \"Range Not Satisfiable\", code: 416 },\n EXPECTATION_FAILED: { msg: \"Expectation Failed\", code: 417 },\n IM_A_TEAPOT: { msg: \"I'm a teapot\", code: 418 },\n MISDIRECTED_REQUEST: { msg: \"Misdirected Request\", code: 421 },\n UNPROCESSABLE_ENTITY: { msg: \"Unprocessable Entity\", code: 422 },\n LOCKED: { msg: \"Locked\", code: 423 },\n FAILED_DEPENDENCY: { msg: \"Failed Dependency\", code: 424 },\n TOO_EARLY: { msg: \"Too Early\", code: 425 },\n UPGRADE_REQUIRED: { msg: \"Upgrade Required\", code: 426 },\n PRECONDITION_REQUIRED: { msg: \"Precondition Required\", code: 428 },\n TOO_MANY_REQUESTS: { msg: \"Too Many Requests\", code: 429 },\n REQUEST_HEADER_FIELDS_TOO_LARGE: { msg: \"Request Header Fields Too Large\", code: 431 },\n UNAVAILABLE_FOR_LEGAL_REASONS: { msg: \"Unavailable For Legal Reasons\", code: 451 },\n\n // 5xx Server Errors\n INTERNAL_SERVER_ERROR: { msg: \"Internal Server Error\", code: 500 },\n NOT_IMPLEMENTED: { msg: \"Not Implemented\", code: 501 },\n BAD_GATEWAY: { msg: \"Bad Gateway\", code: 502 },\n SERVICE_UNAVAILABLE: { msg: \"Service Unavailable\", code: 503 },\n GATEWAY_TIMEOUT: { msg: \"Gateway Timeout\", code: 504 },\n HTTP_VERSION_NOT_SUPPORTED: { msg: \"HTTP Version Not Supported\", code: 505 },\n VARIANT_ALSO_NEGOTIATES: { msg: \"Variant Also Negotiates\", code: 506 },\n INSUFFICIENT_STORAGE: { msg: \"Insufficient Storage\", code: 507 },\n LOOP_DETECTED: { msg: \"Loop Detected\", code: 508 },\n NOT_EXTENDED: { msg: \"Not Extended\", code: 510 },\n NETWORK_AUTHENTICATION_REQUIRED: { msg: \"Network Authentication Required\", code: 511 },\n};\n"]}
@@ -1,2 +1,3 @@
1
1
  export * from "./errors";
2
2
  export * from "./exception-handler";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exception/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC"}
@@ -46,3 +46,4 @@ export declare function sendForgotPasswordCode(clientId: string, username: strin
46
46
  export declare function confirmForgotPasswordCode(clientId: string, username: string, code: string, newPassword: string): Promise<{
47
47
  username: string;
48
48
  }>;
49
+ //# sourceMappingURL=cognito.function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognito.function.d.ts","sourceRoot":"","sources":["../../../src/function/cognito/cognito.function.ts"],"names":[],"mappings":"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"}
@@ -23,3 +23,4 @@ export declare const cognito: {
23
23
  confirmForgotPasswordCode: typeof confirmForgotPasswordCode;
24
24
  };
25
25
  export type CognitoApi = typeof cognito;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/function/cognito/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AAEnC,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;CAqBnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC"}
@@ -26,3 +26,4 @@ export declare const aws: {
26
26
  };
27
27
  };
28
28
  export type FnApi = typeof aws;
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/function/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CAKf,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,CAAC"}
@@ -13,3 +13,4 @@ declare global {
13
13
  var log: Logger;
14
14
  }
15
15
  export {};
16
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/function/logger.ts"],"names":[],"mappings":"AAGA,cAAM,MAAM;IACV,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqD;IAE5E,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIrC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIrC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAItC,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAItC,KAAK,CAAC,KAAK,EAAE,MAAM;IAInB,QAAQ;IAIR,OAAO,CAAC,GAAG;IAYX,OAAO,CAAC,SAAS;CASlB;AAGD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,GAAG,EAAE,MAAM,CAAC;CACjB;AAID,OAAO,EAAE,CAAC"}
@@ -4,3 +4,4 @@ export declare const s3: {
4
4
  createBucket: typeof createBucket;
5
5
  };
6
6
  export type S3Api = typeof s3;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/function/s3/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,EAAE;;CAKd,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC"}
@@ -1 +1,2 @@
1
1
  export declare function createBucket(): void;
2
+ //# sourceMappingURL=s3.function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.function.d.ts","sourceRoot":"","sources":["../../../src/function/s3/s3.function.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
package/dist/index.d.ts CHANGED
@@ -6,3 +6,4 @@ export * from "./provider";
6
6
  export * from "./model";
7
7
  export * from "./exception";
8
8
  export * from "./function";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -49,3 +49,4 @@ export declare class EntityConfigImpl implements EntityConfig {
49
49
  /** Get configuration as a plain object (for BaseController compatibility) */
50
50
  toObject(): EntityConfig;
51
51
  }
52
+ //# sourceMappingURL=base.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.config.d.ts","sourceRoot":"","sources":["../../src/model/base.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE5F,qCAAqC;AACrC,qBAAa,cAAc;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;gBAER,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,MAAM;CAM1G;AAED,uCAAuC;AACvC,qBAAa,gBAAgB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;gBAEF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAI9C;AAED,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC;AAED,0CAA0C;AAC1C,qBAAa,gBAAiB,YAAW,YAAY;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC;IAC1B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAE3B,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,cAAc,CAAC,EAAE,aAAa,CAAC;IAE/B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mBAAmB,EAAE,MAAM,CAAC;gBAEhB,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE;IAMvD,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI9C,iCAAiC;IACjC,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,cAAc,EACxB,oBAAoB,CAAC,EAAE,MAAM,GAC5B,IAAI;IAOP,mCAAmC;IACnC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlD,8EAA8E;IAC9E,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAKpD,8BAA8B;IAC9B,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAK7C,6EAA6E;IAC7E,QAAQ,IAAI,YAAY;CAazB"}
@@ -61,3 +61,4 @@ export interface PermissionMap {
61
61
  userPoolId?: string;
62
62
  rolePath?: string;
63
63
  }
64
+ //# sourceMappingURL=base.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.model.d.ts","sourceRoot":"","sources":["../../src/model/base.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAEvC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAE1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,QAAS,SAAQ,GAAG,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;CAAG;AAExG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -52,3 +52,4 @@ export interface CognitoUser {
52
52
  createdAt?: string;
53
53
  updatedAt?: string;
54
54
  }
55
+ //# sourceMappingURL=cognito-user.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognito-user.model.d.ts","sourceRoot":"","sources":["../../src/model/cognito-user.model.ts"],"names":[],"mappings":"AAEA,iBAAiB;AACjB,oBAAY,QAAQ;IAClB,EAAE,OAAO;IACT,MAAM,WAAW;IACjB,iBAAiB,sBAAsB;CACxC;AAED,yCAAyC;AACzC,oBAAY,iBAAiB;IAC3B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,cAAc,mBAAmB;IACjC,qBAAqB,0BAA0B;CAChD;AAED,+CAA+C;AAC/C,MAAM,WAAW,WAAW;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAGlB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAG/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -35,3 +35,4 @@ export declare class DynamoIndexMap extends Map<string, {
35
35
  booleanFields?: string[];
36
36
  setFields(partitionKey?: string, numberFields?: string[], arrayFields?: string[], booleanFields?: string[], mapFields?: string[]): this;
37
37
  }
38
+ //# sourceMappingURL=dynamodb.model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb.model.d.ts","sourceRoot":"","sources":["../../src/model/dynamodb.model.ts"],"names":[],"mappings":"AAAA,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAGD,MAAM,WAAW,cAAc;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACrD,yBAAyB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAKD,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,oFAAoF;AACpF,qBAAa,cAAe,SAAQ,GAAG,CACrC,MAAM,EACN;IACE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CACF;IACC,YAAY,EAAE,MAAM,CAAQ;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,SAAS,CACP,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,SAAS,CAAC,EAAE,MAAM,EAAE,GACnB,IAAI;CAQR"}