@venizia/ignis-connectors 0.2.0 → 0.2.1-0

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 (183) hide show
  1. package/dist/cjs/common/internal/echo.d.ts +5 -0
  2. package/dist/cjs/common/internal/echo.d.ts.map +1 -0
  3. package/dist/cjs/common/internal/echo.js +22 -0
  4. package/dist/cjs/common/internal/echo.js.map +1 -0
  5. package/dist/cjs/common/internal/index.d.ts +2 -0
  6. package/dist/cjs/common/internal/index.d.ts.map +1 -0
  7. package/dist/cjs/common/internal/index.js +18 -0
  8. package/dist/cjs/common/internal/index.js.map +1 -0
  9. package/dist/cjs/relational/core/datasources/base.d.ts.map +1 -1
  10. package/dist/cjs/relational/core/datasources/base.js +32 -36
  11. package/dist/cjs/relational/core/datasources/base.js.map +1 -1
  12. package/dist/cjs/relational/core/datasources/transaction-lifecycle.d.ts +48 -0
  13. package/dist/cjs/relational/core/datasources/transaction-lifecycle.d.ts.map +1 -0
  14. package/dist/cjs/relational/core/datasources/transaction-lifecycle.js +85 -0
  15. package/dist/cjs/relational/core/datasources/transaction-lifecycle.js.map +1 -0
  16. package/dist/cjs/relational/core/datasources/transaction-state.d.ts +5 -0
  17. package/dist/cjs/relational/core/datasources/transaction-state.d.ts.map +1 -0
  18. package/dist/cjs/relational/core/datasources/transaction-state.js +12 -0
  19. package/dist/cjs/relational/core/datasources/transaction-state.js.map +1 -0
  20. package/dist/cjs/relational/core/repositories/common/types.d.ts +3 -1
  21. package/dist/cjs/relational/core/repositories/common/types.d.ts.map +1 -1
  22. package/dist/cjs/relational/core/repositories/core/base.d.ts +17 -0
  23. package/dist/cjs/relational/core/repositories/core/base.d.ts.map +1 -1
  24. package/dist/cjs/relational/core/repositories/core/base.js +69 -0
  25. package/dist/cjs/relational/core/repositories/core/base.js.map +1 -1
  26. package/dist/cjs/relational/core/repositories/dialect/filter.d.ts +14 -7
  27. package/dist/cjs/relational/core/repositories/dialect/filter.d.ts.map +1 -1
  28. package/dist/cjs/relational/core/repositories/dialect/filter.js +61 -48
  29. package/dist/cjs/relational/core/repositories/dialect/filter.js.map +1 -1
  30. package/dist/cjs/relational/core/repositories/dialect/internal/index.d.ts +1 -0
  31. package/dist/cjs/relational/core/repositories/dialect/internal/index.d.ts.map +1 -1
  32. package/dist/cjs/relational/core/repositories/dialect/internal/index.js +1 -0
  33. package/dist/cjs/relational/core/repositories/dialect/internal/index.js.map +1 -1
  34. package/dist/cjs/relational/core/repositories/dialect/internal/json-utils.d.ts.map +1 -1
  35. package/dist/cjs/relational/core/repositories/dialect/internal/json-utils.js +2 -1
  36. package/dist/cjs/relational/core/repositories/dialect/internal/json-utils.js.map +1 -1
  37. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.d.ts +13 -0
  38. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.d.ts.map +1 -0
  39. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.js +22 -0
  40. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.js.map +1 -0
  41. package/dist/cjs/relational/core/repositories/dialect/update.d.ts.map +1 -1
  42. package/dist/cjs/relational/core/repositories/dialect/update.js +8 -7
  43. package/dist/cjs/relational/core/repositories/dialect/update.js.map +1 -1
  44. package/dist/cjs/relational/postgres/repositories/dialect/filter.d.ts +4 -1
  45. package/dist/cjs/relational/postgres/repositories/dialect/filter.d.ts.map +1 -1
  46. package/dist/cjs/relational/postgres/repositories/dialect/filter.js +36 -9
  47. package/dist/cjs/relational/postgres/repositories/dialect/filter.js.map +1 -1
  48. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.d.ts +2 -0
  49. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.d.ts.map +1 -0
  50. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.js +18 -0
  51. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.js.map +1 -0
  52. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.d.ts +9 -0
  53. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.d.ts.map +1 -0
  54. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.js +14 -0
  55. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.js.map +1 -0
  56. package/dist/cjs/relational/postgres/repositories/dialect/query.d.ts +2 -0
  57. package/dist/cjs/relational/postgres/repositories/dialect/query.d.ts.map +1 -1
  58. package/dist/cjs/relational/postgres/repositories/dialect/query.js +3 -0
  59. package/dist/cjs/relational/postgres/repositories/dialect/query.js.map +1 -1
  60. package/dist/cjs/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
  61. package/dist/cjs/relational/postgres/repositories/dialect/update.js +2 -1
  62. package/dist/cjs/relational/postgres/repositories/dialect/update.js.map +1 -1
  63. package/dist/cjs/relational/sqlite/repositories/dialect/filter.d.ts +2 -1
  64. package/dist/cjs/relational/sqlite/repositories/dialect/filter.d.ts.map +1 -1
  65. package/dist/cjs/relational/sqlite/repositories/dialect/filter.js +10 -4
  66. package/dist/cjs/relational/sqlite/repositories/dialect/filter.js.map +1 -1
  67. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.d.ts +9 -6
  68. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.d.ts.map +1 -1
  69. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.js +21 -9
  70. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.js.map +1 -1
  71. package/dist/cjs/relational/sqlite/repositories/dialect/query.d.ts +2 -0
  72. package/dist/cjs/relational/sqlite/repositories/dialect/query.d.ts.map +1 -1
  73. package/dist/cjs/relational/sqlite/repositories/dialect/query.js +3 -0
  74. package/dist/cjs/relational/sqlite/repositories/dialect/query.js.map +1 -1
  75. package/dist/cjs/search/core/repositories/common/dialect-helpers.d.ts.map +1 -1
  76. package/dist/cjs/search/core/repositories/common/dialect-helpers.js +2 -1
  77. package/dist/cjs/search/core/repositories/common/dialect-helpers.js.map +1 -1
  78. package/dist/cjs/search/meilisearch/repositories/dialect/query-dialect.d.ts.map +1 -1
  79. package/dist/cjs/search/meilisearch/repositories/dialect/query-dialect.js +5 -8
  80. package/dist/cjs/search/meilisearch/repositories/dialect/query-dialect.js.map +1 -1
  81. package/dist/cjs/search/typesense/repositories/dialect/query-dialect.d.ts.map +1 -1
  82. package/dist/cjs/search/typesense/repositories/dialect/query-dialect.js +5 -8
  83. package/dist/cjs/search/typesense/repositories/dialect/query-dialect.js.map +1 -1
  84. package/dist/cjs/testing/index.d.ts +5 -0
  85. package/dist/cjs/testing/index.d.ts.map +1 -0
  86. package/dist/cjs/testing/index.js +22 -0
  87. package/dist/cjs/testing/index.js.map +1 -0
  88. package/dist/cjs/testing/transaction-double.d.ts +44 -0
  89. package/dist/cjs/testing/transaction-double.d.ts.map +1 -0
  90. package/dist/cjs/testing/transaction-double.js +68 -0
  91. package/dist/cjs/testing/transaction-double.js.map +1 -0
  92. package/dist/esm/common/internal/echo.d.ts +5 -0
  93. package/dist/esm/common/internal/echo.d.ts.map +1 -0
  94. package/dist/esm/common/internal/echo.js +18 -0
  95. package/dist/esm/common/internal/echo.js.map +1 -0
  96. package/dist/esm/common/internal/index.d.ts +2 -0
  97. package/dist/esm/common/internal/index.d.ts.map +1 -0
  98. package/dist/esm/common/internal/index.js +2 -0
  99. package/dist/esm/common/internal/index.js.map +1 -0
  100. package/dist/esm/relational/core/datasources/base.d.ts.map +1 -1
  101. package/dist/esm/relational/core/datasources/base.js +32 -36
  102. package/dist/esm/relational/core/datasources/base.js.map +1 -1
  103. package/dist/esm/relational/core/datasources/transaction-lifecycle.d.ts +48 -0
  104. package/dist/esm/relational/core/datasources/transaction-lifecycle.d.ts.map +1 -0
  105. package/dist/esm/relational/core/datasources/transaction-lifecycle.js +80 -0
  106. package/dist/esm/relational/core/datasources/transaction-lifecycle.js.map +1 -0
  107. package/dist/esm/relational/core/datasources/transaction-state.d.ts +5 -0
  108. package/dist/esm/relational/core/datasources/transaction-state.d.ts.map +1 -0
  109. package/dist/esm/relational/core/datasources/transaction-state.js +8 -0
  110. package/dist/esm/relational/core/datasources/transaction-state.js.map +1 -0
  111. package/dist/esm/relational/core/repositories/common/types.d.ts +3 -1
  112. package/dist/esm/relational/core/repositories/common/types.d.ts.map +1 -1
  113. package/dist/esm/relational/core/repositories/core/base.d.ts +17 -0
  114. package/dist/esm/relational/core/repositories/core/base.d.ts.map +1 -1
  115. package/dist/esm/relational/core/repositories/core/base.js +69 -0
  116. package/dist/esm/relational/core/repositories/core/base.js.map +1 -1
  117. package/dist/esm/relational/core/repositories/dialect/filter.d.ts +14 -7
  118. package/dist/esm/relational/core/repositories/dialect/filter.d.ts.map +1 -1
  119. package/dist/esm/relational/core/repositories/dialect/filter.js +56 -43
  120. package/dist/esm/relational/core/repositories/dialect/filter.js.map +1 -1
  121. package/dist/esm/relational/core/repositories/dialect/internal/index.d.ts +1 -0
  122. package/dist/esm/relational/core/repositories/dialect/internal/index.d.ts.map +1 -1
  123. package/dist/esm/relational/core/repositories/dialect/internal/index.js +1 -0
  124. package/dist/esm/relational/core/repositories/dialect/internal/index.js.map +1 -1
  125. package/dist/esm/relational/core/repositories/dialect/internal/json-utils.d.ts.map +1 -1
  126. package/dist/esm/relational/core/repositories/dialect/internal/json-utils.js +2 -1
  127. package/dist/esm/relational/core/repositories/dialect/internal/json-utils.js.map +1 -1
  128. package/dist/esm/relational/core/repositories/dialect/internal/subquery.d.ts +13 -0
  129. package/dist/esm/relational/core/repositories/dialect/internal/subquery.d.ts.map +1 -0
  130. package/dist/esm/relational/core/repositories/dialect/internal/subquery.js +18 -0
  131. package/dist/esm/relational/core/repositories/dialect/internal/subquery.js.map +1 -0
  132. package/dist/esm/relational/core/repositories/dialect/update.d.ts.map +1 -1
  133. package/dist/esm/relational/core/repositories/dialect/update.js +3 -2
  134. package/dist/esm/relational/core/repositories/dialect/update.js.map +1 -1
  135. package/dist/esm/relational/postgres/repositories/dialect/filter.d.ts +4 -1
  136. package/dist/esm/relational/postgres/repositories/dialect/filter.d.ts.map +1 -1
  137. package/dist/esm/relational/postgres/repositories/dialect/filter.js +37 -10
  138. package/dist/esm/relational/postgres/repositories/dialect/filter.js.map +1 -1
  139. package/dist/esm/relational/postgres/repositories/dialect/internal/index.d.ts +2 -0
  140. package/dist/esm/relational/postgres/repositories/dialect/internal/index.d.ts.map +1 -0
  141. package/dist/esm/relational/postgres/repositories/dialect/internal/index.js +2 -0
  142. package/dist/esm/relational/postgres/repositories/dialect/internal/index.js.map +1 -0
  143. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.d.ts +9 -0
  144. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.d.ts.map +1 -0
  145. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.js +10 -0
  146. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.js.map +1 -0
  147. package/dist/esm/relational/postgres/repositories/dialect/query.d.ts +2 -0
  148. package/dist/esm/relational/postgres/repositories/dialect/query.d.ts.map +1 -1
  149. package/dist/esm/relational/postgres/repositories/dialect/query.js +3 -0
  150. package/dist/esm/relational/postgres/repositories/dialect/query.js.map +1 -1
  151. package/dist/esm/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
  152. package/dist/esm/relational/postgres/repositories/dialect/update.js +2 -1
  153. package/dist/esm/relational/postgres/repositories/dialect/update.js.map +1 -1
  154. package/dist/esm/relational/sqlite/repositories/dialect/filter.d.ts +2 -1
  155. package/dist/esm/relational/sqlite/repositories/dialect/filter.d.ts.map +1 -1
  156. package/dist/esm/relational/sqlite/repositories/dialect/filter.js +12 -6
  157. package/dist/esm/relational/sqlite/repositories/dialect/filter.js.map +1 -1
  158. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.d.ts +9 -6
  159. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.d.ts.map +1 -1
  160. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.js +19 -7
  161. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.js.map +1 -1
  162. package/dist/esm/relational/sqlite/repositories/dialect/query.d.ts +2 -0
  163. package/dist/esm/relational/sqlite/repositories/dialect/query.d.ts.map +1 -1
  164. package/dist/esm/relational/sqlite/repositories/dialect/query.js +3 -0
  165. package/dist/esm/relational/sqlite/repositories/dialect/query.js.map +1 -1
  166. package/dist/esm/search/core/repositories/common/dialect-helpers.d.ts.map +1 -1
  167. package/dist/esm/search/core/repositories/common/dialect-helpers.js +2 -1
  168. package/dist/esm/search/core/repositories/common/dialect-helpers.js.map +1 -1
  169. package/dist/esm/search/meilisearch/repositories/dialect/query-dialect.d.ts.map +1 -1
  170. package/dist/esm/search/meilisearch/repositories/dialect/query-dialect.js +6 -9
  171. package/dist/esm/search/meilisearch/repositories/dialect/query-dialect.js.map +1 -1
  172. package/dist/esm/search/typesense/repositories/dialect/query-dialect.d.ts.map +1 -1
  173. package/dist/esm/search/typesense/repositories/dialect/query-dialect.js +6 -9
  174. package/dist/esm/search/typesense/repositories/dialect/query-dialect.js.map +1 -1
  175. package/dist/esm/testing/index.d.ts +5 -0
  176. package/dist/esm/testing/index.d.ts.map +1 -0
  177. package/dist/esm/testing/index.js +4 -0
  178. package/dist/esm/testing/index.js.map +1 -0
  179. package/dist/esm/testing/transaction-double.d.ts +44 -0
  180. package/dist/esm/testing/transaction-double.d.ts.map +1 -0
  181. package/dist/esm/testing/transaction-double.js +62 -0
  182. package/dist/esm/testing/transaction-double.js.map +1 -0
  183. package/package.json +10 -4
