@venizia/ignis-connectors 0.2.0 → 0.2.1-1

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 (203) 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/http/common/types.d.ts +11 -0
  10. package/dist/cjs/http/common/types.d.ts.map +1 -1
  11. package/dist/cjs/http/datasource.d.ts +26 -2
  12. package/dist/cjs/http/datasource.d.ts.map +1 -1
  13. package/dist/cjs/http/datasource.js +125 -13
  14. package/dist/cjs/http/datasource.js.map +1 -1
  15. package/dist/cjs/http/repository.d.ts +165 -4
  16. package/dist/cjs/http/repository.d.ts.map +1 -1
  17. package/dist/cjs/http/repository.js +87 -3
  18. package/dist/cjs/http/repository.js.map +1 -1
  19. package/dist/cjs/relational/core/datasources/base.d.ts.map +1 -1
  20. package/dist/cjs/relational/core/datasources/base.js +32 -36
  21. package/dist/cjs/relational/core/datasources/base.js.map +1 -1
  22. package/dist/cjs/relational/core/datasources/transaction-lifecycle.d.ts +48 -0
  23. package/dist/cjs/relational/core/datasources/transaction-lifecycle.d.ts.map +1 -0
  24. package/dist/cjs/relational/core/datasources/transaction-lifecycle.js +85 -0
  25. package/dist/cjs/relational/core/datasources/transaction-lifecycle.js.map +1 -0
  26. package/dist/cjs/relational/core/datasources/transaction-state.d.ts +5 -0
  27. package/dist/cjs/relational/core/datasources/transaction-state.d.ts.map +1 -0
  28. package/dist/cjs/relational/core/datasources/transaction-state.js +12 -0
  29. package/dist/cjs/relational/core/datasources/transaction-state.js.map +1 -0
  30. package/dist/cjs/relational/core/repositories/common/types.d.ts +3 -1
  31. package/dist/cjs/relational/core/repositories/common/types.d.ts.map +1 -1
  32. package/dist/cjs/relational/core/repositories/core/base.d.ts +17 -0
  33. package/dist/cjs/relational/core/repositories/core/base.d.ts.map +1 -1
  34. package/dist/cjs/relational/core/repositories/core/base.js +69 -0
  35. package/dist/cjs/relational/core/repositories/core/base.js.map +1 -1
  36. package/dist/cjs/relational/core/repositories/dialect/filter.d.ts +14 -7
  37. package/dist/cjs/relational/core/repositories/dialect/filter.d.ts.map +1 -1
  38. package/dist/cjs/relational/core/repositories/dialect/filter.js +61 -48
  39. package/dist/cjs/relational/core/repositories/dialect/filter.js.map +1 -1
  40. package/dist/cjs/relational/core/repositories/dialect/internal/index.d.ts +1 -0
  41. package/dist/cjs/relational/core/repositories/dialect/internal/index.d.ts.map +1 -1
  42. package/dist/cjs/relational/core/repositories/dialect/internal/index.js +1 -0
  43. package/dist/cjs/relational/core/repositories/dialect/internal/index.js.map +1 -1
  44. package/dist/cjs/relational/core/repositories/dialect/internal/json-utils.d.ts.map +1 -1
  45. package/dist/cjs/relational/core/repositories/dialect/internal/json-utils.js +2 -1
  46. package/dist/cjs/relational/core/repositories/dialect/internal/json-utils.js.map +1 -1
  47. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.d.ts +13 -0
  48. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.d.ts.map +1 -0
  49. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.js +22 -0
  50. package/dist/cjs/relational/core/repositories/dialect/internal/subquery.js.map +1 -0
  51. package/dist/cjs/relational/core/repositories/dialect/update.d.ts.map +1 -1
  52. package/dist/cjs/relational/core/repositories/dialect/update.js +8 -7
  53. package/dist/cjs/relational/core/repositories/dialect/update.js.map +1 -1
  54. package/dist/cjs/relational/postgres/repositories/dialect/filter.d.ts +4 -1
  55. package/dist/cjs/relational/postgres/repositories/dialect/filter.d.ts.map +1 -1
  56. package/dist/cjs/relational/postgres/repositories/dialect/filter.js +36 -9
  57. package/dist/cjs/relational/postgres/repositories/dialect/filter.js.map +1 -1
  58. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.d.ts +2 -0
  59. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.d.ts.map +1 -0
  60. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.js +18 -0
  61. package/dist/cjs/relational/postgres/repositories/dialect/internal/index.js.map +1 -0
  62. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.d.ts +9 -0
  63. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.d.ts.map +1 -0
  64. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.js +14 -0
  65. package/dist/cjs/relational/postgres/repositories/dialect/internal/json-path.js.map +1 -0
  66. package/dist/cjs/relational/postgres/repositories/dialect/query.d.ts +2 -0
  67. package/dist/cjs/relational/postgres/repositories/dialect/query.d.ts.map +1 -1
  68. package/dist/cjs/relational/postgres/repositories/dialect/query.js +3 -0
  69. package/dist/cjs/relational/postgres/repositories/dialect/query.js.map +1 -1
  70. package/dist/cjs/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
  71. package/dist/cjs/relational/postgres/repositories/dialect/update.js +2 -1
  72. package/dist/cjs/relational/postgres/repositories/dialect/update.js.map +1 -1
  73. package/dist/cjs/relational/sqlite/repositories/dialect/filter.d.ts +2 -1
  74. package/dist/cjs/relational/sqlite/repositories/dialect/filter.d.ts.map +1 -1
  75. package/dist/cjs/relational/sqlite/repositories/dialect/filter.js +10 -4
  76. package/dist/cjs/relational/sqlite/repositories/dialect/filter.js.map +1 -1
  77. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.d.ts +9 -6
  78. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.d.ts.map +1 -1
  79. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.js +21 -9
  80. package/dist/cjs/relational/sqlite/repositories/dialect/internal/json-path.js.map +1 -1
  81. package/dist/cjs/relational/sqlite/repositories/dialect/query.d.ts +2 -0
  82. package/dist/cjs/relational/sqlite/repositories/dialect/query.d.ts.map +1 -1
  83. package/dist/cjs/relational/sqlite/repositories/dialect/query.js +3 -0
  84. package/dist/cjs/relational/sqlite/repositories/dialect/query.js.map +1 -1
  85. package/dist/cjs/search/core/repositories/common/dialect-helpers.d.ts.map +1 -1
  86. package/dist/cjs/search/core/repositories/common/dialect-helpers.js +2 -1
  87. package/dist/cjs/search/core/repositories/common/dialect-helpers.js.map +1 -1
  88. package/dist/cjs/search/meilisearch/repositories/dialect/query-dialect.d.ts.map +1 -1
  89. package/dist/cjs/search/meilisearch/repositories/dialect/query-dialect.js +5 -8
  90. package/dist/cjs/search/meilisearch/repositories/dialect/query-dialect.js.map +1 -1
  91. package/dist/cjs/search/typesense/repositories/dialect/query-dialect.d.ts.map +1 -1
  92. package/dist/cjs/search/typesense/repositories/dialect/query-dialect.js +5 -8
  93. package/dist/cjs/search/typesense/repositories/dialect/query-dialect.js.map +1 -1
  94. package/dist/cjs/testing/index.d.ts +5 -0
  95. package/dist/cjs/testing/index.d.ts.map +1 -0
  96. package/dist/cjs/testing/index.js +22 -0
  97. package/dist/cjs/testing/index.js.map +1 -0
  98. package/dist/cjs/testing/transaction-double.d.ts +44 -0
  99. package/dist/cjs/testing/transaction-double.d.ts.map +1 -0
  100. package/dist/cjs/testing/transaction-double.js +68 -0
  101. package/dist/cjs/testing/transaction-double.js.map +1 -0
  102. package/dist/esm/common/internal/echo.d.ts +5 -0
  103. package/dist/esm/common/internal/echo.d.ts.map +1 -0
  104. package/dist/esm/common/internal/echo.js +18 -0
  105. package/dist/esm/common/internal/echo.js.map +1 -0
  106. package/dist/esm/common/internal/index.d.ts +2 -0
  107. package/dist/esm/common/internal/index.d.ts.map +1 -0
  108. package/dist/esm/common/internal/index.js +2 -0
  109. package/dist/esm/common/internal/index.js.map +1 -0
  110. package/dist/esm/http/common/types.d.ts +11 -0
  111. package/dist/esm/http/common/types.d.ts.map +1 -1
  112. package/dist/esm/http/datasource.d.ts +26 -2
  113. package/dist/esm/http/datasource.d.ts.map +1 -1
  114. package/dist/esm/http/datasource.js +125 -13
  115. package/dist/esm/http/datasource.js.map +1 -1
  116. package/dist/esm/http/repository.d.ts +165 -4
  117. package/dist/esm/http/repository.d.ts.map +1 -1
  118. package/dist/esm/http/repository.js +87 -3
  119. package/dist/esm/http/repository.js.map +1 -1
  120. package/dist/esm/relational/core/datasources/base.d.ts.map +1 -1
  121. package/dist/esm/relational/core/datasources/base.js +32 -36
  122. package/dist/esm/relational/core/datasources/base.js.map +1 -1
  123. package/dist/esm/relational/core/datasources/transaction-lifecycle.d.ts +48 -0
  124. package/dist/esm/relational/core/datasources/transaction-lifecycle.d.ts.map +1 -0
  125. package/dist/esm/relational/core/datasources/transaction-lifecycle.js +80 -0
  126. package/dist/esm/relational/core/datasources/transaction-lifecycle.js.map +1 -0
  127. package/dist/esm/relational/core/datasources/transaction-state.d.ts +5 -0
  128. package/dist/esm/relational/core/datasources/transaction-state.d.ts.map +1 -0
  129. package/dist/esm/relational/core/datasources/transaction-state.js +8 -0
  130. package/dist/esm/relational/core/datasources/transaction-state.js.map +1 -0
  131. package/dist/esm/relational/core/repositories/common/types.d.ts +3 -1
  132. package/dist/esm/relational/core/repositories/common/types.d.ts.map +1 -1
  133. package/dist/esm/relational/core/repositories/core/base.d.ts +17 -0
  134. package/dist/esm/relational/core/repositories/core/base.d.ts.map +1 -1
  135. package/dist/esm/relational/core/repositories/core/base.js +69 -0
  136. package/dist/esm/relational/core/repositories/core/base.js.map +1 -1
  137. package/dist/esm/relational/core/repositories/dialect/filter.d.ts +14 -7
  138. package/dist/esm/relational/core/repositories/dialect/filter.d.ts.map +1 -1
  139. package/dist/esm/relational/core/repositories/dialect/filter.js +56 -43
  140. package/dist/esm/relational/core/repositories/dialect/filter.js.map +1 -1
  141. package/dist/esm/relational/core/repositories/dialect/internal/index.d.ts +1 -0
  142. package/dist/esm/relational/core/repositories/dialect/internal/index.d.ts.map +1 -1
  143. package/dist/esm/relational/core/repositories/dialect/internal/index.js +1 -0
  144. package/dist/esm/relational/core/repositories/dialect/internal/index.js.map +1 -1
  145. package/dist/esm/relational/core/repositories/dialect/internal/json-utils.d.ts.map +1 -1
  146. package/dist/esm/relational/core/repositories/dialect/internal/json-utils.js +2 -1
  147. package/dist/esm/relational/core/repositories/dialect/internal/json-utils.js.map +1 -1
  148. package/dist/esm/relational/core/repositories/dialect/internal/subquery.d.ts +13 -0
  149. package/dist/esm/relational/core/repositories/dialect/internal/subquery.d.ts.map +1 -0
  150. package/dist/esm/relational/core/repositories/dialect/internal/subquery.js +18 -0
  151. package/dist/esm/relational/core/repositories/dialect/internal/subquery.js.map +1 -0
  152. package/dist/esm/relational/core/repositories/dialect/update.d.ts.map +1 -1
  153. package/dist/esm/relational/core/repositories/dialect/update.js +3 -2
  154. package/dist/esm/relational/core/repositories/dialect/update.js.map +1 -1
  155. package/dist/esm/relational/postgres/repositories/dialect/filter.d.ts +4 -1
  156. package/dist/esm/relational/postgres/repositories/dialect/filter.d.ts.map +1 -1
  157. package/dist/esm/relational/postgres/repositories/dialect/filter.js +37 -10
  158. package/dist/esm/relational/postgres/repositories/dialect/filter.js.map +1 -1
  159. package/dist/esm/relational/postgres/repositories/dialect/internal/index.d.ts +2 -0
  160. package/dist/esm/relational/postgres/repositories/dialect/internal/index.d.ts.map +1 -0
  161. package/dist/esm/relational/postgres/repositories/dialect/internal/index.js +2 -0
  162. package/dist/esm/relational/postgres/repositories/dialect/internal/index.js.map +1 -0
  163. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.d.ts +9 -0
  164. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.d.ts.map +1 -0
  165. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.js +10 -0
  166. package/dist/esm/relational/postgres/repositories/dialect/internal/json-path.js.map +1 -0
  167. package/dist/esm/relational/postgres/repositories/dialect/query.d.ts +2 -0
  168. package/dist/esm/relational/postgres/repositories/dialect/query.d.ts.map +1 -1
  169. package/dist/esm/relational/postgres/repositories/dialect/query.js +3 -0
  170. package/dist/esm/relational/postgres/repositories/dialect/query.js.map +1 -1
  171. package/dist/esm/relational/postgres/repositories/dialect/update.d.ts.map +1 -1
  172. package/dist/esm/relational/postgres/repositories/dialect/update.js +2 -1
  173. package/dist/esm/relational/postgres/repositories/dialect/update.js.map +1 -1
  174. package/dist/esm/relational/sqlite/repositories/dialect/filter.d.ts +2 -1
  175. package/dist/esm/relational/sqlite/repositories/dialect/filter.d.ts.map +1 -1
  176. package/dist/esm/relational/sqlite/repositories/dialect/filter.js +12 -6
  177. package/dist/esm/relational/sqlite/repositories/dialect/filter.js.map +1 -1
  178. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.d.ts +9 -6
  179. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.d.ts.map +1 -1
  180. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.js +19 -7
  181. package/dist/esm/relational/sqlite/repositories/dialect/internal/json-path.js.map +1 -1
  182. package/dist/esm/relational/sqlite/repositories/dialect/query.d.ts +2 -0
  183. package/dist/esm/relational/sqlite/repositories/dialect/query.d.ts.map +1 -1
  184. package/dist/esm/relational/sqlite/repositories/dialect/query.js +3 -0
  185. package/dist/esm/relational/sqlite/repositories/dialect/query.js.map +1 -1
  186. package/dist/esm/search/core/repositories/common/dialect-helpers.d.ts.map +1 -1
  187. package/dist/esm/search/core/repositories/common/dialect-helpers.js +2 -1
  188. package/dist/esm/search/core/repositories/common/dialect-helpers.js.map +1 -1
  189. package/dist/esm/search/meilisearch/repositories/dialect/query-dialect.d.ts.map +1 -1
  190. package/dist/esm/search/meilisearch/repositories/dialect/query-dialect.js +6 -9
  191. package/dist/esm/search/meilisearch/repositories/dialect/query-dialect.js.map +1 -1
  192. package/dist/esm/search/typesense/repositories/dialect/query-dialect.d.ts.map +1 -1
  193. package/dist/esm/search/typesense/repositories/dialect/query-dialect.js +6 -9
  194. package/dist/esm/search/typesense/repositories/dialect/query-dialect.js.map +1 -1
  195. package/dist/esm/testing/index.d.ts +5 -0
  196. package/dist/esm/testing/index.d.ts.map +1 -0
  197. package/dist/esm/testing/index.js +4 -0
  198. package/dist/esm/testing/index.js.map +1 -0
  199. package/dist/esm/testing/transaction-double.d.ts +44 -0
  200. package/dist/esm/testing/transaction-double.d.ts.map +1 -0
  201. package/dist/esm/testing/transaction-double.js +62 -0
  202. package/dist/esm/testing/transaction-double.js.map +1 -0
  203. package/package.json +10 -4
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HttpRepository = exports.HttpResourceEntity = void 0;
4
4
  const common_1 = require("@venizia/ignis-helpers/common");
