@decaf-ts/core 0.7.2 → 0.7.4

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 (246) hide show
  1. package/README.md +6 -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.d.ts +3 -4
  7. package/lib/esm/identity/decorators.js +5 -11
  8. package/lib/esm/identity/decorators.js.map +1 -1
  9. package/lib/esm/identity/index.d.ts +0 -1
  10. package/lib/esm/identity/index.js +0 -1
  11. package/lib/esm/identity/index.js.map +1 -1
  12. package/lib/esm/index.d.ts +1 -1
  13. package/lib/esm/index.js +1 -1
  14. package/lib/esm/interfaces/ContextuallyLogged.d.ts +8 -0
  15. package/lib/esm/interfaces/ContextuallyLogged.js +2 -0
  16. package/lib/esm/interfaces/ContextuallyLogged.js.map +1 -0
  17. package/lib/esm/interfaces/ErrorParser.d.ts +2 -2
  18. package/lib/esm/interfaces/Executor.d.ts +1 -1
  19. package/lib/esm/interfaces/Observable.d.ts +8 -8
  20. package/lib/esm/interfaces/Observer.d.ts +2 -2
  21. package/lib/esm/interfaces/RawExecutor.d.ts +1 -1
  22. package/lib/esm/model/BaseModel.d.ts +2 -2
  23. package/lib/esm/model/BaseModel.js +2 -2
  24. package/lib/esm/{ram/model/RamSequenceModel.d.ts → model/SequenceModel.d.ts} +3 -3
  25. package/lib/esm/{ram/model/RamSequenceModel.js → model/SequenceModel.js} +12 -11
  26. package/lib/esm/model/SequenceModel.js.map +1 -0
  27. package/lib/esm/model/construction.d.ts +9 -8
  28. package/lib/esm/model/construction.js +2 -2
  29. package/lib/esm/model/construction.js.map +1 -1
  30. package/lib/esm/model/decorators.d.ts +5 -4
  31. package/lib/esm/model/decorators.js +3 -3
  32. package/lib/esm/model/decorators.js.map +1 -1
  33. package/lib/esm/model/index.d.ts +1 -0
  34. package/lib/esm/model/index.js +1 -0
  35. package/lib/esm/model/index.js.map +1 -1
  36. package/lib/esm/overrides/Metadata.d.ts +1 -8
  37. package/lib/esm/overrides/Model.d.ts +75 -0
  38. package/lib/esm/overrides/Model.js +2 -0
  39. package/lib/esm/overrides/Model.js.map +1 -0
  40. package/lib/esm/overrides/index.d.ts +2 -0
  41. package/lib/esm/overrides/index.js +2 -0
  42. package/lib/esm/overrides/index.js.map +1 -1
  43. package/lib/esm/overrides/injectables.d.ts +10 -0
  44. package/lib/esm/overrides/injectables.js +2 -0
  45. package/lib/esm/overrides/injectables.js.map +1 -0
  46. package/lib/esm/overrides/overrides.js +45 -3
  47. package/lib/esm/overrides/overrides.js.map +1 -1
  48. package/lib/esm/persistence/Adapter.d.ts +55 -53
  49. package/lib/esm/persistence/Adapter.js +85 -61
  50. package/lib/esm/persistence/Adapter.js.map +1 -1
  51. package/lib/esm/persistence/Dispatch.d.ts +7 -6
  52. package/lib/esm/persistence/Dispatch.js +25 -18
  53. package/lib/esm/persistence/Dispatch.js.map +1 -1
  54. package/lib/esm/persistence/ObserverHandler.d.ts +7 -6
  55. package/lib/esm/persistence/ObserverHandler.js +5 -4
  56. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  57. package/lib/esm/persistence/Sequence.d.ts +34 -25
  58. package/lib/esm/persistence/Sequence.js +136 -15
  59. package/lib/esm/persistence/Sequence.js.map +1 -1
  60. package/lib/esm/persistence/constants.d.ts +1 -0
  61. package/lib/esm/persistence/constants.js +1 -0
  62. package/lib/esm/persistence/constants.js.map +1 -1
  63. package/lib/esm/persistence/generators.d.ts +14 -0
  64. package/lib/esm/persistence/generators.js +31 -0
  65. package/lib/esm/persistence/generators.js.map +1 -0
  66. package/lib/esm/persistence/index.d.ts +1 -0
  67. package/lib/esm/persistence/index.js +1 -0
  68. package/lib/esm/persistence/index.js.map +1 -1
  69. package/lib/esm/persistence/migrations.d.ts +8 -8
  70. package/lib/esm/persistence/migrations.js +8 -9
  71. package/lib/esm/persistence/migrations.js.map +1 -1
  72. package/lib/esm/persistence/types.d.ts +38 -20
  73. package/lib/esm/query/Paginator.d.ts +6 -5
  74. package/lib/esm/query/Paginator.js +4 -4
  75. package/lib/esm/query/Paginator.js.map +1 -1
  76. package/lib/esm/query/Statement.d.ts +9 -8
  77. package/lib/esm/query/Statement.js +23 -10
  78. package/lib/esm/query/Statement.js.map +1 -1
  79. package/lib/esm/ram/RamAdapter.d.ts +22 -31
  80. package/lib/esm/ram/RamAdapter.js +36 -34
  81. package/lib/esm/ram/RamAdapter.js.map +1 -1
  82. package/lib/esm/ram/RamPaginator.d.ts +2 -1
  83. package/lib/esm/ram/RamPaginator.js +5 -3
  84. package/lib/esm/ram/RamPaginator.js.map +1 -1
  85. package/lib/esm/ram/RamStatement.d.ts +7 -7
  86. package/lib/esm/ram/RamStatement.js.map +1 -1
  87. package/lib/esm/ram/handlers.d.ts +3 -4
  88. package/lib/esm/ram/handlers.js.map +1 -1
  89. package/lib/esm/ram/index.d.ts +0 -3
  90. package/lib/esm/ram/index.js +0 -3
  91. package/lib/esm/ram/index.js.map +1 -1
  92. package/lib/esm/ram/types.d.ts +4 -12
  93. package/lib/esm/repository/Repository.d.ts +31 -95
  94. package/lib/esm/repository/Repository.js +107 -203
  95. package/lib/esm/repository/Repository.js.map +1 -1
  96. package/lib/esm/repository/decorators.js +4 -3
  97. package/lib/esm/repository/decorators.js.map +1 -1
  98. package/lib/esm/repository/utils.d.ts +1 -1
  99. package/lib/esm/repository/utils.js +2 -3
  100. package/lib/esm/repository/utils.js.map +1 -1
  101. package/lib/esm/utils/ContextualLoggedClass.d.ts +16 -0
  102. package/lib/esm/utils/ContextualLoggedClass.js +29 -0
  103. package/lib/esm/utils/ContextualLoggedClass.js.map +1 -0
  104. package/lib/esm/utils/Services.d.ts +50 -0
  105. package/lib/esm/utils/Services.js +154 -0
  106. package/lib/esm/utils/Services.js.map +1 -0
  107. package/lib/esm/utils/decorators.d.ts +1 -9
  108. package/lib/esm/utils/decorators.js +26 -15
  109. package/lib/esm/utils/decorators.js.map +1 -1
  110. package/lib/esm/utils/index.d.ts +2 -1
  111. package/lib/esm/utils/index.js +2 -1
  112. package/lib/esm/utils/index.js.map +1 -1
  113. package/lib/identity/decorators.cjs +5 -11
  114. package/lib/identity/decorators.d.ts +3 -4
  115. package/lib/identity/decorators.js.map +1 -1
  116. package/lib/identity/index.cjs +0 -1
  117. package/lib/identity/index.d.ts +0 -1
  118. package/lib/identity/index.js.map +1 -1
  119. package/lib/index.cjs +1 -1
  120. package/lib/index.d.ts +1 -1
  121. package/lib/interfaces/ContextuallyLogged.cjs +3 -0
  122. package/lib/interfaces/ContextuallyLogged.d.ts +8 -0
  123. package/lib/interfaces/ContextuallyLogged.js.map +1 -0
  124. package/lib/interfaces/ErrorParser.d.ts +2 -2
  125. package/lib/interfaces/Executor.d.ts +1 -1
  126. package/lib/interfaces/Observable.d.ts +8 -8
  127. package/lib/interfaces/Observer.d.ts +2 -2
  128. package/lib/interfaces/RawExecutor.d.ts +1 -1
  129. package/lib/model/BaseModel.cjs +2 -2
  130. package/lib/model/BaseModel.d.ts +2 -2
  131. package/lib/{ram/model/RamSequenceModel.cjs → model/SequenceModel.cjs} +14 -13
  132. package/lib/{ram/model/RamSequenceModel.d.ts → model/SequenceModel.d.ts} +3 -3
  133. package/lib/model/SequenceModel.js.map +1 -0
  134. package/lib/model/construction.cjs +2 -2
  135. package/lib/model/construction.d.ts +9 -8
  136. package/lib/model/construction.js.map +1 -1
  137. package/lib/model/decorators.cjs +3 -3
  138. package/lib/model/decorators.d.ts +5 -4
  139. package/lib/model/decorators.js.map +1 -1
  140. package/lib/model/index.cjs +1 -0
  141. package/lib/model/index.d.ts +1 -0
  142. package/lib/model/index.js.map +1 -1
  143. package/lib/overrides/Metadata.d.ts +1 -8
  144. package/lib/overrides/Model.cjs +4 -0
  145. package/lib/overrides/Model.d.ts +75 -0
  146. package/lib/overrides/Model.js.map +1 -0
  147. package/lib/overrides/index.cjs +2 -0
  148. package/lib/overrides/index.d.ts +2 -0
  149. package/lib/overrides/index.js.map +1 -1
  150. package/lib/overrides/injectables.cjs +4 -0
  151. package/lib/overrides/injectables.d.ts +10 -0
  152. package/lib/overrides/injectables.js.map +1 -0
  153. package/lib/overrides/overrides.cjs +43 -1
  154. package/lib/overrides/overrides.js.map +1 -1
  155. package/lib/persistence/Adapter.cjs +90 -66
  156. package/lib/persistence/Adapter.d.ts +55 -53
  157. package/lib/persistence/Adapter.js.map +1 -1
  158. package/lib/persistence/Dispatch.cjs +25 -18
  159. package/lib/persistence/Dispatch.d.ts +7 -6
  160. package/lib/persistence/Dispatch.js.map +1 -1
  161. package/lib/persistence/ObserverHandler.cjs +5 -4
  162. package/lib/persistence/ObserverHandler.d.ts +7 -6
  163. package/lib/persistence/ObserverHandler.js.map +1 -1
  164. package/lib/persistence/Sequence.cjs +136 -15
  165. package/lib/persistence/Sequence.d.ts +34 -25
  166. package/lib/persistence/Sequence.js.map +1 -1
  167. package/lib/persistence/constants.cjs +1 -0
  168. package/lib/persistence/constants.d.ts +1 -0
  169. package/lib/persistence/constants.js.map +1 -1
  170. package/lib/persistence/generators.cjs +36 -0
  171. package/lib/persistence/generators.d.ts +14 -0
  172. package/lib/persistence/generators.js.map +1 -0
  173. package/lib/persistence/index.cjs +1 -0
  174. package/lib/persistence/index.d.ts +1 -0
  175. package/lib/persistence/index.js.map +1 -1
  176. package/lib/persistence/migrations.cjs +7 -8
  177. package/lib/persistence/migrations.d.ts +8 -8
  178. package/lib/persistence/migrations.js.map +1 -1
  179. package/lib/persistence/types.d.ts +38 -20
  180. package/lib/query/Paginator.cjs +4 -4
  181. package/lib/query/Paginator.d.ts +6 -5
  182. package/lib/query/Paginator.js.map +1 -1
  183. package/lib/query/Statement.cjs +34 -21
  184. package/lib/query/Statement.d.ts +9 -8
  185. package/lib/query/Statement.js.map +1 -1
  186. package/lib/ram/RamAdapter.cjs +35 -33
  187. package/lib/ram/RamAdapter.d.ts +22 -31
  188. package/lib/ram/RamAdapter.js.map +1 -1
  189. package/lib/ram/RamPaginator.cjs +5 -3
  190. package/lib/ram/RamPaginator.d.ts +2 -1
  191. package/lib/ram/RamPaginator.js.map +1 -1
  192. package/lib/ram/RamStatement.d.ts +7 -7
  193. package/lib/ram/RamStatement.js.map +1 -1
  194. package/lib/ram/handlers.d.ts +3 -4
  195. package/lib/ram/handlers.js.map +1 -1
  196. package/lib/ram/index.cjs +0 -3
  197. package/lib/ram/index.d.ts +0 -3
  198. package/lib/ram/index.js.map +1 -1
  199. package/lib/ram/types.d.ts +4 -12
  200. package/lib/repository/Repository.cjs +108 -204
  201. package/lib/repository/Repository.d.ts +31 -95
  202. package/lib/repository/Repository.js.map +1 -1
  203. package/lib/repository/decorators.cjs +2 -1
  204. package/lib/repository/decorators.js.map +1 -1
  205. package/lib/repository/utils.cjs +2 -3
  206. package/lib/repository/utils.d.ts +1 -1
  207. package/lib/repository/utils.js.map +1 -1
  208. package/lib/utils/ContextualLoggedClass.cjs +33 -0
  209. package/lib/utils/ContextualLoggedClass.d.ts +16 -0
  210. package/lib/utils/ContextualLoggedClass.js.map +1 -0
  211. package/lib/utils/Services.cjs +159 -0
  212. package/lib/utils/Services.d.ts +50 -0
  213. package/lib/utils/Services.js.map +1 -0
  214. package/lib/utils/decorators.cjs +27 -16
  215. package/lib/utils/decorators.d.ts +1 -9
  216. package/lib/utils/decorators.js.map +1 -1
  217. package/lib/utils/index.cjs +2 -1
  218. package/lib/utils/index.d.ts +2 -1
  219. package/lib/utils/index.js.map +1 -1
  220. package/package.json +1 -1
  221. package/lib/esm/identity/utils.d.ts +0 -24
  222. package/lib/esm/identity/utils.js +0 -44
  223. package/lib/esm/identity/utils.js.map +0 -1
  224. package/lib/esm/ram/RamContext.d.ts +0 -28
  225. package/lib/esm/ram/RamContext.js +0 -30
  226. package/lib/esm/ram/RamContext.js.map +0 -1
  227. package/lib/esm/ram/RamSequence.d.ts +0 -75
  228. package/lib/esm/ram/RamSequence.js +0 -145
  229. package/lib/esm/ram/RamSequence.js.map +0 -1
  230. package/lib/esm/ram/model/RamSequenceModel.js.map +0 -1
  231. package/lib/esm/ram/model/index.d.ts +0 -1
  232. package/lib/esm/ram/model/index.js +0 -2
  233. package/lib/esm/ram/model/index.js.map +0 -1
  234. package/lib/identity/utils.cjs +0 -49
  235. package/lib/identity/utils.d.ts +0 -24
  236. package/lib/identity/utils.js.map +0 -1
  237. package/lib/ram/RamContext.cjs +0 -34
  238. package/lib/ram/RamContext.d.ts +0 -28
  239. package/lib/ram/RamContext.js.map +0 -1
  240. package/lib/ram/RamSequence.cjs +0 -149
  241. package/lib/ram/RamSequence.d.ts +0 -75
  242. package/lib/ram/RamSequence.js.map +0 -1
  243. package/lib/ram/model/RamSequenceModel.js.map +0 -1
  244. package/lib/ram/model/index.cjs +0 -18
  245. package/lib/ram/model/index.d.ts +0 -1
  246. package/lib/ram/model/index.js.map +0 -1