@@ -0,0 +1,5 @@
1
+ /** A caller-supplied value made safe to quote in an error message: one line, every unsafe character escaped. */
2
+ export declare const toSafeEcho: (opts: {
3
+ value: string;
4
+ }) => string;
5
+ //# sourceMappingURL=echo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo.d.ts","sourceRoot":"","sources":["../../../../src/common/internal/echo.ts"],"names":[],"mappings":"AAIA,gHAAgH;AAChH,eAAO,MAAM,UAAU,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,MAgBpD,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toSafeEcho = void 0;
4
+ /** C0 controls, DEL, C1 controls and the two Unicode line terminators - anything that can break a log line. */
5
+ const isUnsafeEchoCode = (code) => code < 0x20 || (code >= 0x7f && code <= 0x9f) || code === 0x2028 || code === 0x2029;
6
+ /** A caller-supplied value made safe to quote in an error message: one line, every unsafe character escaped. */
7
+ const toSafeEcho = (opts) => {
8
+ const { value } = opts;
9
+ let safe = '';
10
+ let copiedUpTo = 0;
11
+ for (let index = 0; index < value.length; index++) {
12
+ const code = value.charCodeAt(index);
13
+ if (!isUnsafeEchoCode(code)) {
14
+ continue;
15
+ }
16
+ safe += `${value.slice(copiedUpTo, index)}\\u${code.toString(16).padStart(4, '0')}`;
17
+ copiedUpTo = index + 1;
18
+ }
19
+ return copiedUpTo === 0 ? value : safe + value.slice(copiedUpTo);
20
+ };
21
+ exports.toSafeEcho = toSafeEcho;
22
+ //# sourceMappingURL=echo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../../../src/common/internal/echo.ts"],"names":[],"mappings":";;;AAAA,+GAA+G;AAC/G,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAW,EAAE,CACjD,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,CAAC;AAEtF,gHAAgH;AACzG,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAU,EAAE;IAC5D,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACvB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,SAAS;QACX,CAAC;QAED,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACpF,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACnE,CAAC,CAAC;AAhBW,QAAA,UAAU,cAgBrB"}
@@ -0,0 +1,2 @@
1
+ export * from './echo';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/internal/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./echo"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/common/internal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAGtF,+EAA+E;AAC/E,8BAAsB,wBAAwB,CAC5C,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CACpB,SAAQ,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;gBACnF,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrE,wEAAwE;IAC/D,SAAS,IAAI,MAAM;IAK5B,SAAS,CAAC,cAAc,IAAI,MAAM;IAgDlC,qBAAqB,IAAI,OAAO;IAKvB,eAAe;;;IAIT,gBAAgB,CAC7B,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IA4D9C,2LAA2L;IAC3L,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,MAAM;CACrF"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAe,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQ/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AAmDtF,+EAA+E;AAC/E,8BAAsB,wBAAwB,CAC5C,QAAQ,SAAS,MAAM,GAAG,EAAE,EAC5B,MAAM,SAAS,oBAAoB,GAAG,oBAAoB,EAC1D,mBAAmB,SAAS,MAAM,GAAG,EAAE,EACvC,MAAM,GAAG,OAAO,EAChB,UAAU,GAAG,OAAO,CACpB,SAAQ,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,CAAC;gBACnF,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAWrE,wEAAwE;IAC/D,SAAS,IAAI,MAAM;IAK5B,SAAS,CAAC,cAAc,IAAI,MAAM;IAgDlC,qBAAqB,IAAI,OAAO;IAKvB,eAAe;;;IAIT,gBAAgB,CAC7B,IAAI,CAAC,EAAE,6BAA6B,GACnC,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAiB9C,2LAA2L;IAC3L,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,6BAA6B,GAAG,MAAM;CACrF"}
@@ -12,6 +12,37 @@ const core_1 = require("@venizia/ignis-helpers/core");
12
12
  const create_1 = require("../repositories/dialect/relations/create");
