@decaf-ts/core 0.7.12 → 0.7.14

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 (163) 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.d.ts +1 -1
  7. package/lib/esm/identity/decorators.js +11 -4
  8. package/lib/esm/identity/decorators.js.map +1 -1
  9. package/lib/esm/index.d.ts +1 -1
  10. package/lib/esm/index.js +1 -1
  11. package/lib/esm/interfaces/ContextuallyLogged.d.ts +2 -2
  12. package/lib/esm/model/construction.d.ts +4 -5
  13. package/lib/esm/model/construction.js +1 -1
  14. package/lib/esm/model/construction.js.map +1 -1
  15. package/lib/esm/model/decorators.d.ts +1 -0
  16. package/lib/esm/model/decorators.js +13 -6
  17. package/lib/esm/model/decorators.js.map +1 -1
  18. package/lib/esm/model/types.d.ts +1 -1
  19. package/lib/esm/overrides/Metadata.d.ts +4 -2
  20. package/lib/esm/overrides/Model.d.ts +10 -0
  21. package/lib/esm/overrides/decoration.d.ts +1 -0
  22. package/lib/esm/overrides/decoration.js +6 -0
  23. package/lib/esm/overrides/decoration.js.map +1 -0
  24. package/lib/esm/overrides/index.d.ts +1 -0
  25. package/lib/esm/overrides/index.js +1 -0
  26. package/lib/esm/overrides/index.js.map +1 -1
  27. package/lib/esm/overrides/overrides.js +18 -1
  28. package/lib/esm/overrides/overrides.js.map +1 -1
  29. package/lib/esm/persistence/Adapter.d.ts +8 -4
  30. package/lib/esm/persistence/Adapter.js +4 -3
  31. package/lib/esm/persistence/Adapter.js.map +1 -1
  32. package/lib/esm/persistence/Context.d.ts +5 -0
  33. package/lib/esm/persistence/Context.js +7 -0
  34. package/lib/esm/persistence/Context.js.map +1 -0
  35. package/lib/esm/persistence/Dispatch.d.ts +2 -2
  36. package/lib/esm/persistence/Dispatch.js.map +1 -1
  37. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  38. package/lib/esm/persistence/Sequence.d.ts +1 -1
  39. package/lib/esm/persistence/Sequence.js +2 -1
  40. package/lib/esm/persistence/Sequence.js.map +1 -1
  41. package/lib/esm/persistence/constants.d.ts +4 -1
  42. package/lib/esm/persistence/constants.js +8 -0
  43. package/lib/esm/persistence/constants.js.map +1 -1
  44. package/lib/esm/persistence/index.d.ts +1 -0
  45. package/lib/esm/persistence/index.js +1 -0
  46. package/lib/esm/persistence/index.js.map +1 -1
  47. package/lib/esm/persistence/migrations.js +2 -1
  48. package/lib/esm/persistence/migrations.js.map +1 -1
  49. package/lib/esm/persistence/types.d.ts +18 -5
  50. package/lib/esm/query/Condition.d.ts +3 -1
  51. package/lib/esm/query/Condition.js +11 -3
  52. package/lib/esm/query/Condition.js.map +1 -1
  53. package/lib/esm/query/MethodQueryBuilder.d.ts +0 -6
  54. package/lib/esm/query/MethodQueryBuilder.js +1 -1
  55. package/lib/esm/query/MethodQueryBuilder.js.map +1 -1
  56. package/lib/esm/query/Paginator.d.ts +7 -0
  57. package/lib/esm/query/Paginator.js.map +1 -1
  58. package/lib/esm/query/Statement.d.ts +17 -5
  59. package/lib/esm/query/Statement.js +265 -11
  60. package/lib/esm/query/Statement.js.map +1 -1
  61. package/lib/esm/query/constants.d.ts +6 -0
  62. package/lib/esm/query/constants.js +8 -0
  63. package/lib/esm/query/constants.js.map +1 -1
  64. package/lib/esm/query/options.d.ts +14 -9
  65. package/lib/esm/query/types.d.ts +19 -0
  66. package/lib/esm/query/types.js.map +1 -1
  67. package/lib/esm/ram/RamAdapter.d.ts +3 -2
  68. package/lib/esm/ram/RamAdapter.js +6 -3
  69. package/lib/esm/ram/RamAdapter.js.map +1 -1
  70. package/lib/esm/ram/RamPaginator.d.ts +2 -2
  71. package/lib/esm/ram/RamPaginator.js +4 -3
  72. package/lib/esm/ram/RamPaginator.js.map +1 -1
  73. package/lib/esm/ram/RamStatement.d.ts +1 -9
  74. package/lib/esm/ram/RamStatement.js +1 -18
  75. package/lib/esm/ram/RamStatement.js.map +1 -1
  76. package/lib/esm/ram/types.d.ts +3 -3
  77. package/lib/esm/repository/Repository.d.ts +18 -16
  78. package/lib/esm/repository/Repository.js +34 -12
  79. package/lib/esm/repository/Repository.js.map +1 -1
  80. package/lib/esm/utils/ContextualLoggedClass.d.ts +1 -1
  81. package/lib/esm/utils/ContextualLoggedClass.js +3 -3
  82. package/lib/esm/utils/ContextualLoggedClass.js.map +1 -1
  83. package/lib/esm/utils/Services.d.ts +9 -7
  84. package/lib/esm/utils/Services.js +7 -4
  85. package/lib/esm/utils/Services.js.map +1 -1
  86. package/lib/identity/decorators.cjs +10 -3
  87. package/lib/identity/decorators.d.ts +1 -1
  88. package/lib/identity/decorators.js.map +1 -1
  89. package/lib/index.cjs +1 -1
  90. package/lib/index.d.ts +1 -1
  91. package/lib/interfaces/ContextuallyLogged.d.ts +2 -2
  92. package/lib/model/construction.d.ts +4 -5
  93. package/lib/model/construction.js.map +1 -1
  94. package/lib/model/decorators.cjs +14 -6
  95. package/lib/model/decorators.d.ts +1 -0
  96. package/lib/model/decorators.js.map +1 -1
  97. package/lib/model/types.d.ts +1 -1
  98. package/lib/overrides/Metadata.d.ts +4 -2
  99. package/lib/overrides/Model.d.ts +10 -0
  100. package/lib/overrides/decoration.cjs +8 -0
  101. package/lib/overrides/decoration.d.ts +1 -0
  102. package/lib/overrides/decoration.js.map +1 -0
  103. package/lib/overrides/index.cjs +1 -0
  104. package/lib/overrides/index.d.ts +1 -0
  105. package/lib/overrides/index.js.map +1 -1
  106. package/lib/overrides/overrides.cjs +30 -13
  107. package/lib/overrides/overrides.js.map +1 -1
  108. package/lib/persistence/Adapter.cjs +4 -3
  109. package/lib/persistence/Adapter.d.ts +8 -4
  110. package/lib/persistence/Adapter.js.map +1 -1
  111. package/lib/persistence/Context.cjs +11 -0
  112. package/lib/persistence/Context.d.ts +5 -0
  113. package/lib/persistence/Context.js.map +1 -0
  114. package/lib/persistence/Dispatch.d.ts +2 -2
  115. package/lib/persistence/Dispatch.js.map +1 -1
  116. package/lib/persistence/ObserverHandler.js.map +1 -1
  117. package/lib/persistence/Sequence.cjs +4 -3
  118. package/lib/persistence/Sequence.d.ts +1 -1
  119. package/lib/persistence/Sequence.js.map +1 -1
  120. package/lib/persistence/constants.cjs +9 -1
  121. package/lib/persistence/constants.d.ts +4 -1
  122. package/lib/persistence/constants.js.map +1 -1
  123. package/lib/persistence/index.cjs +1 -0
  124. package/lib/persistence/index.d.ts +1 -0
  125. package/lib/persistence/index.js.map +1 -1
  126. package/lib/persistence/migrations.cjs +2 -1
  127. package/lib/persistence/migrations.js.map +1 -1
  128. package/lib/persistence/types.d.ts +18 -5
  129. package/lib/query/Condition.cjs +11 -3
  130. package/lib/query/Condition.d.ts +3 -1
  131. package/lib/query/Condition.js.map +1 -1
  132. package/lib/query/MethodQueryBuilder.d.ts +0 -6
  133. package/lib/query/MethodQueryBuilder.js.map +1 -1
  134. package/lib/query/Paginator.d.ts +7 -0
  135. package/lib/query/Paginator.js.map +1 -1
  136. package/lib/query/Statement.cjs +262 -8
  137. package/lib/query/Statement.d.ts +17 -5
  138. package/lib/query/Statement.js.map +1 -1
  139. package/lib/query/constants.cjs +9 -1
  140. package/lib/query/constants.d.ts +6 -0
  141. package/lib/query/constants.js.map +1 -1
  142. package/lib/query/options.d.ts +14 -9
  143. package/lib/query/types.d.ts +19 -0
  144. package/lib/query/types.js.map +1 -1
  145. package/lib/ram/RamAdapter.cjs +4 -1
  146. package/lib/ram/RamAdapter.d.ts +3 -2
  147. package/lib/ram/RamAdapter.js.map +1 -1
  148. package/lib/ram/RamPaginator.cjs +4 -3
  149. package/lib/ram/RamPaginator.d.ts +2 -2
  150. package/lib/ram/RamPaginator.js.map +1 -1
  151. package/lib/ram/RamStatement.cjs +0 -17
  152. package/lib/ram/RamStatement.d.ts +1 -9
  153. package/lib/ram/RamStatement.js.map +1 -1
  154. package/lib/ram/types.d.ts +3 -3
  155. package/lib/repository/Repository.cjs +41 -19
  156. package/lib/repository/Repository.d.ts +18 -16
  157. package/lib/repository/Repository.js.map +1 -1
  158. package/lib/utils/ContextualLoggedClass.d.ts +1 -1
  159. package/lib/utils/ContextualLoggedClass.js.map +1 -1
  160. package/lib/utils/Services.cjs +9 -6
  161. package/lib/utils/Services.d.ts +9 -7
  162. package/lib/utils/Services.js.map +1 -1
  163. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { DefaultRepositoryFlags } from "@decaf-ts/db-decorators";