@@ -2,6 +2,7 @@ import { Adapter } from "../persistence";
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 { MaybeContextualArg } from "../utils/index";
5
6
  /**
6
7
  * @description Handles pagination for database queries
7
8
  * @summary Provides functionality for navigating through paginated query results
@@ -59,7 +60,7 @@ import { LoggedClass } from "@decaf-ts/logging";
59
60
  * Paginator-->>Client: return page results
60
61
  */
61
62
  export declare abstract class Paginator<M extends Model, R = M[], Q = any> extends LoggedClass {
62
- protected readonly adapter: Adapter<any, any, Q, any, any>;
63
+ protected readonly adapter: Adapter<any, any, Q, any>;
63
64
  protected readonly query: Q;
64
65
  readonly size: number;
65
66
  protected readonly clazz: Constructor<M>;
@@ -72,10 +73,10 @@ export declare abstract class Paginator<M extends Model, R = M[], Q = any> exten
72
73
  get total(): number;
73
74
  get count(): number;
74
75
  protected get statement(): Q;
75
- protected constructor(adapter: Adapter<any, any, Q, any, any>, query: Q, size: number, clazz: Constructor<M>);
76
+ protected constructor(adapter: Adapter<any, any, Q, any>, query: Q, size: number, clazz: Constructor<M>);
76
77
  protected abstract prepare(rawStatement: Q): Q;
77
- next(): Promise<R[]>;
78
- previous(): Promise<R[]>;
78
+ next(...args: MaybeContextualArg<any>): Promise<R[]>;
79
+ previous(...args: MaybeContextualArg<any>): Promise<R[]>;
79
80
  protected validatePage(page: number): number;
80
- abstract page(page?: number): Promise<R[]>;
81
+ abstract page(page?: number, ...args: MaybeContextualArg<any>): Promise<R[]>;
81
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../src/query/Paginator.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAIvC,+CAAgD;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAsB,SAIpB,SAAQ,qBAAW;IAQnB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAc,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YACqB,OAAuC,EACvC,KAAQ,EAClB,IAAY,EACF,KAAqB;QAExC,KAAK,EAAE,CAAC;QALW,YAAO,GAAP,OAAO,CAAgC;QACvC,UAAK,GAAL,KAAK,CAAG;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACF,UAAK,GAAL,KAAK,CAAgB;IAG1C,CAAC;IAID,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAES,YAAY,CAAC,IAAY;QACjC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACrC,MAAM,IAAI,oBAAW,CACnB,sDAAsD,CACvD,CAAC;QACJ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;YACpE,MAAM,IAAI,oBAAW,CACnB,QAAQ,IAAI,CAAC,WAAW,qCAAqC,IAAI,EAAE,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AA7DD,8BA6DC"}
1
+ {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../src/query/Paginator.ts"],"names":[],"mappings":";;;AAAA,yCAAuC;AAIvC,+CAAgD;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAsB,SAIpB,SAAQ,qBAAW;IAQnB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAc,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YACqB,OAAkC,EAClC,KAAQ,EAClB,IAAY,EACF,KAAqB;QAExC,KAAK,EAAE,CAAC;QALW,YAAO,GAAP,OAAO,CAA2B;QAClC,UAAK,GAAL,KAAK,CAAG;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACF,UAAK,GAAL,KAAK,CAAgB;IAG1C,CAAC;IAID,KAAK,CAAC,IAAI,CAAC,GAAG,IAA6B;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAG,IAA6B;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;IAES,YAAY,CAAC,IAAY;QACjC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACrC,MAAM,IAAI,oBAAW,CACnB,sDAAsD,CACvD,CAAC;QACJ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;YACpE,MAAM,IAAI,oBAAW,CACnB,QAAQ,IAAI,CAAC,WAAW,qCAAqC,IAAI,EAAE,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;CAGF;AA7DD,8BA6DC"}
@@ -14,9 +14,10 @@ exports.Statement = void 0;
14
14
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
15
15
  const Condition_1 = require("./Condition.cjs");
16
16
  const db_decorators_1 = require("@decaf-ts/db-decorators");
17
- const decorators_1 = require("./../utils/decorators.cjs");
18
- const errors_1 = require("./errors.cjs");
19
17
  const logging_1 = require("@decaf-ts/logging");
18
+ const persistence_1 = require("./../persistence/index.cjs");
19
+ const errors_1 = require("./errors.cjs");
20
+ const index_1 = require("./../utils/index.cjs");
20
21
  /**
21
22
  * @description Base class for database query statements
22
23
  * @summary Provides a foundation for building and executing database queries
@@ -68,7 +69,7 @@ const logging_1 = require("@decaf-ts/logging");
68
69
  * Adapter-->>Statement: return processed results
69
70
  * Statement-->>Client: return final results
70
71
  */
71
- class Statement extends logging_1.LoggedClass {
72
+ class Statement extends index_1.ContextualLoggedClass {
72
73
  constructor(adapter) {
73
74
  super();
74
75
  this.adapter = adapter;
@@ -125,100 +126,112 @@ class Statement extends logging_1.LoggedClass {
125
126
  this.offsetSelector = value;
126
127
  return this;
127
128
  }
128
- async execute() {
129
+ async execute(...args) {
130
+ let execArgs = args;
131
+ if ((!execArgs.length ||
132
+ !(execArgs[execArgs.length - 1] instanceof db_decorators_1.Context)) &&
133
+ this.fromSelector) {
134
+ const ctx = await this.adapter.context(db_decorators_1.OperationKeys.READ, {}, this.fromSelector);
135
+ execArgs = [...execArgs, ctx];
136
+ }
137
+ const { ctx } = persistence_1.Adapter.logCtx(execArgs, this.toString());
129
138
  try {
130
139
  const query = this.build();
131
- return (await this.raw(query));
140
+ return (await this.raw(query, ctx));
132
141
  }
133
142
  catch (e) {
134
143
  throw new db_decorators_1.InternalError(e);
135
144
  }
136
145
  }
137
- async raw(rawInput) {
138
- const results = await this.adapter.raw(rawInput);
146
+ async raw(rawInput, ...args) {
147
+ const { ctx, ctxArgs } = this.logCtx(args, this.raw);
148
+ const results = await this.adapter.raw(rawInput, ...ctxArgs);
139
149
  if (!this.selectSelector)
140
150
  return results;
141
151
  const pkAttr = decorator_validation_1.Model.pk(this.fromSelector);
142
152
  const processor = function recordProcessor(r) {
143
153
  const id = r[pkAttr];
144
- return this.adapter.revert(r, this.fromSelector, pkAttr, id);
154
+ return this.adapter.revert(r, this.fromSelector, id, undefined, ctx);
145
155
  }.bind(this);
146
156
  if (Array.isArray(results))
147
157
  return results.map(processor);
148
158
  return processor(results);
149
159
  }
160
+ toString() {
161
+ return `${this.adapter.flavour} statement`;
162
+ }
150
163
  }
151
164
  exports.Statement = Statement;
152
165
  __decorate([
153
- (0, decorators_1.final)(),
166
+ (0, logging_1.final)(),
154
167
  __metadata("design:type", Function),
155
168
  __metadata("design:paramtypes", [Array]),
156
169
  __metadata("design:returntype", Object)
157
170
  ], Statement.prototype, "select", null);
158
171
  __decorate([
159
- (0, decorators_1.final)(),
172
+ (0, logging_1.final)(),
160
173
  __metadata("design:type", Function),
161
174
  __metadata("design:paramtypes", [typeof (_a = typeof S !== "undefined" && S) === "function" ? _a : Object]),
162
175
  __metadata("design:returntype", Object)
163
176
  ], Statement.prototype, "distinct", null);
164
177
  __decorate([
165
- (0, decorators_1.final)(),
178
+ (0, logging_1.final)(),
166
179
  __metadata("design:type", Function),
167
180
  __metadata("design:paramtypes", [typeof (_b = typeof S !== "undefined" && S) === "function" ? _b : Object]),
168
181
  __metadata("design:returntype", Object)
169
182
  ], Statement.prototype, "max", null);
170
183
  __decorate([
171
- (0, decorators_1.final)(),
184
+ (0, logging_1.final)(),
172
185
  __metadata("design:type", Function),
173
186
  __metadata("design:paramtypes", [typeof (_c = typeof S !== "undefined" && S) === "function" ? _c : Object]),
174
187
  __metadata("design:returntype", Object)
175
188
  ], Statement.prototype, "min", null);
176
189
  __decorate([
177
- (0, decorators_1.final)(),
190
+ (0, logging_1.final)(),
178
191
  __metadata("design:type", Function),
179
192
  __metadata("design:paramtypes", [typeof (_d = typeof S !== "undefined" && S) === "function" ? _d : Object]),
180
193
  __metadata("design:returntype", Object)
181
194
  ], Statement.prototype, "count", null);
182
195
  __decorate([
183
- (0, decorators_1.final)(),
196
+ (0, logging_1.final)(),
184
197
  __metadata("design:type", Function),
185
198
  __metadata("design:paramtypes", [Object]),
186
199
  __metadata("design:returntype", Object)
187
200
  ], Statement.prototype, "from", null);
188
201
  __decorate([
189
- (0, decorators_1.final)(),
202
+ (0, logging_1.final)(),
190
203
  __metadata("design:type", Function),
191
204
  __metadata("design:paramtypes", [Condition_1.Condition]),
192
205
  __metadata("design:returntype", Object)
193
206
  ], Statement.prototype, "where", null);
194
207
  __decorate([
195
- (0, decorators_1.final)(),
208
+ (0, logging_1.final)(),
196
209
  __metadata("design:type", Function),
197
210
  __metadata("design:paramtypes", [Array]),
198
211
  __metadata("design:returntype", Object)
199
212
  ], Statement.prototype, "orderBy", null);
200
213
  __decorate([
201
- (0, decorators_1.final)(),
214
+ (0, logging_1.final)(),
202
215
  __metadata("design:type", Function),
203
216
  __metadata("design:paramtypes", [Object]),
204
217
  __metadata("design:returntype", Object)
205
218
  ], Statement.prototype, "groupBy", null);
206
219
  __decorate([
207
- (0, decorators_1.final)(),
220
+ (0, logging_1.final)(),
208
221
  __metadata("design:type", Function),
209
222
  __metadata("design:paramtypes", [Number]),
210
223
  __metadata("design:returntype", Object)
211
224
  ], Statement.prototype, "limit", null);
212
225
  __decorate([
213
- (0, decorators_1.final)(),
226
+ (0, logging_1.final)(),
214
227
  __metadata("design:type", Function),
215
228
  __metadata("design:paramtypes", [Number]),
216
229
  __metadata("design:returntype", Object)
217
230
  ], Statement.prototype, "offset", null);
218
231
  __decorate([
219
- (0, decorators_1.final)(),
232
+ (0, logging_1.final)(),
220
233
  __metadata("design:type", Function),
221
- __metadata("design:paramtypes", []),
234
+ __metadata("design:paramtypes", [void 0]),
222
235
  __metadata("design:returntype", Promise)
223
236
  ], Statement.prototype, "execute", null);
224
237
  //# sourceMappingURL=Statement.js.map
@@ -5,10 +5,10 @@ import { Condition } from "./Condition";
5
5
  import type { CountOption, DistinctOption, LimitOption, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, SelectOption, WhereOption } from "./options";
6
6
  import { Paginatable } from "../interfaces/Paginatable";
7
7
  import { Paginator } from "./Paginator";
8
- import { Adapter } from "../persistence";
8
+ import { Adapter, type ContextOf } from "../persistence";
9
9
  import { Logger } from "@decaf-ts/logging";
10
- import { LoggedClass } from "@decaf-ts/logging";
11
10
  import { Constructor } from "@decaf-ts/decoration";
11
+ import { type ContextualArgs, ContextualLoggedClass, type MaybeContextualArg } from "../utils/index";
12
12
  /**
13
13
  * @description Base class for database query statements
14
14
  * @summary Provides a foundation for building and executing database queries
@@ -60,8 +60,8 @@ import { Constructor } from "@decaf-ts/decoration";
60
60
  * Adapter-->>Statement: return processed results
61
61
  * Statement-->>Client: return final results
62
62
  */
63
- export declare abstract class Statement<Q, M extends Model, R> extends LoggedClass implements Executor<R>, RawExecutor<Q>, Paginatable<M, R, Q> {
64
- protected adapter: Adapter<any, any, Q, any, any>;
63
+ export declare abstract class Statement<M extends Model, A extends Adapter<any, any, any, any>, R, Q = A extends Adapter<any, any, infer Q, any> ? Q : never> extends ContextualLoggedClass<ContextOf<A>> implements Executor<R>, RawExecutor<Q>, Paginatable<M, R, Q> {
64
+ protected adapter: Adapter<any, any, Q, any>;
65
65
  protected readonly selectSelector?: SelectSelector<M>[];
66
66
  protected distinctSelector?: SelectSelector<M>;
67
67
  protected maxSelector?: SelectSelector<M>;
@@ -73,7 +73,7 @@ export declare abstract class Statement<Q, M extends Model, R> extends LoggedCla
73
73
  protected groupBySelector?: GroupBySelector<M>;
74
74
  protected limitSelector?: number;
75
75
  protected offsetSelector?: number;
76
- protected constructor(adapter: Adapter<any, any, Q, any, any>);
76
+ protected constructor(adapter: Adapter<any, any, Q, any>);
77
77
  protected get log(): Logger;
78
78
  select<S extends readonly SelectSelector<M>[]>(): SelectOption<M, M[]>;
79
79
  select<S extends readonly SelectSelector<M>[]>(selector: readonly [...S]): SelectOption<M, Pick<M, S[number]>[]>;
@@ -87,9 +87,10 @@ export declare abstract class Statement<Q, M extends Model, R> extends LoggedCla
87
87
  groupBy(selector: GroupBySelector<M>): LimitOption<M, R>;
88
88
  limit(value: number): OffsetOption<R>;
89
89
  offset(value: number): Executor<R>;
90
- execute(): Promise<R>;
91
- raw<R>(rawInput: Q): Promise<R>;
90
+ execute(...args: MaybeContextualArg<ContextOf<A>>): Promise<R>;
91
+ raw<R>(rawInput: Q, ...args: ContextualArgs<ContextOf<A>>): Promise<R>;
92
92
  protected abstract build(): Q;
93
93
  protected abstract parseCondition(condition: Condition<M>, ...args: any[]): Q;
94
- abstract paginate(size: number): Promise<Paginator<M, R, Q>>;
94
+ abstract paginate(size: number, ...args: MaybeContextualArg<ContextOf<A>>): Promise<Paginator<M, R, Q>>;
95
+ toString(): string;
95
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/query/Statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../src/query/Statement.ts"],"names":[],"mappings":"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"}
@@ -2,13 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RamAdapter = void 0;
4
4
  const RamStatement_1 = require("./RamStatement.cjs");
5
- const RamContext_1 = require("./RamContext.cjs");
6
- const Repository_1 = require("./../repository/Repository.cjs");
7
5
  const persistence_1 = require("./../persistence/index.cjs");
8
6
  const transactional_decorators_1 = require("@decaf-ts/transactional-decorators");
9
7
  const decorator_validation_1 = require("@decaf-ts/decorator-validation");
10
8
  const db_decorators_1 = require("@decaf-ts/db-decorators");
11
- const RamSequence_1 = require("./RamSequence.cjs");
12
9
  const handlers_1 = require("./handlers.cjs");
13
10
  const constants_1 = require("./constants.cjs");
14
11
  const decoration_1 = require("@decaf-ts/decoration");
@@ -58,7 +55,7 @@ const decoration_1 = require("@decaf-ts/decoration");
58
55
  class RamAdapter extends persistence_1.Adapter {
59
56
  constructor(conf = {}, alias) {
60
57
  super(conf, constants_1.RamFlavour, alias);
61
- this.Context = RamContext_1.RamContext;
58
+ this.Context = db_decorators_1.Context;
62
59
  this.indexes = {};
63
60
  this.lock = new transactional_decorators_1.Lock();
64
61
  }
@@ -110,9 +107,10 @@ class RamAdapter extends persistence_1.Adapter {
110
107
  * @param pk - The primary key property name
111
108
  * @return Object containing the record and ID
112
109
  */
113
- prepare(model, pk) {
114
- const prepared = super.prepare(model, pk);
115
- delete prepared.record[pk];
110
+ prepare(model, ...args) {
111
+ const ctx = args.pop();
112
+ const prepared = super.prepare(model, ...args, ctx);
113
+ delete prepared.record[decorator_validation_1.Model.pk(model.constructor)];
116
114
  return prepared;
117
115
  }
118
116
  /**
@@ -121,13 +119,12 @@ class RamAdapter extends persistence_1.Adapter {
121
119
  * This method is the inverse of the prepare method.
122
120
  * @template M - The model type to revert to
123
121
  * @param {Record<string, any>} obj - The stored record
124
- * @param {string | Constructor<M>} clazz - The model class or name
125
- * @param pk - The primary key property name
126
- * @param {string | number} id - The primary key value
122
+ * @param {Constructor<M>} clazz - The model class or name
123
+ * @param {PrimaryKeyType} id - The primary key value
127
124
  * @return {M} The reconstructed model instance
128
125
  */
129
- revert(obj, clazz, pk, id) {
130
- const res = super.revert(obj, clazz, pk, id);
126
+ revert(obj, clazz, id, transient, ...args) {
127
+ const res = super.revert(obj, clazz, id, transient, ...args);
131
128
  return res;
132
129
  }
133
130
  /**
@@ -135,7 +132,7 @@ class RamAdapter extends persistence_1.Adapter {
135
132
  * @summary Stores a new record in the specified table with the given ID.
136
133
  * This method acquires a lock to ensure thread safety, creates the table if it doesn't exist,
137
134
  * checks for conflicts, and stores the model.
138
- * @param {string} tableName - The name of the table to store the record in
135
+ * @param {string} clazz - The name of the table to store the record in
139
136
  * @param {string | number} id - The unique identifier for the record
140
137
  * @param {Record<string, any>} model - The record data to store
141
138
  * @return {Promise<Record<string, any>>} A promise that resolves to the stored record
@@ -159,11 +156,15 @@ class RamAdapter extends persistence_1.Adapter {
159
156
  * RamAdapter->>RamAdapter: lock.release()
160
157
  * RamAdapter-->>Caller: model
161
158
  */
162
- async create(tableName, id, model) {
159
+ async create(clazz, id, model, ctx) {
160
+ const log = ctx.logger.for(this.create);
161
+ const tableName = decorator_validation_1.Model.tableName(clazz);
162
+ log.debug(`creating record in table ${tableName} with id ${id}`);
163
163
  await this.lock.acquire();
164
164
  if (!this.client.has(tableName))
165
165
  this.client.set(tableName, new Map());
166
- if (this.client.get(tableName) && this.client.get(tableName)?.has(id))
166
+ if (this.client.get(tableName) &&
167
+ this.client.get(tableName)?.has(id))
167
168
  throw new db_decorators_1.ConflictError(`Record with id ${id} already exists in table ${tableName}`);
168
169
  this.client.get(tableName)?.set(id, model);
169
170
  this.lock.release();
@@ -173,8 +174,8 @@ class RamAdapter extends persistence_1.Adapter {
173
174
  * @description Retrieves a record from in-memory storage
174
175
  * @summary Fetches a record with the specified ID from the given table.
175
176
  * This method checks if the table and record exist and throws appropriate errors if not.
176
- * @param {string} tableName - The name of the table to retrieve from
177
- * @param {string | number} id - The unique identifier of the record to retrieve
177
+ * @param {Constructor} clazz - The name of the table to retrieve from
178
+ * @param {PrimaryKeyType} id - The unique identifier of the record to retrieve
178
179
  * @return {Promise<Record<string, any>>} A promise that resolves to the retrieved record
179
180
  * @mermaid
180
181
  * sequenceDiagram
@@ -195,7 +196,10 @@ class RamAdapter extends persistence_1.Adapter {
195
196
  * Storage-->>RamAdapter: record
196
197
  * RamAdapter-->>Caller: record
197
198
  */
198
- async read(tableName, id) {
199
+ async read(clazz, id,
200
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
201
+ ctx) {
202
+ const tableName = decorator_validation_1.Model.tableName(clazz);
199
203
  if (!this.client.has(tableName))
200
204
  throw new db_decorators_1.NotFoundError(`Table ${tableName} not found`);
201
205
  if (!this.client.get(tableName)?.has(id))
@@ -231,7 +235,10 @@ class RamAdapter extends persistence_1.Adapter {
231
235
  * RamAdapter->>RamAdapter: lock.release()
232
236
  * RamAdapter-->>Caller: model
233
237
  */
234
- async update(tableName, id, model) {
238
+ async update(clazz, id, model, ctx) {
239
+ const log = ctx.logger.for(this.update);
240
+ const tableName = decorator_validation_1.Model.tableName(clazz);
241
+ log.debug(`updating record in table ${tableName} with id ${id}`);
235
242
  await this.lock.acquire();
236
243
  if (!this.client.has(tableName))
237
244
  throw new db_decorators_1.NotFoundError(`Table ${tableName} not found`);
@@ -271,7 +278,10 @@ class RamAdapter extends persistence_1.Adapter {
271
278
  * RamAdapter->>RamAdapter: lock.release()
272
279
  * RamAdapter-->>Caller: record
273
280
  */
274
- async delete(tableName, id) {
281
+ async delete(clazz, id, ctx) {
282
+ const log = ctx.logger.for(this.delete);
283
+ const tableName = decorator_validation_1.Model.tableName(clazz);
284
+ log.debug(`deleting record from table ${tableName} with pk ${id}`);
275
285
  await this.lock.acquire();
276
286
  if (!this.client.has(tableName))
277
287
  throw new db_decorators_1.NotFoundError(`Table ${tableName} not found`);
@@ -294,7 +304,7 @@ class RamAdapter extends persistence_1.Adapter {
294
304
  tableFor(from) {
295
305
  if (typeof from === "string")
296
306
  from = decorator_validation_1.Model.get(from);
297
- const table = Repository_1.Repository.table(from);
307
+ const table = decorator_validation_1.Model.tableName(from);
298
308
  if (!this.client.has(table))
299
309
  this.client.set(table, new Map());
300
310
  return this.client.get(table);
@@ -342,7 +352,9 @@ class RamAdapter extends persistence_1.Adapter {
342
352
  * end
343
353
  * RamAdapter-->>Caller: result
344
354
  */
345
- async raw(rawInput) {
355
+ async raw(rawInput, ctx) {
356
+ const log = ctx.logger.for(this.raw);
357
+ log.debug(`performing raw query: ${JSON.stringify(rawInput)}`);
346
358
  const { where, sort, limit, skip, from } = rawInput;
347
359
  let { select } = rawInput;
348
360
  const collection = this.tableFor(from);
@@ -350,7 +362,7 @@ class RamAdapter extends persistence_1.Adapter {
350
362
  throw new db_decorators_1.InternalError(`Table ${from} not found in RamAdapter`);
351
363
  const id = decorator_validation_1.Model.pk(from);
352
364
  const props = decoration_1.Metadata.get(from, decoration_1.Metadata.key(db_decorators_1.DBKeys.ID, id));
353
- let result = Array.from(collection.entries()).map(([pk, r]) => this.revert(r, from, id, persistence_1.Sequence.parseValue(props.type, pk)));
365
+ let result = Array.from(collection.entries()).map(([pk, r]) => this.revert(r, from, persistence_1.Sequence.parseValue(props.type, pk), undefined, ctx));
354
366
  result = where ? result.filter(where) : result;
355
367
  if (sort)
356
368
  result = result.sort(sort);
@@ -391,16 +403,6 @@ class RamAdapter extends persistence_1.Adapter {
391
403
  Statement() {
392
404
  return new RamStatement_1.RamStatement(this);
393
405
  }
394
- /**
395
- * @description Creates a new sequence for generating sequential IDs
396
- * @summary Factory method that creates a new RamSequence instance for ID generation.
397
- * This method provides a way to create auto-incrementing sequences for entity IDs.
398
- * @param {SequenceOptions} options - Configuration options for the sequence
399
- * @return {Promise<Sequence>} A promise that resolves to the new sequence instance
400
- */
401
- async Sequence(options) {
402
- return new RamSequence_1.RamSequence(options, this);
403
- }
404
406
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
405
407
  for(config, ...args) {
406
408
  if (!this.proxies)
@@ -1,11 +1,10 @@
1
- import { RamFlags, RawRamQuery, RamStorage, RamRepository, RamConfig } from "./types";
1
+ import { RamFlags, RawRamQuery, RamStorage, RamConfig, RamContext } from "./types";
2
2
  import { RamStatement } from "./RamStatement";
3
- import { RamContext } from "./RamContext";
3
+ import { Repository } from "../repository/Repository";
4
4
  import { Dispatch } from "../persistence/Dispatch";
5
- import { Adapter, Sequence } from "../persistence";
6
- import { SequenceOptions } from "../interfaces";
5
+ import { Adapter } from "../persistence";
7
6
  import { Model } from "@decaf-ts/decorator-validation";
8
- import { BaseError, OperationKeys } from "@decaf-ts/db-decorators";
7
+ import { BaseError, OperationKeys, PrimaryKeyType } from "@decaf-ts/db-decorators";
9
8
  import { Constructor } from "@decaf-ts/decoration";
10
9
  /**
11
10
  * @description In-memory adapter for data persistence
@@ -50,7 +49,7 @@ import { Constructor } from "@decaf-ts/decoration";
50
49
  * RamAdapter-->>Repository: model
51
50
  * Repository-->>Client: model
52
51
  */
53
- export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQuery<any>, RamFlags, RamContext> {
52
+ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQuery, RamContext> {
54
53
  constructor(conf?: RamConfig, alias?: string);
55
54
  /**
56
55
  * @description Gets the repository constructor for a model
@@ -59,7 +58,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
59
58
  * @template M - The model type for the repository
60
59
  * @return {Constructor<RamRepository<M>>} A constructor for creating RAM repositories
61
60
  */
62
- repository<M extends Model<boolean>>(): Constructor<RamRepository<M>>;
61
+ repository<R extends Repository<any, Adapter<any, any, any, any>>>(): Constructor<R>;
63
62
  /**
64
63
  * @description Creates operation flags with UUID
65
64
  * @summary Extends the base flags with a UUID for user identification.
@@ -71,8 +70,8 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
71
70
  * @return {Promise<RamFlags>} Complete flags with UUID
72
71
  */
73
72
  flags<M extends Model<boolean>>(operation: OperationKeys, model: Constructor<M>, flags: Partial<RamFlags>): Promise<RamFlags>;
74
- protected Dispatch(): Dispatch;
75
- Context: typeof RamContext;
73
+ protected Dispatch(): Dispatch<RamAdapter>;
74
+ Context: Constructor<RamContext>;
76
75
  private indexes;
77
76
  private lock;
78
77
  /**
@@ -92,9 +91,10 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
92
91
  * @param pk - The primary key property name
93
92
  * @return Object containing the record and ID
94
93
  */
95
- prepare<M extends Model>(model: M, pk: keyof M): {
94
+ prepare<M extends Model>(model: M, ...args: [...any[], RamContext]): {
96
95
  record: Record<string, any>;
97
96
  id: string;
97
+ transient?: Record<string, any>;
98
98
  };
99
99
  /**
100
100
  * @description Converts a stored record back to a model instance
@@ -102,18 +102,17 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
102
102
  * This method is the inverse of the prepare method.
103
103
  * @template M - The model type to revert to
104
104
  * @param {Record<string, any>} obj - The stored record
105
- * @param {string | Constructor<M>} clazz - The model class or name
106
- * @param pk - The primary key property name
107
- * @param {string | number} id - The primary key value
105
+ * @param {Constructor<M>} clazz - The model class or name
106
+ * @param {PrimaryKeyType} id - The primary key value
108
107
  * @return {M} The reconstructed model instance
109
108
  */
110
- revert<M extends Model>(obj: Record<string, any>, clazz: string | Constructor<M>, pk: keyof M, id: string | number): M;
109
+ revert<M extends Model>(obj: Record<string, any>, clazz: Constructor<M>, id: PrimaryKeyType, transient?: Record<string, any>, ...args: [...any[], RamContext]): M;
111
110
  /**
112
111
  * @description Creates a new record in the in-memory storage
113
112
  * @summary Stores a new record in the specified table with the given ID.
114
113
  * This method acquires a lock to ensure thread safety, creates the table if it doesn't exist,
115
114
  * checks for conflicts, and stores the model.
116
- * @param {string} tableName - The name of the table to store the record in
115
+ * @param {string} clazz - The name of the table to store the record in
117
116
  * @param {string | number} id - The unique identifier for the record
118
117
  * @param {Record<string, any>} model - The record data to store
119
118
  * @return {Promise<Record<string, any>>} A promise that resolves to the stored record
@@ -137,13 +136,13 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
137
136
  * RamAdapter->>RamAdapter: lock.release()
138
137
  * RamAdapter-->>Caller: model
139
138
  */
140
- create(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
139
+ create<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ctx: RamContext): Promise<Record<string, any>>;
141
140
  /**
142
141
  * @description Retrieves a record from in-memory storage
143
142
  * @summary Fetches a record with the specified ID from the given table.
144
143
  * This method checks if the table and record exist and throws appropriate errors if not.
145
- * @param {string} tableName - The name of the table to retrieve from
146
- * @param {string | number} id - The unique identifier of the record to retrieve
144
+ * @param {Constructor} clazz - The name of the table to retrieve from
145
+ * @param {PrimaryKeyType} id - The unique identifier of the record to retrieve
147
146
  * @return {Promise<Record<string, any>>} A promise that resolves to the retrieved record
148
147
  * @mermaid
149
148
  * sequenceDiagram
@@ -164,7 +163,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
164
163
  * Storage-->>RamAdapter: record
165
164
  * RamAdapter-->>Caller: record
166
165
  */
167
- read(tableName: string, id: string | number): Promise<Record<string, any>>;
166
+ read<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ctx: RamContext): Promise<Record<string, any>>;
168
167
  /**
169
168
  * @description Updates an existing record in the in-memory storage
170
169
  * @summary Updates a record with the specified ID in the given table.
@@ -194,7 +193,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
194
193
  * RamAdapter->>RamAdapter: lock.release()
195
194
  * RamAdapter-->>Caller: model
196
195
  */
197
- update(tableName: string, id: string | number, model: Record<string, any>): Promise<Record<string, any>>;
196
+ update<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, model: Record<string, any>, ctx: RamContext): Promise<Record<string, any>>;
198
197
  /**
199
198
  * @description Deletes a record from the in-memory storage
200
199
  * @summary Removes a record with the specified ID from the given table.
@@ -225,7 +224,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
225
224
  * RamAdapter->>RamAdapter: lock.release()
226
225
  * RamAdapter-->>Caller: record
227
226
  */
228
- delete(tableName: string, id: string | number): Promise<Record<string, any>>;
227
+ delete<M extends Model>(clazz: Constructor<M>, id: PrimaryKeyType, ctx: RamContext): Promise<Record<string, any>>;
229
228
  /**
230
229
  * @description Gets or creates a table in the in-memory storage
231
230
  * @summary Retrieves the Map representing a table for a given model or table name.
@@ -279,7 +278,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
279
278
  * end
280
279
  * RamAdapter-->>Caller: result
281
280
  */
282
- raw<R>(rawInput: RawRamQuery<any>): Promise<R>;
281
+ raw<R>(rawInput: RawRamQuery<any>, ctx: RamContext): Promise<R>;
283
282
  /**
284
283
  * @description Parses and converts errors to appropriate types
285
284
  * @summary Ensures that errors are of the correct type for consistent error handling.
@@ -296,15 +295,7 @@ export declare class RamAdapter extends Adapter<RamConfig, RamStorage, RawRamQue
296
295
  * @template M - The model type for the statement
297
296
  * @return {RamStatement<M, any>} A new statement builder instance
298
297
  */
299
- Statement<M extends Model<boolean>>(): RamStatement<M, any>;
300
- /**
301
- * @description Creates a new sequence for generating sequential IDs
302
- * @summary Factory method that creates a new RamSequence instance for ID generation.
303
- * This method provides a way to create auto-incrementing sequences for entity IDs.
304
- * @param {SequenceOptions} options - Configuration options for the sequence
305
- * @return {Promise<Sequence>} A promise that resolves to the new sequence instance
306
- */
307
- Sequence(options: SequenceOptions): Promise<Sequence>;
298
+ Statement<M extends Model<boolean>>(): RamStatement<M, any, Adapter<any, any, RawRamQuery<M>, RamContext>>;
308
299
  for(config: Partial<RamConfig>, ...args: any[]): typeof this;
309
300
  /**
310
301
  * @description Sets up RAM-specific decorations for model properties
@@ -1 +1 @@
1
- {"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}