13
13
  const abstract_1 = require("./abstract");
14
14
  const relation_pairing_1 = require("./relation-pairing");
15
+ const transaction_lifecycle_1 = require("./transaction-lifecycle");
16
+ /** The handle `beginTransaction()` returns: the shared end rules over one acquired connection. On a failed end the connection is discarded rather than pooled - the next borrower would inherit an open transaction - and the error rethrown: a caller must never believe a failed COMMIT succeeded. */
17
+ class ConnectionTransaction extends transaction_lifecycle_1.TransactionLifecycle {
18
+ // ES-private so a logged, spread or serialised handle never reaches the datasource settings. The datasource, not its logger: the logger is read only when an end fails or is a no-op.
19
+ #dataSource;
20
+ #connection;
21
+ constructor(opts) {
22
+ super();
23
+ this.#dataSource = opts.dataSource;
24
+ this.#connection = opts.connection;
25
+ this.connector = opts.connection.connector;
26
+ }
27
+ executeEnd(opts) {
28
+ return this.#connection.execute({ statement: opts.end.statement });
29
+ }
30
+ onEnded() {
31
+ this.#connection.release();
32
+ }
33
+ onEndFailed(opts) {
34
+ const { end, error } = opts;
35
+ this.#dataSource.logger
36
+ .for(end.verb)
37
+ .error('Failed to %s transaction | Error: %s', end.statement, error);
38
+ this.#connection.release({ destroy: true });
39
+ }
40
+ onRollbackAfterFailure() {
41
+ this.#dataSource.logger
42
+ .for('rollback')
43
+ .debug('Rollback after a failure-ended transaction - no-op, already torn down');
44
+ }
45
+ }
15
46
  /** Base DataSource with schema auto-discovery from registered repositories. */