1
2
  /**
2
3
  * @description Persistence-related constant keys
3
4
  * @summary Enum containing string constants used throughout the persistence layer for metadata, relations, and other persistence-related operations
@@ -50,5 +51,12 @@ export var PersistenceKeys;
50
51
  PersistenceKeys["MIGRATION"] = "migration";
51
52
  PersistenceKeys["STATEMENT"] = "statement";
52
53
  PersistenceKeys["QUERY"] = "query";
54
+ PersistenceKeys["GENERATED"] = "generated";
53
55
  })(PersistenceKeys || (PersistenceKeys = {}));
56
+ export const DefaultAdapterFlags = Object.assign({}, DefaultRepositoryFlags, {
57
+ allowRawStatements: true,
58
+ allowGenerationOverride: false,
59
+ squashSimpleQueries: true,
60
+ allowComplexStatements: true,
61
+ });
54
62
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/persistence/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,eA8DX;AA9DD,WAAY,eAAe;IACzB,0CAA0C;IAC1C,kCAAe,CAAA;IAEf,sDAAsD;IACtD,oCAAiB,CAAA;IAEjB,4CAA4C;IAC5C,sCAAmB,CAAA;IAEnB,yDAAyD;IACzD,2DAAwC,CAAA;IAExC,sCAAmB,CAAA;IACnB,+CAA+C;IAC/C,kCAAe,CAAA;IAEf,gDAAgD;IAChD,oCAAiB,CAAA;IAEjB,oDAAoD;IACpD,0CAAuB,CAAA;IAEvB,YAAY;IACZ,yDAAyD;IACzD,0CAAuB,CAAA;IAEvB,yDAAyD;IACzD,sDAAsC,CAAA;IAEtC,yDAAyD;IACzD,sDAAsC,CAAA;IAEtC,YAAY;IAEZ,sDAAsD;IACtD,4CAAyB,CAAA;IAEzB,sDAAsD;IACtD,wCAAqB,CAAA;IAErB,wDAAwD;IACxD,qDAAqC,CAAA;IAErC,yDAAyD;IACzD,uDAAuC,CAAA;IAEvC,yDAAyD;IACzD,uDAAuC,CAAA;IACvC,yDAAyD;IACzD,yDAAyC,CAAA;IAEzC,6CAA6C;IAC7C,wCAAqB,CAAA;IACrB,6CAA6C;IAC7C,8CAA2B,CAAA;IAC3B,6CAA6C;IAC7C,0CAAuB,CAAA;IAEvB,0CAAuB,CAAA;IAEvB,kCAAe,CAAA;AACjB,CAAC,EA9DW,eAAe,KAAf,eAAe,QA8D1B"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/persistence/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,eAgEX;AAhED,WAAY,eAAe;IACzB,0CAA0C;IAC1C,kCAAe,CAAA;IAEf,sDAAsD;IACtD,oCAAiB,CAAA;IAEjB,4CAA4C;IAC5C,sCAAmB,CAAA;IAEnB,yDAAyD;IACzD,2DAAwC,CAAA;IAExC,sCAAmB,CAAA;IACnB,+CAA+C;IAC/C,kCAAe,CAAA;IAEf,gDAAgD;IAChD,oCAAiB,CAAA;IAEjB,oDAAoD;IACpD,0CAAuB,CAAA;IAEvB,YAAY;IACZ,yDAAyD;IACzD,0CAAuB,CAAA;IAEvB,yDAAyD;IACzD,sDAAsC,CAAA;IAEtC,yDAAyD;IACzD,sDAAsC,CAAA;IAEtC,YAAY;IAEZ,sDAAsD;IACtD,4CAAyB,CAAA;IAEzB,sDAAsD;IACtD,wCAAqB,CAAA;IAErB,wDAAwD;IACxD,qDAAqC,CAAA;IAErC,yDAAyD;IACzD,uDAAuC,CAAA;IAEvC,yDAAyD;IACzD,uDAAuC,CAAA;IACvC,yDAAyD;IACzD,yDAAyC,CAAA;IAEzC,6CAA6C;IAC7C,wCAAqB,CAAA;IACrB,6CAA6C;IAC7C,8CAA2B,CAAA;IAC3B,6CAA6C;IAC7C,0CAAuB,CAAA;IAEvB,0CAAuB,CAAA;IAEvB,kCAAe,CAAA;IAEf,0CAAuB,CAAA;AACzB,CAAC,EAhEW,eAAe,KAAf,eAAe,QAgE1B;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAiB,MAAM,CAAC,MAAM,CAC5D,EAAE,EACF,sBAAsB,EACtB;IACE,kBAAkB,EAAE,IAAI;IACxB,uBAAuB,EAAE,KAAK;IAC9B,mBAAmB,EAAE,IAAI;IACzB,sBAAsB,EAAE,IAAI;CAC7B,CACc,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from "./Dispatch";
2
2
  export * from "./constants";
3
+ export * from "./Context";
3
4
  export * from "./errors";
4
5
  export * from "./generators";
5
6
  export * from "./migrations";
@@ -1,6 +1,7 @@
1
1
  // purposely in first place
2
2
  export * from "./Dispatch.js";
3
3
  export * from "./constants.js";
4
+ export * from "./Context.js";
4
5
  export * from "./errors.js";
5
6
  export * from "./generators.js";
6
7
  export * from "./migrations.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8BAA2B;AAC3B,+BAA4B;AAC5B,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,gCAA6B;AAC7B,qCAAkC;AAClC,8BAA2B;AAC3B,2BAAwB;AACxB,6BAA0B"}
@@ -1,10 +1,11 @@
1
1
  import { Adapter } from "./Adapter.js";
2
- import { Context, InternalError } from "@decaf-ts/db-decorators";
2
+ import { InternalError } from "@decaf-ts/db-decorators";
3
3
  import { LoggedClass } from "@decaf-ts/logging";
4
4
  import { PersistenceKeys } from "./constants.js";
5
5
  import { Decoration, Metadata, metadata } from "@decaf-ts/decoration";
6
6
  import { MigrationRuleError } from "./errors.js";
7
7
  import { Model } from "@decaf-ts/decorator-validation";
8
+ import { Context } from "./Context.js";
8
9
  export function prefixMethod(obj, after, prefix, afterName) {
9
10
  async function wrapper(...args) {
10
11
  let results;
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/persistence/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/persistence/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,qBAAkB;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,oBAAiB;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,qBAAkB;AAEpC,MAAM,UAAU,YAAY,CAC1B,GAAQ,EACR,KAA8B,EAC9B,MAA+B,EAC/B,SAAkB;IAElB,KAAK,UAAU,OAAO,CAAY,GAAG,IAAW;QAC9C,IAAI,OAAc,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,kBAAkB;gBAAE,OAAO;YAC5C,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAChD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE;QACrC,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACtB,CAAC;AAKD,MAAM,OAAgB,YAIpB,SAAQ,WAAW;IAKnB;QACE,KAAK,EAAE,CAAC;QAHV,gBAAW,GAAG,IAAI,CAAC;QAIjB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAc,OAAO;QACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CACvB,IAAI,CAAC,WAAkB,EACvB,eAAe,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,aAAa,CACrB,6BAA6B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CACrD,CAAC;QACJ,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAM,CAAC;IACnC,CAAC;IAIO,KAAK,CAAC,YAAY,CAAC,EAAe,EAAE,OAAU,EAAE,GAAiB;QACvE,MAAM,KAAK,GAA8B,QAAQ,CAAC,GAAG,CACnD,IAAI,CAAC,WAAkB,EACvB,eAAe,CAAC,SAAS,CAC1B,EAAE,KAAK,CAAC;QACT,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,OAAO,KAAK,UAAU,OAAO,CAE3B,WAA4B;YAE5B,IAAI,EAAe,CAAC;YACpB,IAAI,WAAW,YAAY,OAAO,EAAE,CAAC;gBACnC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,WAAW,CAAC;gBACjB,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAC5B,WAAW,EACX,KAAY,EACZ,CAAC,IAAI,CAAC,EACN,WAAW,CACZ,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CACrC,EAAE,EACF,WAAgB,EAChB,GAAG,CAAC,OAAO,CACZ,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CACxB,sBAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAC3D,CAAC;gBACF,MAAM,IAAI,kBAAkB,CAAC,wCAAwC,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CAKF;AAYD,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAuB;IAChE,SAAS,cAAc,CAAC,OAAe,EAAE,KAAuB;QAC9D,OAAO,UAAU,QAAgB;YAC/B,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;gBACpE,EAAE,CAAC;YACL,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE;gBAC/C,GAAG,OAAO;gBACV;oBACE,KAAK,EAAE,QAAQ;iBAChB;aACF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE;gBACzC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC,QAAQ,CAAC,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;SAC7C,MAAM,CAAC;QACN,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;KACvB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
@@ -1,15 +1,22 @@
1
- import { BulkCrudOperationKeys, Context, ContextOfRepository, FlagsOfContext, FlagsOfRepository, IRepository, LoggerOfContext, LoggerOfFlags, LoggerOfRepository, OperationKeys, RepositoryFlags } from "@decaf-ts/db-decorators";
1
+ import { BulkCrudOperationKeys, LoggerOfFlags, OperationKeys, RepositoryFlags } from "@decaf-ts/db-decorators";
2
2
  import { Adapter } from "./Adapter";
3
3
  import { Observable, type Observer } from "../interfaces/index";
4
4
  import { Logger } from "@decaf-ts/logging";
5
5
  import { Constructor } from "@decaf-ts/decoration";
6
6
  import { Model } from "@decaf-ts/decorator-validation";
7
- import { ContextualArgs } from "../utils/index";
8
- export type ContextOf<OBJ extends IRepository<any, any> | Adapter<any, any, any, any>> = OBJ extends Adapter<any, any, any, infer C> ? C : OBJ extends IRepository<any, any> ? ContextOfRepository<OBJ> : never;
7
+ import { ContextualArgs } from "../utils";
8
+ import { Context } from "./Context";
9
+ import { Repository } from "../repository/Repository";
10
+ export type FlagsOfContext<C extends Context<any>> = C extends Context<infer F> ? F : never;
11
+ export type LoggerOfContext<C extends Context<any>> = LoggerOfFlags<FlagsOfContext<C>>;
12
+ export type ContextOfRepository<R extends Repository<any, any>> = R extends Repository<any, infer A> ? ContextOf<A> : never;
13
+ export type FlagsOfRepository<R extends Repository<any, any>> = FlagsOfContext<ContextOfRepository<R>>;
14
+ export type LoggerOfRepository<R extends Repository<any, any>> = LoggerOfContext<ContextOfRepository<R>>;
15
+ 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;
9
16
  export type LoggerOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? LoggerOfContext<C> : never;
10
17
  export type FlagsOfAdapter<A extends Adapter<any, any, any, any>> = A extends Adapter<any, any, any, infer C> ? FlagsOfContext<C> : never;
11
- export type LoggerOf<OBJ extends RepositoryFlags<any> | Context<any> | Adapter<any, any, any> | IRepository<any, any>> = OBJ extends RepositoryFlags<any> ? LoggerOfFlags<OBJ> : OBJ extends Context<any> ? LoggerOfContext<OBJ> : OBJ extends IRepository<any, any> ? LoggerOfRepository<OBJ> : OBJ extends Adapter<any, any, any> ? LoggerOfAdapter<OBJ> : Logger;
12
- export type FlagsOf<OBJ extends IRepository<any, any> | Adapter<any, any, any, any> | Context<any>> = OBJ extends Context<any> ? FlagsOfContext<OBJ> : OBJ extends IRepository<any, any> ? FlagsOfRepository<OBJ> : OBJ extends Adapter<any, any, any, any> ? FlagsOfAdapter<OBJ> : never;
18
+ 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;
19
+ 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;
13
20
  export type PersistenceObservable<CONTEXT extends Context<any>> = Observable<[
14
21
  Observer,
15
22
  ObserverFilter?
@@ -50,3 +57,9 @@ export type PreparedModel = {
50
57
  id: string;
51
58
  transient?: Record<string, any>;
52
59
  };
60
+ export type AdapterFlags<LOG extends Logger = Logger> = RepositoryFlags<LOG> & {
61
+ allowRawStatements: boolean;
62
+ allowGenerationOverride: boolean;
63
+ squashSimpleQueries: boolean;
64
+ allowComplexStatements: boolean;
65
+ };
@@ -1,5 +1,5 @@
1
1
  import { AttributeOption, ConditionBuilderOption } from "./options";
2
- import { ConditionalAsync, Model, ModelErrorDefinition } from "@decaf-ts/decorator-validation";
2
+ import { ConditionalAsync, Model, ModelArg, ModelErrorDefinition } from "@decaf-ts/decorator-validation";
3
3
  import { GroupOperator, Operator } from "./constants";
4
4
  type InferAsync<M> = M extends Model<infer A> ? A : false;
5
5
  /**
@@ -38,6 +38,7 @@ export declare class Condition<M extends Model<any>> extends Model<InferAsync<M>
38
38
  protected operator?: Operator | GroupOperator;
39
39
  protected comparison?: any;
40
40
  private constructor();
41
+ private constructor();
41
42
  /**
42
43
  * @description Combines this condition with another using logical AND
43
44
  * @summary Joins two conditions with an AND operator, requiring both to be true
@@ -125,5 +126,6 @@ export declare class Condition<M extends Model<any>> extends Model<InferAsync<M>
125
126
  * @return {ConditionBuilderOption<M>} A new condition builder instance
126
127
  */
