aws-service-stack 0.18.421 → 0.18.425

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/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 +6 -5
  190. package/dist/model/role.model.d.ts.map +1 -0
  191. package/dist/model/role.model.js.map +1 -1
  192. package/dist/model/validation.model.d.ts +1 -0
  193. package/dist/model/validation.model.d.ts.map +1 -0
  194. package/dist/provider/apigateway.d.ts +1 -0
  195. package/dist/provider/apigateway.d.ts.map +1 -0
  196. package/dist/provider/dynamodb.d.ts +1 -0
  197. package/dist/provider/dynamodb.d.ts.map +1 -0
  198. package/dist/provider/index.d.ts +1 -0
  199. package/dist/provider/index.d.ts.map +1 -0
  200. package/dist/provider/opensearch.d.ts +1 -0
  201. package/dist/provider/opensearch.d.ts.map +1 -0
  202. package/dist/repositories/base-core.repo.interface.d.ts +10 -4
  203. package/dist/repositories/base-core.repo.interface.d.ts.map +1 -0
  204. package/dist/repositories/base-core.repo.interface.js.map +1 -1
  205. package/dist/repositories/base-db.repo.d.ts +14 -8
  206. package/dist/repositories/base-db.repo.d.ts.map +1 -0
  207. package/dist/repositories/base-db.repo.interface.d.ts +25 -4
  208. package/dist/repositories/base-db.repo.interface.d.ts.map +1 -0
  209. package/dist/repositories/base-db.repo.interface.js.map +1 -1
  210. package/dist/repositories/base-db.repo.js +70 -26
  211. package/dist/repositories/base-db.repo.js.map +1 -1
  212. package/dist/repositories/base-es.repo.d.ts +2 -1
  213. package/dist/repositories/base-es.repo.d.ts.map +1 -0
  214. package/dist/repositories/base-es.repo.interface.d.ts +1 -0
  215. package/dist/repositories/base-es.repo.interface.d.ts.map +1 -0
  216. package/dist/repositories/base-es.repo.js +2 -2
  217. package/dist/repositories/base-es.repo.js.map +1 -1
  218. package/dist/repositories/index.d.ts +1 -0
  219. package/dist/repositories/index.d.ts.map +1 -0
  220. package/dist/service/api.services/api.service.d.ts +1 -0
  221. package/dist/service/api.services/api.service.d.ts.map +1 -0
  222. package/dist/service/api.services/api.service.interface.d.ts +1 -0
  223. package/dist/service/api.services/api.service.interface.d.ts.map +1 -0
  224. package/dist/service/api.services/index.d.ts +1 -0
  225. package/dist/service/api.services/index.d.ts.map +1 -0
  226. package/dist/service/auth.service.d.ts +1 -0
  227. package/dist/service/auth.service.d.ts.map +1 -0
  228. package/dist/service/auth.service.interface.d.ts +1 -0
  229. package/dist/service/auth.service.interface.d.ts.map +1 -0
  230. package/dist/service/base.service.d.ts +5 -3
  231. package/dist/service/base.service.d.ts.map +1 -0
  232. package/dist/service/base.service.interface.d.ts +21 -10
  233. package/dist/service/base.service.interface.d.ts.map +1 -0
  234. package/dist/service/base.service.interface.js.map +1 -1
  235. package/dist/service/base.service.js +14 -11
  236. package/dist/service/base.service.js.map +1 -1
  237. package/dist/service/crud-operations.d.ts +103 -0
  238. package/dist/service/crud-operations.d.ts.map +1 -0
  239. package/dist/service/crud-operations.js +459 -0
  240. package/dist/service/crud-operations.js.map +1 -0
  241. package/dist/service/crud.service.d.ts +12 -18
  242. package/dist/service/crud.service.d.ts.map +1 -0
  243. package/dist/service/crud.service.interface.d.ts +55 -13
  244. package/dist/service/crud.service.interface.d.ts.map +1 -0
  245. package/dist/service/crud.service.interface.js.map +1 -1
  246. package/dist/service/crud.service.js +53 -351
  247. package/dist/service/crud.service.js.map +1 -1
  248. package/dist/service/index.d.ts +2 -0
  249. package/dist/service/index.d.ts.map +1 -0
  250. package/dist/service/index.js +1 -0
  251. package/dist/service/index.js.map +1 -1
  252. package/dist/service/key-aws.services.d.ts +1 -0
  253. package/dist/service/key-aws.services.d.ts.map +1 -0
  254. package/dist/service/key.services.interface.d.ts +1 -0
  255. package/dist/service/key.services.interface.d.ts.map +1 -0
  256. package/dist/service/permission.cache.d.ts +1 -0
  257. package/dist/service/permission.cache.d.ts.map +1 -0
  258. package/dist/service/permission.repo.d.ts +1 -0
  259. package/dist/service/permission.repo.d.ts.map +1 -0
  260. package/dist/service/permission.service.d.ts +3 -0
  261. package/dist/service/permission.service.d.ts.map +1 -0
  262. package/dist/service/permission.service.js +30 -14
  263. package/dist/service/permission.service.js.map +1 -1
  264. package/dist/service/socket.service.d.ts +1 -0
  265. package/dist/service/socket.service.d.ts.map +1 -0
  266. package/dist/service/socket.service.interface.d.ts +1 -0
  267. package/dist/service/socket.service.interface.d.ts.map +1 -0
  268. package/dist/service/stream.service.d.ts +1 -0
  269. package/dist/service/stream.service.d.ts.map +1 -0
  270. package/dist/service/stream.service.interface.d.ts +1 -0
  271. package/dist/service/stream.service.interface.d.ts.map +1 -0
  272. package/dist/service/validation.service.interface.d.ts +1 -0
  273. package/dist/service/validation.service.interface.d.ts.map +1 -0
  274. package/dist/utils/array.util.d.ts +1 -0
  275. package/dist/utils/array.util.d.ts.map +1 -0
  276. package/dist/utils/auth.util.d.ts +1 -0
  277. package/dist/utils/auth.util.d.ts.map +1 -0
  278. package/dist/utils/data.util.d.ts +1 -0
  279. package/dist/utils/data.util.d.ts.map +1 -0
  280. package/dist/utils/date.util.d.ts +1 -0
  281. package/dist/utils/date.util.d.ts.map +1 -0
  282. package/dist/utils/dynamodb.utils.d.ts +2 -1
  283. package/dist/utils/dynamodb.utils.d.ts.map +1 -0
  284. package/dist/utils/dynamodb.utils.js +105 -30
  285. package/dist/utils/dynamodb.utils.js.map +1 -1
  286. package/dist/utils/env.util.d.ts +1 -0
  287. package/dist/utils/env.util.d.ts.map +1 -0
  288. package/dist/utils/error.util.d.ts +1 -0
  289. package/dist/utils/error.util.d.ts.map +1 -0
  290. package/dist/utils/http/http-request.d.ts +1 -0
  291. package/dist/utils/http/http-request.d.ts.map +1 -0
  292. package/dist/utils/http/http.util.d.ts +1 -0
  293. package/dist/utils/http/http.util.d.ts.map +1 -0
  294. package/dist/utils/index.d.ts +1 -0
  295. package/dist/utils/index.d.ts.map +1 -0
  296. package/dist/utils/json.util.d.ts +1 -0
  297. package/dist/utils/json.util.d.ts.map +1 -0
  298. package/dist/utils/opensearch/opensearch.parser.aggs.d.ts +1 -0
  299. package/dist/utils/opensearch/opensearch.parser.aggs.d.ts.map +1 -0
  300. package/dist/utils/opensearch/opensearch.parser.d.ts +1 -0
  301. package/dist/utils/opensearch/opensearch.parser.d.ts.map +1 -0
  302. package/dist/utils/opensearch/opensearch.parser.keyword.d.ts +1 -0
  303. package/dist/utils/opensearch/opensearch.parser.keyword.d.ts.map +1 -0
  304. package/dist/utils/opensearch/opensearch.parser.query.map.d.ts +1 -0
  305. package/dist/utils/opensearch/opensearch.parser.query.map.d.ts.map +1 -0
  306. package/dist/utils/opensearch/opensearch.parser.sort.d.ts +1 -0
  307. package/dist/utils/opensearch/opensearch.parser.sort.d.ts.map +1 -0
  308. package/dist/utils/opensearch/opensearch.parser.utils.d.ts +1 -0
  309. package/dist/utils/opensearch/opensearch.parser.utils.d.ts.map +1 -0
  310. package/dist/utils/opensearch/opensearch.transform.d.ts +1 -0
  311. package/dist/utils/opensearch/opensearch.transform.d.ts.map +1 -0
  312. package/dist/utils/opensearch.utils.d.ts +1 -0
  313. package/dist/utils/opensearch.utils.d.ts.map +1 -0
  314. package/dist/utils/reflection.util.d.ts +1 -0
  315. package/dist/utils/reflection.util.d.ts.map +1 -0
  316. package/dist/utils/reflection.util.js +7 -8
  317. package/dist/utils/reflection.util.js.map +1 -1
  318. package/dist/utils/string.util.d.ts +1 -0
  319. package/dist/utils/string.util.d.ts.map +1 -0
  320. package/dist/utils/validation.util.d.ts +1 -0
  321. package/dist/utils/validation.util.d.ts.map +1 -0
  322. package/package.json +1 -1