16
47
  class BaseRelationalDataSource extends abstract_1.AbstractRelationalDataSource {
17
48
  constructor(opts) {
@@ -81,42 +112,7 @@ class BaseRelationalDataSource extends abstract_1.AbstractRelationalDataSource {
81
112
  connection.release({ destroy: true });
82
113
  throw error;
83
114
  }
84
- let isActive = true;
85
- let isEndedByFailure = false;
86
- /** On failure the connection is discarded rather than pooled - the next borrower would inherit an open transaction - and the error rethrown: a caller must never believe a failed COMMIT succeeded. */
87
- const finish = async (finishOpts) => {
88
- const { statement, verb } = finishOpts;
89
- if (!isActive) {
90
- // After a FAILED commit/rollback the transaction is already torn down, so rollback is satisfied by construction - throwing here would replace the caller's original error in `catch { await tx.rollback(); throw error; }`.
91
- if (isEndedByFailure && verb === 'rollback') {
92
- this.logger
93
- .for(verb)
94
- .debug('Rollback after a failure-ended transaction - no-op, already torn down');
95
- return;
96
- }
97
- throw (0, core_1.getError)({ message: `[Transaction][${verb}] Transaction already ended` });
98
- }
99
- // Flipped BEFORE the await: commit racing rollback would otherwise both pass the guard, issue two control statements, and double-release the same physical connection.
100
- isActive = false;
101
- try {
102
- await connection.execute({ statement });
103
- }
104
- catch (error) {
105
- this.logger.for(verb).error('Failed to %s transaction | Error: %s', statement, error);
106
- isEndedByFailure = true;
107
- connection.release({ destroy: true });
108
- throw error;
109
- }
110
- connection.release();
111
- };
112
- return {
113
- connector: connection.connector,
114
- get isActive() {
115
- return isActive;
116
- },
117
- commit: () => finish({ statement: 'COMMIT', verb: 'commit' }),
118
- rollback: () => finish({ statement: 'ROLLBACK', verb: 'rollback' }),
119
- };
115
+ return new ConnectionTransaction({ dataSource: this, connection });
120
116
  }
121
117
  }