127
128
  static builder<M extends Model>(): ConditionBuilderOption<M>;
129
+ static from(obj: ModelArg<Condition<any>>): Condition<Model<any>>;
128
130
  }
129
131
  export {};
@@ -47,9 +47,14 @@ export class Condition extends Model {
47
47
  this.attr1 = undefined;
48
48
  this.operator = undefined;
49
49
  this.comparison = undefined;
50
- this.attr1 = attr1;
51
- this.operator = operator;
52
- this.comparison = comparison;
50
+ if (!operator && !comparison) {
51
+ Model.fromModel(this, attr1);
52
+ }
53
+ else {
54
+ this.attr1 = attr1;
55
+ this.operator = operator;
56
+ this.comparison = comparison;
57
+ }
53
58
  }
54
59
  /**
55
60
  * @description Combines this condition with another using logical AND
@@ -321,6 +326,9 @@ export class Condition extends Model {
321
326
  static builder() {
322
327
  return new Condition.Builder();
323
328
  }
329
+ static from(obj) {
330
+ return new Condition(obj);
331
+ }
324
332
  }
325
333
  __decorate([
326
334
  required(),
@@ -1 +1 @@
1
- {"version":3,"file":"Condition.js","sourceRoot":"","sources":["../../../src/query/Condition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Condition.js","sourceRoot":"","sources":["../../../src/query/Condition.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,4 @@
1
- import { OrderBySelector } from "../query";
2
1
  import { QueryAssist } from "./types";
3
- export type OrderLimitOffsetExtract = {
4
- orderBy?: OrderBySelector<any>[];
5
- limit?: number;
6
- offset?: number;
7
- };
8
2
  /**
9
3
  * @description
10
4
  * Utility class to build query objects from repository method names.
@@ -1,4 +1,4 @@
1
- import { QueryClause } from "./types.js";
1
+ import { QueryClause, } from "./types.js";
2
2
  import { OperatorsMap } from "./utils.js";
3
3
  const lowerFirst = (str) => str.charAt(0).toLowerCase() + str.slice(1);
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MethodQueryBuilder.js","sourceRoot":"","sources":["../../../src/query/MethodQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MethodQueryBuilder.js","sourceRoot":"","sources":["../../../src/query/MethodQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,13 @@ export declare abstract class Paginator<M extends Model, R = M[], Q = any> exten
74
74
  get count(): number;
75
75
  protected get statement(): Q;
76
76
  protected constructor(adapter: Adapter<any, any, Q, any>, query: Q, size: number, clazz: Constructor<M>);
77
+ /**
78
+ * @description Prepares a statement for pagination
79
+ * @summary Modifies the raw query statement to include pagination parameters.
80
+ * This protected method sets the limit parameter on the query to match the page size.
81
+ * @param {RawRamQuery<M>} rawStatement - The original query statement
82
+ * @return {RawRamQuery<M>} The modified query with pagination parameters
83
+ */
77
84
  protected abstract prepare(rawStatement: Q): Q;
