dynamo-document-builder 0.6.0 → 0.7.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 (310) hide show
  1. package/README.md +367 -0
  2. package/dist/attributes/attribute-map.cjs +52 -0
  3. package/dist/attributes/attribute-map.cjs.map +1 -1
  4. package/dist/attributes/attribute-map.d.ts +67 -0
  5. package/dist/attributes/attribute-map.mjs +52 -0
  6. package/dist/attributes/attribute-map.mjs.map +1 -1
  7. package/dist/commands/batch-get.cjs +43 -0
  8. package/dist/commands/batch-get.cjs.map +1 -1
  9. package/dist/commands/batch-get.d.ts +51 -3
  10. package/dist/commands/batch-get.mjs +44 -1
  11. package/dist/commands/batch-get.mjs.map +1 -1
  12. package/dist/commands/batch-projected-get.cjs +42 -0
  13. package/dist/commands/batch-projected-get.cjs.map +1 -1
  14. package/dist/commands/batch-projected-get.d.ts +56 -3
  15. package/dist/commands/batch-projected-get.mjs +42 -0
  16. package/dist/commands/batch-projected-get.mjs.map +1 -1
  17. package/dist/commands/batch-write.cjs +44 -0
  18. package/dist/commands/batch-write.cjs.map +1 -1
  19. package/dist/commands/batch-write.d.ts +54 -4
  20. package/dist/commands/batch-write.mjs +45 -1
  21. package/dist/commands/batch-write.mjs.map +1 -1
  22. package/dist/commands/condition-check.cjs +37 -0
  23. package/dist/commands/condition-check.cjs.map +1 -1
  24. package/dist/commands/condition-check.d.ts +45 -3
  25. package/dist/commands/condition-check.mjs +37 -0
  26. package/dist/commands/condition-check.mjs.map +1 -1
  27. package/dist/commands/conditional-delete.cjs +33 -0
  28. package/dist/commands/conditional-delete.cjs.map +1 -1
  29. package/dist/commands/conditional-delete.d.ts +46 -3
  30. package/dist/commands/conditional-delete.mjs +33 -0
  31. package/dist/commands/conditional-delete.mjs.map +1 -1
  32. package/dist/commands/conditional-put.cjs +34 -0
  33. package/dist/commands/conditional-put.cjs.map +1 -1
  34. package/dist/commands/conditional-put.d.ts +48 -4
  35. package/dist/commands/conditional-put.mjs +34 -0
  36. package/dist/commands/conditional-put.mjs.map +1 -1
  37. package/dist/commands/conditional-update.cjs +35 -0
  38. package/dist/commands/conditional-update.cjs.map +1 -1
  39. package/dist/commands/conditional-update.d.ts +48 -3
  40. package/dist/commands/conditional-update.mjs +35 -0
  41. package/dist/commands/conditional-update.mjs.map +1 -1
  42. package/dist/commands/delete.cjs +32 -0
  43. package/dist/commands/delete.cjs.map +1 -1
  44. package/dist/commands/delete.d.ts +44 -2
  45. package/dist/commands/delete.mjs +32 -0
  46. package/dist/commands/delete.mjs.map +1 -1
  47. package/dist/commands/get.cjs +33 -0
  48. package/dist/commands/get.cjs.map +1 -1
  49. package/dist/commands/get.d.ts +45 -2
  50. package/dist/commands/get.mjs +33 -0
  51. package/dist/commands/get.mjs.map +1 -1
  52. package/dist/commands/index.cjs +8 -0
  53. package/dist/commands/index.cjs.map +1 -1
  54. package/dist/commands/index.d.ts +160 -1
  55. package/dist/commands/index.mjs +4 -0
  56. package/dist/commands/index.mjs.map +1 -1
  57. package/dist/commands/projected-get.cjs +40 -0
  58. package/dist/commands/projected-get.cjs.map +1 -1
  59. package/dist/commands/projected-get.d.ts +54 -3
  60. package/dist/commands/projected-get.mjs +40 -0
  61. package/dist/commands/projected-get.mjs.map +1 -1
  62. package/dist/commands/projected-query.cjs +41 -0
  63. package/dist/commands/projected-query.cjs.map +1 -1
  64. package/dist/commands/projected-query.d.ts +56 -3
  65. package/dist/commands/projected-query.mjs +41 -0
  66. package/dist/commands/projected-query.mjs.map +1 -1
  67. package/dist/commands/projected-scan.cjs +41 -0
  68. package/dist/commands/projected-scan.cjs.map +1 -1
  69. package/dist/commands/projected-scan.d.ts +55 -3
  70. package/dist/commands/projected-scan.mjs +41 -0
  71. package/dist/commands/projected-scan.mjs.map +1 -1
  72. package/dist/commands/put.cjs +37 -0
  73. package/dist/commands/put.cjs.map +1 -1
  74. package/dist/commands/put.d.ts +50 -3
  75. package/dist/commands/put.mjs +37 -0
  76. package/dist/commands/put.mjs.map +1 -1
  77. package/dist/commands/query.cjs +35 -0
  78. package/dist/commands/query.cjs.map +1 -1
  79. package/dist/commands/query.d.ts +48 -3
  80. package/dist/commands/query.mjs +35 -0
  81. package/dist/commands/query.mjs.map +1 -1
  82. package/dist/commands/scan.cjs +33 -0
  83. package/dist/commands/scan.cjs.map +1 -1
  84. package/dist/commands/scan.d.ts +46 -3
  85. package/dist/commands/scan.mjs +33 -0
  86. package/dist/commands/scan.mjs.map +1 -1
  87. package/dist/commands/table-batch-get.cjs +123 -0
  88. package/dist/commands/table-batch-get.cjs.map +1 -0
  89. package/dist/commands/table-batch-get.d.ts +86 -0
  90. package/dist/commands/table-batch-get.mjs +121 -0
  91. package/dist/commands/table-batch-get.mjs.map +1 -0
  92. package/dist/commands/table-batch-write.cjs +119 -0
  93. package/dist/commands/table-batch-write.cjs.map +1 -0
  94. package/dist/commands/table-batch-write.d.ts +79 -0
  95. package/dist/commands/table-batch-write.mjs +117 -0
  96. package/dist/commands/table-batch-write.mjs.map +1 -0
  97. package/dist/commands/table-transact-get.cjs +73 -0
  98. package/dist/commands/table-transact-get.cjs.map +1 -0
  99. package/dist/commands/table-transact-get.d.ts +60 -0
  100. package/dist/commands/table-transact-get.mjs +71 -0
  101. package/dist/commands/table-transact-get.mjs.map +1 -0
  102. package/dist/commands/table-transact-write.cjs +76 -0
  103. package/dist/commands/table-transact-write.cjs.map +1 -0
  104. package/dist/commands/table-transact-write.d.ts +51 -0
  105. package/dist/commands/table-transact-write.mjs +74 -0
  106. package/dist/commands/table-transact-write.mjs.map +1 -0
  107. package/dist/commands/transact-get.cjs +38 -0
  108. package/dist/commands/transact-get.cjs.map +1 -1
  109. package/dist/commands/transact-get.d.ts +49 -3
  110. package/dist/commands/transact-get.mjs +39 -1
  111. package/dist/commands/transact-get.mjs.map +1 -1
  112. package/dist/commands/transact-write.cjs +37 -0
  113. package/dist/commands/transact-write.cjs.map +1 -1
  114. package/dist/commands/transact-write.d.ts +46 -1
  115. package/dist/commands/transact-write.mjs +37 -0
  116. package/dist/commands/transact-write.mjs.map +1 -1
  117. package/dist/commands/update.cjs +37 -0
  118. package/dist/commands/update.cjs.map +1 -1
  119. package/dist/commands/update.d.ts +50 -3
  120. package/dist/commands/update.mjs +37 -0
  121. package/dist/commands/update.mjs.map +1 -1
  122. package/dist/conditions/and.cjs +3 -0
  123. package/dist/conditions/and.cjs.map +1 -1
  124. package/dist/conditions/and.d.ts +4 -1
  125. package/dist/conditions/and.mjs +3 -0
  126. package/dist/conditions/and.mjs.map +1 -1
  127. package/dist/conditions/begins-with.cjs +3 -0
  128. package/dist/conditions/begins-with.cjs.map +1 -1
  129. package/dist/conditions/begins-with.d.ts +4 -1
  130. package/dist/conditions/begins-with.mjs +3 -0
  131. package/dist/conditions/begins-with.mjs.map +1 -1
  132. package/dist/conditions/between.cjs +3 -0
  133. package/dist/conditions/between.cjs.map +1 -1
  134. package/dist/conditions/between.d.ts +4 -1
  135. package/dist/conditions/between.mjs +3 -0
  136. package/dist/conditions/between.mjs.map +1 -1
  137. package/dist/conditions/condition-parser.d.ts +1 -1
  138. package/dist/conditions/contains.cjs +3 -0
  139. package/dist/conditions/contains.cjs.map +1 -1
  140. package/dist/conditions/contains.d.ts +4 -1
  141. package/dist/conditions/contains.mjs +3 -0
  142. package/dist/conditions/contains.mjs.map +1 -1
  143. package/dist/conditions/equals.cjs +3 -0
  144. package/dist/conditions/equals.cjs.map +1 -1
  145. package/dist/conditions/equals.d.ts +4 -1
  146. package/dist/conditions/equals.mjs +3 -0
  147. package/dist/conditions/equals.mjs.map +1 -1
  148. package/dist/conditions/exists.cjs +3 -0
  149. package/dist/conditions/exists.cjs.map +1 -1
  150. package/dist/conditions/exists.d.ts +4 -1
  151. package/dist/conditions/exists.mjs +3 -0
  152. package/dist/conditions/exists.mjs.map +1 -1
  153. package/dist/conditions/greater-than-or-equal.cjs +3 -0
  154. package/dist/conditions/greater-than-or-equal.cjs.map +1 -1
  155. package/dist/conditions/greater-than-or-equal.d.ts +4 -1
  156. package/dist/conditions/greater-than-or-equal.mjs +3 -0
  157. package/dist/conditions/greater-than-or-equal.mjs.map +1 -1
  158. package/dist/conditions/greater-than.cjs +3 -0
  159. package/dist/conditions/greater-than.cjs.map +1 -1
  160. package/dist/conditions/greater-than.d.ts +4 -1
  161. package/dist/conditions/greater-than.mjs +3 -0
  162. package/dist/conditions/greater-than.mjs.map +1 -1
  163. package/dist/conditions/index.cjs +2 -2
  164. package/dist/conditions/index.d.ts +185 -2
  165. package/dist/conditions/index.mjs +1 -1
  166. package/dist/conditions/is-in.cjs +3 -0
  167. package/dist/conditions/is-in.cjs.map +1 -1
  168. package/dist/conditions/is-in.d.ts +4 -1
  169. package/dist/conditions/is-in.mjs +3 -0
  170. package/dist/conditions/is-in.mjs.map +1 -1
  171. package/dist/conditions/less-than-or-equal.cjs +3 -0
  172. package/dist/conditions/less-than-or-equal.cjs.map +1 -1
  173. package/dist/conditions/less-than-or-equal.d.ts +4 -1
  174. package/dist/conditions/less-than-or-equal.mjs +3 -0
  175. package/dist/conditions/less-than-or-equal.mjs.map +1 -1
  176. package/dist/conditions/less-than.cjs +3 -0
  177. package/dist/conditions/less-than.cjs.map +1 -1
  178. package/dist/conditions/less-than.d.ts +4 -1
  179. package/dist/conditions/less-than.mjs +3 -0
  180. package/dist/conditions/less-than.mjs.map +1 -1
  181. package/dist/conditions/not-equals.cjs +3 -0
  182. package/dist/conditions/not-equals.cjs.map +1 -1
  183. package/dist/conditions/not-equals.d.ts +4 -1
  184. package/dist/conditions/not-equals.mjs +3 -0
  185. package/dist/conditions/not-equals.mjs.map +1 -1
  186. package/dist/conditions/not-exists.cjs +3 -0
  187. package/dist/conditions/not-exists.cjs.map +1 -1
  188. package/dist/conditions/not-exists.d.ts +4 -1
  189. package/dist/conditions/not-exists.mjs +3 -0
  190. package/dist/conditions/not-exists.mjs.map +1 -1
  191. package/dist/conditions/not.cjs +3 -0
  192. package/dist/conditions/not.cjs.map +1 -1
  193. package/dist/conditions/not.d.ts +4 -1
  194. package/dist/conditions/not.mjs +3 -0
  195. package/dist/conditions/not.mjs.map +1 -1
  196. package/dist/conditions/or.cjs +3 -0
  197. package/dist/conditions/or.cjs.map +1 -1
  198. package/dist/conditions/or.d.ts +4 -1
  199. package/dist/conditions/or.mjs +3 -0
  200. package/dist/conditions/or.mjs.map +1 -1
  201. package/dist/conditions/size.cjs +3 -0
  202. package/dist/conditions/size.cjs.map +1 -1
  203. package/dist/conditions/size.d.ts +4 -1
  204. package/dist/conditions/size.mjs +3 -0
  205. package/dist/conditions/size.mjs.map +1 -1
  206. package/dist/conditions/type-is.cjs +3 -0
  207. package/dist/conditions/type-is.cjs.map +1 -1
  208. package/dist/conditions/type-is.d.ts +4 -1
  209. package/dist/conditions/type-is.mjs +3 -0
  210. package/dist/conditions/type-is.mjs.map +1 -1
  211. package/dist/core/entity.cjs +171 -0
  212. package/dist/core/entity.cjs.map +1 -1
  213. package/dist/core/entity.d.ts +99 -4
  214. package/dist/core/entity.mjs +171 -0
  215. package/dist/core/entity.mjs.map +1 -1
  216. package/dist/core/index.d.ts +139 -2
  217. package/dist/core/key.cjs +1 -1
  218. package/dist/core/key.cjs.map +1 -1
  219. package/dist/core/key.d.ts +26 -2
  220. package/dist/core/key.mjs +1 -1
  221. package/dist/core/key.mjs.map +1 -1
  222. package/dist/core/table.cjs +30 -0
  223. package/dist/core/table.cjs.map +1 -1
  224. package/dist/core/table.d.ts +40 -1
  225. package/dist/core/table.mjs +31 -1
  226. package/dist/core/table.mjs.map +1 -1
  227. package/dist/errors.cjs +3 -0
  228. package/dist/errors.cjs.map +1 -1
  229. package/dist/errors.d.ts +3 -0
  230. package/dist/errors.mjs +3 -0
  231. package/dist/errors.mjs.map +1 -1
  232. package/dist/index.cjs +10 -2
  233. package/dist/index.cjs.map +1 -1
  234. package/dist/index.d.ts +11 -7
  235. package/dist/index.mjs +5 -1
  236. package/dist/index.mjs.map +1 -1
  237. package/dist/projections/index.d.ts +7 -1
  238. package/dist/projections/projection-parser.d.ts +1 -1
  239. package/dist/updates/add-to-set.cjs +5 -0
  240. package/dist/updates/add-to-set.cjs.map +1 -1
  241. package/dist/updates/add-to-set.d.ts +6 -1
  242. package/dist/updates/add-to-set.mjs +5 -0
  243. package/dist/updates/add-to-set.mjs.map +1 -1
  244. package/dist/updates/add.cjs +5 -0
  245. package/dist/updates/add.cjs.map +1 -1
  246. package/dist/updates/add.d.ts +6 -1
  247. package/dist/updates/add.mjs +5 -0
  248. package/dist/updates/add.mjs.map +1 -1
  249. package/dist/updates/append.cjs +5 -0
  250. package/dist/updates/append.cjs.map +1 -1
  251. package/dist/updates/append.d.ts +6 -1
  252. package/dist/updates/append.mjs +5 -0
  253. package/dist/updates/append.mjs.map +1 -1
  254. package/dist/updates/index.d.ts +78 -1
  255. package/dist/updates/prepend.cjs +5 -0
  256. package/dist/updates/prepend.cjs.map +1 -1
  257. package/dist/updates/prepend.d.ts +6 -1
  258. package/dist/updates/prepend.mjs +5 -0
  259. package/dist/updates/prepend.mjs.map +1 -1
  260. package/dist/updates/ref.cjs +6 -0
  261. package/dist/updates/ref.cjs.map +1 -1
  262. package/dist/updates/ref.d.ts +7 -1
  263. package/dist/updates/ref.mjs +6 -0
  264. package/dist/updates/ref.mjs.map +1 -1
  265. package/dist/updates/remove-from-set.cjs +5 -0
  266. package/dist/updates/remove-from-set.cjs.map +1 -1
  267. package/dist/updates/remove-from-set.d.ts +6 -1
  268. package/dist/updates/remove-from-set.mjs +5 -0
  269. package/dist/updates/remove-from-set.mjs.map +1 -1
  270. package/dist/updates/remove.cjs +3 -0
  271. package/dist/updates/remove.cjs.map +1 -1
  272. package/dist/updates/remove.d.ts +4 -1
  273. package/dist/updates/remove.mjs +3 -0
  274. package/dist/updates/remove.mjs.map +1 -1
  275. package/dist/updates/subtract.cjs +5 -0
  276. package/dist/updates/subtract.cjs.map +1 -1
  277. package/dist/updates/subtract.d.ts +6 -1
  278. package/dist/updates/subtract.mjs +5 -0
  279. package/dist/updates/subtract.mjs.map +1 -1
  280. package/dist/updates/update-parser.cjs +10 -0
  281. package/dist/updates/update-parser.cjs.map +1 -1
  282. package/dist/updates/update-parser.d.ts +17 -1
  283. package/dist/updates/update-parser.mjs +10 -0
  284. package/dist/updates/update-parser.mjs.map +1 -1
  285. package/package.json +2 -1
  286. package/dist/commands/base-command.cjs +0 -3
  287. package/dist/commands/base-command.cjs.map +0 -1
  288. package/dist/commands/base-command.d.ts +0 -27
  289. package/dist/commands/base-command.mjs +0 -2
  290. package/dist/commands/base-command.mjs.map +0 -1
  291. package/dist/conditions/condition-types.cjs +0 -3
  292. package/dist/conditions/condition-types.cjs.map +0 -1
  293. package/dist/conditions/condition-types.d.ts +0 -95
  294. package/dist/conditions/condition-types.mjs +0 -2
  295. package/dist/conditions/condition-types.mjs.map +0 -1
  296. package/dist/core/core-types.cjs +0 -3
  297. package/dist/core/core-types.cjs.map +0 -1
  298. package/dist/core/core-types.d.ts +0 -44
  299. package/dist/core/core-types.mjs +0 -2
  300. package/dist/core/core-types.mjs.map +0 -1
  301. package/dist/projections/projection-types.cjs +0 -3
  302. package/dist/projections/projection-types.cjs.map +0 -1
  303. package/dist/projections/projection-types.d.ts +0 -3
  304. package/dist/projections/projection-types.mjs +0 -2
  305. package/dist/projections/projection-types.mjs.map +0 -1
  306. package/dist/updates/update-types.cjs +0 -3
  307. package/dist/updates/update-types.cjs.map +0 -1
  308. package/dist/updates/update-types.d.ts +0 -45
  309. package/dist/updates/update-types.mjs +0 -2
  310. package/dist/updates/update-types.mjs.map +0 -1