122
118
  exports.BaseRelationalDataSource = BaseRelationalDataSource;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { TConstValue } from '@venizia/ignis-helpers/common';
2
+ import type { ITransaction } from '@venizia/ignis-kernel';
3
+ export declare class TransactionStates {
4
+ static readonly ACTIVE = "ACTIVE";
5
+ static readonly COMMITTED = "COMMITTED";
6
+ static readonly ROLLED_BACK = "ROLLED_BACK";
7
+ static readonly FAILED = "FAILED";
8
+ static readonly SCHEME_SET: Set<string>;
9
+ static isValid(value: string): boolean;
10
+ }
11
+ export type TTransactionState = TConstValue<typeof TransactionStates>;
12
+ /** Registry symbol, not a module-private one: the CommonJS and ESM builds each load their own copy of this class, and a handle from one must still be read by the other. */
13
+ export declare const TRANSACTION_STATE_KEY: unique symbol;
14
+ export interface ITransactionEnd {
15
+ verb: string;
16
+ statement: string;
17
+ endedState: TTransactionState;
18
+ }
19
+ /**
20
+ * The end-of-transaction rules every handle shares, the real one and the test double alike: the
21
+ * first commit() or rollback() wins, a second end throws, and rollback() after a failed end is a
22
+ * no-op. A subclass supplies only the statement and what happens around it.
23
+ */
24
+ export declare abstract class TransactionLifecycle implements ITransaction {
25
+ #private;
26
+ private static readonly COMMIT;
27
+ private static readonly ROLLBACK;
28
+ /** Symbol-keyed so the state stays off the handle's string-keyed surface. */
29
+ get [TRANSACTION_STATE_KEY](): TTransactionState;
30
+ get isActive(): boolean;
31
+ protected get lifecycleState(): TTransactionState;
32
+ readonly commit: () => Promise<void>;
33
+ readonly rollback: () => Promise<void>;
34
+ /** Runs the end statement. Called at most once per transaction, after the state has left ACTIVE. */
35
+ protected abstract executeEnd(opts: {
36
+ end: ITransactionEnd;
37
+ }): Promise<unknown>;
38
+ protected onEnded(_opts: {
39
+ end: ITransactionEnd;
40
+ }): void;
41
+ protected onEndFailed(_opts: {
42
+ end: ITransactionEnd;
43
+ error: unknown;
44
+ }): void;
45
+ protected onRollbackAfterFailure(): void;
46
+ private end;
47
+ }
48
+ //# sourceMappingURL=transaction-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/transaction-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAClC,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,iBAAiB;IAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM,YAAY;IAElC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAKvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC;AAED,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEtE,4KAA4K;AAC5K,eAAO,MAAM,qBAAqB,EAAE,OAAO,MAE1C,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;GAIG;AACH,8BAAsB,oBAAqB,YAAW,YAAY;;IAChE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAI5B;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAI9B;IAKF,6EAA6E;IAC7E,IAAI,CAAC,qBAAqB,CAAC,IAAI,iBAAiB,CAE/C;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,SAAS,KAAK,cAAc,IAAI,iBAAiB,CAEhD;IAGD,QAAQ,CAAC,MAAM,QAAO,OAAO,CAAC,IAAI,CAAC,CAAmD;IACtF,QAAQ,CAAC,QAAQ,QAAO,OAAO,CAAC,IAAI,CAAC,CAAqD;IAE1F,oGAAoG;IACpG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAE/E,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI;IAExD,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE;QAAE,GAAG,EAAE,eAAe,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAE5E,SAAS,CAAC,sBAAsB,IAAI,IAAI;YAE1B,GAAG;CA0BlB"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransactionLifecycle = exports.TRANSACTION_STATE_KEY = exports.TransactionStates = void 0;
4
+ const core_1 = require("@venizia/ignis-helpers/core");
5
+ class TransactionStates {
6
+ static { this.ACTIVE = 'ACTIVE'; }
7
+ static { this.COMMITTED = 'COMMITTED'; }
8
+ static { this.ROLLED_BACK = 'ROLLED_BACK'; }
9
+ static { this.FAILED = 'FAILED'; }
10
+ static { this.SCHEME_SET = new Set([
11
+ this.ACTIVE,
12
+ this.COMMITTED,
13
+ this.ROLLED_BACK,
14
+ this.FAILED,
15
+ ]); }
16
+ static isValid(value) {
17
+ return this.SCHEME_SET.has(value);
18
+ }
19
+ }
20
+ exports.TransactionStates = TransactionStates;
21
+ /** Registry symbol, not a module-private one: the CommonJS and ESM builds each load their own copy of this class, and a handle from one must still be read by the other. */
22
+ exports.TRANSACTION_STATE_KEY = Symbol.for('@venizia/ignis-connectors/transaction-state');
23
+ /**
24
+ * The end-of-transaction rules every handle shares, the real one and the test double alike: the
25
+ * first commit() or rollback() wins, a second end throws, and rollback() after a failed end is a
26
+ * no-op. A subclass supplies only the statement and what happens around it.
27
+ */
28
+ class TransactionLifecycle {
29
+ constructor() {
30
+ // ES-private, not TS-private: a handle that is logged, spread or serialised must not carry its internals.
31
+ this.#state = TransactionStates.ACTIVE;
32
+ // Own properties, not prototype methods, so a detached `transaction.commit` still works.
33
+ this.commit = () => this.end({ end: TransactionLifecycle.COMMIT });
34
+ this.rollback = () => this.end({ end: TransactionLifecycle.ROLLBACK });
35
+ }
36
+ static { this.COMMIT = {
37
+ verb: 'commit',
38
+ statement: 'COMMIT',
39
+ endedState: TransactionStates.COMMITTED,
40
+ }; }
41
+ static { this.ROLLBACK = {
42
+ verb: 'rollback',
43
+ statement: 'ROLLBACK',
44
+ endedState: TransactionStates.ROLLED_BACK,
45
+ }; }
46
+ // ES-private, not TS-private: a handle that is logged, spread or serialised must not carry its internals.
47
+ #state;
48
+ /** Symbol-keyed so the state stays off the handle's string-keyed surface. */
49
+ get [exports.TRANSACTION_STATE_KEY]() {
50
+ return this.#state;
51
+ }
52
+ get isActive() {
53
+ return this.#state === TransactionStates.ACTIVE;
54
+ }
55
+ get lifecycleState() {
56
+ return this.#state;
57
+ }
58
+ onEnded(_opts) { }
59
+ onEndFailed(_opts) { }
60
+ onRollbackAfterFailure() { }
61
+ async end(opts) {
62
+ const { end } = opts;
63
+ if (this.#state !== TransactionStates.ACTIVE) {
64
+ // After a FAILED end the transaction is already torn down, so rollback is satisfied by construction - throwing here would replace the caller's original error in `catch { await tx.rollback(); throw error; }`.
65
+ if (this.#state === TransactionStates.FAILED && end === TransactionLifecycle.ROLLBACK) {
66
+ this.onRollbackAfterFailure();
67
+ return;
68
+ }
69
+ throw (0, core_1.getError)({ message: `[Transaction][${end.verb}] Transaction already ended` });
70
+ }
71
+ // Left ACTIVE BEFORE the await: commit racing rollback would otherwise both pass the guard, issue two end statements, and double-release the same connection.
72
+ this.#state = end.endedState;
73
+ try {
74
+ await this.executeEnd({ end });
75
+ }
76
+ catch (error) {
77
+ this.onEndFailed({ end, error });
78
+ this.#state = TransactionStates.FAILED;
79
+ throw error;
80
+ }
81
+ this.onEnded({ end });
82
+ }
83
+ }
84
+ exports.TransactionLifecycle = TransactionLifecycle;
85
+ //# sourceMappingURL=transaction-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-lifecycle.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/transaction-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** True only for a handle built on `TransactionLifecycle`, from either build, that ended by COMMIT. */
2
+ export declare const isTransactionCommitted: (opts: {
3
+ transaction: object;
4
+ }) => boolean;
5
+ //# sourceMappingURL=transaction-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-state.d.ts","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/transaction-state.ts"],"names":[],"mappings":"AAEA,uGAAuG;AACvG,eAAO,MAAM,sBAAsB,GAAI,MAAM;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,KAAG,OAOtE,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isTransactionCommitted = void 0;
4
+ const transaction_lifecycle_1 = require("./transaction-lifecycle");
5
+ /** True only for a handle built on `TransactionLifecycle`, from either build, that ended by COMMIT. */
6
+ const isTransactionCommitted = (opts) => {
7
+ const { transaction } = opts;
8
+ return (transaction_lifecycle_1.TRANSACTION_STATE_KEY in transaction &&
9
+ transaction[transaction_lifecycle_1.TRANSACTION_STATE_KEY] === transaction_lifecycle_1.TransactionStates.COMMITTED);
10
+ };
11
+ exports.isTransactionCommitted = isTransactionCommitted;
12
+ //# sourceMappingURL=transaction-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction-state.js","sourceRoot":"","sources":["../../../../../src/relational/core/datasources/transaction-state.ts"],"names":[],"mappings":";;;AAAA,mEAAmF;AAEnF,uGAAuG;AAChG,MAAM,sBAAsB,GAAG,CAAC,IAA6B,EAAW,EAAE;IAC/E,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAE7B,OAAO,CACL,6CAAqB,IAAI,WAAW;QACpC,WAAW,CAAC,6CAAqB,CAAC,KAAK,yCAAiB,CAAC,SAAS,CACnE,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,sBAAsB,0BAOjC"}
@@ -1,7 +1,7 @@
1
1
  import type { IExtraOptions, RelationTypes, TDrizzleQueryOptions, TFilter, TWhere } from '@venizia/ignis-kernel';