5
- const repository_1 = require("@venizia/ignis-kernel/repository");
6
5
  const core_1 = require("@venizia/ignis-helpers/core");
6
+ const repository_1 = require("@venizia/ignis-kernel/repository");
7
7
  /** A remote resource has a name but no local schema. */
8
8
  class HttpResourceEntity extends repository_1.AbstractEntity {
9
9
  getSchema(_opts) {
@@ -11,7 +11,11 @@ class HttpResourceEntity extends repository_1.AbstractEntity {
11
11
  }
12
12
  }
13
13
  exports.HttpResourceEntity = HttpResourceEntity;
14
- /** Read access to one remote resource, in the `@venizia/ignis-filter` vocabulary. */
14
+ /**
15
+ * One remote resource, read and written through the IGNIS CRUD routes, in the `@venizia/ignis-filter`
16
+ * vocabulary. `P` is what a write sends - a partial row by default, since the server fills ids and
17
+ * defaults. There is no `createAll`: the IGNIS REST contract has no bulk-create route.
18
+ */
15
19
  class HttpRepository {
16
20
  constructor(opts) {
17
21
  this.dataSource = opts.dataSource;
@@ -103,12 +107,92 @@ class HttpRepository {
103
107
  }
104
108
  async findById(opts) {
105
109
  const rs = await this.dataSource.read({
106
- paths: [this.resource, `${opts.id}`],
110
+ paths: this.getIdPaths({ id: opts.id }),
107
111
  query: { filter: opts.filter ?? {} },
108
112
  shape: 'one',
109
113
  });
110
114
  return rs.data ?? null;
111
115
  }
116
+ /** `<resource>/<id>`, the id encoded: an id carrying `/` or `?` would otherwise name another route. */
117
+ getIdPaths(opts) {
118
+ return [this.resource, encodeURIComponent(String(opts.id))];
119
+ }
120
+ /** The IGNIS bulk routes answer an empty `where` with a 400; refused here before a request is spent. */
121
+ assertBulkWhere(opts) {
122
+ const { method, where } = opts;
123
+ if (!where || Object.keys(where).length === 0) {
124
+ throw (0, core_1.getError)({
125
+ statusCode: common_1.HTTP.ResultCodes.RS_4.BadRequest,
126
+ message: `[${this.resource}][${method}] where is required for a bulk write | The IGNIS bulk routes refuse an empty where, and force cannot cross HTTP`,
127
+ });
128
+ }
129
+ return where;
130
+ }
131
+ /** The server always answers the rows; `shouldReturn: false` drops them here, as a database repository would not fetch them. */
132
+ toWriteResult(opts) {
133
+ const { result, options } = opts;
134
+ return { count: result.count, data: options?.shouldReturn === false ? null : result.data };
135
+ }
136
+ /** POST `/<resource>`. */
137
+ async create(opts) {
138
+ const result = await this.dataSource.write({
139
+ paths: [this.resource],
140
+ method: common_1.HTTP.Methods.POST,
141
+ body: opts.data,
142
+ });
143
+ return { count: result.count, data: result.data };
144
+ }
145
+ /** PATCH `/<resource>/<id>`. */
146
+ async updateById(opts) {
147
+ const result = await this.dataSource.write({
148
+ paths: this.getIdPaths({ id: opts.id }),
149
+ method: common_1.HTTP.Methods.PATCH,
150
+ body: opts.data,
151
+ });
152
+ return this.toWriteResult({ result, options: opts.options });
153
+ }
154
+ /** PATCH `/<resource>`, the `where` in the body beside the data - a long id list outgrows a URL. */
155
+ async updateAll(opts) {
156
+ return this.patchWhere({ ...opts, method: 'updateAll' });
157
+ }
158
+ /** Alias for `updateAll`. */
159
+ async updateBy(opts) {
160
+ return this.patchWhere({ ...opts, method: 'updateBy' });
161
+ }
162
+ async patchWhere(opts) {
163
+ const where = this.assertBulkWhere({ method: opts.method, where: opts.where });
164
+ const result = await this.dataSource.write({
165
+ paths: [this.resource],
166
+ method: common_1.HTTP.Methods.PATCH,
167
+ body: { ...opts.data, where },
168
+ });
169
+ return this.toWriteResult({ result, options: opts.options });
170
+ }
171
+ /** DELETE `/<resource>/<id>`. */
172
+ async deleteById(opts) {
173
+ const result = await this.dataSource.write({
174
+ paths: this.getIdPaths({ id: opts.id }),
175
+ method: common_1.HTTP.Methods.DELETE,
176
+ });
177
+ return this.toWriteResult({ result, options: opts.options });
178
+ }
179
+ /** DELETE `/<resource>`, the `where` in the body. */
180
+ async deleteAll(opts) {
181
+ return this.deleteWhere({ ...opts, method: 'deleteAll' });
182
+ }
183
+ /** Alias for `deleteAll`. */
184
+ async deleteBy(opts) {
185
+ return this.deleteWhere({ ...opts, method: 'deleteBy' });
186
+ }
187
+ async deleteWhere(opts) {
188
+ const where = this.assertBulkWhere({ method: opts.method, where: opts.where });
189
+ const result = await this.dataSource.write({
190
+ paths: [this.resource],
191
+ method: common_1.HTTP.Methods.DELETE,
192
+ body: { where },
193
+ });
194
+ return this.toWriteResult({ result, options: opts.options });
195
+ }
112
196
  }
113
197
  exports.HttpRepository = HttpRepository;
114
198
  //# sourceMappingURL=repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/http/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../src/http/repository.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AACrD,sDAAuD;AAWvD,iEAAkF;AAIlF,wDAAwD;AACxD,MAAa,kBAAmB,SAAQ,2BAAc;IACpD,SAAS,CAAc,KAA4B;QACjD,OAAO,EAAO,CAAC;IACjB,CAAC;CACF;AAJD,gDAIC;AAED;;;;GAIG;AACH,MAAa,cAAc;IAUzB,YAAY,IAA0E;QACpF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,0FAA0F;IAChF,oBAAoB,CAAC,IAI9B;QACC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChD,MAAM,OAAO,GAAG,YAAY;YAC1B,CAAC,CAAC,kBAAkB,YAAY,wGAAwG;YACxI,CAAC,CAAC,QAAQ,CAAC;QAEb,OAAO,IAAA,eAAQ,EAAC;YACd,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;YACrD,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,KAAK,OAAO,EAAE;SACpD,CAAC,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,KAAK,CAAC,KAAK,CAAC,IAAwC;QAClD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAoB;gBACvD,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;gBACtC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;gBAC5B,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAA,eAAQ,EAAC;oBACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB;oBACrD,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,wGAAwG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;iBAC3K,CAAC,CAAC;YACL,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAW;YAC9C,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,oBAAoB,CAAC;gBAC9B,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,QAAQ,EAAE,oHAAoH,EAAE,CAAC,UAAU,wEAAwE;aACpN,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAwC;QACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAW;YAC9C,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;SACnD,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;IAC3B,CAAC;IAOD,KAAK,CAAC,IAAI,CAAQ,IAGjB;QACC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAW;YAC9C,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAE3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,oBAAoB,CAAC;gBAC9B,MAAM,EAAE,MAAM;gBACd,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,QAAQ,EAAE,2GAA2G,IAAI,CAAC,MAAM,gBAAgB;aACjJ,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,IAAI;YACJ,4EAA4E;YAC5E,KAAK,EAAE,IAAA,2BAAc,EAAC;gBACpB,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI;gBAClC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM;gBAC3B,UAAU,EAAE,IAAI,CAAC,MAAM;gBACvB,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC;aACrB,CAAC;SACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAQ,IAA2C;QAC9D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAgB,EAAE,CAAC,CAAC;QAC9F,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAQ,IAIrB;QACC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI;YACvC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACvC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;YACpC,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;IACzB,CAAC;IAED,uGAAuG;IAC7F,UAAU,CAAC,IAA6B;QAChD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,wGAAwG;IAC9F,eAAe,CAAC,IAA2C;QACnE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAE/B,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAA,eAAQ,EAAC;gBACb,UAAU,EAAE,aAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU;gBAC5C,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,iHAAiH;aACvJ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gIAAgI;IACtH,aAAa,CAAI,IAG1B;QACC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC7F,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,MAAM,CAAQ,IAGnB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAI;YAC5C,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,MAAM,EAAE,aAAI,CAAC,OAAO,CAAC,IAAI;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IACpD,CAAC;IAYD,gCAAgC;IAChC,KAAK,CAAC,UAAU,CAAQ,IAIvB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAI;YAC5C,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,EAAE,aAAI,CAAC,OAAO,CAAC,KAAK;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAYD,oGAAoG;IACpG,KAAK,CAAC,SAAS,CAAC,IAIf;QACC,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC3D,CAAC;IAYD,6BAA6B;IAC7B,KAAK,CAAC,QAAQ,CAAC,IAId;QACC,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,CAAC;IAES,KAAK,CAAC,UAAU,CAAC,IAK1B;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAW;YACnD,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,MAAM,EAAE,aAAI,CAAC,OAAO,CAAC,KAAK;YAC1B,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;SAC9B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAUD,iCAAiC;IACjC,KAAK,CAAC,UAAU,CAAQ,IAGvB;QACC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAI;YAC5C,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,EAAE,aAAI,CAAC,OAAO,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;IAUD,qDAAqD;IACrD,KAAK,CAAC,SAAS,CAAC,IAGf;QACC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;IAUD,6BAA6B;IAC7B,KAAK,CAAC,QAAQ,CAAC,IAGd;QACC,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAES,KAAK,CAAC,WAAW,CAAC,IAI3B;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAE/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAW;YACnD,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;YACtB,MAAM,EAAE,aAAI,CAAC,OAAO,CAAC,MAAM;YAC3B,IAAI,EAAE,EAAE,KAAK,EAAE;SAChB,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AA5UD,wCA4UC"}
@@ -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":";;;AAAA,wDAAyD;AACzD,wDAAuF;AAGvF,sDAAuD;AAEvD,kGAAkG;AAClG,4GAA4G;AAC5G,kGAAkG;AAClG,oGAAoG;AACpG,mEAAmE;AACnE,oFAA0F;AAE1F,yCAA0D;AAE1D,yDAAqD;AAErD,mEAA+D;AAE/D,wSAAwS;AACxS,MAAM,qBACJ,SAAQ,4CAAoB;IAK5B,sLAAsL;IAC7K,WAAW,CAA+B;IAC1C,WAAW,CAAoC;IAExD,YAAY,IAGX;QACC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IAC7C,CAAC;IAEkB,UAAU,CAAC,IAA8B;QAC1D,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAEkB,OAAO;QACxB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEkB,WAAW,CAAC,IAA8C;QAC3E,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,WAAW,CAAC,MAAM;aACpB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;aACb,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;IAEkB,sBAAsB;QACvC,IAAI,CAAC,WAAW,CAAC,MAAM;aACpB,GAAG,CAAC,UAAU,CAAC;aACf,KAAK,CAAC,uEAAuE,CAAC,CAAC;IACpF,CAAC;CACF;AAED,+EAA+E;AAC/E,MAAsB,wBAMpB,SAAQ,uCAAuF;IAC/F,YAAY,IAAyD;QACnE,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,wEAAwE;IAC/D,SAAS;QAChB,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,cAAc;QACtB,MAAM,QAAQ,GAAG,+BAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAE9E,IAAI,QAAQ,EAAE,aAAa,KAAK,KAAK,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7F,OAAO,EAAY,CAAC;QACtB,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC;YACjD,UAAU,EAAE,IAAI,CAAC,WAAkC;SACpD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,MAAM;aACR,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;aAC7B,KAAK,CACJ,uDAAuD,EACvD,IAAI,CAAC,IAAI,EACT,MAAM,CAAC,MAAM,EACb,MAAM,CACP,CAAC;QAEJ,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QAE/C,4FAA4F;QAC5F,6FAA6F;QAC7F,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,kCAAe,CAAC,OAAO,CAAC;YACpD,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;YACjC,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,kCAAe,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/F,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAA,eAAQ,EAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,kCAAe,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,uIAAuI;QACvI,OAAO,UAAoB,CAAC;IAC9B,CAAC;IAED,qBAAqB;QACnB,MAAM,QAAQ,GAAG,+BAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,QAAQ,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,WAAkC,EAAE,CAAC,CAAC;IACrF,CAAC;IAEQ,eAAe;QACtB,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAC7B,IAAoC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;YAE5F,oLAAoL;YACpL,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAI,qBAAqB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;CAIF;AAtGD,4DAsGC;AAED,mGAAmG;AACnG,mGAAmG;AACnG,0EAA0E;AAC1E,sCAAuB,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,wBAAmC,EAAE,CAAC,CAAC"}
@@ -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":";;;AACA,sDAAuD;AAGvD,MAAa,iBAAiB;aACZ,WAAM,GAAG,QAAQ,CAAC;aAClB,cAAS,GAAG,WAAW,CAAC;aACxB,gBAAW,GAAG,aAAa,CAAC;aAC5B,WAAM,GAAG,QAAQ,CAAC;aAElB,eAAU,GAAG,IAAI,GAAG,CAAC;QACnC,IAAI,CAAC,MAAM;QACX,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,WAAW;QAChB,IAAI,CAAC,MAAM;KACZ,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAfH,8CAgBC;AAID,4KAA4K;AAC/J,QAAA,qBAAqB,GAAkB,MAAM,CAAC,GAAG,CAC5D,6CAA6C,CAC9C,CAAC;AAQF;;;;GAIG;AACH,MAAsB,oBAAoB;IAA1C;QAaE,0GAA0G;QAC1G,WAAM,GAAsB,iBAAiB,CAAC,MAAM,CAAC;QAerD,yFAAyF;QAChF,WAAM,GAAG,GAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,aAAQ,GAAG,GAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAqC5F,CAAC;aAnEyB,WAAM,GAAoB;QAChD,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,QAAQ;QACnB,UAAU,EAAE,iBAAiB,CAAC,SAAS;KACxC,AAJ6B,CAI5B;aAEsB,aAAQ,GAAoB;QAClD,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,UAAU;QACrB,UAAU,EAAE,iBAAiB,CAAC,WAAW;KAC1C,AAJ+B,CAI9B;IAEF,0GAA0G;IAC1G,MAAM,CAA+C;IAErD,6EAA6E;IAC7E,IAAI,CAAC,6BAAqB,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,CAAC;IAClD,CAAC;IAED,IAAc,cAAc;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IASS,OAAO,CAAC,KAA+B,IAAS,CAAC;IAEjD,WAAW,CAAC,KAA+C,IAAS,CAAC;IAErE,sBAAsB,KAAU,CAAC;IAEnC,KAAK,CAAC,GAAG,CAAC,IAA8B;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7C,gNAAgN;YAChN,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM,IAAI,GAAG,KAAK,oBAAoB,CAAC,QAAQ,EAAE,CAAC;gBACtF,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YAED,MAAM,IAAA,eAAQ,EAAC,EAAE,OAAO,EAAE,iBAAiB,GAAG,CAAC,IAAI,6BAA6B,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,8JAA8J;QAC9J,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC;QAE7B,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,CAAC;;AAnEH,oDAoEC"}
@@ -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":"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"}
@@ -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({