78
85
  next(...args: MaybeContextualArg<any>): Promise<R[]>;
79
86
  previous(...args: MaybeContextualArg<any>): Promise<R[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAiB;AAIvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,OAAgB,SAIpB,SAAQ,WAAW;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,WAAW,CACnB,sDAAsD,CACvD,CAAC;QACJ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;YACpE,MAAM,IAAI,WAAW,CACnB,QAAQ,IAAI,CAAC,WAAW,qCAAqC,IAAI,EAAE,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;CAGF"}
1
+ {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAiB;AAIvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,OAAgB,SAIpB,SAAQ,WAAW;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;IAUD,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,WAAW,CACnB,sDAAsD,CACvD,CAAC;QACJ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;YACpE,MAAM,IAAI,WAAW,CACnB,QAAQ,IAAI,CAAC,WAAW,qCAAqC,IAAI,EAAE,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;CAGF"}
@@ -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 type { CountOption, DistinctOption, LimitOption, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, SelectOption, WhereOption } from "./options";
5
+ import type { CountOption, DistinctOption, LimitOption, MaxOption, MinOption, OffsetOption, OrderAndGroupOption, PreparableStatementExecutor, SelectOption, StatementExecutor, WhereOption } from "./options";
6
6
  import { Paginatable } from "../interfaces/Paginatable";
7
7
  import { Paginator } from "./Paginator";
8
8
  import { Adapter, type ContextOf } from "../persistence";
9
9
  import { Logger } from "@decaf-ts/logging";
10
10
  import { Constructor } from "@decaf-ts/decoration";
11
11
  import { type ContextualArgs, ContextualLoggedClass, type MaybeContextualArg } from "../utils/index";
12
+ import { PreparedStatement } from "./types";
12
13
  /**
13
14
  * @description Base class for database query statements
14
15
  * @summary Provides a foundation for building and executing database queries
@@ -73,6 +74,7 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
73
74
  protected groupBySelector?: GroupBySelector<M>;
74
75
  protected limitSelector?: number;
75
76
  protected offsetSelector?: number;
77
+ protected prepared?: PreparedStatement<M>;
76
78
  protected constructor(adapter: Adapter<any, any, Q, any>);
77
79
  protected get log(): Logger;
78
80
  select<S extends readonly SelectSelector<M>[]>(): SelectOption<M, M[]>;
@@ -83,14 +85,24 @@ export declare abstract class Statement<M extends Model, A extends Adapter<any,
83
85
  count<S extends SelectSelector<M>>(selector?: S): CountOption<M, number>;
84
86
  from(selector: FromSelector<M>): WhereOption<M, R>;
85
87
  where(condition: Condition<M>): OrderAndGroupOption<M, R>;
86
- orderBy(selector: OrderBySelector<M>): LimitOption<M, R> & OffsetOption<R>;
88
+ orderBy(selector: OrderBySelector<M>): LimitOption<M, R> & OffsetOption<M, R>;
87
89
  groupBy(selector: GroupBySelector<M>): LimitOption<M, R>;
88
- limit(value: number): OffsetOption<R>;
89
- offset(value: number): Executor<R>;
90
+ limit(value: number): OffsetOption<M, R>;
91
+ offset(value: number): PreparableStatementExecutor<M, R>;
90
92
  execute(...args: MaybeContextualArg<ContextOf<A>>): Promise<R>;
91
93
  raw<R>(rawInput: Q, ...args: ContextualArgs<ContextOf<A>>): Promise<R>;
94
+ protected prepareCondition(condition: Condition<any>, ctx: ContextOf<A>): PreparedStatement<any>;
95
+ protected squash(ctx: ContextOf<A>): PreparedStatement<any> | undefined;
96
+ prepare(ctx?: ContextOf<A>): Promise<StatementExecutor<M, R>>;
92
97
  protected abstract build(): Q;
93
98
  protected abstract parseCondition(condition: Condition<M>, ...args: any[]): Q;
94
- abstract paginate(size: number, ...args: MaybeContextualArg<ContextOf<A>>): Promise<Paginator<M, R, Q>>;
99
+ /**
100
+ * @description Creates a paginator for the query
101
+ * @summary Builds the query and wraps it in a RamPaginator to enable pagination of results.
102
+ * This allows retrieving large result sets in smaller chunks.
103
+ * @param {number} size - The page size (number of results per page)
104
+ * @return {Promise<Paginator<M, R, RawRamQuery<M>>>} A promise that resolves to a paginator for the query
105
+ */
106
+ paginate(size: number, ...args: MaybeContextualArg<ContextOf<A>>): Promise<Paginator<M, R, Q>>;
95
107
  toString(): string;
96
108
  }
@@ -10,11 +10,15 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var _a, _b, _c, _d;
11
11
  import { Model } from "@decaf-ts/decorator-validation";
12
12
  import { Condition } from "./Condition.js";
13
- import { Context, InternalError, OperationKeys } from "@decaf-ts/db-decorators";
14
- import { final } from "@decaf-ts/logging";
15
- import { Adapter } from "./../persistence/index.js";
13
+ import { InternalError, prefixMethod } from "@decaf-ts/db-decorators";
14
+ import { final, toCamelCase } from "@decaf-ts/logging";
15
+ import { Adapter, PersistenceKeys } from "./../persistence/index.js";
16
16
  import { QueryError } from "./errors.js";
17
17
  import { ContextualLoggedClass, } from "./../utils/index.js";
18
+ import { Context } from "./../persistence/Context.js";
19
+ import { QueryClause } from "./types.js";
20
+ import { GroupOperator, Operator, PreparedStatementKeys } from "./constants.js";
21
+ import { OrderDirection } from "./../repository/index.js";
18
22
  /**
19
23
  * @description Base class for database query statements
20
24
  * @summary Provides a foundation for building and executing database queries
@@ -70,6 +74,21 @@ export class Statement extends ContextualLoggedClass {
70
74
  constructor(adapter) {
71
75
  super();
72
76
  this.adapter = adapter;
77
+ [this.execute, this.paginate].forEach((m) => {
78
+ prefixMethod(this, m, async (...args) => {
79
+ let execArgs = args;
80
+ if ((!execArgs.length ||
81
+ !(execArgs[execArgs.length - 1] instanceof Context)) &&
82
+ this.fromSelector) {
83
+ const ctx = await this.adapter.context(PersistenceKeys.QUERY, {}, this.fromSelector);
84
+ execArgs = [...execArgs, ctx];
85
+ }
86
+ const { ctx, ctxArgs } = Adapter.logCtx(execArgs, m.name);
87
+ if (!ctx.get("allowRawStatements") && !this.prepared)
88
+ await this.prepare(ctx);
89
+ return ctxArgs;
90
+ }, m.name);
91
+ });
73
92
  }
74
93
  get log() {
75
94
  return this.adapter.log.for(Statement);
@@ -124,14 +143,7 @@ export class Statement extends ContextualLoggedClass {
124
143
  return this;
125
144
  }
126
145
  async execute(...args) {
127
- let execArgs = args;
128
- if ((!execArgs.length ||
129
- !(execArgs[execArgs.length - 1] instanceof Context)) &&
130
- this.fromSelector) {
131
- const ctx = await this.adapter.context(OperationKeys.READ, {}, this.fromSelector);
132
- execArgs = [...execArgs, ctx];
133
- }
134
- const { ctx } = Adapter.logCtx(execArgs, this.toString());
146
+ const ctx = args.pop(); // handled by prefix
135
147
  try {
136
148
  const query = this.build();
137
149
  return (await this.raw(query, ctx));
@@ -154,6 +166,248 @@ export class Statement extends ContextualLoggedClass {
154
166
  return results.map(processor);
155
167
  return processor(results);
156
168
  }
169
+ prepareCondition(condition, ctx) {
170
+ // @ts-expect-error accessing protected properties
171
+ // eslint-disable-next-line prefer-const
172
+ let { attr1, operator, comparison } = condition;
173
+ const result = {};
174
+ switch (operator) {
175
+ case GroupOperator.AND:
176
+ case GroupOperator.OR: {
177
+ let side1 = attr1, side2 = comparison;
178
+ if (typeof attr1 !== "string") {
179
+ const condition1 = this.prepareCondition(attr1, ctx);
180
+ side1 = condition1.method;
181
+ result.args = [...(result.args || []), ...(condition1.args || [])];
182
+ }
183
+ if (comparison instanceof Condition) {
184
+ const condition2 = this.prepareCondition(comparison, ctx);
185
+ side2 = condition2.method;
186
+ result.args = [...(result.args || []), ...(condition2.args || [])];
187
+ }
188
+ result.method = `${side1} ${operator.toLowerCase()} ${side2}`;
189
+ break;
190
+ }
191
+ case Operator.EQUAL:
192
+ result.method = attr1;
193
+ result.args = [...(result.args || []), comparison];
194
+ break;
195
+ case Operator.DIFFERENT:
196
+ result.method = `${attr1} diff`;
197
+ result.args = [...(result.args || []), comparison];
198
+ break;
199
+ case Operator.REGEXP:
200
+ result.method = `${attr1} matches`;
201
+ result.args = [...(result.args || []), comparison];
202
+ break;
203
+ case Operator.BIGGER:
204
+ result.method = `${attr1} bigger`;
205
+ result.args = [...(result.args || []), comparison];
206
+ break;
207
+ case Operator.BIGGER_EQ:
208
+ result.method = `${attr1} bigger than equal`;
209
+ break;
210
+ case Operator.SMALLER:
211
+ result.method = `${attr1} less`;
212
+ result.args = [...(result.args || []), comparison];
213
+ break;
214
+ case Operator.SMALLER_EQ:
215
+ result.method = `${attr1} less than equal`;
216
+ result.args = [...(result.args || []), comparison];
217
+ break;
218
+ case Operator.IN:
219
+ result.method = `${attr1} in`;
220
+ result.args = [...(result.args || []), comparison];
221
+ break;
222
+ default:
223
+ throw new QueryError(`Unsupported operator ${operator}`);
224
+ }
225
+ return result;
226
+ }
227
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
228
+ squash(ctx) {
229
+ if (this.selectSelector && this.selectSelector.length)
230
+ return undefined;
231
+ if (this.groupBySelector)
232
+ return undefined;
233
+ if (this.countSelector)
234
+ return undefined;
235
+ if (this.maxSelector)
236
+ return undefined;
237
+ if (this.minSelector)
238
+ return undefined;
239
+ let attrFromWhere;
240
+ if (this.whereCondition) {
241
+ if (this.whereCondition["comparison"] instanceof Condition)
242
+ return undefined;
243
+ attrFromWhere = this.whereCondition["attr1"];
244
+ }
245
+ const order = this.orderBySelector
246
+ ? this.orderBySelector
247
+ : attrFromWhere
248
+ ? [attrFromWhere, OrderDirection.DSC]
249
+ : [Model.pk(this.fromSelector), OrderDirection.DSC];
250
+ const [attrFromOrderBy, sort] = order;
251
+ const params = {
252
+ direction: sort,
253
+ };
254
+ if (this.limitSelector)
255
+ params.limit = this.limitSelector;
256
+ if (this.offsetSelector)
257
+ params.offset = this.offsetSelector;
258
+ const squashed = {
259
+ // listBy
260
+ class: this.fromSelector,
261
+ method: PreparedStatementKeys.LIST_BY,
262
+ args: [attrFromOrderBy],
263
+ params: params,
264
+ };
265
+ if (attrFromWhere) {
266
+ // findBy
267
+ squashed.method = PreparedStatementKeys.FIND_BY;
268
+ squashed.args = [
269
+ attrFromWhere,
270
+ this.whereCondition["comparison"],
271
+ ];
272
+ squashed.params = params;
273
+ }
274
+ return squashed;
275
+ //
276
+ //
277
+ //
278
+ // let attrs = rawStatement.method.split(
279
+ // new RegExp(
280
+ // `(${[QueryClause.FIND_BY, QueryClause.SELECT, QueryClause.ORDER_BY, QueryClause.GROUP_BY, QueryClause.AND, QueryClause.OR].join("|")})`,
281
+ // "i"
282
+ // )
283
+ // );
284
+ //
285
+ // attrs = attrs
286
+ // .map((s) => s.trim())
287
+ // .filter(Boolean)
288
+ // .filter(
289
+ // (s) =>
290
+ // ![
291
+ // QueryClause.FIND_BY,
292
+ // QueryClause.SELECT,
293
+ // QueryClause.ORDER_BY,
294
+ // QueryClause.GROUP_BY,
295
+ // toPascalCase(OrderDirection.ASC),
296
+ // toPascalCase(OrderDirection.DSC),
297
+ // ].find((c) => s.includes(c))
298
+ // );
299
+ //
300
+ // const fullOrderBy = rawStatement.method.split(QueryClause.ORDER_BY);
301
+ // let orderBy: any;
302
+ // if (fullOrderBy.length) {
303
+ // orderBy = fullOrderBy[1]
304
+ // .split(
305
+ // new RegExp(
306
+ // `${[toPascalCase(OrderDirection.ASC), toPascalCase(OrderDirection.DSC), QueryClause.GROUP_BY + ".*", QueryClause.THEN_BY].join("|")}`,
307
+ // "i"
308
+ // )
309
+ // )
310
+ // .map((s) => s.trim())
311
+ // .filter(Boolean);
312
+ // orderBy = [
313
+ // orderBy[0] as any,
314
+ // fullOrderBy[1].includes(toPascalCase(OrderDirection.ASC))
315
+ // ? OrderDirection.ASC
316
+ // : OrderDirection.DSC,
317
+ // ];
318
+ // }
319
+ //
320
+ // const canBeSquashed = (!attrs.length
321
+ // || (attrs.length === 1 && attrs[0] === orderBy[0]
322
+ //
323
+ // if (attrs.length === 1 && attrs[0] === orderBy[0]) {
324
+ // // there's an order by
325
+ // const attr = attrs[0];
326
+ // if (attrFromWhere && attrFromWhere !== attr) {
327
+ // return rawStatement;
328
+ // }
329
+ // return Object.assign({}, rawStatement, {
330
+ // method: PreparedStatementKeys.LIST_BY,
331
+ // args: [toCamelCase(attr), orderBy[1]],
332
+ // // args: [toCamelCase(attr), orderBy[1], this.size],
333
+ // });
334
+ // } else {
335
+ // // there's no orderBy
336
+ // return Object.assign({}, rawStatement, {
337
+ // method: rawStatement.method.replace(QueryClause.FIND_BY, PreparedStatementKeys.LIST_BY),
338
+ // args: [...rawStatement.args],
339
+ // // args: [...rawStatement.args, this.size],
340
+ // });
341
+ // }
342
+ }
343
+ async prepare(ctx) {
344
+ ctx =
345
+ ctx ||
346
+ (await this.adapter.context(PersistenceKeys.QUERY, {}, this.fromSelector));
347
+ if (ctx.get("squashSimpleQueries")) {
348
+ const squashed = this.squash(ctx);
349
+ if (squashed) {
350
+ this.prepared = squashed;
351
+ return this;
352
+ }
353
+ }
354
+ const args = [];
355
+ const params = {};
356
+ const prepared = {
357
+ class: this.fromSelector,
358
+ args,
359
+ params,
360
+ };
361
+ const method = [QueryClause.FIND_BY];
362
+ if (this.whereCondition) {
363
+ const parsed = this.prepareCondition(this.whereCondition, ctx);
364
+ method.push(parsed.method);
365
+ if (parsed.args && parsed.args.length)
366
+ args.push(...parsed.args);
367
+ }
368
+ if (this.selectSelector)
369
+ method.push(QueryClause.SELECT, this.selectSelector.join(` ${QueryClause.AND.toLowerCase()} `));
370
+ if (this.orderBySelector)
371
+ method.push(QueryClause.ORDER_BY, ...this.orderBySelector);
372
+ if (this.groupBySelector)
373
+ method.push(QueryClause.GROUP_BY, this.groupBySelector);
374
+ if (this.limitSelector)
375
+ params.limit = this.limitSelector;
376
+ if (this.offsetSelector) {
377
+ params.skip = this.offsetSelector;
378
+ }
379
+ prepared.method = toCamelCase(method.join(" "));
380
+ prepared.params = params;
381
+ this.prepared = prepared;
382
+ if (!ctx.get("squashSimpleQueries") ||
383
+ (this.selectSelector && this.selectSelector.length) ||
384
+ this.groupBySelector ||
385
+ this.countSelector ||
386
+ this.maxSelector ||
387
+ this.minSelector) {
388
+ return this;
389
+ }
390
+ this.prepared = prepared;
391
+ return this;
392
+ }
393
+ /**
394
+ * @description Creates a paginator for the query
395
+ * @summary Builds the query and wraps it in a RamPaginator to enable pagination of results.
396
+ * This allows retrieving large result sets in smaller chunks.
397
+ * @param {number} size - The page size (number of results per page)
398
+ * @return {Promise<Paginator<M, R, RawRamQuery<M>>>} A promise that resolves to a paginator for the query
399
+ */
400
+ async paginate(size, ...args) {
401
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
402
+ const ctx = args.pop(); // handled by prefix. kept for example for overrides
403
+ try {
404
+ const query = this.build();
405
+ return this.adapter.Paginator(query, size, this.fromSelector);
406
+ }
407
+ catch (e) {
408
+ throw new QueryError(e);
409
+ }
410
+ }
157
411
  toString() {
158
412
  return `${this.adapter.flavour} statement`;
159
413
  }