2
2
  import type { IRelationalDataSource, IRelationalTransaction } from '../../datasources/common';
3
3
  import type { TTableObject, TTableSchemaWithId } from '../../models/common';
4
- import type { createTableRelationsHelpers, getTableColumns, SQL } from 'drizzle-orm';
4
+ import type { AnyColumn, createTableRelationsHelpers, getTableColumns, SQL, SQLWrapper } from 'drizzle-orm';
5
5
  /** Entity relationship config (one-to-one/many-to-one, one-to-many); Drizzle-specific. */
6
6
  export type TRelationConfig = {
7
7
  name: string;
@@ -32,10 +32,12 @@ export interface IRelationalQueryDialect {
32
32
  schema: Schema;
33
33
  where: TWhere<TTableObject<Schema>>;
34
34
  }): SQL | undefined;
35
+ /** `expressions` names sort targets the schema cannot: a joined column or a computed `SQL`, keyed by the name an order entry uses. */
35
36
  toOrderBy<Schema extends TTableSchemaWithId>(opts: {
36
37
  tableName: string;
37
38
  schema: Schema;
38
39
  order: string[];
40
+ expressions?: Readonly<Record<string, AnyColumn | SQLWrapper>>;
39
41
  }): SQL[];
40
42
  /** Splits update data into plain column assignments and engine-specific JSON-path expressions. Postgres composes `jsonb_set`; another engine composes its own. */
