@decaf-ts/core 0.7.59 → 0.7.61

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 (375) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/identity/decorators.js +3 -3
  7. package/lib/esm/identity/decorators.js.map +1 -1
  8. package/lib/esm/index.d.ts +2 -2
  9. package/lib/esm/index.js +6 -3
  10. package/lib/esm/index.js.map +1 -1
  11. package/lib/esm/migrations/Migration.d.ts +19 -0
  12. package/lib/esm/migrations/Migration.js +73 -0
  13. package/lib/esm/migrations/Migration.js.map +1 -0
  14. package/lib/esm/migrations/MigrationService.d.ts +25 -0
  15. package/lib/esm/migrations/MigrationService.js +206 -0
  16. package/lib/esm/migrations/MigrationService.js.map +1 -0
  17. package/lib/esm/migrations/constants.d.ts +2 -0
  18. package/lib/esm/migrations/constants.js +5 -0
  19. package/lib/esm/migrations/constants.js.map +1 -0
  20. package/lib/esm/migrations/decorators.d.ts +7 -0
  21. package/lib/esm/migrations/decorators.js +49 -0
  22. package/lib/esm/migrations/decorators.js.map +1 -0
  23. package/lib/esm/migrations/index.d.ts +5 -0
  24. package/lib/esm/migrations/index.js +6 -0
  25. package/lib/esm/migrations/index.js.map +1 -0
  26. package/lib/esm/migrations/types.d.ts +23 -0
  27. package/lib/esm/migrations/types.js +2 -0
  28. package/lib/esm/migrations/types.js.map +1 -0
  29. package/lib/esm/model/SequenceModel.js +1 -1
  30. package/lib/esm/model/SequenceModel.js.map +1 -1
  31. package/lib/esm/model/construction.js +4 -3
  32. package/lib/esm/model/construction.js.map +1 -1
  33. package/lib/esm/model/decorators.d.ts +0 -1
  34. package/lib/esm/model/decorators.js +3 -8
  35. package/lib/esm/model/decorators.js.map +1 -1
  36. package/lib/esm/overrides/Metadata.d.ts +6 -1
  37. package/lib/esm/overrides/Model.d.ts +0 -1
  38. package/lib/esm/overrides/index.d.ts +0 -1
  39. package/lib/esm/overrides/index.js +0 -1
  40. package/lib/esm/overrides/index.js.map +1 -1
  41. package/lib/esm/overrides/injectables.d.ts +1 -1
  42. package/lib/esm/overrides/overrides.js +17 -9
  43. package/lib/esm/overrides/overrides.js.map +1 -1
  44. package/lib/esm/persistence/Adapter.d.ts +11 -18
  45. package/lib/esm/persistence/Adapter.js +74 -54
  46. package/lib/esm/persistence/Adapter.js.map +1 -1
  47. package/lib/esm/persistence/Context.d.ts +3 -3
  48. package/lib/esm/persistence/Context.js +2 -2
  49. package/lib/esm/persistence/Context.js.map +1 -1
  50. package/lib/esm/persistence/Dispatch.d.ts +7 -3
  51. package/lib/esm/persistence/Dispatch.js +34 -13
  52. package/lib/esm/persistence/Dispatch.js.map +1 -1
  53. package/lib/esm/persistence/ObserverHandler.js +1 -1
  54. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  55. package/lib/esm/persistence/Sequence.d.ts +9 -5
  56. package/lib/esm/persistence/Sequence.js +19 -15
  57. package/lib/esm/persistence/Sequence.js.map +1 -1
  58. package/lib/esm/persistence/constants.d.ts +11 -1
  59. package/lib/esm/persistence/constants.js +26 -3
  60. package/lib/esm/persistence/constants.js.map +1 -1
  61. package/lib/esm/persistence/decorators.d.ts +24 -0
  62. package/lib/esm/persistence/decorators.js +50 -0
  63. package/lib/esm/persistence/decorators.js.map +1 -0
  64. package/lib/esm/persistence/errors.d.ts +3 -3
  65. package/lib/esm/persistence/errors.js.map +1 -1
  66. package/lib/esm/persistence/event-filters.d.ts +20 -0
  67. package/lib/esm/persistence/event-filters.js +60 -0
  68. package/lib/esm/persistence/event-filters.js.map +1 -0
  69. package/lib/esm/persistence/index.d.ts +1 -1
  70. package/lib/esm/persistence/index.js +1 -1
  71. package/lib/esm/persistence/index.js.map +1 -1
  72. package/lib/esm/persistence/types.d.ts +9 -6
  73. package/lib/esm/query/Paginator.d.ts +4 -4
  74. package/lib/esm/query/Paginator.js +17 -8
  75. package/lib/esm/query/Paginator.js.map +1 -1
  76. package/lib/esm/query/Statement.d.ts +6 -4
  77. package/lib/esm/query/Statement.js +24 -18
  78. package/lib/esm/query/Statement.js.map +1 -1
  79. package/lib/esm/query/selectors.d.ts +4 -1
  80. package/lib/esm/ram/RamAdapter.d.ts +6 -5
  81. package/lib/esm/ram/RamAdapter.js +20 -16
  82. package/lib/esm/ram/RamAdapter.js.map +1 -1
  83. package/lib/esm/ram/RamPaginator.d.ts +1 -1
  84. package/lib/esm/ram/RamPaginator.js +6 -2
  85. package/lib/esm/ram/RamPaginator.js.map +1 -1
  86. package/lib/esm/ram/types.d.ts +2 -0
  87. package/lib/esm/repository/Repository.d.ts +10 -8
  88. package/lib/esm/repository/Repository.js +107 -76
  89. package/lib/esm/repository/Repository.js.map +1 -1
  90. package/lib/esm/repository/decorators.d.ts +1 -1
  91. package/lib/esm/repository/decorators.js +1 -1
  92. package/lib/esm/repository/decorators.js.map +1 -1
  93. package/lib/esm/repository/injectables.d.ts +2 -1
  94. package/lib/esm/repository/injectables.js.map +1 -1
  95. package/lib/esm/services/ModelService.d.ts +42 -0
  96. package/lib/esm/services/ModelService.js +236 -0
  97. package/lib/esm/services/ModelService.js.map +1 -0
  98. package/lib/esm/services/PersistenceService.d.ts +16 -0
  99. package/lib/esm/services/PersistenceService.js +34 -0
  100. package/lib/esm/services/PersistenceService.js.map +1 -0
  101. package/lib/esm/services/index.d.ts +3 -0
  102. package/lib/esm/services/index.js +4 -0
  103. package/lib/esm/services/index.js.map +1 -0
  104. package/lib/esm/services/services.d.ts +93 -0
  105. package/lib/esm/services/services.js +241 -0
  106. package/lib/esm/services/services.js.map +1 -0
  107. package/lib/esm/tasks/TaskContext.d.ts +10 -0
  108. package/lib/esm/tasks/TaskContext.js +22 -0
  109. package/lib/esm/tasks/TaskContext.js.map +1 -0
  110. package/lib/esm/tasks/TaskEngine.d.ts +64 -0
  111. package/lib/esm/tasks/TaskEngine.js +341 -0
  112. package/lib/esm/tasks/TaskEngine.js.map +1 -0
  113. package/lib/esm/tasks/TaskEventBus.d.ts +6 -0
  114. package/lib/esm/tasks/TaskEventBus.js +14 -0
  115. package/lib/esm/tasks/TaskEventBus.js.map +1 -0
  116. package/lib/esm/tasks/TaskEventRepository.d.ts +10 -0
  117. package/lib/esm/tasks/TaskEventRepository.js +35 -0
  118. package/lib/esm/tasks/TaskEventRepository.js.map +1 -0
  119. package/lib/esm/tasks/TaskHandler.d.ts +11 -0
  120. package/lib/esm/tasks/TaskHandler.js +28 -0
  121. package/lib/esm/tasks/TaskHandler.js.map +1 -0
  122. package/lib/esm/tasks/TaskHandlerRegistry.d.ts +8 -0
  123. package/lib/esm/tasks/TaskHandlerRegistry.js +32 -0
  124. package/lib/esm/tasks/TaskHandlerRegistry.js.map +1 -0
  125. package/lib/esm/tasks/TaskService.d.ts +11 -0
  126. package/lib/esm/tasks/TaskService.js +25 -0
  127. package/lib/esm/tasks/TaskService.js.map +1 -0
  128. package/lib/esm/tasks/constants.d.ts +26 -0
  129. package/lib/esm/tasks/constants.js +32 -0
  130. package/lib/esm/tasks/constants.js.map +1 -0
  131. package/lib/esm/tasks/decorators.d.ts +4 -0
  132. package/lib/esm/tasks/decorators.js +20 -0
  133. package/lib/esm/tasks/decorators.js.map +1 -0
  134. package/lib/esm/tasks/index.d.ts +3 -0
  135. package/lib/esm/tasks/index.js +4 -0
  136. package/lib/esm/tasks/index.js.map +1 -0
  137. package/lib/esm/tasks/models/TaskBackoffModel.d.ts +10 -0
  138. package/lib/esm/tasks/models/TaskBackoffModel.js +47 -0
  139. package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -0
  140. package/lib/esm/tasks/models/TaskBaseModel.d.ts +14 -0
  141. package/lib/esm/tasks/models/TaskBaseModel.js +30 -0
  142. package/lib/esm/tasks/models/TaskBaseModel.js.map +1 -0
  143. package/lib/esm/tasks/models/TaskErrorModel.d.ts +9 -0
  144. package/lib/esm/tasks/models/TaskErrorModel.js +43 -0
  145. package/lib/esm/tasks/models/TaskErrorModel.js.map +1 -0
  146. package/lib/esm/tasks/models/TaskEventModel.d.ts +11 -0
  147. package/lib/esm/tasks/models/TaskEventModel.js +60 -0
  148. package/lib/esm/tasks/models/TaskEventModel.js.map +1 -0
  149. package/lib/esm/tasks/models/TaskLogEntryModel.d.ts +9 -0
  150. package/lib/esm/tasks/models/TaskLogEntryModel.js +41 -0
  151. package/lib/esm/tasks/models/TaskLogEntryModel.js.map +1 -0
  152. package/lib/esm/tasks/models/TaskModel.d.ts +28 -0
  153. package/lib/esm/tasks/models/TaskModel.js +114 -0
  154. package/lib/esm/tasks/models/TaskModel.js.map +1 -0
  155. package/lib/esm/tasks/models/TaskStepResultModel.d.ts +10 -0
  156. package/lib/esm/tasks/models/TaskStepResultModel.js +40 -0
  157. package/lib/esm/tasks/models/TaskStepResultModel.js.map +1 -0
  158. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +7 -0
  159. package/lib/esm/tasks/models/TaskStepSpecModel.js +32 -0
  160. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -0
  161. package/lib/esm/tasks/models/index.d.ts +1 -0
  162. package/lib/esm/tasks/models/index.js +2 -0
  163. package/lib/esm/tasks/models/index.js.map +1 -0
  164. package/lib/esm/tasks/types.d.ts +22 -0
  165. package/lib/esm/tasks/types.js +2 -0
  166. package/lib/esm/tasks/types.js.map +1 -0
  167. package/lib/esm/tasks/utils.d.ts +5 -0
  168. package/lib/esm/tasks/utils.js +24 -0
  169. package/lib/esm/tasks/utils.js.map +1 -0
  170. package/lib/esm/utils/ContextualLoggedClass.d.ts +28 -7
  171. package/lib/esm/utils/ContextualLoggedClass.js +100 -22
  172. package/lib/esm/utils/ContextualLoggedClass.js.map +1 -1
  173. package/lib/esm/utils/decorators.d.ts +4 -4
  174. package/lib/esm/utils/decorators.js +1 -1
  175. package/lib/esm/utils/decorators.js.map +1 -1
  176. package/lib/esm/utils/index.d.ts +0 -1
  177. package/lib/esm/utils/index.js +0 -1
  178. package/lib/esm/utils/index.js.map +1 -1
  179. package/lib/esm/utils/utils.d.ts +1 -0
  180. package/lib/esm/utils/utils.js +24 -0
  181. package/lib/esm/utils/utils.js.map +1 -1
  182. package/lib/identity/decorators.cjs +2 -2
  183. package/lib/identity/decorators.js.map +1 -1
  184. package/lib/index.cjs +6 -3
  185. package/lib/index.d.ts +2 -2
  186. package/lib/index.js.map +1 -1
  187. package/lib/migrations/Migration.cjs +77 -0
  188. package/lib/migrations/Migration.d.ts +19 -0
  189. package/lib/migrations/Migration.js.map +1 -0
  190. package/lib/migrations/MigrationService.cjs +210 -0
  191. package/lib/migrations/MigrationService.d.ts +25 -0
  192. package/lib/migrations/MigrationService.js.map +1 -0
  193. package/lib/migrations/constants.cjs +8 -0
  194. package/lib/migrations/constants.d.ts +2 -0
  195. package/lib/migrations/constants.js.map +1 -0
  196. package/lib/migrations/decorators.cjs +52 -0
  197. package/lib/migrations/decorators.d.ts +7 -0
  198. package/lib/migrations/decorators.js.map +1 -0
  199. package/lib/migrations/index.cjs +22 -0
  200. package/lib/migrations/index.d.ts +5 -0
  201. package/lib/migrations/index.js.map +1 -0
  202. package/lib/migrations/types.cjs +3 -0
  203. package/lib/migrations/types.d.ts +23 -0
  204. package/lib/migrations/types.js.map +1 -0
  205. package/lib/model/SequenceModel.cjs +1 -1
  206. package/lib/model/SequenceModel.js.map +1 -1
  207. package/lib/model/construction.cjs +4 -3
  208. package/lib/model/construction.js.map +1 -1
  209. package/lib/model/decorators.cjs +2 -8
  210. package/lib/model/decorators.d.ts +0 -1
  211. package/lib/model/decorators.js.map +1 -1
  212. package/lib/overrides/Metadata.d.ts +6 -1
  213. package/lib/overrides/Model.d.ts +0 -1
  214. package/lib/overrides/index.cjs +0 -1
  215. package/lib/overrides/index.d.ts +0 -1
  216. package/lib/overrides/index.js.map +1 -1
  217. package/lib/overrides/injectables.d.ts +1 -1
  218. package/lib/overrides/overrides.cjs +17 -9
  219. package/lib/overrides/overrides.js.map +1 -1
  220. package/lib/persistence/Adapter.cjs +72 -52
  221. package/lib/persistence/Adapter.d.ts +11 -18
  222. package/lib/persistence/Adapter.js.map +1 -1
  223. package/lib/persistence/Context.cjs +2 -2
  224. package/lib/persistence/Context.d.ts +3 -3
  225. package/lib/persistence/Context.js.map +1 -1
  226. package/lib/persistence/Dispatch.cjs +34 -13
  227. package/lib/persistence/Dispatch.d.ts +7 -3
  228. package/lib/persistence/Dispatch.js.map +1 -1
  229. package/lib/persistence/ObserverHandler.cjs +1 -1
  230. package/lib/persistence/ObserverHandler.js.map +1 -1
  231. package/lib/persistence/Sequence.cjs +19 -15
  232. package/lib/persistence/Sequence.d.ts +9 -5
  233. package/lib/persistence/Sequence.js.map +1 -1
  234. package/lib/persistence/constants.cjs +26 -3
  235. package/lib/persistence/constants.d.ts +11 -1
  236. package/lib/persistence/constants.js.map +1 -1
  237. package/lib/persistence/decorators.cjs +54 -0
  238. package/lib/persistence/decorators.d.ts +24 -0
  239. package/lib/persistence/decorators.js.map +1 -0
  240. package/lib/persistence/errors.d.ts +3 -3
  241. package/lib/persistence/errors.js.map +1 -1
  242. package/lib/persistence/event-filters.cjs +71 -0
  243. package/lib/persistence/event-filters.d.ts +20 -0
  244. package/lib/persistence/event-filters.js.map +1 -0
  245. package/lib/persistence/index.cjs +1 -1
  246. package/lib/persistence/index.d.ts +1 -1
  247. package/lib/persistence/index.js.map +1 -1
  248. package/lib/persistence/types.d.ts +9 -6
  249. package/lib/query/Paginator.cjs +20 -11
  250. package/lib/query/Paginator.d.ts +4 -4
  251. package/lib/query/Paginator.js.map +1 -1
  252. package/lib/query/Statement.cjs +48 -42
  253. package/lib/query/Statement.d.ts +6 -4
  254. package/lib/query/Statement.js.map +1 -1
  255. package/lib/query/selectors.d.ts +4 -1
  256. package/lib/ram/RamAdapter.cjs +20 -16
  257. package/lib/ram/RamAdapter.d.ts +6 -5
  258. package/lib/ram/RamAdapter.js.map +1 -1
  259. package/lib/ram/RamPaginator.cjs +6 -2
  260. package/lib/ram/RamPaginator.d.ts +1 -1
  261. package/lib/ram/RamPaginator.js.map +1 -1
  262. package/lib/ram/types.d.ts +2 -0
  263. package/lib/repository/Repository.cjs +106 -75
  264. package/lib/repository/Repository.d.ts +10 -8
  265. package/lib/repository/Repository.js.map +1 -1
  266. package/lib/repository/decorators.d.ts +1 -1
  267. package/lib/repository/decorators.js.map +1 -1
  268. package/lib/repository/injectables.d.ts +2 -1
  269. package/lib/repository/injectables.js.map +1 -1
  270. package/lib/services/ModelService.cjs +240 -0
  271. package/lib/services/ModelService.d.ts +42 -0
  272. package/lib/services/ModelService.js.map +1 -0
  273. package/lib/services/PersistenceService.cjs +38 -0
  274. package/lib/services/PersistenceService.d.ts +16 -0
  275. package/lib/services/PersistenceService.js.map +1 -0
  276. package/lib/services/index.cjs +20 -0
  277. package/lib/services/index.d.ts +3 -0
  278. package/lib/services/index.js.map +1 -0
  279. package/lib/services/services.cjs +246 -0
  280. package/lib/services/services.d.ts +93 -0
  281. package/lib/services/services.js.map +1 -0
  282. package/lib/tasks/TaskContext.cjs +26 -0
  283. package/lib/tasks/TaskContext.d.ts +10 -0
  284. package/lib/tasks/TaskContext.js.map +1 -0
  285. package/lib/tasks/TaskEngine.cjs +345 -0
  286. package/lib/tasks/TaskEngine.d.ts +64 -0
  287. package/lib/tasks/TaskEngine.js.map +1 -0
  288. package/lib/tasks/TaskEventBus.cjs +18 -0
  289. package/lib/tasks/TaskEventBus.d.ts +6 -0
  290. package/lib/tasks/TaskEventBus.js.map +1 -0
  291. package/lib/tasks/TaskEventRepository.cjs +38 -0
  292. package/lib/tasks/TaskEventRepository.d.ts +10 -0
  293. package/lib/tasks/TaskEventRepository.js.map +1 -0
  294. package/lib/tasks/TaskHandler.cjs +32 -0
  295. package/lib/tasks/TaskHandler.d.ts +11 -0
  296. package/lib/tasks/TaskHandler.js.map +1 -0
  297. package/lib/tasks/TaskHandlerRegistry.cjs +36 -0
  298. package/lib/tasks/TaskHandlerRegistry.d.ts +8 -0
  299. package/lib/tasks/TaskHandlerRegistry.js.map +1 -0
  300. package/lib/tasks/TaskService.cjs +29 -0
  301. package/lib/tasks/TaskService.d.ts +11 -0
  302. package/lib/tasks/TaskService.js.map +1 -0
  303. package/lib/tasks/constants.cjs +35 -0
  304. package/lib/tasks/constants.d.ts +26 -0
  305. package/lib/tasks/constants.js.map +1 -0
  306. package/lib/tasks/decorators.cjs +23 -0
  307. package/lib/tasks/decorators.d.ts +4 -0
  308. package/lib/tasks/decorators.js.map +1 -0
  309. package/lib/tasks/index.cjs +20 -0
  310. package/lib/tasks/index.d.ts +3 -0
  311. package/lib/tasks/index.js.map +1 -0
  312. package/lib/tasks/models/TaskBackoffModel.cjs +50 -0
  313. package/lib/tasks/models/TaskBackoffModel.d.ts +10 -0
  314. package/lib/tasks/models/TaskBackoffModel.js.map +1 -0
  315. package/lib/tasks/models/TaskBaseModel.cjs +34 -0
  316. package/lib/tasks/models/TaskBaseModel.d.ts +14 -0
  317. package/lib/tasks/models/TaskBaseModel.js.map +1 -0
  318. package/lib/tasks/models/TaskErrorModel.cjs +46 -0
  319. package/lib/tasks/models/TaskErrorModel.d.ts +9 -0
  320. package/lib/tasks/models/TaskErrorModel.js.map +1 -0
  321. package/lib/tasks/models/TaskEventModel.cjs +63 -0
  322. package/lib/tasks/models/TaskEventModel.d.ts +11 -0
  323. package/lib/tasks/models/TaskEventModel.js.map +1 -0
  324. package/lib/tasks/models/TaskLogEntryModel.cjs +44 -0
  325. package/lib/tasks/models/TaskLogEntryModel.d.ts +9 -0
  326. package/lib/tasks/models/TaskLogEntryModel.js.map +1 -0
  327. package/lib/tasks/models/TaskModel.cjs +117 -0
  328. package/lib/tasks/models/TaskModel.d.ts +28 -0
  329. package/lib/tasks/models/TaskModel.js.map +1 -0
  330. package/lib/tasks/models/TaskStepResultModel.cjs +43 -0
  331. package/lib/tasks/models/TaskStepResultModel.d.ts +10 -0
  332. package/lib/tasks/models/TaskStepResultModel.js.map +1 -0
  333. package/lib/tasks/models/TaskStepSpecModel.cjs +35 -0
  334. package/lib/tasks/models/TaskStepSpecModel.d.ts +7 -0
  335. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -0
  336. package/lib/tasks/models/index.cjs +18 -0
  337. package/lib/tasks/models/index.d.ts +1 -0
  338. package/lib/tasks/models/index.js.map +1 -0
  339. package/lib/tasks/types.cjs +3 -0
  340. package/lib/tasks/types.d.ts +22 -0
  341. package/lib/tasks/types.js.map +1 -0
  342. package/lib/tasks/utils.cjs +29 -0
  343. package/lib/tasks/utils.d.ts +5 -0
  344. package/lib/tasks/utils.js.map +1 -0
  345. package/lib/utils/ContextualLoggedClass.cjs +100 -21
  346. package/lib/utils/ContextualLoggedClass.d.ts +28 -7
  347. package/lib/utils/ContextualLoggedClass.js.map +1 -1
  348. package/lib/utils/decorators.cjs +2 -2
  349. package/lib/utils/decorators.d.ts +4 -4
  350. package/lib/utils/decorators.js.map +1 -1
  351. package/lib/utils/index.cjs +0 -1
  352. package/lib/utils/index.d.ts +0 -1
  353. package/lib/utils/index.js.map +1 -1
  354. package/lib/utils/utils.cjs +25 -0
  355. package/lib/utils/utils.d.ts +1 -0
  356. package/lib/utils/utils.js.map +1 -1
  357. package/package.json +12 -2
  358. package/lib/esm/overrides/decoration.d.ts +0 -1
  359. package/lib/esm/overrides/decoration.js +0 -6
  360. package/lib/esm/overrides/decoration.js.map +0 -1
  361. package/lib/esm/persistence/migrations.d.ts +0 -21
  362. package/lib/esm/persistence/migrations.js +0 -103
  363. package/lib/esm/persistence/migrations.js.map +0 -1
  364. package/lib/esm/utils/Services.d.ts +0 -83
  365. package/lib/esm/utils/Services.js +0 -392
  366. package/lib/esm/utils/Services.js.map +0 -1
  367. package/lib/overrides/decoration.cjs +0 -8
  368. package/lib/overrides/decoration.d.ts +0 -1
  369. package/lib/overrides/decoration.js.map +0 -1
  370. package/lib/persistence/migrations.cjs +0 -109
  371. package/lib/persistence/migrations.d.ts +0 -21
  372. package/lib/persistence/migrations.js.map +0 -1
  373. package/lib/utils/Services.cjs +0 -398
  374. package/lib/utils/Services.d.ts +0 -83
  375. package/lib/utils/Services.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ import { PersistenceKeys } from "./constants.js";