@@ -1,11 +1,17 @@
1
- import { BaseEntity, CognitoUser, DynamoIndexMap, Filter, List } from "../index";
1
+ import { BaseEntity, CognitoUser, DynamoIndexMap, ErrorReason, Filter, HttpStatus, List } from "../index";
2
2
  import { EntityConfig } from "../model/index.js";
3
3
  /**
4
- * Defines a generic base service interface for working with entities in both
5
- * DynamoDB and OpenSearch.
4
+ * Entity service facade for DynamoDB writes, DynamoDB indexed reads, DynamoDB scans,
5
+ * and OpenSearch reads.
6
6
  */
7
7
  export interface CrudService<T extends BaseEntity> {
8
+ /**
9
+ * Applies table, index, ownership, trace, and OpenSearch configuration to the service.
10
+ */
8
11
  setConfig(config: EntityConfig): void;
12
+ /**
13
+ * Returns the configured DynamoDB table name.
14
+ */
9
15
  getTableName(): string;
10
16
  /**
11
17
  * Creates a new entity for the given user.
@@ -81,17 +87,41 @@ export interface CrudService<T extends BaseEntity> {
81
87
  */
82
88
  findByIds(entityIds: string[], requestUser?: CognitoUser): Promise<T[]>;
83
89
  /**
84
- * Retrieves a paginated and filtered list of entities from DynamoDB.
90
+ * Executes a DynamoDB Query through a configured index.
85
91
  *
86
- * @param filter - Filtering and sorting options.
87
- * @returns A promise resolving to a paginated list of entities.
92
+ * `find` never falls back to Scan. The filter must resolve to `indexName` and
93
+ * `indexValue`, either explicitly or through the entity `DynamoIndexMap`.
94
+ * Sort-key fields defined in the selected index map entry are used as
95
+ * DynamoDB key conditions by the repository.
96
+ *
97
+ * @param filter - Query-string or filter object that resolves to a DynamoDB index query.
98
+ * @param debug - When true, logs the generated DynamoDB command.
99
+ * @returns One DynamoDB query page and an optional pagination `lastKey`.
100
+ * @throws ErrorHttp or ErrorDynamoDB when the filter cannot resolve to an indexed query.
88
101
  */
89
- find(filter: Filter | string): Promise<List<Partial<T>>>;
102
+ find(filter: Filter | string, debug?: boolean): Promise<List<Partial<T>>>;
90
103
  /**
91
- * Scans the table with non-index filters. Expensive; avoid it for hot paths.
104
+ * Executes a DynamoDB Scan for non-indexed/ad-hoc filters.
105
+ *
106
+ * Scans are expensive and should not be used in hot paths. The filter must
107
+ * include `queryCountLimit` with a value from 1 to 500. That value limits the
108
+ * number of internal DynamoDB Scan requests issued by one service call.
109
+ *
110
+ * @param filter - Query-string or filter object. Must include `queryCountLimit`.
111
+ * @param debug - When true, logs each generated DynamoDB Scan command.
112
+ * @returns Matching items collected before `size`, `queryCountLimit`, or table end is reached.
113
+ */
114
+ scan(filter: Filter | string, debug?: boolean): Promise<List<Partial<T>>>;
115
+ /**
116
+ * Parses a query string and executes it through `find`.
92
117
  */
93
- scan(filter: Filter): Promise<List<Partial<T>>>;
94
118
  findQuery(queryParams: string): Promise<List<Partial<T>>>;
119
+ /**
120
+ * Builds and executes an OpenSearch query DSL request from query-string/filter input.
121
+ *
122
+ * @param queryParams - OpenSearch query parser input.
123
+ * @param debug - When true, logs the generated OpenSearch query.
124
+ */
95
125
  searchQuery(queryParams: any, debug?: boolean): Promise<{
96
126
  items: Partial<T>[];
97
127
  total: number;
@@ -119,20 +149,31 @@ export interface CrudService<T extends BaseEntity> {
119
149
  findByField(fieldName: string, fieldValue: any): Promise<List<T>>;
120
150
  findFirst(fieldName: string, fieldValue: string | boolean | number | Date): Promise<T>;
121
151
  throwError(code: number, message: string, errorContent?: any): void;
152
+ throwHttpError(status: HttpStatus, message: string, errorContent?: any, reason?: ErrorReason): void;
153
+ /**
154
+ * @deprecated use throwHttpError instead
155
+ * */
122
156
  throwErrorHttp(error: {
123
157
  message: string;
124
158
  code: number;
125
159
  }, message: string, errorContent?: any): void;
160
+ /**
161
+ * @deprecated use throwHttpError instead
162
+ * */
126
163
  throwErrorsHttp(code: number, message: string, errorContent?: any): void;
127
164
  throwErrorDatabase(tableName: string, command: any, errorContent?: any): void;
128
165
  throwErrorValidation(entityName: string, validation: Map<string, any>, errorContent?: any): void;
129
166
  /**
130
- * Retrieves a filtered and sorted list of entities from OpenSearch.
167
+ * Executes an OpenSearch read.
168
+ *
169
+ * Use `search` for full-text, flexible filtering, aggregations, and views that
170
+ * are backed by OpenSearch rather than DynamoDB.
131
171
  *
132
- * @param filter - Filtering and sorting options.
133
- * @returns A promise resolving to the list of matching entities.
172
+ * @param filter - Query-string or filter object for OpenSearch.
173
+ * @param debug - When true, logs the generated OpenSearch query.
174
+ * @returns One OpenSearch page.
134
175
  */
135
- search(filter: Filter | string): Promise<List<Partial<T>>>;
176
+ search(filter: Filter | string, debug?: boolean): Promise<List<Partial<T>>>;
136
177
  searchFieldNotExist(fieldName: string, from: number, size: number): Promise<Partial<T>[]>;
137
178
  /**
138
179
  * Changes the owner of an entity.
@@ -149,3 +190,4 @@ export interface CrudService<T extends BaseEntity> {
149
190
  incrementValueByField(entityId: string, fieldName: string, value?: number): Promise<T>;
150
191
  decrementValueByField(entityId: string, fieldName: string, value?: number): Promise<T>;
151
192
  }
193
+ //# sourceMappingURL=crud.service.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.service.interface.d.ts","sourceRoot":"","sources":["../../src/service/crud.service.interface.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"crud.service.interface.js","sourceRoot":"","sources":["../../src/service/crud.service.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { BaseEntity, CognitoUser, DynamoIndexMap, Filter, List } from \"../index\";\nimport { EntityConfig } from \"@chinggis/types\";\n\n/**\n * Defines a generic base service interface for working with entities in both\n * DynamoDB and OpenSearch.\n */\nexport interface CrudService<T extends BaseEntity> {\n setConfig(config: EntityConfig): void;\n\n getTableName(): string;\n /**\n * Creates a new entity for the given user.\n * @param ownerId - The ID of the user who owns the entity.\n * @param entity - The entity to be created.\n * @param parentId\n * @param createdByUser - The created user.\n * @returns The created entity.\n */\n save(entity: Partial<T>, ownerId: string, parentId?: string, createdByUser?: CognitoUser): Promise<T>;\n\n /**\n * Creates multiple new entities for the given user.\n * @param ownerId - The ID of the user who owns the entities.\n * @param entity - An array of entities to be created.\n * @param parentId\n * @param createdByUser - The created user.\n * @param isTransactional - Whether to perform the operation in a transaction.\n * @returns An array of created entities.\n */\n saveAll(\n entity: Partial<T>[],\n ownerId: string,\n parentId?: string,\n createdByUser?: CognitoUser,\n isTransactional?: boolean,\n ): Promise<Partial<T>[]>;\n\n /**\n * Applies partial updates to an entity for the given user.\n * Only the specified fields will be updated.\n * @param requestUser - Cognito user, system if not exist\n * @param entity - The entity with updated fields.\n * @returns The updated entity.\n */\n update(entity: Partial<T>, requestUser?: CognitoUser, fields?: string[]): Promise<T>;\n\n /**\n * Applies partial updates to multiple entities for the given user.\n * Only the specified fields will be updated for each entity.\n * @param requestUser - Cognito user, system if not exist\n * @param entity - An array of entities with updated fields.\n * @param fields - The list of field names to update in each entity. Supports dot paths (e.g. `author.name`).\n * @param isTransactional - Whether to perform the operation in a transaction.\n * @returns True if all entities were successfully updated.\n */\n updateAll(entity: T[], fields: string[], requestUser?: CognitoUser, isTransactional?: boolean): Promise<boolean>;\n\n /**\n * Updates selected fields for one entity. The entity object provides both the\n * partition-key value (to identify the item) and the new field values to write.\n * Supports dot paths (e.g. `author.name`).\n */\n updateFields(entity: Partial<T>, fields: string[], requestUser?: CognitoUser): Promise<Partial<T>>;\n\n /**\n * Deletes an entity by ID for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityId - The ID of the entity to delete.\n * @returns True if the entity was successfully deleted.\n */\n remove(entityId: string, requestUser?: CognitoUser): Promise<boolean>;\n\n deleteFields(entityId: string, fields: string[]): Promise<Partial<T>>;\n\n /**\n * Deletes multiple entities by their IDs for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityIds - An array of entity IDs to delete.\n * @returns True if all entities were successfully deleted.\n */\n removeAll(entityIds: string[], requestUser?: CognitoUser): Promise<boolean>;\n\n removeMatch(filter: Filter | string, requestUser?: CognitoUser): Promise<boolean>;\n\n /**\n * Retrieves an entity by its ID for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityId - The ID of the entity to retrieve.\n * @returns The requested entity.\n */\n findById(entityId: string, requestUser?: CognitoUser): Promise<T>;\n\n /**\n * Retrieves multiple entities by their IDs for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityIds - An array of entity IDs to retrieve.\n * @returns An array of found entities.\n */\n findByIds(entityIds: string[], requestUser?: CognitoUser): Promise<T[]>;\n\n /**\n * Retrieves a paginated and filtered list of entities from DynamoDB.\n *\n * @param filter - Filtering and sorting options.\n * @returns A promise resolving to a paginated list of entities.\n */\n find(filter: Filter | string): Promise<List<Partial<T>>>;\n\n /**\n * Scans the table with non-index filters. Expensive; avoid it for hot paths.\n */\n scan(filter: Filter): Promise<List<Partial<T>>>;\n\n findQuery(queryParams: string): Promise<List<Partial<T>>>;\n\n searchQuery(\n queryParams: any,\n debug?: boolean,\n ): Promise<{ items: Partial<T>[]; total: number; aggs?: Record<string, any> }>;\n\n /**\n * Returns a lazy async iterator over paginated DynamoDB query results.\n * Each `next()` call loads the next page only when the current buffer is empty.\n */\n findStream(filter: string, size?: number): AsyncGenerator<T>;\n\n /**\n * Returns a lazy async iterator over paginated OpenSearch query results.\n * Each `next()` call loads the next page only when the current buffer is empty.\n */\n searchStream(filter: string, size?: number): AsyncGenerator<T>;\n\n searchStreamAggr(\n filter: Filter | string,\n size?: number,\n ): AsyncGenerator<{ items: Partial<T>[]; total: number; aggs?: Record<string, any> }>;\n\n searchQueryTotalCount(queryParams: any): Promise<number>;\n\n findAll(): Promise<T[]>;\n\n findAllMatch(filter: Filter | string): Promise<T[]>;\n\n findAllByIndex(indexName: string, indexValue: any): Promise<T[]>;\n\n findByField(fieldName: string, fieldValue: any): Promise<List<T>>;\n\n findFirst(fieldName: string, fieldValue: string | boolean | number | Date): Promise<T>;\n\n throwError(code: number, message: string, errorContent?: any): void;\n\n throwErrorHttp(error: { message: string; code: number }, message: string, errorContent?: any): void;\n\n throwErrorsHttp(code: number, message: string, errorContent?: any): void;\n\n throwErrorDatabase(tableName: string, command: any, errorContent?: any): void;\n\n throwErrorValidation(entityName: string, validation: Map<string, any>, errorContent?: any): void;\n\n // throwError(httpStatus: number, message: string): void;\n /**\n * Retrieves a filtered and sorted list of entities from OpenSearch.\n *\n * @param filter - Filtering and sorting options.\n * @returns A promise resolving to the list of matching entities.\n */\n search(filter: Filter | string): Promise<List<Partial<T>>>;\n\n searchFieldNotExist(fieldName: string, from: number, size: number): Promise<Partial<T>[]>;\n\n /**\n * Changes the owner of an entity.\n * @param ownerId - The new owner's ID.\n * @param entityId - The ID of the entity to transfer.\n * @returns The updated entity with the new owner.\n */\n changeOwner(entityId: string, ownerId: string): Promise<T>;\n\n setTable(tableName: string, dynamoIndexMap: DynamoIndexMap): boolean;\n\n setOpensearch(indexName: string, opensearchEndpoint: string): boolean;\n\n getIndexES(): string;\n\n getIndexMapDB(): DynamoIndexMap;\n\n setIndexMapDB(indexMap: DynamoIndexMap): boolean;\n\n incrementValueByField(entityId: string, fieldName: string, value?: number): Promise<T>;\n\n decrementValueByField(entityId: string, fieldName: string, value?: number): Promise<T>;\n}\n"]}
1
+ {"version":3,"file":"crud.service.interface.js","sourceRoot":"","sources":["../../src/service/crud.service.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { BaseEntity, CognitoUser, DynamoIndexMap, ErrorReason, Filter, HttpStatus, List } from \"../index\";\nimport { EntityConfig } from \"@chinggis/types\";\n\n/**\n * Entity service facade for DynamoDB writes, DynamoDB indexed reads, DynamoDB scans,\n * and OpenSearch reads.\n */\nexport interface CrudService<T extends BaseEntity> {\n /**\n * Applies table, index, ownership, trace, and OpenSearch configuration to the service.\n */\n setConfig(config: EntityConfig): void;\n\n /**\n * Returns the configured DynamoDB table name.\n */\n getTableName(): string;\n /**\n * Creates a new entity for the given user.\n * @param ownerId - The ID of the user who owns the entity.\n * @param entity - The entity to be created.\n * @param parentId\n * @param createdByUser - The created user.\n * @returns The created entity.\n */\n save(entity: Partial<T>, ownerId: string, parentId?: string, createdByUser?: CognitoUser): Promise<T>;\n\n /**\n * Creates multiple new entities for the given user.\n * @param ownerId - The ID of the user who owns the entities.\n * @param entity - An array of entities to be created.\n * @param parentId\n * @param createdByUser - The created user.\n * @param isTransactional - Whether to perform the operation in a transaction.\n * @returns An array of created entities.\n */\n saveAll(\n entity: Partial<T>[],\n ownerId: string,\n parentId?: string,\n createdByUser?: CognitoUser,\n isTransactional?: boolean,\n ): Promise<Partial<T>[]>;\n\n /**\n * Applies partial updates to an entity for the given user.\n * Only the specified fields will be updated.\n * @param requestUser - Cognito user, system if not exist\n * @param entity - The entity with updated fields.\n * @returns The updated entity.\n */\n update(entity: Partial<T>, requestUser?: CognitoUser, fields?: string[]): Promise<T>;\n\n /**\n * Applies partial updates to multiple entities for the given user.\n * Only the specified fields will be updated for each entity.\n * @param requestUser - Cognito user, system if not exist\n * @param entity - An array of entities with updated fields.\n * @param fields - The list of field names to update in each entity. Supports dot paths (e.g. `author.name`).\n * @param isTransactional - Whether to perform the operation in a transaction.\n * @returns True if all entities were successfully updated.\n */\n updateAll(entity: T[], fields: string[], requestUser?: CognitoUser, isTransactional?: boolean): Promise<boolean>;\n\n /**\n * Updates selected fields for one entity. The entity object provides both the\n * partition-key value (to identify the item) and the new field values to write.\n * Supports dot paths (e.g. `author.name`).\n */\n updateFields(entity: Partial<T>, fields: string[], requestUser?: CognitoUser): Promise<Partial<T>>;\n\n /**\n * Deletes an entity by ID for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityId - The ID of the entity to delete.\n * @returns True if the entity was successfully deleted.\n */\n remove(entityId: string, requestUser?: CognitoUser): Promise<boolean>;\n\n deleteFields(entityId: string, fields: string[]): Promise<Partial<T>>;\n\n /**\n * Deletes multiple entities by their IDs for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityIds - An array of entity IDs to delete.\n * @returns True if all entities were successfully deleted.\n */\n removeAll(entityIds: string[], requestUser?: CognitoUser): Promise<boolean>;\n\n removeMatch(filter: Filter | string, requestUser?: CognitoUser): Promise<boolean>;\n\n /**\n * Retrieves an entity by its ID for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityId - The ID of the entity to retrieve.\n * @returns The requested entity.\n */\n findById(entityId: string, requestUser?: CognitoUser): Promise<T>;\n\n /**\n * Retrieves multiple entities by their IDs for the given user.\n * @param requestUser - Cognito user, system if not exist\n * @param entityIds - An array of entity IDs to retrieve.\n * @returns An array of found entities.\n */\n findByIds(entityIds: string[], requestUser?: CognitoUser): Promise<T[]>;\n\n /**\n * Executes a DynamoDB Query through a configured index.\n *\n * `find` never falls back to Scan. The filter must resolve to `indexName` and\n * `indexValue`, either explicitly or through the entity `DynamoIndexMap`.\n * Sort-key fields defined in the selected index map entry are used as\n * DynamoDB key conditions by the repository.\n *\n * @param filter - Query-string or filter object that resolves to a DynamoDB index query.\n * @param debug - When true, logs the generated DynamoDB command.\n * @returns One DynamoDB query page and an optional pagination `lastKey`.\n * @throws ErrorHttp or ErrorDynamoDB when the filter cannot resolve to an indexed query.\n */\n find(filter: Filter | string, debug?: boolean): Promise<List<Partial<T>>>;\n\n /**\n * Executes a DynamoDB Scan for non-indexed/ad-hoc filters.\n *\n * Scans are expensive and should not be used in hot paths. The filter must\n * include `queryCountLimit` with a value from 1 to 500. That value limits the\n * number of internal DynamoDB Scan requests issued by one service call.\n *\n * @param filter - Query-string or filter object. Must include `queryCountLimit`.\n * @param debug - When true, logs each generated DynamoDB Scan command.\n * @returns Matching items collected before `size`, `queryCountLimit`, or table end is reached.\n */\n scan(filter: Filter | string, debug?: boolean): Promise<List<Partial<T>>>;\n\n /**\n * Parses a query string and executes it through `find`.\n */\n findQuery(queryParams: string): Promise<List<Partial<T>>>;\n\n /**\n * Builds and executes an OpenSearch query DSL request from query-string/filter input.\n *\n * @param queryParams - OpenSearch query parser input.\n * @param debug - When true, logs the generated OpenSearch query.\n */\n searchQuery(\n queryParams: any,\n debug?: boolean,\n ): Promise<{ items: Partial<T>[]; total: number; aggs?: Record<string, any> }>;\n\n /**\n * Returns a lazy async iterator over paginated DynamoDB query results.\n * Each `next()` call loads the next page only when the current buffer is empty.\n */\n findStream(filter: string, size?: number): AsyncGenerator<T>;\n\n /**\n * Returns a lazy async iterator over paginated OpenSearch query results.\n * Each `next()` call loads the next page only when the current buffer is empty.\n */\n searchStream(filter: string, size?: number): AsyncGenerator<T>;\n\n searchStreamAggr(\n filter: Filter | string,\n size?: number,\n ): AsyncGenerator<{ items: Partial<T>[]; total: number; aggs?: Record<string, any> }>;\n\n searchQueryTotalCount(queryParams: any): Promise<number>;\n\n findAll(): Promise<T[]>;\n\n findAllMatch(filter: Filter | string): Promise<T[]>;\n\n findAllByIndex(indexName: string, indexValue: any): Promise<T[]>;\n\n findByField(fieldName: string, fieldValue: any): Promise<List<T>>;\n\n findFirst(fieldName: string, fieldValue: string | boolean | number | Date): Promise<T>;\n\n throwError(code: number, message: string, errorContent?: any): void;\n\n throwHttpError(status: HttpStatus, message: string, errorContent?: any, reason?: ErrorReason): void;\n\n /**\n * @deprecated use throwHttpError instead\n * */\n throwErrorHttp(error: { message: string; code: number }, message: string, errorContent?: any): void;\n\n /**\n * @deprecated use throwHttpError instead\n * */\n throwErrorsHttp(code: number, message: string, errorContent?: any): void;\n\n throwErrorDatabase(tableName: string, command: any, errorContent?: any): void;\n\n throwErrorValidation(entityName: string, validation: Map<string, any>, errorContent?: any): void;\n\n // throwError(httpStatus: number, message: string): void;\n /**\n * Executes an OpenSearch read.\n *\n * Use `search` for full-text, flexible filtering, aggregations, and views that\n * are backed by OpenSearch rather than DynamoDB.\n *\n * @param filter - Query-string or filter object for OpenSearch.\n * @param debug - When true, logs the generated OpenSearch query.\n * @returns One OpenSearch page.\n */\n search(filter: Filter | string, debug?: boolean): Promise<List<Partial<T>>>;\n\n searchFieldNotExist(fieldName: string, from: number, size: number): Promise<Partial<T>[]>;\n\n /**\n * Changes the owner of an entity.\n * @param ownerId - The new owner's ID.\n * @param entityId - The ID of the entity to transfer.\n * @returns The updated entity with the new owner.\n */\n changeOwner(entityId: string, ownerId: string): Promise<T>;\n\n setTable(tableName: string, dynamoIndexMap: DynamoIndexMap): boolean;\n\n setOpensearch(indexName: string, opensearchEndpoint: string): boolean;\n\n getIndexES(): string;\n\n getIndexMapDB(): DynamoIndexMap;\n\n setIndexMapDB(indexMap: DynamoIndexMap): boolean;\n\n incrementValueByField(entityId: string, fieldName: string, value?: number): Promise<T>;\n\n decrementValueByField(entityId: string, fieldName: string, value?: number): Promise<T>;\n}\n"]}