@@ -0,0 +1,117 @@
1
+ import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../node_modules/tslib/tslib.es6.mjs';
2
+ import { DocumentBuilderError } from '../errors.mjs';
3
+ import { BatchWriteCommand } from '@aws-sdk/lib-dynamodb';
4
+ import { BATCH_WRITE_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
5
+ import pMap from 'p-map';
6
+
7
+ var _TableBatchWrite_config;
8
+ /**
9
+ * Table-level command to perform a batch write across multiple entity types.
10
+ *
11
+ * Unlike `BatchWrite` which operates on a single entity type, this command accepts
12
+ * write operations from multiple entities via `entity.prepare(new BatchWrite({ ... }))`
13
+ * and executes them in a single DynamoDB BatchWrite request.
14
+ *
15
+ * Unprocessed puts and deletes are returned per entity in a tuple matching the input order.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const { unprocessedPuts, unprocessedDeletes } = await table.send(new TableBatchWrite({
20
+ * writes: [
21
+ * userEntity.prepare(new BatchWrite({
22
+ * items: [{ userId: 'u1', name: 'Alice' }],
23
+ * deletes: [{ userId: 'u2', name: 'Bob' }],
24
+ * })),
25
+ * orderEntity.prepare(new BatchWrite({
26
+ * items: [{ orderId: 'o1', status: 'pending', total: 99 }],
27
+ * })),
28
+ * ],
29
+ * }))
30
+ *
31
+ * const [userUnprocessedPuts, orderUnprocessedPuts] = unprocessedPuts
32
+ * const [userUnprocessedDeletes, orderUnprocessedDeletes] = unprocessedDeletes
33
+ * ```
34
+ */
35
+ // biome-ignore lint/suspicious/noExplicitAny: writes span multiple heterogeneous entity schemas
36
+ class TableBatchWrite {
37
+ constructor(config) {
38
+ _TableBatchWrite_config.set(this, void 0);
39
+ __classPrivateFieldSet(this, _TableBatchWrite_config, config, "f");
40
+ }
41
+ execute(table) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ var _a, _b, _c, _d, _e, _f, _g;
44
+ for (const group of __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes) {
45
+ if (group.entity.table !== table) {
46
+ throw new DocumentBuilderError(`Entity table "${group.entity.table.tableName}" does not match the executing table "${table.tableName}"`);
47
+ }
48
+ }
49
+ // Build all requests across all entity groups, preserving group index for unprocessed mapping
50
+ // biome-ignore lint/suspicious/noExplicitAny: heterogeneous group schemas require any
51
+ const allRequests = (yield pMap(__classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes, (group) => {
52
+ var _a, _b;
53
+ return group.buildRequests((_a = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").skipValidation) !== null && _a !== void 0 ? _a : false, (_b = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal);
54
+ }, {
55
+ concurrency: BATCH_WRITE_VALIDATION_CONCURRENCY,
56
+ signal: (_a = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
57
+ })).flat();
58
+ const batchWrite = new BatchWriteCommand({
59
+ RequestItems: {
60
+ [table.tableName]: allRequests,
61
+ },
62
+ ReturnConsumedCapacity: __classPrivateFieldGet(this, _TableBatchWrite_config, "f").returnConsumedCapacity,
63
+ ReturnItemCollectionMetrics: __classPrivateFieldGet(this, _TableBatchWrite_config, "f").returnItemCollectionMetrics,
64
+ });
65
+ const result = yield table.documentClient.send(batchWrite, {
66
+ abortSignal: (_b = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
67
+ requestTimeout: __classPrivateFieldGet(this, _TableBatchWrite_config, "f").timeoutMs,
68
+ });
69
+ const unprocessedItems = (_d = (_c = result.UnprocessedItems) === null || _c === void 0 ? void 0 : _c[table.tableName]) !== null && _d !== void 0 ? _d : [];
70
+ // Map unprocessed items back to their respective entity groups
71
+ const unprocessedPuts = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes.map(() => undefined);
72
+ const unprocessedDeletes = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes.map(() => undefined);
73
+ for (const unprocessedItem of unprocessedItems) {
74
+ if ((_e = unprocessedItem.PutRequest) === null || _e === void 0 ? void 0 : _e.Item) {
75
+ const item = unprocessedItem.PutRequest.Item;
76
+ for (let i = 0; i < __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes.length; i++) {
77
+ // biome-ignore lint/suspicious/noExplicitAny: heterogeneous group schemas require any
78
+ const group = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes[i];
79
+ const matched = group.matchUnprocessedPut(item);
80
+ if (matched !== undefined) {
81
+ if (!unprocessedPuts[i])
82
+ unprocessedPuts[i] = [];
83
+ unprocessedPuts[i].push(matched);
84
+ break;
85
+ }
86
+ }
87
+ }
88
+ else if ((_f = unprocessedItem.DeleteRequest) === null || _f === void 0 ? void 0 : _f.Key) {
89
+ // biome-ignore lint/suspicious/noExplicitAny: DynamoDB SDK returns untyped key objects
90
+ const key = unprocessedItem.DeleteRequest.Key;
91
+ for (let i = 0; i < __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes.length; i++) {
92
+ // biome-ignore lint/suspicious/noExplicitAny: heterogeneous group schemas require any
93
+ const group = __classPrivateFieldGet(this, _TableBatchWrite_config, "f").writes[i];
94
+ const matched = group.matchUnprocessedDelete(key);
95
+ if (matched !== undefined) {
96
+ if (!unprocessedDeletes[i])
97
+ unprocessedDeletes[i] = [];
98
+ unprocessedDeletes[i].push(matched);
99
+ break;
100
+ }
101
+ }
102
+ }
103
+ }
104
+ return {
105
+ responseMetadata: result.$metadata,
106
+ consumedCapacity: (_g = result.ConsumedCapacity) === null || _g === void 0 ? void 0 : _g[0],
107
+ itemCollectionMetrics: result.ItemCollectionMetrics,
108
+ unprocessedPuts: unprocessedPuts,
109
+ unprocessedDeletes: unprocessedDeletes,
110
+ };
111
+ });
112
+ }
113
+ }
114
+ _TableBatchWrite_config = new WeakMap();
115
+
116
+ export { TableBatchWrite };
117
+ //# sourceMappingURL=table-batch-write.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-batch-write.mjs","sources":["../../src/commands/table-batch-write.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
4
+ var errors = require('../errors.cjs');
5
+ var libDynamodb = require('@aws-sdk/lib-dynamodb');
6
+
7
+ var _TableTransactGet_config;
8
+ /**
9
+ * Table-level command to perform a transactional read across multiple entity types.
10
+ *
11
+ * Unlike `TransactGet` which operates on a single entity type, this command accepts
12
+ * get operations from multiple entities via `entity.prepare(new TransactGet({ keys: [...] }))`
13
+ * and returns results grouped by entity in a tuple structure.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const { items } = await table.send(new TableTransactGet({
18
+ * gets: [
19
+ * userEntity.prepare(new TransactGet({ keys: [{ userId: 'u1' }] })),
20
+ * orderEntity.prepare(new TransactGet({ keys: [{ orderId: 'o1' }, { orderId: 'o2' }] })),
21
+ * ],
22
+ * }))
23
+ *
24
+ * const [users, orders] = items
25
+ * // users: (User | undefined)[]
26
+ * // orders: (Order | undefined)[]
27
+ * ```
28
+ */
29
+ class TableTransactGet {
30
+ constructor(config) {
31
+ _TableTransactGet_config.set(this, void 0);
32
+ tslib_es6.__classPrivateFieldSet(this, _TableTransactGet_config, config, "f");
33
+ }
34
+ execute(table) {
35
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
36
+ var _a, _b, _c, _d;
37
+ for (const group of tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").gets) {
38
+ if (group.entity.table !== table) {
39
+ throw new errors.DocumentBuilderError(`Entity table "${group.entity.table.tableName}" does not match the executing table "${table.tableName}"`);
40
+ }
41
+ }
42
+ const transactItems = tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").gets.flatMap(group => group.keys.map(key => ({ Get: key })));
43
+ const transactGet = new libDynamodb.TransactGetCommand({
44
+ TransactItems: transactItems,
45
+ ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").returnConsumedCapacity,
46
+ });
47
+ const result = yield table.documentClient.send(transactGet, {
48
+ abortSignal: (_a = tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
49
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").timeoutMs,
50
+ });
51
+ const rawResponses = (_b = result.Responses) !== null && _b !== void 0 ? _b : [];
52
+ // Split raw responses back into per-entity groups and parse each group
53
+ let offset = 0;
54
+ const groupedItems = [];
55
+ for (const group of tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").gets) {
56
+ const count = group.keys.length;
57
+ const slice = rawResponses.slice(offset, offset + count).map(r => r.Item);
58
+ const parsed = yield group.parseResults(slice, (_c = tslib_es6.__classPrivateFieldGet(this, _TableTransactGet_config, "f").skipValidation) !== null && _c !== void 0 ? _c : false);
59
+ groupedItems.push(parsed);
60
+ offset += count;
61
+ }
62
+ return {
63
+ items: groupedItems,
64
+ responseMetadata: result.$metadata,
65
+ consumedCapacity: (_d = result.ConsumedCapacity) === null || _d === void 0 ? void 0 : _d[0],
66
+ };
67
+ });
68
+ }
69
+ }
70
+ _TableTransactGet_config = new WeakMap();
71
+
72
+ exports.TableTransactGet = TableTransactGet;
73
+ //# sourceMappingURL=table-transact-get.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-transact-get.cjs","sources":["../../src/commands/table-transact-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","DocumentBuilderError","TransactGetCommand"],"mappings":";;;;;;;AAwCA;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CAAY,MAAoC,EAAA;QAFhD,wBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,wBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,KAAK,IAAIC,gCAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI,EAAE;gBACrC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,oBAAA,MAAM,IAAIC,2BAAoB,CAC5B,CAAA,cAAA,EAAiB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA,sCAAA,EAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACzG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAGD,gCAAA,CAAA,IAAI,gCAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAE/F,YAAA,MAAM,WAAW,GAAG,IAAIE,8BAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAEF,gCAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC1D,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,gCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;YAG3C,IAAI,MAAM,GAAG,CAAC;YACd,MAAM,YAAY,GAA0B,EAAE;YAE9C,KAAK,MAAM,KAAK,IAAIA,gCAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI,EAAE;AACrC,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;gBAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACzE,gBAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA,EAAA,GAAAA,gCAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC;AACpF,gBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;gBACzB,MAAM,IAAI,KAAK;YACjB;YAEA,OAAO;AACL,gBAAA,KAAK,EAAE,YAA2C;gBAClD,gBAAgB,EAAE,MAAM,CAAC,SAAS;AAClC,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC/C;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
@@ -0,0 +1,60 @@
1
+ import { PreparedGetTransaction, BaseConfig, BaseResult, TableCommand } from './index.js';
2
+ import { DynamoTable } from '../core/table.js';
3
+ import { EntitySchema } from '../core/index.js';
4
+ import { ZodObject } from 'zod/v4';
5
+
6
+ /**
7
+ * Extracts the result item type from a PreparedGetTransaction.
8
+ */
9
+ type ExtractSchema<T> = T extends PreparedGetTransaction<infer S> ? EntitySchema<S> : never;
10
+ /**
11
+ * Maps an array of PreparedGetTransactions to a tuple of their result item arrays.
12
+ */
13
+ type TableTransactGetItems<Gets extends PreparedGetTransaction<ZodObject>[]> = {
14
+ [K in keyof Gets]: Array<ExtractSchema<Gets[K]> | undefined>;
15
+ };
16
+ /**
17
+ * Configuration for the TableTransactGet command.
18
+ *
19
+ * @template Gets - Tuple of PreparedGetTransaction types, one per entity group.
20
+ */
21
+ type TableTransactGetConfig<Gets extends PreparedGetTransaction<ZodObject>[]> = BaseConfig & {
22
+ gets: [...Gets];
23
+ };
24
+ /**
25
+ * Result of the TableTransactGet command.
26
+ *
27
+ * @template Gets - Tuple of PreparedGetTransaction types, one per entity group.
28
+ */
29
+ type TableTransactGetResult<Gets extends PreparedGetTransaction<ZodObject>[]> = BaseResult & {
30
+ items: TableTransactGetItems<Gets>;
31
+ };
32
+ /**
33
+ * Table-level command to perform a transactional read across multiple entity types.
34
+ *
35
+ * Unlike `TransactGet` which operates on a single entity type, this command accepts
36
+ * get operations from multiple entities via `entity.prepare(new TransactGet({ keys: [...] }))`
37
+ * and returns results grouped by entity in a tuple structure.
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * const { items } = await table.send(new TableTransactGet({
42
+ * gets: [
43
+ * userEntity.prepare(new TransactGet({ keys: [{ userId: 'u1' }] })),
44
+ * orderEntity.prepare(new TransactGet({ keys: [{ orderId: 'o1' }, { orderId: 'o2' }] })),
45
+ * ],
46
+ * }))
47
+ *
48
+ * const [users, orders] = items
49
+ * // users: (User | undefined)[]
50
+ * // orders: (Order | undefined)[]
51
+ * ```
52
+ */
53
+ declare class TableTransactGet<Gets extends PreparedGetTransaction<ZodObject>[]> implements TableCommand<TableTransactGetResult<Gets>> {
54
+ #private;
55
+ constructor(config: TableTransactGetConfig<Gets>);
56
+ execute(table: DynamoTable): Promise<TableTransactGetResult<Gets>>;
57
+ }
58
+
59
+ export { TableTransactGet };
60
+ export type { TableTransactGetConfig, TableTransactGetResult };
@@ -0,0 +1,71 @@
1
+ import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../node_modules/tslib/tslib.es6.mjs';
2
+ import { DocumentBuilderError } from '../errors.mjs';
3
+ import { TransactGetCommand } from '@aws-sdk/lib-dynamodb';
4
+
5
+ var _TableTransactGet_config;
6
+ /**
7
+ * Table-level command to perform a transactional read across multiple entity types.
8
+ *
9
+ * Unlike `TransactGet` which operates on a single entity type, this command accepts
10
+ * get operations from multiple entities via `entity.prepare(new TransactGet({ keys: [...] }))`
11
+ * and returns results grouped by entity in a tuple structure.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const { items } = await table.send(new TableTransactGet({
16
+ * gets: [
17
+ * userEntity.prepare(new TransactGet({ keys: [{ userId: 'u1' }] })),
18
+ * orderEntity.prepare(new TransactGet({ keys: [{ orderId: 'o1' }, { orderId: 'o2' }] })),
19
+ * ],
20
+ * }))
21
+ *
22
+ * const [users, orders] = items
23
+ * // users: (User | undefined)[]
24
+ * // orders: (Order | undefined)[]
25
+ * ```
26
+ */
27
+ class TableTransactGet {
28
+ constructor(config) {
29
+ _TableTransactGet_config.set(this, void 0);
30
+ __classPrivateFieldSet(this, _TableTransactGet_config, config, "f");
31
+ }
32
+ execute(table) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ var _a, _b, _c, _d;
35
+ for (const group of __classPrivateFieldGet(this, _TableTransactGet_config, "f").gets) {
36
+ if (group.entity.table !== table) {
37
+ throw new DocumentBuilderError(`Entity table "${group.entity.table.tableName}" does not match the executing table "${table.tableName}"`);
38
+ }
39
+ }
40
+ const transactItems = __classPrivateFieldGet(this, _TableTransactGet_config, "f").gets.flatMap(group => group.keys.map(key => ({ Get: key })));
41
+ const transactGet = new TransactGetCommand({
42
+ TransactItems: transactItems,
43
+ ReturnConsumedCapacity: __classPrivateFieldGet(this, _TableTransactGet_config, "f").returnConsumedCapacity,
44
+ });
45
+ const result = yield table.documentClient.send(transactGet, {
46
+ abortSignal: (_a = __classPrivateFieldGet(this, _TableTransactGet_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
47
+ requestTimeout: __classPrivateFieldGet(this, _TableTransactGet_config, "f").timeoutMs,
48
+ });
49
+ const rawResponses = (_b = result.Responses) !== null && _b !== void 0 ? _b : [];
50
+ // Split raw responses back into per-entity groups and parse each group
51
+ let offset = 0;
52
+ const groupedItems = [];
53
+ for (const group of __classPrivateFieldGet(this, _TableTransactGet_config, "f").gets) {
54
+ const count = group.keys.length;
55
+ const slice = rawResponses.slice(offset, offset + count).map(r => r.Item);
56
+ const parsed = yield group.parseResults(slice, (_c = __classPrivateFieldGet(this, _TableTransactGet_config, "f").skipValidation) !== null && _c !== void 0 ? _c : false);
57
+ groupedItems.push(parsed);
58
+ offset += count;
59
+ }
60
+ return {
61
+ items: groupedItems,
62
+ responseMetadata: result.$metadata,
63
+ consumedCapacity: (_d = result.ConsumedCapacity) === null || _d === void 0 ? void 0 : _d[0],
64
+ };
65
+ });
66
+ }
67
+ }
68
+ _TableTransactGet_config = new WeakMap();
69
+
70
+ export { TableTransactGet };
71
+ //# sourceMappingURL=table-transact-get.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-transact-get.mjs","sources":["../../src/commands/table-transact-get.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAwCA;;;;;;;;;;;;;;;;;;;;AAoBG;MACU,gBAAgB,CAAA;AAK3B,IAAA,WAAA,CAAY,MAAoC,EAAA;QAFhD,wBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,KAAK,IAAI,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI,EAAE;gBACrC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,oBAAA,MAAM,IAAI,oBAAoB,CAC5B,CAAA,cAAA,EAAiB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAA,sCAAA,EAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACzG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,sBAAA,CAAA,IAAI,gCAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAE/F,YAAA,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC1D,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,gCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;;YAG3C,IAAI,MAAM,GAAG,CAAC;YACd,MAAM,YAAY,GAA0B,EAAE;YAE9C,KAAK,MAAM,KAAK,IAAI,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI,EAAE;AACrC,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;gBAC/B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;AACzE,gBAAA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,CAAA,EAAA,GAAA,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC;AACpF,gBAAA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;gBACzB,MAAM,IAAI,KAAK;YACjB;YAEA,OAAO;AACL,gBAAA,KAAK,EAAE,YAA2C;gBAClD,gBAAgB,EAAE,MAAM,CAAC,SAAS;AAClC,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC/C;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
4
+ var errors = require('../errors.cjs');
5
+ var libDynamodb = require('@aws-sdk/lib-dynamodb');
6
+ var internalConstants = require('../internal-constants.cjs');
7
+ var pMap = require('p-map');
8
+
9
+ var _TableTransactWrite_config;
10
+ /**
11
+ * Table-level command to perform an atomic write transaction across multiple entity types.
12
+ *
13
+ * Unlike `TransactWrite` which operates on a single entity type, this command accepts
14
+ * operations from multiple entities via `entity.prepare([...])` and executes them as
15
+ * a single all-or-nothing DynamoDB transaction.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * await table.send(new TableTransactWrite({
20
+ * transactions: [
21
+ * userEntity.prepare([
22
+ * new Put({ item: { userId: 'u1', name: 'Alice' } }),
23
+ * new Delete({ key: { userId: 'u2', name: 'Bob' } }),
24
+ * ]),
25
+ * orderEntity.prepare([
26
+ * new Update({ key: { orderId: 'o1' }, update: { status: 'shipped' } }),
27
+ * ]),
28
+ * ],
29
+ * }))
30
+ * ```
31
+ */
32
+ class TableTransactWrite {
33
+ constructor(config) {
34
+ _TableTransactWrite_config.set(this, void 0);
35
+ tslib_es6.__classPrivateFieldSet(this, _TableTransactWrite_config, config, "f");
36
+ }
37
+ execute(table) {
38
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
39
+ var _a, _b;
40
+ for (const { entity } of tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions) {
41
+ if (entity.table !== table) {
42
+ throw new errors.DocumentBuilderError(`Entity table "${entity.table.tableName}" does not match the executing table "${table.tableName}"`);
43
+ }
44
+ }
45
+ const transactItems = (yield pMap(tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions, ({ entity, writes }) => {
46
+ var _a;
47
+ return pMap(writes, write => write.prepareWriteTransaction(entity), {
48
+ concurrency: internalConstants.TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
49
+ signal: (_a = tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
50
+ });
51
+ }, {
52
+ concurrency: internalConstants.TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
53
+ signal: (_a = tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
54
+ })).flat();
55
+ const writeTransaction = new libDynamodb.TransactWriteCommand({
56
+ TransactItems: transactItems,
57
+ ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnConsumedCapacity,
58
+ ReturnItemCollectionMetrics: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnItemCollectionMetrics,
59
+ ClientRequestToken: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").idempotencyToken,
60
+ });
61
+ const result = yield table.documentClient.send(writeTransaction, {
62
+ abortSignal: (_b = tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
63
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _TableTransactWrite_config, "f").timeoutMs,
64
+ });
65
+ return {
66
+ responseMetadata: result.$metadata,
67
+ consumedCapacity: result.ConsumedCapacity,
68
+ itemCollectionMetrics: result.ItemCollectionMetrics,
69
+ };
70
+ });
71
+ }
72
+ }
73
+ _TableTransactWrite_config = new WeakMap();
74
+
75
+ exports.TableTransactWrite = TableTransactWrite;
76
+ //# sourceMappingURL=table-transact-write.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-transact-write.cjs","sources":["../../src/commands/table-transact-write.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","DocumentBuilderError","TRANSACTION_WRITE_VALIDATION_CONCURRENCY","TransactWriteCommand"],"mappings":";;;;;;;;;AAkCA;;;;;;;;;;;;;;;;;;;;;AAqBG;MACU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAY,MAAgC,EAAA;QAF5C,0BAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAIC,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EAAE;AAClD,gBAAA,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC1B,oBAAA,MAAM,IAAIC,2BAAoB,CAC5B,CAAA,cAAA,EAAiB,MAAM,CAAC,KAAK,CAAC,SAAS,yCAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACnG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,CACpB,MAAM,IAAI,CACRD,iCAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EACzB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuC,KAAI;;AAC1D,gBAAA,OAAA,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;AAC3D,oBAAA,WAAW,EAAEE,0DAAwC;oBACrD,MAAM,EAAE,MAAAF,gCAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,iBAAA,CAAC;aAAA,EACJ;AACE,gBAAA,WAAW,EAAEE,0DAAwC;gBACrD,MAAM,EAAE,MAAAF,gCAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,aAAA,CACF,EACD,IAAI,EAAE;AAER,YAAA,MAAM,gBAAgB,GAAG,IAAIG,gCAAoB,CAAC;AAChD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAEH,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAEA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACrE,gBAAA,kBAAkB,EAAEA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,gBAAgB;AAClD,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC/D,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,OAAO;gBACL,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;aACpD;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
@@ -0,0 +1,51 @@
1
+ import { BaseConfig, PreparedWriteTransaction, TableCommand } from './index.js';
2
+ import { DynamoTable } from '../core/table.js';
3
+ import { ReturnItemCollectionMetrics, ConsumedCapacity, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
4
+ import { ResponseMetadata } from '@aws-sdk/types';
5
+
6
+ /**
7
+ * Configuration for the TableTransactWrite command.
8
+ */
9
+ type TableTransactWriteConfig = BaseConfig & {
10
+ transactions: PreparedWriteTransaction<any>[];
11
+ idempotencyToken?: string;
12
+ returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
13
+ };
14
+ /**
15
+ * Result of the TableTransactWrite command.
16
+ */
17
+ type TableTransactWriteResult = {
18
+ responseMetadata?: ResponseMetadata;
19
+ consumedCapacity?: ConsumedCapacity[] | undefined;
20
+ itemCollectionMetrics?: ItemCollectionMetrics;
21
+ };
22
+ /**
23
+ * Table-level command to perform an atomic write transaction across multiple entity types.
24
+ *
25
+ * Unlike `TransactWrite` which operates on a single entity type, this command accepts
26
+ * operations from multiple entities via `entity.prepare([...])` and executes them as
27
+ * a single all-or-nothing DynamoDB transaction.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * await table.send(new TableTransactWrite({
32
+ * transactions: [
33
+ * userEntity.prepare([
34
+ * new Put({ item: { userId: 'u1', name: 'Alice' } }),
35
+ * new Delete({ key: { userId: 'u2', name: 'Bob' } }),
36
+ * ]),
37
+ * orderEntity.prepare([
38
+ * new Update({ key: { orderId: 'o1' }, update: { status: 'shipped' } }),
39
+ * ]),
40
+ * ],
41
+ * }))
42
+ * ```
43
+ */
44
+ declare class TableTransactWrite implements TableCommand<TableTransactWriteResult> {
45
+ #private;
46
+ constructor(config: TableTransactWriteConfig);
47
+ execute(table: DynamoTable): Promise<TableTransactWriteResult>;
48
+ }
49
+
50
+ export { TableTransactWrite };
51
+ export type { TableTransactWriteConfig, TableTransactWriteResult };
@@ -0,0 +1,74 @@
1
+ import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../node_modules/tslib/tslib.es6.mjs';
2
+ import { DocumentBuilderError } from '../errors.mjs';
3
+ import { TransactWriteCommand } from '@aws-sdk/lib-dynamodb';
4
+ import { TRANSACTION_WRITE_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
5
+ import pMap from 'p-map';
6
+
7
+ var _TableTransactWrite_config;
8
+ /**
9
+ * Table-level command to perform an atomic write transaction across multiple entity types.
10
+ *
11
+ * Unlike `TransactWrite` which operates on a single entity type, this command accepts
12
+ * operations from multiple entities via `entity.prepare([...])` and executes them as
13
+ * a single all-or-nothing DynamoDB transaction.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * await table.send(new TableTransactWrite({
18
+ * transactions: [
19
+ * userEntity.prepare([
20
+ * new Put({ item: { userId: 'u1', name: 'Alice' } }),
21
+ * new Delete({ key: { userId: 'u2', name: 'Bob' } }),
22
+ * ]),
23
+ * orderEntity.prepare([
24
+ * new Update({ key: { orderId: 'o1' }, update: { status: 'shipped' } }),
25
+ * ]),
26
+ * ],
27
+ * }))
28
+ * ```
29
+ */
30
+ class TableTransactWrite {
31
+ constructor(config) {
32
+ _TableTransactWrite_config.set(this, void 0);
33
+ __classPrivateFieldSet(this, _TableTransactWrite_config, config, "f");
34
+ }
35
+ execute(table) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ var _a, _b;
38
+ for (const { entity } of __classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions) {
39
+ if (entity.table !== table) {
40
+ throw new DocumentBuilderError(`Entity table "${entity.table.tableName}" does not match the executing table "${table.tableName}"`);
41
+ }
42
+ }
43
+ const transactItems = (yield pMap(__classPrivateFieldGet(this, _TableTransactWrite_config, "f").transactions, ({ entity, writes }) => {
44
+ var _a;
45
+ return pMap(writes, write => write.prepareWriteTransaction(entity), {
46
+ concurrency: TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
47
+ signal: (_a = __classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
48
+ });
49
+ }, {
50
+ concurrency: TRANSACTION_WRITE_VALIDATION_CONCURRENCY,
51
+ signal: (_a = __classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
52
+ })).flat();
53
+ const writeTransaction = new TransactWriteCommand({
54
+ TransactItems: transactItems,
55
+ ReturnConsumedCapacity: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnConsumedCapacity,
56
+ ReturnItemCollectionMetrics: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").returnItemCollectionMetrics,
57
+ ClientRequestToken: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").idempotencyToken,
58
+ });
59
+ const result = yield table.documentClient.send(writeTransaction, {
60
+ abortSignal: (_b = __classPrivateFieldGet(this, _TableTransactWrite_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
61
+ requestTimeout: __classPrivateFieldGet(this, _TableTransactWrite_config, "f").timeoutMs,
62
+ });
63
+ return {
64
+ responseMetadata: result.$metadata,
65
+ consumedCapacity: result.ConsumedCapacity,
66
+ itemCollectionMetrics: result.ItemCollectionMetrics,
67
+ };
68
+ });
69
+ }
70
+ }
71
+ _TableTransactWrite_config = new WeakMap();
72
+
73
+ export { TableTransactWrite };
74
+ //# sourceMappingURL=table-transact-write.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-transact-write.mjs","sources":["../../src/commands/table-transact-write.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAkCA;;;;;;;;;;;;;;;;;;;;;AAqBG;MACU,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAY,MAAgC,EAAA;QAF5C,0BAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,KAAkB,EAAA;;;YACrC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EAAE;AAClD,gBAAA,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC1B,oBAAA,MAAM,IAAI,oBAAoB,CAC5B,CAAA,cAAA,EAAiB,MAAM,CAAC,KAAK,CAAC,SAAS,yCAAyC,KAAK,CAAC,SAAS,CAAA,CAAA,CAAG,CACnG;gBACH;YACF;AAEA,YAAA,MAAM,aAAa,GAAG,CACpB,MAAM,IAAI,CACR,uBAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,YAAY,EACzB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAuC,KAAI;;AAC1D,gBAAA,OAAA,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;AAC3D,oBAAA,WAAW,EAAE,wCAAwC;oBACrD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,iBAAA,CAAC;aAAA,EACJ;AACE,gBAAA,WAAW,EAAE,wCAAwC;gBACrD,MAAM,EAAE,MAAA,sBAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,aAAA,CACF,EACD,IAAI,EAAE;AAER,YAAA,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC;AAChD,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACrE,gBAAA,kBAAkB,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,gBAAgB;AAClD,aAAA,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC/D,WAAW,EAAE,MAAA,sBAAA,CAAA,IAAI,kCAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAE,sBAAA,CAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,OAAO;gBACL,gBAAgB,EAAE,MAAM,CAAC,SAAS;gBAClC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;aACpD;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
@@ -6,11 +6,49 @@ var internalConstants = require('../internal-constants.cjs');
6
6
  var pMap = require('p-map');
7
7
 
8
8
  var _TransactGet_config;
9
+ /**
10
+ * Command to perform a transactional read of multiple items (all-or-nothing, strongly consistent).
11
+ *
12
+ * @template Schema - The Zod schema defining the structure of the entity.
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * import { DynamoTable, DynamoEntity, key, TransactGet } from 'dynamo-document-builder';
17
+ *
18
+ * const table = new DynamoTable({
19
+ * tableName: 'ExampleTable',
20
+ * documentClient,
21
+ * });
22
+ *
23
+ * const userEntity = new DynamoEntity({
24
+ * table,
25
+ * schema: z.object({
26
+ * userId: z.string(),
27
+ * name: z.string(),
28
+ * }),
29
+ * partitionKey: user => key('USER', user.userId),
30
+ * sortKey: () => 'METADATA',
31
+ * });
32
+ *
33
+ * const transactGetCommand = new TransactGet({
34
+ * keys: [
35
+ * { userId: 'user1' },
36
+ * { userId: 'user2' },
37
+ * ],
38
+ * });
39
+ *
40
+ * const { items } = await userEntity.send(transactGetCommand);
41
+ * // items array has same order as keys, undefined if not found
42
+ * ```
43
+ */
9
44
  class TransactGet {
10
45
  constructor(config) {
11
46
  _TransactGet_config.set(this, void 0);
12
47
  tslib_es6.__classPrivateFieldSet(this, _TransactGet_config, config, "f");
13
48
  }
49
+ get keys() {
50
+ return tslib_es6.__classPrivateFieldGet(this, _TransactGet_config, "f").keys;
51
+ }
14
52
  execute(entity) {
15
53
  return tslib_es6.__awaiter(this, void 0, void 0, function* () {
16
54
  var _a, _b, _c, _d;
@@ -1 +1 @@
1
- {"version":3,"file":"transact-get.cjs","sources":["../../src/commands/transact-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","TransactGetCommand","__awaiter","TRANSACTION_GET_VALIDATION_CONCURRENCY"],"mappings":";;;;;;;;MAgBa,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAiC,EAAA;QAF7C,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,aAAa,GAAGC,gCAAA,CAAA,IAAI,2BAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAClD,gBAAA,GAAG,EAAE;AACH,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACjC,oBAAA,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,iBAAA;AACF,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,WAAW,GAAG,IAAIC,8BAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAED,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC5E,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,iBAAiB,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;YAClD,IAAI,KAAK,GAA4C,EAAE;AACvD,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAIA,iCAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAwC,CAAC;gBACrF;qBAAO;oBACL,KAAK,GAAG,MAAM,IAAI,CAChB,QAAQ,EACR,CAAM,QAAQ,KAAGE,mBAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;AACf,wBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;4BACjB,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAChD;AACA,wBAAA,OAAO,SAAS;AAClB,oBAAA,CAAC,CAAA,EACD;AACE,wBAAA,WAAW,EAAEC,wDAAsC;wBACnD,MAAM,EAAE,MAAAH,gCAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,qBAAA,CACF;gBACH;YACF;YAEA,OAAO;gBACL,KAAK;gBACL,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;AAC7C,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,iBAAiB,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
1
+ {"version":3,"file":"transact-get.cjs","sources":["../../src/commands/transact-get.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","TransactGetCommand","__awaiter","TRANSACTION_GET_VALIDATION_CONCURRENCY"],"mappings":";;;;;;;;AA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCG;MACU,WAAW,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAiC,EAAA;QAF7C,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEA,IAAA,IAAW,IAAI,GAAA;AACb,QAAA,OAAOC,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,IAAI;IAC1B;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,aAAa,GAAGA,gCAAA,CAAA,IAAI,2BAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK;AAClD,gBAAA,GAAG,EAAE;AACH,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;AACjC,oBAAA,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC;AACjC,iBAAA;AACF,aAAA,CAAC,CAAC;AAEH,YAAA,MAAM,WAAW,GAAG,IAAIC,8BAAkB,CAAC;AACzC,gBAAA,aAAa,EAAE,aAAa;AAC5B,gBAAA,sBAAsB,EAAED,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC5D,aAAA,CAAC;AAEF,YAAA,MAAM,iBAAiB,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC5E,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,iBAAiB,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE;YAClD,IAAI,KAAK,GAA4C,EAAE;AACvD,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAIA,iCAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAwC,CAAC;gBACrF;qBAAO;oBACL,KAAK,GAAG,MAAM,IAAI,CAChB,QAAQ,EACR,CAAM,QAAQ,KAAGE,mBAAA,CAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA;AACf,wBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE;4BACjB,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAChD;AACA,wBAAA,OAAO,SAAS;AAClB,oBAAA,CAAC,CAAA,EACD;AACE,wBAAA,WAAW,EAAEC,wDAAsC;wBACnD,MAAM,EAAE,MAAAH,gCAAA,CAAA,IAAI,2BAAQ,CAAC,eAAe,0CAAE,MAAM;AAC7C,qBAAA,CACF;gBACH;YACF;YAEA,OAAO;gBACL,KAAK;gBACL,gBAAgB,EAAE,iBAAiB,CAAC,SAAS;AAC7C,gBAAA,gBAAgB,EAAE,CAAA,EAAA,GAAA,iBAAiB,CAAC,gBAAgB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}