2
+ import { required } from "@decaf-ts/decorator-validation";
3
+ import { generated, onCreate, onUpdate, readonly, } from "@decaf-ts/db-decorators";
4
+ import { apply, Decoration } from "@decaf-ts/decoration";
5
+ import { UUID } from "./generators.js";
6
+ /**
7
+ * @description Handler function that sets a timestamp property to the current timestamp.
8
+ * @summary Updates a model property with the current timestamp from the repository context.
9
+ * @template M - The model type extending Model
10
+ * @template R - The repository type extending IRepository
11
+ * @template V - The data type for the operation
12
+ * @template F - The repository flags type
13
+ * @template C - The context type
14
+ * @param {C} context - The repository context containing the current timestamp
15
+ * @param {V} data - The data being processed
16
+ * @param key - The property key to update
17
+ * @param {M} model - The model instance being updated
18
+ * @return {Promise<void>} A promise that resolves when the timestamp has been set
19
+ * @function uuidCreateUpdateHandler
20
+ */
21
+ export async function uuidCreateUpdateHandler(context, data, key, model) {
22
+ if (context.get("allowGenerationOverride") &&
23
+ typeof model[key] !== "undefined") {
24
+ return;
25
+ }
26
+ model[key] = UUID.instance.generate(...(data.args || []));
27
+ }
28
+ export function uuid(update = false, ...args) {
29
+ const decorationKey = PersistenceKeys.UUID;
30
+ function uuid(update, ...args) {
31
+ const meta = { update: update, args: args };
32
+ const decorators = [
33
+ required(),
34
+ generated(PersistenceKeys.UUID),
35
+ onCreate(uuidCreateUpdateHandler, meta),
36
+ ];
37
+ if (update)
38
+ decorators.push(onUpdate(uuidCreateUpdateHandler, meta));
39
+ if (!update)
40
+ decorators.push(readonly());
41
+ return apply(...decorators);
42
+ }
43
+ return Decoration.for(decorationKey)
44
+ .define({
45
+ decorator: uuid,
46
+ args: [update, ...args],
47
+ })
48
+ .apply();
49
+ }
50
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/persistence/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAC9C,OAAO,EAAS,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,IAAI,EAAE,wBAAqB;AAEpC;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAK3C,OAAqB,EACrB,IAAkB,EAClB,GAAY,EACZ,KAAQ;IAER,IACE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,EACjC,CAAC;QACD,OAAO;IACT,CAAC;IACA,KAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAMD,MAAM,UAAU,IAAI,CAAC,SAAkB,KAAK,EAAE,GAAG,IAAW;IAC1D,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC;IAE3C,SAAS,IAAI,CAAC,MAAe,EAAE,GAAG,IAAW;QAC3C,MAAM,IAAI,GAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1D,MAAM,UAAU,GAAU;YACxB,QAAQ,EAAE;YACV,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC;YAC/B,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC;SACxC,CAAC;QACF,IAAI,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC,GAAG,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC;SACjC,MAAM,CAAC;QACN,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;KACxB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
@@ -23,11 +23,11 @@ import { InternalError } from "@decaf-ts/db-decorators";
23
23
  * ```
24
24
  */
25
25
  export declare class UnsupportedError extends InternalError {
26
- constructor(msg: string | Error);
26
+ constructor(msg: string | Error | unknown);
27
27
  }
28
28
  export declare class MigrationError extends InternalError {
29
- constructor(msg: string | Error, name?: string);
29
+ constructor(msg: string | Error | unknown, name?: string);
30
30
  }
31
31
  export declare class MigrationRuleError extends MigrationError {
32
- constructor(msg: string | Error);
32
+ constructor(msg: string | Error | unknown);
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/persistence/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,GAAmB,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI;QACzD,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,YAAY,GAAmB;QAC7B,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/persistence/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,aAAa;IAC/C,YAAY,GAA6B,EAAE,IAAI,GAAG,cAAc,CAAC,IAAI;QACnE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IACpD,YAAY,GAA6B;QACvC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { AllOperationKeys, ObserverFilter } from "./types";
2
+ import { Model, ModelConstructor } from "@decaf-ts/decorator-validation";
3
+ import { Repo } from "../repository/index";
4
+ export declare function onlyOnCreate(clazz: ModelConstructor<any>): ObserverFilter;
5
+ export declare function onlyOnUpdate(clazz: ModelConstructor<any>): ObserverFilter;
6
+ export declare function onlyOnDelete(clazz: ModelConstructor<any>): ObserverFilter;
7
+ export declare function onlyOnTransactional(clazz: ModelConstructor<any>): ObserverFilter;
8
+ export declare function onlyOnSingle(clazz: ModelConstructor<any>): ObserverFilter;
9
+ export declare function onlyOnBulk(clazz: ModelConstructor<any>): ObserverFilter;
10
+ export declare function onlyOnFilter(clazz: ModelConstructor<any>, ops: AllOperationKeys[]): ObserverFilter;
11
+ export type AvailableFilters = typeof DefaultRepositoryFilters;
12
+ export declare const DefaultRepositoryFilters: {
13
+ onlyOnCreate: typeof onlyOnCreate;
14
+ onlyOnUpdate: typeof onlyOnUpdate;
15
+ onlyOnDelete: typeof onlyOnDelete;
16
+ onlyOnTransactional: typeof onlyOnTransactional;
17
+ onlyOnSingle: typeof onlyOnSingle;
18
+ onlyOnBulk: typeof onlyOnBulk;
19
+ };
20
+ export declare function getFilters<M extends Model>(repo: Repo<M>): Record<keyof typeof DefaultRepositoryFilters, ObserverFilter>;
@@ -0,0 +1,60 @@
1
+ import { Metadata } from "@decaf-ts/decoration";
2
+ import { BulkCrudOperationKeys, InternalError, OperationKeys, } from "@decaf-ts/db-decorators";
3
+ import { Model } from "@decaf-ts/decorator-validation";
4
+ import { ContextualLoggedClass, } from "./../utils/ContextualLoggedClass.js";
5
+ import { TransactionOperationKeys } from "./constants.js";
6
+ export function onlyOnCreate(clazz) {
7
+ return onlyOnFilter(clazz, [
8
+ OperationKeys.CREATE,
9
+ BulkCrudOperationKeys.CREATE_ALL,
10
+ ]);
11
+ }
12
+ export function onlyOnUpdate(clazz) {
13
+ return onlyOnFilter(clazz, [
14
+ OperationKeys.UPDATE,
15
+ BulkCrudOperationKeys.UPDATE_ALL,
16
+ ]);
17
+ }
18
+ export function onlyOnDelete(clazz) {
19
+ return onlyOnFilter(clazz, [
20
+ OperationKeys.DELETE,
21
+ BulkCrudOperationKeys.DELETE_ALL,
22
+ ]);
23
+ }
24
+ export function onlyOnTransactional(clazz) {
25
+ return onlyOnFilter(clazz, TransactionOperationKeys);
26
+ }
27
+ export function onlyOnSingle(clazz) {
28
+ return onlyOnFilter(clazz, Object.values(OperationKeys));
29
+ }
30
+ export function onlyOnBulk(clazz) {
31
+ return onlyOnFilter(clazz, Object.values(BulkCrudOperationKeys));
32
+ }
33
+ export function onlyOnFilter(clazz, ops) {
34
+ return (table, event, id, ...args) => {
35
+ if (typeof clazz === "string")
36
+ throw new InternalError(`clazz cannot be string. This should be impossible`);
37
+ const { log } = ContextualLoggedClass.prototype["logCtx"](args, onlyOnFilter);
38
+ log.silly(`filtering ${event} event for${table ? ` ${Model.tableName(table) || table}` : ``} ${id}`);
39
+ return ((typeof table === "string"
40
+ ? table === Model.tableName(clazz) || table === clazz.constructor.name
41
+ : Metadata.constr(clazz) === Metadata.constr(table)) &&
42
+ ops.includes(event));
43
+ };
44
+ }
45
+ export const DefaultRepositoryFilters = {
46
+ onlyOnCreate,
47
+ onlyOnUpdate,
48
+ onlyOnDelete,
49
+ onlyOnTransactional,
50
+ onlyOnSingle,
51
+ onlyOnBulk,
52
+ };
53
+ export function getFilters(repo) {
54
+ const filters = Object.assign({}, DefaultRepositoryFilters);
55
+ Object.entries(filters).forEach(([key, value]) => {
56
+ filters[key] = value(repo.class);
57
+ });
58
+ return filters;
59
+ }
60
+ //# sourceMappingURL=event-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-filters.js","sourceRoot":"","sources":["../../../src/persistence/event-filters.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ export * from "./constants";
3
3
  export * from "./Context";
4
4
  export * from "./errors";
5
5
  export * from "./generators";
6
- export * from "./migrations";
6
+ export * from "./event-filters";
7
7
  export * from "./ObserverHandler";
8
8
  export * from "./Sequence";
9
9
  export * from "./types";
@@ -4,7 +4,7 @@ export * from "./constants.js";
4
4
  export * from "./Context.js";
5
5
  export * from "./errors.js";
6
6
  export * from "./generators.js";
7
- export * from "./migrations.js";
7
+ export * from "./event-filters.js";
8
8
  export * from "./ObserverHandler.js";
9
9
  export * from "./Sequence.js";
10
10
  export * from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,6BAA0B;AAC1B,4BAAyB;AACzB,gCAA6B;AAC7B,gCAA6B;AAC7B,qCAAkC;AAClC,8BAA2B;AAC3B,2BAAwB;AACxB,6BAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,6BAA0B;AAC1B,4BAAyB;AACzB,gCAA6B;AAC7B,mCAAgC;AAChC,qCAAkC;AAClC,8BAA2B;AAC3B,2BAAwB;AACxB,6BAA0B"}
@@ -7,15 +7,19 @@ import { Model } from "@decaf-ts/decorator-validation";
7
7
  import { ContextualArgs } from "../utils";
8
8
  import { Context } from "./Context";
9
9
  import { Repository } from "../repository/Repository";
10
+ import { PersistenceKeys } from "./constants";
11
+ import { PreparedStatementKeys } from "../query/index";
10
12
  export type FlagsOfContext<C extends Context<any>> = C extends Context<infer F> ? F : never;
11
13
  export type LoggerOfContext<C extends Context<any>> = LoggerOfFlags<FlagsOfContext<C>>;
12
14
  export type ContextOfRepository<R extends Repository<any, any>> = R extends Repository<any, infer A> ? ContextOf<A> : never;
13
15
  export type FlagsOfRepository<R extends Repository<any, any>> = FlagsOfContext<ContextOfRepository<R>>;
14
16
  export type LoggerOfRepository<R extends Repository<any, any>> = LoggerOfContext<ContextOfRepository<R>>;
15
17
  export type ContextOf<OBJ extends Repository<any, any> | Adapter<any, any, any, any>> = OBJ extends Adapter<any, any, any, infer C> ? C : OBJ extends Repository<any, any> ? ContextOfRepository<OBJ> : never;
18
+ export type ConfigOf<OBJ extends Adapter<any, any, any, any>> = OBJ extends Adapter<infer C, any, any, any> ? C : never;
16
19
  export type LoggerOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? LoggerOfContext<C> : never;
17
20
  export type FlagsOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? FlagsOfContext<C> : never;
18
21
  export type LoggerOf<OBJ extends AdapterFlags<any> | Context<any> | Adapter<any, any, any> | Repository<any, any>> = OBJ extends AdapterFlags<any> ? LoggerOfFlags<OBJ> : OBJ extends Context<any> ? LoggerOfContext<OBJ> : OBJ extends Repository<any, any> ? LoggerOfRepository<OBJ> : OBJ extends Adapter<any, any, any> ? LoggerOfAdapter<OBJ> : Logger;
22
+ export type ConfOf<A extends Adapter<any, any, any, any>> = A extends Adapter<infer C, any, any> ? C : never;
19
23
  export type FlagsOf<OBJ extends Repository<any, any> | Adapter<any, any, any, any> | Context<any>> = OBJ extends Context<any> ? FlagsOfContext<OBJ> : OBJ extends Repository<any, any> ? FlagsOfRepository<OBJ> : OBJ extends Adapter<any, any, any, any> ? FlagsOfAdapter<OBJ> : never;
20
24
  export type PersistenceObservable<CONTEXT extends Context<any>> = Observable<[
21
25
  Observer,
@@ -40,17 +44,12 @@ export type PersistenceObserver<CONTEXT extends Context<any>> = Observer<[
40
44
  * @memberOf module:core
41
45
  */
42
46
  export type EventIds = string | number | bigint | string[] | number[] | bigint[];
43
- export type ObserverFilter = (table: string | Constructor, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: [...any[], Context<any>]) => boolean;
47
+ export type ObserverFilter = (table: Constructor | string, event: AllOperationKeys, id: EventIds, ...args: ContextualArgs<any>) => boolean;
44
48
  export type InferredAdapterConfig<A> = A extends Adapter<infer CONF, any, any> ? CONF : never;
45
49
  export interface AdapterDispatch<A extends Adapter<any, any, any, any>> extends PersistenceObservable<ContextOf<A>> {
46
50
  close(): Promise<void>;
47
51
  updateObservers<M extends Model>(table: Constructor<M> | string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds, ...args: ContextualArgs<ContextOf<A>>): Promise<void>;
48
52
  }
49
- export interface Migration<QUERYRUNNER, A extends Adapter<any, any, any, any>> {
50
- transaction: boolean;
51
- up(qr: QUERYRUNNER, adapter?: A, ctx?: ContextOf<A>): Promise<void>;
52
- down(qr: QUERYRUNNER, adapter?: A, ctx?: ContextOf<A>): Promise<void>;
53
- }
54
53
  export type RepositoryFor<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, any> ? ReturnType<A["repository"]> : never;
55
54
  export type PreparedModel = {
56
55
  record: Record<string, any>;
@@ -64,8 +63,12 @@ export type AdapterFlags<LOG extends Logger = Logger> = RepositoryFlags<LOG> & {
64
63
  forcePrepareSimpleQueries: boolean;
65
64
  forcePrepareComplexQueries: boolean;
66
65
  cacheForPopulate: Record<string, any>;
66
+ observeFullResult: boolean;
67
+ paginateByBookmark: boolean;
68
+ dryRun: boolean;
67
69
  };
68
70
  export type RawResult<R, D extends boolean> = D extends true ? R : {
69
71
  data: R;
70
72
  count?: number;
71
73
  };
74
+ export type AllOperationKeys = OperationKeys | BulkCrudOperationKeys | PersistenceKeys | PreparedStatementKeys | string;
@@ -1,8 +1,8 @@
1
- import { Adapter } from "../persistence";
1
+ import { Adapter } from "../persistence/Adapter";
2
2
  import { Model } from "@decaf-ts/decorator-validation";
3
3
  import { Constructor } from "@decaf-ts/decoration";
4
4
  import { LoggedClass } from "@decaf-ts/logging";
5
- import { ContextualArgs, MaybeContextualArg } from "../utils/index";
5
+ import { ContextualArgs, MaybeContextualArg } from "../utils/ContextualLoggedClass";
6
6
  import { PreparedStatement } from "./types";
7
7
  /**
8
8
  * @description Handles pagination for database queries
@@ -78,7 +78,7 @@ export declare abstract class Paginator<M extends Model, R = M[], Q = any> exten
78
78
  protected constructor(adapter: Adapter<any, any, Q, any>, query: Q | PreparedStatement<M>, size: number, clazz: Constructor<M>);
79
79
  protected isPreparedStatement(): "" | RegExpMatchArray | null;
80
80
  protected pagePrefix(page?: number, ...args: MaybeContextualArg<any>): Promise<any[]>;
81
- protected pagePrepared(page?: number, ...argz: ContextualArgs<any>): Promise<M[]>;
81
+ protected pagePrepared(page: number, bookmark?: any, ...argz: ContextualArgs<any>): Promise<M[]>;
82
82
  /**
83
83
  * @description Prepares a statement for pagination
84
84
  * @summary Modifies the raw query statement to include pagination parameters.
@@ -90,7 +90,7 @@ export declare abstract class Paginator<M extends Model, R = M[], Q = any> exten
90
90
  next(...args: MaybeContextualArg<any>): Promise<R>;
91
91
  previous(...args: MaybeContextualArg<any>): Promise<R>;
92
92
  protected validatePage(page: number): number;
93
- page(page?: number, ...args: MaybeContextualArg<any>): Promise<R>;
93
+ page(page?: number, bookmark?: any, ...args: MaybeContextualArg<any>): Promise<R>;
94
94
  serialize(data: M[], toString?: boolean): string | SerializedPage<M>;
95
95
  apply(serialization: string | SerializedPage<M>): M[];
96
96
  static deserialize<M extends Model>(str: string): SerializedPage<M>;
@@ -1,5 +1,7 @@
1
1
  import { PagingError } from "./errors.js";
2
- import { Context, PersistenceKeys, prefixMethod, UnsupportedError, } from "./../persistence/index.js";
2
+ import { Context } from "./../persistence/Context.js";
3
+ import { prefixMethod } from "./../utils/utils.js";
4
+ import { UnsupportedError } from "./../persistence/errors.js";
3
5
  import { LoggedClass } from "@decaf-ts/logging";
4
6
  import { PreparedStatementKeys } from "./constants.js";
5
7
  import { Repository } from "./../repository/Repository.js";
@@ -89,10 +91,17 @@ export class Paginator extends LoggedClass {
89
91
  query.method.match(new RegExp(`${PreparedStatementKeys.FIND_BY}|${PreparedStatementKeys.LIST_BY}`, "gi")));
90
92
  }
91
93
  async pagePrefix(page, ...args) {
92
- const contextArgs = await Context.args(PersistenceKeys.QUERY, this.clazz, args, this.adapter);
93
- return [page, ...contextArgs.args];
94
- }
95
- async pagePrepared(page, ...argz) {
94
+ const { ctxArgs } = (await this.adapter["logCtx"]([this.clazz, ...args], PreparedStatementKeys.PAGE_BY, true)).for(this.pagePrefix);
95
+ ctxArgs.shift();
96
+ return [page, ...ctxArgs];
97
+ }
98
+ async pagePrepared(page, bookmark, ...argz) {
99
+ const { log, ctxArgs } = this.adapter["logCtx"](bookmark && !(bookmark instanceof Context)
100
+ ? [...argz]
101
+ : [bookmark, ...argz], this.pagePrepared);
102
+ log.debug(`Running paged prepared statement ${page} page${bookmark ? ` - bookmark ${bookmark}` : ""}`);
103
+ if (bookmark && !(bookmark instanceof Context))
104
+ this._bookmark = bookmark;
96
105
  const repo = Repository.forModel(this.clazz, this.adapter.alias);
97
106
  const statement = this.query;
98
107
  const { method, args, params } = statement;
@@ -120,7 +129,7 @@ export class Paginator extends LoggedClass {
120
129
  };
121
130
  }
122
131
  preparedArgs.push(preparedParams);
123
- const result = await repo.statement(...preparedArgs, ...argz);
132
+ const result = await repo.statement(...preparedArgs, ...ctxArgs);
124
133
  return this.apply(result);
125
134
  }
126
135
  async next(...args) {
@@ -136,8 +145,8 @@ export class Paginator extends LoggedClass {
136
145
  throw new PagingError(`Only ${this._totalPages} are available. Cannot go to page ${page}`);
137
146
  return page;
138
147
  }
139
- async page(page = 1, ...args) {
140
- const { ctxArgs } = this.adapter["logCtx"](args, this.page);
148
+ async page(page = 1, bookmark, ...args) {
149
+ const { ctxArgs } = this.adapter["logCtx"]([bookmark, ...args], this.page);
141
150
  if (this.isPreparedStatement())
142
151
  return (await this.pagePrepared(page, ...ctxArgs));
143
152
  throw new UnsupportedError("Raw support not available without subclassing this");
@@ -1 +1 @@
1
- {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,14 @@ import { Model } from "@decaf-ts/decorator-validation";
2
2
  import type { Executor, RawExecutor } from "../interfaces";
3
3
  import type { FromSelector, GroupBySelector, OrderBySelector, SelectSelector } from "./selectors";
4
4
  import { Condition } from "./Condition";
5
+ import { Logger } from "@decaf-ts/logging";
5
6
  import type { CountOption, DistinctOption, LimitOption, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, PreparableStatementExecutor, SelectOption, StatementExecutor, WhereOption } from "./options";
6
7
  import { Paginatable } from "../interfaces/Paginatable";
7
8
  import { Paginator } from "./Paginator";
8
- import { Adapter, AdapterFlags, type ContextOf } from "../persistence";
9
- import { Logger } from "@decaf-ts/logging";
9
+ import { Adapter } from "../persistence/Adapter";
10
+ import type { AdapterFlags, ContextOf } from "../persistence/types";
10
11
  import { Constructor } from "@decaf-ts/decoration";
11
- import { type ContextualArgs, ContextualLoggedClass, type MaybeContextualArg } from "../utils/index";
12
+ import { type ContextualArgs, ContextualLoggedClass, type MaybeContextualArg } from "../utils/ContextualLoggedClass";
12
13
  import { PreparedStatement } from "./types";
13
14
  /**
14
15
  * @description Base class for database query statements
@@ -77,6 +78,7 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
77
78
  protected offsetSelector?: number;
78
79
  protected prepared?: PreparedStatement<M>;
79
80
  protected constructor(adapter: Adapter<any, any, Q, any>, overrides?: Partial<AdapterFlags> | undefined);
81
+ protected executionPrefix(method: any, ...args: MaybeContextualArg<ContextOf<A>>): Promise<[Constructor<M>, ...any[], any]>;
80
82
  protected get log(): Logger;
81
83
  select<S extends readonly SelectSelector<M>[]>(): SelectOption<M, M[]>;
82
84
  select<S extends readonly SelectSelector<M>[]>(selector: readonly [...S]): SelectOption<M, Pick<M, S[number]>[]>;
@@ -91,7 +93,7 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
91
93
  limit(value: number): OffsetOption<M, R>;
92
94
  offset(value: number): PreparableStatementExecutor<M, R>;
93
95
  execute(...args: MaybeContextualArg<ContextOf<A>>): Promise<R>;
94
- protected executePrepared(...argz: MaybeContextualArg<ContextOf<A>>): Promise<R>;
96
+ protected executePrepared(...argz: ContextualArgs<ContextOf<A>>): Promise<R>;
95
97
  raw<R>(rawInput: Q, ...args: ContextualArgs<ContextOf<A>>): Promise<R>;
96
98
  protected prepareCondition(condition: Condition<any>, ctx: ContextOf<A>): PreparedStatement<any>;
97
99
  protected squash(ctx: ContextOf<A>): PreparedStatement<any> | undefined;
@@ -12,10 +12,10 @@ import { Model } from "@decaf-ts/decorator-validation";
12
12
  import { Condition } from "./Condition.js";
13
13
  import { prefixMethod } from "@decaf-ts/db-decorators";
14
14
  import { final, toCamelCase } from "@decaf-ts/logging";
15
- import { Adapter, PersistenceKeys, UnsupportedError, } from "./../persistence/index.js";
15
+ import { PersistenceKeys } from "./../persistence/constants.js";
16
+ import { UnsupportedError } from "./../persistence/errors.js";
16
17
  import { QueryError } from "./errors.js";
17
- import { ContextualLoggedClass, } from "./../utils/index.js";
18
- import { Context } from "./../persistence/Context.js";
18
+ import { ContextualLoggedClass, } from "./../utils/ContextualLoggedClass.js";
19
19
  import { QueryClause } from "./types.js";
20
20
  import { GroupOperator, Operator, PreparedStatementKeys } from "./constants.js";
21
21
  import { OrderDirection } from "./../repository/constants.js";
@@ -77,23 +77,26 @@ export class Statement extends ContextualLoggedClass {
77
77
  this.adapter = adapter;
78
78
  this.overrides = overrides;
79
79
  [this.execute, this.paginate].forEach((m) => {
80
- prefixMethod(this, m, async (...args) => {
81
- let execArgs = args;
82
- if ((!execArgs.length ||
83
- !(execArgs[execArgs.length - 1] instanceof Context)) &&
84
- this.fromSelector) {
85
- const ctx = await this.adapter.context(PersistenceKeys.QUERY, this.overrides || {}, this.fromSelector);
86
- execArgs = [...execArgs, ctx];
87
- }
88
- const { ctx, ctxArgs } = Adapter.logCtx(execArgs, m.name);
89
- const forceSimple = ctx.get("forcePrepareSimpleQueries");
90
- const forceComplex = ctx.get("forcePrepareComplexQueries");
91
- if ((forceSimple && this.isSimpleQuery()) || forceComplex)
92
- await this.prepare(ctx);
93
- return ctxArgs;
80
+ prefixMethod(this, m, (...args) => {
81
+ return this.executionPrefix(m, ...args);
94
82
  }, m.name);
95
83
  });
96
84
  }
85
+ async executionPrefix(method, ...args) {
86
+ const { ctx, ctxArgs, log } = (await this.adapter["logCtx"]([this.fromSelector, ...args], method.name === this.paginate.name
87
+ ? PreparedStatementKeys.PAGE_BY
88
+ : PersistenceKeys.QUERY, true, this.overrides || {})).for(method);
89
+ ctxArgs.shift();
90
+ const forceSimple = ctx.get("forcePrepareSimpleQueries");
91
+ const forceComplex = ctx.get("forcePrepareComplexQueries");
92
+ log.silly(`statement force simple ${forceSimple}, forceComplex: ${forceComplex}`);
93
+ if ((forceSimple && this.isSimpleQuery()) || forceComplex) {
94
+ log.silly(`squashing ${!forceComplex ? "simple" : "complex"} query to prepared statement`);
95
+ await this.prepare(ctx);
96
+ log.silly(`squashed ${!forceComplex ? "simple" : "complex"} query to ${JSON.stringify(this.prepared, null, 2)}`);
97
+ }
98
+ return ctxArgs;
99
+ }
97
100
  get log() {
98
101
  return this.adapter.log.for(Statement);
99
102
  }
@@ -147,11 +150,14 @@ export class Statement extends ContextualLoggedClass {
147
150
  return this;
148
151
  }
149
152
  async execute(...args) {
153
+ const { log, ctxArgs } = this.logCtx(args, this.execute);
150
154
  try {
151
155
  if (this.prepared)
152
156
  return this.executePrepared(...args);
157
+ log.silly(`Building raw statement...`);
153
158
  const query = this.build();
154
- return (await this.raw(query, ...args));
159
+ log.silly(`executing raw statement`);
160
+ return (await this.raw(query, ...ctxArgs));
155
161
  }
156
162
  catch (e) {
157
163
  throw new QueryError(e);
@@ -1 +1 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAQvD,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBvD,OAAO,EACL,OAAO,EAGP,eAAe,EACf,gBAAgB,GACjB,kCAAuB;AACxB,OAAO,EAAE,UAAU,EAAE,oBAAiB;AAGtC,OAAO,EAEL,qBAAqB,GAEtB,4BAAuB;AACxB,OAAO,EAAE,OAAO,EAAE,oCAA+B;AAEjD,OAAO,EAAE,WAAW,EAAE,mBAAgB;AACtC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,qBAAqB,EAAE,uBAAoB;AAC7E,OAAO,EAAE,cAAc,EAAE,qCAAgC;AACzD,OAAO,EAAE,UAAU,EAAE,sCAAiC;AACtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,OAAgB,SAMpB,SAAQ,qBAAmC;IAiB3C,YACY,OAAkC,EAClC,SAAiC;QAE3C,KAAK,EAAE,CAAC;QAHE,YAAO,GAAP,OAAO,CAA2B;QAClC,cAAS,GAAT,SAAS,CAAwB;QAG3C,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1C,YAAY,CACV,IAAI,EACJ,CAAC,EACD,KAAK,EAAE,GAAG,IAAsC,EAAE,EAAE;gBAClD,IAAI,QAAQ,GAAG,IAAI,CAAC;gBACpB,IACE,CAAC,CAAC,QAAQ,CAAC,MAAM;oBACf,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC;oBACtD,IAAI,CAAC,YAAY,EACjB,CAAC;oBACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACpC,eAAe,CAAC,KAAK,EACrB,IAAI,CAAC,SAAS,IAAI,EAAE,EACpB,IAAI,CAAC,YAAY,CAClB,CAAC;oBACF,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CACrC,QAAQ,EACR,CAAC,CAAC,IAAI,CACP,CAAC;gBAEF,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACzD,MAAM,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;gBAC3D,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,YAAY;oBACvD,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,OAAO,CAAC;YACjB,CAAC,EACD,CAAC,CAAC,IAAI,CACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAuB,GAAG;QACxB,OAAQ,IAAI,CAAC,OAAe,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAWD,MAAM,CACJ,QAA0B;QAE1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAC5C,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,OAAO,IAAoE,CAAC;IAC9E,CAAC;IAGD,QAAQ,CACN,QAAW;QAEX,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,OAAO,IAAiC,CAAC;IAC3C,CAAC;IAGD,GAAG,CAA8B,QAAW;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,OAAO,IAA0B,CAAC;IACpC,CAAC;IAGD,GAAG,CAA8B,QAAW;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,OAAO,IAA0B,CAAC;IACpC,CAAC;IAGD,KAAK,CAA8B,QAAY;QAC7C,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAA8B,CAAC;IACxC,CAAC;IAGM,IAAI,CAAC,QAAyB;QACnC,IAAI,CAAC,YAAY,GAAG,CAClB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC5C,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,MAAM,IAAI,UAAU,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,SAAuB;QAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,OAAO,CACZ,QAA4B;QAE5B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,OAAO,CAAC,QAA4B;QACzC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,KAAa;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAC,GAAG,IAAsC;QACrD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;YACxD,MAAM,KAAK,GAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CACpB,KAAK,EACL,GAAI,IAAqC,CAC1C,CAAiB,CAAC;QACrB,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,UAAU,CAAC,CAAU,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAES,KAAK,CAAC,eAAe,CAC7B,GAAG,IAAsC;QAEzC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAkC,CAAC;QACzE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,QAAW,EAAE,GAAG,IAAkC;QAC7D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,kBAAkB,GAAG,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB;YACrB,MAAM,IAAI,gBAAgB,CACxB,6DAA6D,CAC9D,CAAC;QACJ,MAAM,OAAO,GAAM,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACvC,QAAQ,EACR,IAAI,EACJ,GAAG,OAAO,CACX,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,OAAuB,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAG,SAAS,eAAe,CAExC,CAAM;YAEN,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,CAAC,EACD,IAAI,CAAC,YAAgC,EACrC,EAAE,EACF,SAAS,EACT,GAAG,CACG,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAM,CAAC;QAC/D,OAAO,SAAS,CAAC,OAAO,CAAM,CAAC;IACjC,CAAC;IAES,gBAAgB,CAAC,SAAyB,EAAE,GAAiB;QACrE,kDAAkD;QAClD,wCAAwC;QACxC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;QAEhD,MAAM,MAAM,GAA2B,EAAS,CAAC;QACjD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,aAAa,CAAC,GAAG,CAAC;YACvB,KAAK,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtB,IAAI,KAAK,GAAW,KAAe,EACjC,KAAK,GAAW,UAAiB,CAAC;gBACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CACtC,KAAuB,EACvB,GAAG,CACJ,CAAC;oBACF,KAAK,GAAG,UAAU,CAAC,MAAgB,CAAC;oBACpC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;gBAED,IAAI,UAAU,YAAY,SAAS,EAAE,CAAC;oBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC1D,KAAK,GAAG,UAAU,CAAC,MAAgB,CAAC;oBACpC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;gBACrE,CAAC;gBAED,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;gBAC9D,MAAM;YACR,CAAC;YACD,KAAK,QAAQ,CAAC,KAAK;gBACjB,MAAM,CAAC,MAAM,GAAG,KAAe,CAAC;gBAChC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ,CAAC,SAAS;gBACrB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC;gBAChC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ,CAAC,MAAM;gBAClB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,UAAU,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ,CAAC,MAAM;gBAClB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC;gBAClC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ,CAAC,SAAS;gBACrB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,oBAAoB,CAAC;gBAC7C,MAAM;YACR,KAAK,QAAQ,CAAC,OAAO;gBACnB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC;gBAChC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ,CAAC,UAAU;gBACtB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,kBAAkB,CAAC;gBAC3C,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ,CAAC,EAAE;gBACd,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,KAAK,CAAC;gBAC9B,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;gBACnD,MAAM;YACR;gBACE,MAAM,IAAI,UAAU,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6DAA6D;IACnD,MAAM,CAAC,GAAiB;QAChC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QACxE,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,SAAS,CAAC;QAC3C,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QACzC,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QACvC,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAEvC,IAAI,aAAiC,CAAC;QACtC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,8CAA8C;YAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,YAAY,SAAS;gBACxD,OAAO,SAAS,CAAC;YACnB,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAW,CAAC;QACzD,CAAC;QAED,MAAM,KAAK,GAAuB,IAAI,CAAC,eAAe;YACpD,CAAC,CAAC,IAAI,CAAC,eAAe;YACtB,CAAC,CAAC,aAAa;gBACb,CAAC,CAAC,CAAC,aAAwB,EAAE,cAAc,CAAC,GAAG,CAAC;gBAChD,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAExD,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;QAEtC,MAAM,MAAM,GAAyB;YACnC,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,IAAI,IAAI,CAAC,aAAa;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QAC1D,IAAI,IAAI,CAAC,cAAc;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QAE7D,MAAM,QAAQ,GAAyB;YACrC,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,MAAM,EAAE,qBAAqB,CAAC,OAAO;YACrC,IAAI,EAAE,CAAC,eAAe,CAAC;YACvB,MAAM,EAAE,MAAM;SACS,CAAC;QAE1B,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS;YACT,QAAQ,CAAC,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC;YAChD,QAAQ,CAAC,IAAI,GAAG;gBACd,aAAa;gBACZ,IAAI,CAAC,cAA+B,CAAC,YAAY,CAAW;aAC9D,CAAC;YACF,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAkB;QAC9B,GAAG;YACD,GAAG;gBACH,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CACzB,eAAe,CAAC,KAAK,EACrB,IAAI,CAAC,SAAS,IAAI,EAAE,EACpB,IAAI,CAAC,YAAY,CAClB,CAAC,CAAC;QAEL,IACE,IAAI,CAAC,aAAa,EAAE;YACnB,GAAoB,CAAC,GAAG,CAAC,2BAA2B,CAAC,EACtD,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAmB,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAQ,EAAS,CAAC;QAE9B,MAAM,QAAQ,GAA2B;YACvC,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,IAAI;YACJ,MAAM;SACA,CAAC;QAET,MAAM,MAAM,GAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAClC,IAAI,CAAC,cAAc,EACnB,GAAmB,CACpB,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM;gBACnC,IAAI,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,IAA4B,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,cAAc;YACrB,MAAM,CAAC,IAAI,CACT,WAAW,CAAC,MAAM,EAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAC/D,CAAC;QACJ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAW,CAAC,CAAC;YACrE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,eAAe;YACtB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAyB,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,aAAa;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QAC1D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACpC,CAAC;QACD,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAES,aAAa;QACrB,OAAO,CAAC,CACN,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAKD;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,GAAG,IAAsC;QAEzC,6DAA6D;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAkB,CAAC,CAAC,oDAAoD;QAC5F,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAC3B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,EAC7B,IAAI,EACJ,IAAI,CAAC,YAAY,CAClB,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEQ,QAAQ;QACf,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,YAAY,CAAC;IAC7C,CAAC;CACF;AAlWC;IADC,KAAK,EAAE;;;;uCASP;AAGD;IADC,KAAK,EAAE;;yDAEI,CAAC,oBAAD,CAAC;;yCAIZ;AAGD;IADC,KAAK,EAAE;;yDACmC,CAAC,oBAAD,CAAC;;oCAG3C;AAGD;IADC,KAAK,EAAE;;yDACmC,CAAC,oBAAD,CAAC;;oCAG3C;AAGD;IADC,KAAK,EAAE;;yDACsC,CAAC,oBAAD,CAAC;;sCAG9C;AAGM;IADN,KAAK,EAAE;;;;qCAQP;AAGM;IADN,KAAK,EAAE;;qCACgB,SAAS;;sCAGhC;AAGM;IADN,KAAK,EAAE;;;;wCAMP;AAGM;IADN,KAAK,EAAE;;;;wCAIP;AAGM;IADN,KAAK,EAAE;;;;sCAIP;AAGM;IADN,KAAK,EAAE;;;;uCAIP;AAGK;IADL,KAAK,EAAE;;;;wCAYP"}
1
+ {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,10 @@ import { Model } from "@decaf-ts/decorator-validation";
10
10
  */
11
11
  export type FromSelector<M extends Model> = Constructor<M> | string;
12
12
  export type GroupBySelector<M extends Model> = keyof M;
13
- export type OrderBySelector<M extends Model> = [keyof M, OrderDirection];
13
+ export type OrderBySelector<M extends Model> = [
14
+ keyof M,
15
+ OrderDirection | "asc" | "desc"
16
+ ];
14
17
  /**
15
18
  * @description Type for limiting query results
16
19
  * @summary Defines the type for specifying the maximum number of results to return
@@ -7,6 +7,7 @@ import { Model } from "@decaf-ts/decorator-validation";
7
7
  import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
8
8
  import type { Constructor } from "@decaf-ts/decoration";
9
9
  import { RamPaginator } from "./RamPaginator";
10
+ import { ContextualArgs } from "../utils/ContextualLoggedClass";
10
11
  /**
11
12
  * @description In-memory adapter for data persistence
12
13
  * @summary The RamAdapter provides an in-memory implementation of the persistence layer.
@@ -136,7 +137,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
136
137
  * RamAdapter->>RamAdapter: lock.release()
137
138
  * RamAdapter-->>Caller: model
138
139
  */
139
- create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ctx: RamContext): Promise<Record<string, any>>;
140
+ create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
140
141
  /**
141
142
  * @description Retrieves a record from in-memory storage
142
143
  * @summary Fetches a record with the specified ID from the given table.
@@ -163,7 +164,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
163
164
  * Storage-->>RamAdapter: record
164
165
  * RamAdapter-->>Caller: record
165
166
  */
166
- read<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ctx: RamContext): Promise<Record<string, any>>;
167
+ read<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
167
168
  /**
168
169
  * @description Updates an existing record in the in-memory storage
169
170
  * @summary Updates a record with the specified ID in the given table.
@@ -193,7 +194,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
193
194
  * RamAdapter->>RamAdapter: lock.release()
194
195
  * RamAdapter-->>Caller: model
195
196
  */
196
- update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ctx: RamContext): Promise<Record<string, any>>;
197
+ update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
197
198
  /**
198
199
  * @description Deletes a record from the in-memory storage
199
200
  * @summary Removes a record with the specified ID from the given table.
@@ -224,7 +225,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
224
225
  * RamAdapter->>RamAdapter: lock.release()
225
226
  * RamAdapter-->>Caller: record
226
227
  */
227
- delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ctx: RamContext): Promise<Record<string, any>>;
228
+ delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ...args: ContextualArgs<RamContext>): Promise<Record<string, any>>;
228
229
  /**
229
230
  * @description Gets or creates a table in the in-memory storage
230
231
  * @summary Retrieves the Map representing a table for a given model or table name.
@@ -278,7 +279,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
278
279
  * end
279
280
  * RamAdapter-->>Caller: result
280
281
  */
281
- raw<R, D extends boolean>(rawInput: RawRamQuery<any>, docsOnly: D | undefined, ctx: RamContext): Promise<RawResult<R, D>>;
282
+ raw<R, D extends boolean>(rawInput: RawRamQuery<any>, docsOnly?: D, ...args: ContextualArgs<RamContext>): Promise<RawResult<R, D>>;
282
283
  /**
283
284
  * @description Parses and converts errors to appropriate types
284
285
  * @summary Ensures that errors are of the correct type for consistent error handling.