41
43
  transformUpdate<Schema extends TTableSchemaWithId>(opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/relational/core/repositories/common/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/relational/core/repositories/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,OAAO,EACP,MAAM,EACP,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EACV,SAAS,EACT,2BAA2B,EAC3B,eAAe,EACf,GAAG,EACH,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,0FAA0F;AAC1F,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,CACA;IACE,IAAI,EAAE,OAAO,aAAa,CAAC,GAAG,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAChB,WAAW,CACT,UAAU,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACxF,CACF,CAAC;CACH,GACD;IACE,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAClB,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAC1E,CAAC,CAAC,CAAC,CAAC;CACN,CACJ,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAE/D,kJAAkJ;AAClJ,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChG,KAAK,CAAC,MAAM,SAAS,kBAAkB,EAAE,IAAI,EAAE;QAC7C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;KACvC,GAAG,oBAAoB,CAAC;IACzB,OAAO,CAAC,MAAM,SAAS,kBAAkB,EAAE,IAAI,EAAE;QAC/C,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;KACrC,GAAG,GAAG,GAAG,SAAS,CAAC;IACpB,sIAAsI;IACtI,SAAS,CAAC,MAAM,SAAS,kBAAkB,EAAE,IAAI,EAAE;QACjD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC;KAChE,GAAG,GAAG,EAAE,CAAC;IAEV,kKAAkK;IAClK,eAAe,CAAC,MAAM,SAAS,kBAAkB,EAAE,IAAI,EAAE;QACvD,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GAAG,sBAAsB,CAAC;IAE3B,kFAAkF;IAClF,YAAY,CAAC,IAAI,EAAE;QAAE,WAAW,EAAE,sBAAsB,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtF;AAED,uQAAuQ;AACvQ,MAAM,WAAW,uBAAuB,CAAC,UAAU,GAAG,OAAO,CAAE,SAAQ,aAAa;IAClF,WAAW,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;CAClD;AAED,iJAAiJ;AACjJ,MAAM,MAAM,sBAAsB,CAAC,WAAW,SAAS,qBAAqB,IAAI,UAAU,CACxF,WAAW,CAAC,cAAc,CAAC,CAC5B,CAAC;AAEF,0HAA0H;AAC1H,MAAM,MAAM,+BAA+B,CAAC,WAAW,SAAS,qBAAqB,IAAI,UAAU,CACjG,WAAW,CAAC,kBAAkB,CAAC,CAChC,CAAC,CAAC,CAAC,CAAC;AAEL,sFAAsF;AACtF,MAAM,MAAM,wBAAwB,CAAC,WAAW,SAAS,qBAAqB,IAAI,OAAO,CACvF,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,CAC5C,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC,sPAAsP;IACtP,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACtC"}
@@ -68,6 +68,23 @@ export declare abstract class RelationalBaseRepository<EntitySchema extends TTab
68
68
  dangerouslySkipScopeFilter?: boolean;
69
69
  }): TFilter<DO>;
70
70
  beginTransaction(opts?: TRelationalTransactionOptionsOf<TDataSource>): Promise<TRelationalTransactionOf<TDataSource>>;
71
+ /**
72
+ * Runs `execute` inside a transaction. Given a `transaction`, joins it: its owner commits or rolls
73
+ * back, so this never does. Given none, owns one: begins it, commits when `execute` resolves, and
74
+ * rolls back when `execute` or the commit throws - rethrowing the original error either way. An
75
+ * owned transaction that `execute` already ended is never ended a second time.
76
+ */
77
+ runInTransaction<ResultType>(opts: {
78
+ transaction?: TRelationalTransactionOf<TDataSource>;
79
+ transactionOptions?: TRelationalTransactionOptionsOf<TDataSource>;
80
+ execute: (opts: {
81
+ transaction: TRelationalTransactionOf<TDataSource>;
82
+ }) => Promise<ResultType>;
83
+ }): Promise<ResultType>;
84
+ /** `execute` resolved after ending the owned transaction itself: its work stands only if it committed. */
85
+ private resolveEndedByExecute;
86
+ /** A rollback failure is only logged: the caller needs the error that made the rollback necessary. */
87
+ private rollbackOwnedTransaction;
71
88
  /** Builds Drizzle query options from a filter, excluding hidden properties. */
72
89
  buildQuery(opts: {
73
90
  filter: TFilter<DataObject>;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../../src/relational/core/repositories/core/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../../../src/relational/core/repositories/core/base.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RelationalBaseRepository = void 0;
4
4
  const ignis_kernel_1 = require("@venizia/ignis-kernel");
5
5
  const common_1 = require("../../datasources/common");
6
+ const transaction_state_1 = require("../../datasources/transaction-state");
6
7
  const core_1 = require("@venizia/ignis-helpers/core");
7
8
  const drizzle_orm_1 = require("drizzle-orm");
8
9
  const common_2 = require("../common");
@@ -150,6 +151,74 @@ class RelationalBaseRepository extends ignis_kernel_1.AbstractRepository {
150
151
  async beginTransaction(opts) {
151
152
  return this.dataSource.beginTransaction(opts);
152
153
  }
154
+ /**
155
+ * Runs `execute` inside a transaction. Given a `transaction`, joins it: its owner commits or rolls
156
+ * back, so this never does. Given none, owns one: begins it, commits when `execute` resolves, and
157
+ * rolls back when `execute` or the commit throws - rethrowing the original error either way. An
158
+ * owned transaction that `execute` already ended is never ended a second time.
159
+ */
160
+ async runInTransaction(opts) {
161
+ const { transaction, transactionOptions, execute } = opts;
162
+ if (transaction) {
163
+ if (!transaction.isActive) {
164
+ throw (0, core_1.getError)({
165
+ message: `[${this.constructor.name}][runInTransaction] Transaction is no longer active`,
166
+ });
167
+ }
168
+ if (transactionOptions) {
169
+ this.logger
170
+ .for('runInTransaction')
171
+ .debug('Joined transaction | transactionOptions ignored: %j', transactionOptions);
172
+ }
173
+ return execute({ transaction });
174
+ }
175
+ const ownedTransaction = await this.beginTransaction(transactionOptions);
176
+ let result;
177
+ try {
178
+ result = await execute({ transaction: ownedTransaction });
179
+ }
180
+ catch (error) {
181
+ if (ownedTransaction.isActive) {
182
+ await this.rollbackOwnedTransaction({ transaction: ownedTransaction });
183
+ }
184
+ throw error;
185
+ }
186
+ if (!ownedTransaction.isActive) {
187
+ return this.resolveEndedByExecute({ transaction: ownedTransaction, result });
188
+ }
189
+ try {
190
+ await ownedTransaction.commit();
191
+ }
192
+ catch (error) {
193
+ await this.rollbackOwnedTransaction({ transaction: ownedTransaction });
194
+ throw error;
195
+ }
196
+ return result;
197
+ }
198
+ /** `execute` resolved after ending the owned transaction itself: its work stands only if it committed. */
199
+ resolveEndedByExecute(opts) {
200
+ const { transaction, result } = opts;
201
+ if ((0, transaction_state_1.isTransactionCommitted)({ transaction })) {
202
+ this.logger
203
+ .for('runInTransaction')
204
+ .warn('execute committed the owned transaction itself | Skipped the commit');
205
+ return result;
206
+ }
207
+ throw (0, core_1.getError)({
208
+ message: `[${this.constructor.name}][runInTransaction] execute ended the owned transaction before it could be committed`,
209
+ });
210
+ }
211
+ /** A rollback failure is only logged: the caller needs the error that made the rollback necessary. */
212
+ async rollbackOwnedTransaction(opts) {
213
+ try {
214
+ await opts.transaction.rollback();
215
+ }
216
+ catch (rollbackError) {
217
+ this.logger
218
+ .for('runInTransaction')
219
+ .error('Rollback failed, rethrowing the original error | Rollback error: %s', rollbackError);
220
+ }
221
+ }
153
222
  /** Builds Drizzle query options from a filter, excluding hidden properties. */
154
223
  buildQuery(opts) {
155
224
  const result = this.queryDialect.build({
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../../src/relational/core/repositories/core/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../../../src/relational/core/repositories/core/base.ts"],"names":[],"mappings":"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"}