dynamo-document-builder 0.0.0 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/README.md +79 -2
  2. package/dist/attributes/attribute-map.cjs +114 -0
  3. package/dist/attributes/attribute-map.cjs.map +1 -0
  4. package/dist/attributes/attribute-map.d.ts +32 -0
  5. package/dist/attributes/attribute-map.mjs +112 -0
  6. package/dist/attributes/attribute-map.mjs.map +1 -0
  7. package/dist/attributes/index.cjs +8 -0
  8. package/dist/attributes/index.cjs.map +1 -0
  9. package/dist/attributes/index.d.ts +1 -0
  10. package/dist/attributes/index.mjs +2 -0
  11. package/dist/attributes/index.mjs.map +1 -0
  12. package/dist/commands/base-command.cjs +3 -0
  13. package/dist/commands/base-command.cjs.map +1 -0
  14. package/dist/commands/base-command.d.ts +24 -0
  15. package/dist/commands/base-command.mjs +2 -0
  16. package/dist/commands/base-command.mjs.map +1 -0
  17. package/dist/commands/batch-get.cjs +55 -0
  18. package/dist/commands/batch-get.cjs.map +1 -0
  19. package/dist/commands/batch-get.d.ts +17 -0
  20. package/dist/commands/batch-get.mjs +53 -0
  21. package/dist/commands/batch-get.mjs.map +1 -0
  22. package/dist/commands/batch-write.cjs +94 -0
  23. package/dist/commands/batch-write.cjs.map +1 -0
  24. package/dist/commands/batch-write.d.ts +34 -0
  25. package/dist/commands/batch-write.mjs +92 -0
  26. package/dist/commands/batch-write.mjs.map +1 -0
  27. package/dist/commands/condition-check.cjs +24 -0
  28. package/dist/commands/condition-check.cjs.map +1 -0
  29. package/dist/commands/condition-check.d.ts +16 -0
  30. package/dist/commands/condition-check.mjs +22 -0
  31. package/dist/commands/condition-check.mjs.map +1 -0
  32. package/dist/commands/conditional-delete.cjs +53 -0
  33. package/dist/commands/conditional-delete.cjs.map +1 -0
  34. package/dist/commands/conditional-delete.d.ts +21 -0
  35. package/dist/commands/conditional-delete.mjs +51 -0
  36. package/dist/commands/conditional-delete.mjs.map +1 -0
  37. package/dist/commands/conditional-put.cjs +63 -0
  38. package/dist/commands/conditional-put.cjs.map +1 -0
  39. package/dist/commands/conditional-put.d.ts +22 -0
  40. package/dist/commands/conditional-put.mjs +61 -0
  41. package/dist/commands/conditional-put.mjs.map +1 -0
  42. package/dist/commands/conditional-update.cjs +57 -0
  43. package/dist/commands/conditional-update.cjs.map +1 -0
  44. package/dist/commands/conditional-update.d.ts +21 -0
  45. package/dist/commands/conditional-update.mjs +55 -0
  46. package/dist/commands/conditional-update.mjs.map +1 -0
  47. package/dist/commands/delete.cjs +59 -0
  48. package/dist/commands/delete.cjs.map +1 -0
  49. package/dist/commands/delete.d.ts +20 -0
  50. package/dist/commands/delete.mjs +57 -0
  51. package/dist/commands/delete.mjs.map +1 -0
  52. package/dist/commands/get.cjs +46 -0
  53. package/dist/commands/get.cjs.map +1 -0
  54. package/dist/commands/get.d.ts +16 -0
  55. package/dist/commands/get.mjs +44 -0
  56. package/dist/commands/get.mjs.map +1 -0
  57. package/dist/commands/index.cjs +40 -0
  58. package/dist/commands/index.cjs.map +1 -0
  59. package/dist/commands/index.d.ts +18 -0
  60. package/dist/commands/index.mjs +18 -0
  61. package/dist/commands/index.mjs.map +1 -0
  62. package/dist/commands/projected-get.cjs +50 -0
  63. package/dist/commands/projected-get.cjs.map +1 -0
  64. package/dist/commands/projected-get.d.ts +18 -0
  65. package/dist/commands/projected-get.mjs +48 -0
  66. package/dist/commands/projected-get.mjs.map +1 -0
  67. package/dist/commands/projected-query.cjs +118 -0
  68. package/dist/commands/projected-query.cjs.map +1 -0
  69. package/dist/commands/projected-query.d.ts +26 -0
  70. package/dist/commands/projected-query.mjs +116 -0
  71. package/dist/commands/projected-query.mjs.map +1 -0
  72. package/dist/commands/projected-scan.cjs +98 -0
  73. package/dist/commands/projected-scan.cjs.map +1 -0
  74. package/dist/commands/projected-scan.d.ts +26 -0
  75. package/dist/commands/projected-scan.mjs +96 -0
  76. package/dist/commands/projected-scan.mjs.map +1 -0
  77. package/dist/commands/put.cjs +69 -0
  78. package/dist/commands/put.cjs.map +1 -0
  79. package/dist/commands/put.d.ts +21 -0
  80. package/dist/commands/put.mjs +67 -0
  81. package/dist/commands/put.mjs.map +1 -0
  82. package/dist/commands/query.cjs +117 -0
  83. package/dist/commands/query.cjs.map +1 -0
  84. package/dist/commands/query.d.ts +33 -0
  85. package/dist/commands/query.mjs +115 -0
  86. package/dist/commands/query.mjs.map +1 -0
  87. package/dist/commands/scan.cjs +96 -0
  88. package/dist/commands/scan.cjs.map +1 -0
  89. package/dist/commands/scan.d.ts +34 -0
  90. package/dist/commands/scan.mjs +94 -0
  91. package/dist/commands/scan.mjs.map +1 -0
  92. package/dist/commands/transact-get.cjs +60 -0
  93. package/dist/commands/transact-get.cjs.map +1 -0
  94. package/dist/commands/transact-get.d.ts +15 -0
  95. package/dist/commands/transact-get.mjs +58 -0
  96. package/dist/commands/transact-get.mjs.map +1 -0
  97. package/dist/commands/transact-write.cjs +42 -0
  98. package/dist/commands/transact-write.cjs.map +1 -0
  99. package/dist/commands/transact-write.d.ts +20 -0
  100. package/dist/commands/transact-write.mjs +40 -0
  101. package/dist/commands/transact-write.mjs.map +1 -0
  102. package/dist/commands/update.cjs +53 -0
  103. package/dist/commands/update.cjs.map +1 -0
  104. package/dist/commands/update.d.ts +22 -0
  105. package/dist/commands/update.mjs +51 -0
  106. package/dist/commands/update.mjs.map +1 -0
  107. package/dist/conditions/and.cjs +14 -0
  108. package/dist/conditions/and.cjs.map +1 -0
  109. package/dist/conditions/and.d.ts +2 -0
  110. package/dist/conditions/and.mjs +12 -0
  111. package/dist/conditions/and.mjs.map +1 -0
  112. package/dist/conditions/begins-with.cjs +13 -0
  113. package/dist/conditions/begins-with.cjs.map +1 -0
  114. package/dist/conditions/begins-with.d.ts +2 -0
  115. package/dist/conditions/begins-with.mjs +11 -0
  116. package/dist/conditions/begins-with.mjs.map +1 -0
  117. package/dist/conditions/between.cjs +14 -0
  118. package/dist/conditions/between.cjs.map +1 -0
  119. package/dist/conditions/between.d.ts +2 -0
  120. package/dist/conditions/between.mjs +12 -0
  121. package/dist/conditions/between.mjs.map +1 -0
  122. package/dist/conditions/condition-parser.cjs +194 -0
  123. package/dist/conditions/condition-parser.cjs.map +1 -0
  124. package/dist/conditions/condition-parser.d.ts +7 -0
  125. package/dist/conditions/condition-parser.mjs +192 -0
  126. package/dist/conditions/condition-parser.mjs.map +1 -0
  127. package/dist/conditions/condition-symbols.cjs +43 -0
  128. package/dist/conditions/condition-symbols.cjs.map +1 -0
  129. package/dist/conditions/condition-symbols.d.ts +14 -0
  130. package/dist/conditions/condition-symbols.mjs +31 -0
  131. package/dist/conditions/condition-symbols.mjs.map +1 -0
  132. package/dist/conditions/condition-types.cjs +3 -0
  133. package/dist/conditions/condition-types.cjs.map +1 -0
  134. package/dist/conditions/condition-types.d.ts +85 -0
  135. package/dist/conditions/condition-types.mjs +2 -0
  136. package/dist/conditions/condition-types.mjs.map +1 -0
  137. package/dist/conditions/contains.cjs +13 -0
  138. package/dist/conditions/contains.cjs.map +1 -0
  139. package/dist/conditions/contains.d.ts +3 -0
  140. package/dist/conditions/contains.mjs +11 -0
  141. package/dist/conditions/contains.mjs.map +1 -0
  142. package/dist/conditions/equals.cjs +14 -0
  143. package/dist/conditions/equals.cjs.map +1 -0
  144. package/dist/conditions/equals.d.ts +2 -0
  145. package/dist/conditions/equals.mjs +12 -0
  146. package/dist/conditions/equals.mjs.map +1 -0
  147. package/dist/conditions/exists.cjs +12 -0
  148. package/dist/conditions/exists.cjs.map +1 -0
  149. package/dist/conditions/exists.d.ts +2 -0
  150. package/dist/conditions/exists.mjs +10 -0
  151. package/dist/conditions/exists.mjs.map +1 -0
  152. package/dist/conditions/greater-than-or-equal.cjs +14 -0
  153. package/dist/conditions/greater-than-or-equal.cjs.map +1 -0
  154. package/dist/conditions/greater-than-or-equal.d.ts +2 -0
  155. package/dist/conditions/greater-than-or-equal.mjs +12 -0
  156. package/dist/conditions/greater-than-or-equal.mjs.map +1 -0
  157. package/dist/conditions/greater-than.cjs +14 -0
  158. package/dist/conditions/greater-than.cjs.map +1 -0
  159. package/dist/conditions/greater-than.d.ts +2 -0
  160. package/dist/conditions/greater-than.mjs +12 -0
  161. package/dist/conditions/greater-than.mjs.map +1 -0
  162. package/dist/conditions/index.cjs +42 -0
  163. package/dist/conditions/index.cjs.map +1 -0
  164. package/dist/conditions/index.d.ts +19 -0
  165. package/dist/conditions/index.mjs +19 -0
  166. package/dist/conditions/index.mjs.map +1 -0
  167. package/dist/conditions/is-in.cjs +13 -0
  168. package/dist/conditions/is-in.cjs.map +1 -0
  169. package/dist/conditions/is-in.d.ts +2 -0
  170. package/dist/conditions/is-in.mjs +11 -0
  171. package/dist/conditions/is-in.mjs.map +1 -0
  172. package/dist/conditions/less-than-or-equal.cjs +14 -0
  173. package/dist/conditions/less-than-or-equal.cjs.map +1 -0
  174. package/dist/conditions/less-than-or-equal.d.ts +2 -0
  175. package/dist/conditions/less-than-or-equal.mjs +12 -0
  176. package/dist/conditions/less-than-or-equal.mjs.map +1 -0
  177. package/dist/conditions/less-than.cjs +14 -0
  178. package/dist/conditions/less-than.cjs.map +1 -0
  179. package/dist/conditions/less-than.d.ts +2 -0
  180. package/dist/conditions/less-than.mjs +12 -0
  181. package/dist/conditions/less-than.mjs.map +1 -0
  182. package/dist/conditions/not-equals.cjs +14 -0
  183. package/dist/conditions/not-equals.cjs.map +1 -0
  184. package/dist/conditions/not-equals.d.ts +2 -0
  185. package/dist/conditions/not-equals.mjs +12 -0
  186. package/dist/conditions/not-equals.mjs.map +1 -0
  187. package/dist/conditions/not-exists.cjs +13 -0
  188. package/dist/conditions/not-exists.cjs.map +1 -0
  189. package/dist/conditions/not-exists.d.ts +2 -0
  190. package/dist/conditions/not-exists.mjs +11 -0
  191. package/dist/conditions/not-exists.mjs.map +1 -0
  192. package/dist/conditions/not.cjs +13 -0
  193. package/dist/conditions/not.cjs.map +1 -0
  194. package/dist/conditions/not.d.ts +2 -0
  195. package/dist/conditions/not.mjs +11 -0
  196. package/dist/conditions/not.mjs.map +1 -0
  197. package/dist/conditions/or.cjs +14 -0
  198. package/dist/conditions/or.cjs.map +1 -0
  199. package/dist/conditions/or.d.ts +2 -0
  200. package/dist/conditions/or.mjs +12 -0
  201. package/dist/conditions/or.mjs.map +1 -0
  202. package/dist/conditions/size.cjs +13 -0
  203. package/dist/conditions/size.cjs.map +1 -0
  204. package/dist/conditions/size.d.ts +2 -0
  205. package/dist/conditions/size.mjs +11 -0
  206. package/dist/conditions/size.mjs.map +1 -0
  207. package/dist/conditions/type-is.cjs +13 -0
  208. package/dist/conditions/type-is.cjs.map +1 -0
  209. package/dist/conditions/type-is.d.ts +2 -0
  210. package/dist/conditions/type-is.mjs +11 -0
  211. package/dist/conditions/type-is.mjs.map +1 -0
  212. package/dist/core/core-types.cjs +3 -0
  213. package/dist/core/core-types.cjs.map +1 -0
  214. package/dist/core/core-types.d.ts +41 -0
  215. package/dist/core/core-types.mjs +2 -0
  216. package/dist/core/core-types.mjs.map +1 -0
  217. package/dist/core/entity.cjs +146 -0
  218. package/dist/core/entity.cjs.map +1 -0
  219. package/dist/core/entity.d.ts +39 -0
  220. package/dist/core/entity.mjs +144 -0
  221. package/dist/core/entity.mjs.map +1 -0
  222. package/dist/core/index.cjs +12 -0
  223. package/dist/core/index.cjs.map +1 -0
  224. package/dist/core/index.d.ts +4 -0
  225. package/dist/core/index.mjs +4 -0
  226. package/dist/core/index.mjs.map +1 -0
  227. package/dist/core/key.cjs +8 -0
  228. package/dist/core/key.cjs.map +1 -0
  229. package/dist/core/key.d.ts +12 -0
  230. package/dist/core/key.mjs +6 -0
  231. package/dist/core/key.mjs.map +1 -0
  232. package/dist/core/table.cjs +44 -0
  233. package/dist/core/table.cjs.map +1 -0
  234. package/dist/core/table.d.ts +22 -0
  235. package/dist/core/table.mjs +42 -0
  236. package/dist/core/table.mjs.map +1 -0
  237. package/dist/errors.cjs +7 -0
  238. package/dist/errors.cjs.map +1 -0
  239. package/dist/errors.d.ts +2 -0
  240. package/dist/errors.mjs +5 -0
  241. package/dist/errors.mjs.map +1 -0
  242. package/dist/index.cjs +106 -0
  243. package/dist/index.cjs.map +1 -0
  244. package/dist/index.d.ts +7 -2
  245. package/dist/index.mjs +51 -0
  246. package/dist/index.mjs.map +1 -0
  247. package/dist/internal-constants.cjs +20 -0
  248. package/dist/internal-constants.cjs.map +1 -0
  249. package/dist/internal-constants.d.ts +8 -0
  250. package/dist/internal-constants.mjs +11 -0
  251. package/dist/internal-constants.mjs.map +1 -0
  252. package/dist/node_modules/tslib/tslib.es6.cjs +92 -0
  253. package/dist/node_modules/tslib/tslib.es6.cjs.map +1 -0
  254. package/dist/node_modules/tslib/tslib.es6.mjs +84 -0
  255. package/dist/node_modules/tslib/tslib.es6.mjs.map +1 -0
  256. package/dist/projections/index.cjs +8 -0
  257. package/dist/projections/index.cjs.map +1 -0
  258. package/dist/projections/index.d.ts +2 -0
  259. package/dist/projections/index.mjs +2 -0
  260. package/dist/projections/index.mjs.map +1 -0
  261. package/dist/projections/projection-parser.cjs +19 -0
  262. package/dist/projections/projection-parser.cjs.map +1 -0
  263. package/dist/projections/projection-parser.d.ts +7 -0
  264. package/dist/projections/projection-parser.mjs +17 -0
  265. package/dist/projections/projection-parser.mjs.map +1 -0
  266. package/dist/projections/projection-types.cjs +3 -0
  267. package/dist/projections/projection-types.cjs.map +1 -0
  268. package/dist/projections/projection-types.d.ts +1 -0
  269. package/dist/projections/projection-types.mjs +2 -0
  270. package/dist/projections/projection-types.mjs.map +1 -0
  271. package/dist/updates/add-to-set.cjs +14 -0
  272. package/dist/updates/add-to-set.cjs.map +1 -0
  273. package/dist/updates/add-to-set.d.ts +3 -0
  274. package/dist/updates/add-to-set.mjs +12 -0
  275. package/dist/updates/add-to-set.mjs.map +1 -0
  276. package/dist/updates/add.cjs +14 -0
  277. package/dist/updates/add.cjs.map +1 -0
  278. package/dist/updates/add.d.ts +2 -0
  279. package/dist/updates/add.mjs +12 -0
  280. package/dist/updates/add.mjs.map +1 -0
  281. package/dist/updates/append.cjs +14 -0
  282. package/dist/updates/append.cjs.map +1 -0
  283. package/dist/updates/append.d.ts +3 -0
  284. package/dist/updates/append.mjs +12 -0
  285. package/dist/updates/append.mjs.map +1 -0
  286. package/dist/updates/delete.cjs +13 -0
  287. package/dist/updates/delete.cjs.map +1 -0
  288. package/dist/updates/delete.d.ts +3 -0
  289. package/dist/updates/delete.mjs +11 -0
  290. package/dist/updates/delete.mjs.map +1 -0
  291. package/dist/updates/index.cjs +24 -0
  292. package/dist/updates/index.cjs.map +1 -0
  293. package/dist/updates/index.d.ts +10 -0
  294. package/dist/updates/index.mjs +10 -0
  295. package/dist/updates/index.mjs.map +1 -0
  296. package/dist/updates/prepend.cjs +14 -0
  297. package/dist/updates/prepend.cjs.map +1 -0
  298. package/dist/updates/prepend.d.ts +3 -0
  299. package/dist/updates/prepend.mjs +12 -0
  300. package/dist/updates/prepend.mjs.map +1 -0
  301. package/dist/updates/ref.cjs +14 -0
  302. package/dist/updates/ref.cjs.map +1 -0
  303. package/dist/updates/ref.d.ts +3 -0
  304. package/dist/updates/ref.mjs +12 -0
  305. package/dist/updates/ref.mjs.map +1 -0
  306. package/dist/updates/remove.cjs +12 -0
  307. package/dist/updates/remove.cjs.map +1 -0
  308. package/dist/updates/remove.d.ts +2 -0
  309. package/dist/updates/remove.mjs +10 -0
  310. package/dist/updates/remove.mjs.map +1 -0
  311. package/dist/updates/subtract.cjs +14 -0
  312. package/dist/updates/subtract.cjs.map +1 -0
  313. package/dist/updates/subtract.d.ts +2 -0
  314. package/dist/updates/subtract.mjs +12 -0
  315. package/dist/updates/subtract.mjs.map +1 -0
  316. package/dist/updates/update-parser.cjs +157 -0
  317. package/dist/updates/update-parser.cjs.map +1 -0
  318. package/dist/updates/update-parser.d.ts +7 -0
  319. package/dist/updates/update-parser.mjs +155 -0
  320. package/dist/updates/update-parser.mjs.map +1 -0
  321. package/dist/updates/update-symbols.cjs +30 -0
  322. package/dist/updates/update-symbols.cjs.map +1 -0
  323. package/dist/updates/update-symbols.d.ts +13 -0
  324. package/dist/updates/update-symbols.mjs +19 -0
  325. package/dist/updates/update-symbols.mjs.map +1 -0
  326. package/dist/updates/update-types.cjs +3 -0
  327. package/dist/updates/update-types.cjs.map +1 -0
  328. package/dist/updates/update-types.d.ts +42 -0
  329. package/dist/updates/update-types.mjs +2 -0
  330. package/dist/updates/update-types.mjs.map +1 -0
  331. package/package.json +142 -22
  332. package/dist/index.d.ts.map +0 -1
  333. package/dist/index.js +0 -7
@@ -0,0 +1,67 @@
1
+ import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../node_modules/tslib/tslib.es6.mjs';
2
+ import { PutCommand } from '@aws-sdk/lib-dynamodb';
3
+
4
+ var _Put_config;
5
+ class Put {
6
+ constructor(config) {
7
+ _Put_config.set(this, void 0);
8
+ __classPrivateFieldSet(this, _Put_config, config, "f");
9
+ }
10
+ buildItem(entity) {
11
+ return __awaiter(this, void 0, void 0, function* () {
12
+ const encodedData = __classPrivateFieldGet(this, _Put_config, "f").skipValidation
13
+ ? __classPrivateFieldGet(this, _Put_config, "f").item
14
+ : yield entity.schema.encodeAsync(__classPrivateFieldGet(this, _Put_config, "f").item);
15
+ return Object.assign(Object.assign({}, encodedData), entity.buildAllKeys(__classPrivateFieldGet(this, _Put_config, "f").item));
16
+ });
17
+ }
18
+ execute(entity) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ var _a;
21
+ const item = yield this.buildItem(entity);
22
+ const put = new PutCommand({
23
+ TableName: entity.table.tableName,
24
+ Item: item,
25
+ ReturnValues: __classPrivateFieldGet(this, _Put_config, "f").returnValues,
26
+ ReturnConsumedCapacity: __classPrivateFieldGet(this, _Put_config, "f").returnConsumedCapacity,
27
+ ReturnItemCollectionMetrics: __classPrivateFieldGet(this, _Put_config, "f").returnItemCollectionMetrics,
28
+ });
29
+ const putResult = yield entity.table.documentClient.send(put, {
30
+ abortSignal: (_a = __classPrivateFieldGet(this, _Put_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
31
+ requestTimeout: __classPrivateFieldGet(this, _Put_config, "f").timeoutMs,
32
+ });
33
+ if (putResult.Attributes) {
34
+ const returnItem = (__classPrivateFieldGet(this, _Put_config, "f").skipValidation
35
+ ? putResult.Attributes
36
+ : yield entity.schema.partial().parseAsync(putResult.Attributes));
37
+ return {
38
+ returnItem,
39
+ responseMetadata: putResult.$metadata,
40
+ consumedCapacity: putResult.ConsumedCapacity,
41
+ itemCollectionMetrics: putResult.ItemCollectionMetrics,
42
+ };
43
+ }
44
+ return {
45
+ returnItem: undefined,
46
+ responseMetadata: putResult.$metadata,
47
+ consumedCapacity: putResult.ConsumedCapacity,
48
+ itemCollectionMetrics: putResult.ItemCollectionMetrics,
49
+ };
50
+ });
51
+ }
52
+ prepareWriteTransaction(entity) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ const item = yield this.buildItem(entity);
55
+ return {
56
+ Put: {
57
+ TableName: entity.table.tableName,
58
+ Item: item,
59
+ },
60
+ };
61
+ });
62
+ }
63
+ }
64
+ _Put_config = new WeakMap();
65
+
66
+ export { Put };
67
+ //# sourceMappingURL=put.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put.mjs","sources":["../../src/commands/put.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
4
+ var attributes_attributeMap = require('../attributes/attribute-map.cjs');
5
+ var internalConstants = require('../internal-constants.cjs');
6
+ var libDynamodb = require('@aws-sdk/lib-dynamodb');
7
+ var conditions_conditionParser = require('../conditions/condition-parser.cjs');
8
+ var errors = require('../errors.cjs');
9
+ var pMap = require('p-map');
10
+
11
+ var _Query_config;
12
+ class Query {
13
+ constructor(config) {
14
+ _Query_config.set(this, void 0);
15
+ tslib_es6.__classPrivateFieldSet(this, _Query_config, config, "f");
16
+ }
17
+ buildCommandInput(entity) {
18
+ var _a, _b;
19
+ const attributeExpressionMap = new attributes_attributeMap.AttributeExpressionMap();
20
+ // Generate the PK or GSIPK key
21
+ const keyItem = entity.buildPrimaryOrIndexKey(tslib_es6.__classPrivateFieldGet(this, _Query_config, "f"));
22
+ let queryKeyName;
23
+ let indexName;
24
+ if ('key' in tslib_es6.__classPrivateFieldGet(this, _Query_config, "f")) {
25
+ queryKeyName = entity.table.partitionKeyName;
26
+ }
27
+ else if ('index' in tslib_es6.__classPrivateFieldGet(this, _Query_config, "f")) {
28
+ const indexes = Object.keys(tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").index);
29
+ if (!indexes) {
30
+ throw new errors.DocumentBuilderError('No index specified in query configuration.');
31
+ }
32
+ indexName = Object.keys(tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").index)[0];
33
+ queryKeyName = entity.table.globalSecondaryIndexKeyNames[indexName].partitionKey;
34
+ }
35
+ else {
36
+ throw new errors.DocumentBuilderError("Either 'key' or 'index' must be specified for a query.");
37
+ }
38
+ const queryKeyValue = keyItem[queryKeyName];
39
+ const keyConditionExpression = conditions_conditionParser.parseCondition(Object.assign({ [queryKeyName]: queryKeyValue }, ((_a = tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").sortKeyCondition) !== null && _a !== void 0 ? _a : {})), attributeExpressionMap).conditionExpression;
40
+ let filterExpression;
41
+ if (tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").filter) {
42
+ filterExpression = conditions_conditionParser.parseCondition(tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").filter, attributeExpressionMap).conditionExpression;
43
+ }
44
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, KeyConditionExpression: keyConditionExpression, FilterExpression: filterExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { Select: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").selectAttributes, Limit: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").limit, ConsistentRead: (_b = tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").consistent) !== null && _b !== void 0 ? _b : false, IndexName: indexName, ScanIndexForward: !tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").reverseIndexScan, ExclusiveStartKey: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").exclusiveStartKey, ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").returnConsumedCapacity });
45
+ }
46
+ validateItems(entity, items) {
47
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
48
+ var _a, _b;
49
+ if (!items) {
50
+ return [];
51
+ }
52
+ if (tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").skipValidation) {
53
+ return items;
54
+ }
55
+ return pMap(items, item => entity.schema.parseAsync(item), {
56
+ concurrency: (_a = tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").validationConcurrency) !== null && _a !== void 0 ? _a : internalConstants.QUERY_VALIDATION_CONCURRENCY,
57
+ signal: (_b = tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
58
+ });
59
+ });
60
+ }
61
+ buildResult(items, queryResult) {
62
+ var _a, _b;
63
+ return {
64
+ items,
65
+ count: (_a = queryResult.Count) !== null && _a !== void 0 ? _a : 0,
66
+ scannedCount: (_b = queryResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
67
+ lastEvaluatedKey: queryResult.LastEvaluatedKey,
68
+ responseMetadata: queryResult.$metadata,
69
+ consumedCapacity: queryResult.ConsumedCapacity,
70
+ };
71
+ }
72
+ execute(entity) {
73
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
74
+ var _a;
75
+ const query = new libDynamodb.QueryCommand(this.buildCommandInput(entity));
76
+ const queryResult = yield entity.table.documentClient.send(query, {
77
+ abortSignal: (_a = tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
78
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").timeoutMs,
79
+ });
80
+ const items = yield this.validateItems(entity, queryResult.Items);
81
+ return this.buildResult(items, queryResult);
82
+ });
83
+ }
84
+ executePaginated(entity) {
85
+ return tslib_es6.__asyncGenerator(this, arguments, function* executePaginated_1() {
86
+ var _a, e_1, _b, _c;
87
+ var _d;
88
+ const paginator = libDynamodb.paginateQuery({
89
+ client: entity.table.documentClient,
90
+ pageSize: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").pageSize,
91
+ }, this.buildCommandInput(entity), {
92
+ abortSignal: (_d = tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").abortController) === null || _d === void 0 ? void 0 : _d.signal,
93
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _Query_config, "f").timeoutMs,
94
+ });
95
+ try {
96
+ for (var _e = true, paginator_1 = tslib_es6.__asyncValues(paginator), paginator_1_1; paginator_1_1 = yield tslib_es6.__await(paginator_1.next()), _a = paginator_1_1.done, !_a; _e = true) {
97
+ _c = paginator_1_1.value;
98
+ _e = false;
99
+ const page = _c;
100
+ const items = yield tslib_es6.__await(this.validateItems(entity, page.Items));
101
+ yield yield tslib_es6.__await(this.buildResult(items, page));
102
+ }
103
+ }
104
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
105
+ finally {
106
+ try {
107
+ if (!_e && !_a && (_b = paginator_1.return)) yield tslib_es6.__await(_b.call(paginator_1));
108
+ }
109
+ finally { if (e_1) throw e_1.error; }
110
+ }
111
+ });
112
+ }
113
+ }
114
+ _Query_config = new WeakMap();
115
+
116
+ exports.Query = Query;
117
+ //# sourceMappingURL=query.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.cjs","sources":["../../src/commands/query.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","AttributeExpressionMap","__classPrivateFieldGet","DocumentBuilderError","parseCondition","QUERY_VALIDATION_CONCURRENCY","QueryCommand","paginateQuery","__asyncValues","__await"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { Condition } from '@/conditions/condition-types';
2
+ import type { DynamoEntity, EntityKeyInput } from '@/core/entity';
3
+ import type { EntitySchema } from '@/core/core-types';
4
+ import type { Select } from '@aws-sdk/client-dynamodb';
5
+ import type { ZodObject } from 'zod/v4';
6
+ import type { BaseConfig, BaseCommand, BasePaginatable, BaseResult } from '@/commands/base-command';
7
+ import { type QueryCommandInput, type NativeAttributeValue, type QueryCommandOutput } from '@aws-sdk/lib-dynamodb';
8
+ export type QueryConfig<Schema extends ZodObject> = BaseConfig & EntityKeyInput<EntitySchema<Schema>> & {
9
+ sortKeyCondition?: Condition;
10
+ filter?: Condition;
11
+ limit?: number;
12
+ selectAttributes?: Select;
13
+ consistent?: boolean;
14
+ validationConcurrency?: number;
15
+ reverseIndexScan?: boolean;
16
+ exclusiveStartKey?: Partial<EntitySchema<Schema>>;
17
+ pageSize?: number;
18
+ };
19
+ export type QueryResult<Schema extends ZodObject> = BaseResult & {
20
+ items: EntitySchema<Schema>[];
21
+ count: number;
22
+ scannedCount: number;
23
+ lastEvaluatedKey?: Partial<EntitySchema<Schema>> | undefined;
24
+ };
25
+ export declare class Query<Schema extends ZodObject> implements BaseCommand<QueryResult<Schema>, Schema>, BasePaginatable<QueryResult<Schema>, Schema> {
26
+ #private;
27
+ constructor(config: QueryConfig<Schema>);
28
+ buildCommandInput(entity: DynamoEntity<Schema>): QueryCommandInput;
29
+ validateItems(entity: DynamoEntity<Schema>, items: Record<string, NativeAttributeValue>[] | undefined): Promise<EntitySchema<Schema>[]>;
30
+ buildResult(items: EntitySchema<Schema>[], queryResult: QueryCommandOutput): QueryResult<Schema>;
31
+ execute(entity: DynamoEntity<Schema>): Promise<QueryResult<Schema>>;
32
+ executePaginated(entity: DynamoEntity<Schema>): AsyncGenerator<QueryResult<Schema>, void, unknown>;
33
+ }
@@ -0,0 +1,115 @@
1
+ import { __classPrivateFieldSet, __classPrivateFieldGet, __awaiter, __asyncGenerator, __asyncValues, __await } from '../node_modules/tslib/tslib.es6.mjs';
2
+ import { AttributeExpressionMap } from '../attributes/attribute-map.mjs';
3
+ import { QUERY_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
4
+ import { QueryCommand, paginateQuery } from '@aws-sdk/lib-dynamodb';
5
+ import { parseCondition } from '../conditions/condition-parser.mjs';
6
+ import { DocumentBuilderError } from '../errors.mjs';
7
+ import pMap from 'p-map';
8
+
9
+ var _Query_config;
10
+ class Query {
11
+ constructor(config) {
12
+ _Query_config.set(this, void 0);
13
+ __classPrivateFieldSet(this, _Query_config, config, "f");
14
+ }
15
+ buildCommandInput(entity) {
16
+ var _a, _b;
17
+ const attributeExpressionMap = new AttributeExpressionMap();
18
+ // Generate the PK or GSIPK key
19
+ const keyItem = entity.buildPrimaryOrIndexKey(__classPrivateFieldGet(this, _Query_config, "f"));
20
+ let queryKeyName;
21
+ let indexName;
22
+ if ('key' in __classPrivateFieldGet(this, _Query_config, "f")) {
23
+ queryKeyName = entity.table.partitionKeyName;
24
+ }
25
+ else if ('index' in __classPrivateFieldGet(this, _Query_config, "f")) {
26
+ const indexes = Object.keys(__classPrivateFieldGet(this, _Query_config, "f").index);
27
+ if (!indexes) {
28
+ throw new DocumentBuilderError('No index specified in query configuration.');
29
+ }
30
+ indexName = Object.keys(__classPrivateFieldGet(this, _Query_config, "f").index)[0];
31
+ queryKeyName = entity.table.globalSecondaryIndexKeyNames[indexName].partitionKey;
32
+ }
33
+ else {
34
+ throw new DocumentBuilderError("Either 'key' or 'index' must be specified for a query.");
35
+ }
36
+ const queryKeyValue = keyItem[queryKeyName];
37
+ const keyConditionExpression = parseCondition(Object.assign({ [queryKeyName]: queryKeyValue }, ((_a = __classPrivateFieldGet(this, _Query_config, "f").sortKeyCondition) !== null && _a !== void 0 ? _a : {})), attributeExpressionMap).conditionExpression;
38
+ let filterExpression;
39
+ if (__classPrivateFieldGet(this, _Query_config, "f").filter) {
40
+ filterExpression = parseCondition(__classPrivateFieldGet(this, _Query_config, "f").filter, attributeExpressionMap).conditionExpression;
41
+ }
42
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, KeyConditionExpression: keyConditionExpression, FilterExpression: filterExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { Select: __classPrivateFieldGet(this, _Query_config, "f").selectAttributes, Limit: __classPrivateFieldGet(this, _Query_config, "f").limit, ConsistentRead: (_b = __classPrivateFieldGet(this, _Query_config, "f").consistent) !== null && _b !== void 0 ? _b : false, IndexName: indexName, ScanIndexForward: !__classPrivateFieldGet(this, _Query_config, "f").reverseIndexScan, ExclusiveStartKey: __classPrivateFieldGet(this, _Query_config, "f").exclusiveStartKey, ReturnConsumedCapacity: __classPrivateFieldGet(this, _Query_config, "f").returnConsumedCapacity });
43
+ }
44
+ validateItems(entity, items) {
45
+ return __awaiter(this, void 0, void 0, function* () {
46
+ var _a, _b;
47
+ if (!items) {
48
+ return [];
49
+ }
50
+ if (__classPrivateFieldGet(this, _Query_config, "f").skipValidation) {
51
+ return items;
52
+ }
53
+ return pMap(items, item => entity.schema.parseAsync(item), {
54
+ concurrency: (_a = __classPrivateFieldGet(this, _Query_config, "f").validationConcurrency) !== null && _a !== void 0 ? _a : QUERY_VALIDATION_CONCURRENCY,
55
+ signal: (_b = __classPrivateFieldGet(this, _Query_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
56
+ });
57
+ });
58
+ }
59
+ buildResult(items, queryResult) {
60
+ var _a, _b;
61
+ return {
62
+ items,
63
+ count: (_a = queryResult.Count) !== null && _a !== void 0 ? _a : 0,
64
+ scannedCount: (_b = queryResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
65
+ lastEvaluatedKey: queryResult.LastEvaluatedKey,
66
+ responseMetadata: queryResult.$metadata,
67
+ consumedCapacity: queryResult.ConsumedCapacity,
68
+ };
69
+ }
70
+ execute(entity) {
71
+ return __awaiter(this, void 0, void 0, function* () {
72
+ var _a;
73
+ const query = new QueryCommand(this.buildCommandInput(entity));
74
+ const queryResult = yield entity.table.documentClient.send(query, {
75
+ abortSignal: (_a = __classPrivateFieldGet(this, _Query_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
76
+ requestTimeout: __classPrivateFieldGet(this, _Query_config, "f").timeoutMs,
77
+ });
78
+ const items = yield this.validateItems(entity, queryResult.Items);
79
+ return this.buildResult(items, queryResult);
80
+ });
81
+ }
82
+ executePaginated(entity) {
83
+ return __asyncGenerator(this, arguments, function* executePaginated_1() {
84
+ var _a, e_1, _b, _c;
85
+ var _d;
86
+ const paginator = paginateQuery({
87
+ client: entity.table.documentClient,
88
+ pageSize: __classPrivateFieldGet(this, _Query_config, "f").pageSize,
89
+ }, this.buildCommandInput(entity), {
90
+ abortSignal: (_d = __classPrivateFieldGet(this, _Query_config, "f").abortController) === null || _d === void 0 ? void 0 : _d.signal,
91
+ requestTimeout: __classPrivateFieldGet(this, _Query_config, "f").timeoutMs,
92
+ });
93
+ try {
94
+ for (var _e = true, paginator_1 = __asyncValues(paginator), paginator_1_1; paginator_1_1 = yield __await(paginator_1.next()), _a = paginator_1_1.done, !_a; _e = true) {
95
+ _c = paginator_1_1.value;
96
+ _e = false;
97
+ const page = _c;
98
+ const items = yield __await(this.validateItems(entity, page.Items));
99
+ yield yield __await(this.buildResult(items, page));
100
+ }
101
+ }
102
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
103
+ finally {
104
+ try {
105
+ if (!_e && !_a && (_b = paginator_1.return)) yield __await(_b.call(paginator_1));
106
+ }
107
+ finally { if (e_1) throw e_1.error; }
108
+ }
109
+ });
110
+ }
111
+ }
112
+ _Query_config = new WeakMap();
113
+
114
+ export { Query };
115
+ //# sourceMappingURL=query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.mjs","sources":["../../src/commands/query.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
4
+ var attributes_attributeMap = require('../attributes/attribute-map.cjs');
5
+ var internalConstants = require('../internal-constants.cjs');
6
+ var libDynamodb = require('@aws-sdk/lib-dynamodb');
7
+ var conditions_conditionParser = require('../conditions/condition-parser.cjs');
8
+ var pMap = require('p-map');
9
+
10
+ var _Scan_config;
11
+ class Scan {
12
+ constructor(config) {
13
+ _Scan_config.set(this, void 0);
14
+ tslib_es6.__classPrivateFieldSet(this, _Scan_config, config, "f");
15
+ }
16
+ buildCommandInput(entity) {
17
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
18
+ const attributeExpressionMap = new attributes_attributeMap.AttributeExpressionMap();
19
+ let filterExpression;
20
+ if ((_a = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _a === void 0 ? void 0 : _a.filter) {
21
+ filterExpression = conditions_conditionParser.parseCondition(tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f").filter, attributeExpressionMap).conditionExpression;
22
+ }
23
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, FilterExpression: filterExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { Select: (_b = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _b === void 0 ? void 0 : _b.selectAttributes, Limit: (_c = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _c === void 0 ? void 0 : _c.limit, ConsistentRead: (_e = (_d = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _d === void 0 ? void 0 : _d.consistent) !== null && _e !== void 0 ? _e : false, IndexName: (_f = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _f === void 0 ? void 0 : _f.indexName, Segment: (_g = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _g === void 0 ? void 0 : _g.segment, TotalSegments: (_h = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _h === void 0 ? void 0 : _h.totalSegments, ExclusiveStartKey: (_j = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _j === void 0 ? void 0 : _j.exclusiveStartKey, ReturnConsumedCapacity: (_k = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _k === void 0 ? void 0 : _k.returnConsumedCapacity });
24
+ }
25
+ validateItems(entity, items) {
26
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
27
+ var _a, _b, _c, _d, _e;
28
+ if (!items) {
29
+ return [];
30
+ }
31
+ if ((_a = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _a === void 0 ? void 0 : _a.skipValidation) {
32
+ return items;
33
+ }
34
+ return pMap(items, item => entity.schema.parseAsync(item), {
35
+ concurrency: (_c = (_b = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _b === void 0 ? void 0 : _b.validationConcurrency) !== null && _c !== void 0 ? _c : internalConstants.SCAN_VALIDATION_CONCURRENCY,
36
+ signal: (_e = (_d = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _d === void 0 ? void 0 : _d.abortController) === null || _e === void 0 ? void 0 : _e.signal,
37
+ });
38
+ });
39
+ }
40
+ buildResult(items, scanResult) {
41
+ var _a, _b;
42
+ return {
43
+ items,
44
+ count: (_a = scanResult.Count) !== null && _a !== void 0 ? _a : 0,
45
+ scannedCount: (_b = scanResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
46
+ lastEvaluatedKey: scanResult.LastEvaluatedKey,
47
+ responseMetadata: scanResult.$metadata,
48
+ consumedCapacity: scanResult.ConsumedCapacity,
49
+ };
50
+ }
51
+ execute(entity) {
52
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
53
+ var _a, _b, _c;
54
+ const scan = new libDynamodb.ScanCommand(this.buildCommandInput(entity));
55
+ const scanResult = yield entity.table.documentClient.send(scan, {
56
+ abortSignal: (_b = (_a = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _a === void 0 ? void 0 : _a.abortController) === null || _b === void 0 ? void 0 : _b.signal,
57
+ requestTimeout: (_c = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _c === void 0 ? void 0 : _c.timeoutMs,
58
+ });
59
+ const items = yield this.validateItems(entity, scanResult.Items);
60
+ return this.buildResult(items, scanResult);
61
+ });
62
+ }
63
+ executePaginated(entity) {
64
+ return tslib_es6.__asyncGenerator(this, arguments, function* executePaginated_1() {
65
+ var _a, e_1, _b, _c;
66
+ var _d, _e, _f, _g;
67
+ const paginator = libDynamodb.paginateScan({
68
+ client: entity.table.documentClient,
69
+ pageSize: (_d = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _d === void 0 ? void 0 : _d.pageSize,
70
+ }, this.buildCommandInput(entity), {
71
+ abortSignal: (_f = (_e = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _e === void 0 ? void 0 : _e.abortController) === null || _f === void 0 ? void 0 : _f.signal,
72
+ requestTimeout: (_g = tslib_es6.__classPrivateFieldGet(this, _Scan_config, "f")) === null || _g === void 0 ? void 0 : _g.timeoutMs,
73
+ });
74
+ try {
75
+ for (var _h = true, paginator_1 = tslib_es6.__asyncValues(paginator), paginator_1_1; paginator_1_1 = yield tslib_es6.__await(paginator_1.next()), _a = paginator_1_1.done, !_a; _h = true) {
76
+ _c = paginator_1_1.value;
77
+ _h = false;
78
+ const page = _c;
79
+ const items = yield tslib_es6.__await(this.validateItems(entity, page.Items));
80
+ yield yield tslib_es6.__await(this.buildResult(items, page));
81
+ }
82
+ }
83
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
84
+ finally {
85
+ try {
86
+ if (!_h && !_a && (_b = paginator_1.return)) yield tslib_es6.__await(_b.call(paginator_1));
87
+ }
88
+ finally { if (e_1) throw e_1.error; }
89
+ }
90
+ });
91
+ }
92
+ }
93
+ _Scan_config = new WeakMap();
94
+
95
+ exports.Scan = Scan;
96
+ //# sourceMappingURL=scan.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.cjs","sources":["../../src/commands/scan.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","AttributeExpressionMap","__classPrivateFieldGet","parseCondition","SCAN_VALIDATION_CONCURRENCY","ScanCommand","paginateScan","__asyncValues","__await"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Condition } from '@/conditions/condition-types';
2
+ import type { DynamoEntity } from '@/core/entity';
3
+ import type { EntitySchema } from '@/core/core-types';
4
+ import type { Select } from '@aws-sdk/client-dynamodb';
5
+ import type { ZodObject } from 'zod/v4';
6
+ import type { BaseCommand, BaseConfig, BasePaginatable, BaseResult } from '@/commands/base-command';
7
+ import { type NativeAttributeValue, type ScanCommandInput, type ScanCommandOutput } from '@aws-sdk/lib-dynamodb';
8
+ export type ScanConfig<Schema extends ZodObject> = (BaseConfig & {
9
+ indexName?: string;
10
+ filter?: Condition;
11
+ limit?: number;
12
+ selectAttributes?: Select;
13
+ consistent?: boolean;
14
+ validationConcurrency?: number;
15
+ segment?: number;
16
+ totalSegments?: number;
17
+ exclusiveStartKey?: Partial<EntitySchema<Schema>>;
18
+ pageSize?: number;
19
+ }) | undefined;
20
+ export type ScanResult<Schema extends ZodObject> = BaseResult & {
21
+ items: EntitySchema<Schema>[];
22
+ count: number;
23
+ scannedCount: number;
24
+ lastEvaluatedKey?: Partial<EntitySchema<Schema>> | undefined;
25
+ };
26
+ export declare class Scan<Schema extends ZodObject> implements BaseCommand<ScanResult<Schema>, Schema>, BasePaginatable<ScanResult<Schema>, Schema> {
27
+ #private;
28
+ constructor(config?: ScanConfig<Schema>);
29
+ buildCommandInput(entity: DynamoEntity<Schema>): ScanCommandInput;
30
+ validateItems(entity: DynamoEntity<Schema>, items: Record<string, NativeAttributeValue>[] | undefined): Promise<EntitySchema<Schema>[]>;
31
+ buildResult(items: EntitySchema<Schema>[], scanResult: ScanCommandOutput): ScanResult<Schema>;
32
+ execute(entity: DynamoEntity<Schema>): Promise<ScanResult<Schema>>;
33
+ executePaginated(entity: DynamoEntity<Schema>): AsyncGenerator<ScanResult<Schema>, void, unknown>;
34
+ }
@@ -0,0 +1,94 @@
1
+ import { __classPrivateFieldSet, __classPrivateFieldGet, __awaiter, __asyncGenerator, __asyncValues, __await } from '../node_modules/tslib/tslib.es6.mjs';
2
+ import { AttributeExpressionMap } from '../attributes/attribute-map.mjs';
3
+ import { SCAN_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
4
+ import { ScanCommand, paginateScan } from '@aws-sdk/lib-dynamodb';
5
+ import { parseCondition } from '../conditions/condition-parser.mjs';
6
+ import pMap from 'p-map';
7
+
8
+ var _Scan_config;
9
+ class Scan {
10
+ constructor(config) {
11
+ _Scan_config.set(this, void 0);
12
+ __classPrivateFieldSet(this, _Scan_config, config, "f");
13
+ }
14
+ buildCommandInput(entity) {
15
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
16
+ const attributeExpressionMap = new AttributeExpressionMap();
17
+ let filterExpression;
18
+ if ((_a = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _a === void 0 ? void 0 : _a.filter) {
19
+ filterExpression = parseCondition(__classPrivateFieldGet(this, _Scan_config, "f").filter, attributeExpressionMap).conditionExpression;
20
+ }
21
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, FilterExpression: filterExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { Select: (_b = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _b === void 0 ? void 0 : _b.selectAttributes, Limit: (_c = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _c === void 0 ? void 0 : _c.limit, ConsistentRead: (_e = (_d = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _d === void 0 ? void 0 : _d.consistent) !== null && _e !== void 0 ? _e : false, IndexName: (_f = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _f === void 0 ? void 0 : _f.indexName, Segment: (_g = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _g === void 0 ? void 0 : _g.segment, TotalSegments: (_h = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _h === void 0 ? void 0 : _h.totalSegments, ExclusiveStartKey: (_j = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _j === void 0 ? void 0 : _j.exclusiveStartKey, ReturnConsumedCapacity: (_k = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _k === void 0 ? void 0 : _k.returnConsumedCapacity });
22
+ }
23
+ validateItems(entity, items) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ var _a, _b, _c, _d, _e;
26
+ if (!items) {
27
+ return [];
28
+ }
29
+ if ((_a = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _a === void 0 ? void 0 : _a.skipValidation) {
30
+ return items;
31
+ }
32
+ return pMap(items, item => entity.schema.parseAsync(item), {
33
+ concurrency: (_c = (_b = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _b === void 0 ? void 0 : _b.validationConcurrency) !== null && _c !== void 0 ? _c : SCAN_VALIDATION_CONCURRENCY,
34
+ signal: (_e = (_d = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _d === void 0 ? void 0 : _d.abortController) === null || _e === void 0 ? void 0 : _e.signal,
35
+ });
36
+ });
37
+ }
38
+ buildResult(items, scanResult) {
39
+ var _a, _b;
40
+ return {
41
+ items,
42
+ count: (_a = scanResult.Count) !== null && _a !== void 0 ? _a : 0,
43
+ scannedCount: (_b = scanResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
44
+ lastEvaluatedKey: scanResult.LastEvaluatedKey,
45
+ responseMetadata: scanResult.$metadata,
46
+ consumedCapacity: scanResult.ConsumedCapacity,
47
+ };
48
+ }
49
+ execute(entity) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ var _a, _b, _c;
52
+ const scan = new ScanCommand(this.buildCommandInput(entity));
53
+ const scanResult = yield entity.table.documentClient.send(scan, {
54
+ abortSignal: (_b = (_a = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _a === void 0 ? void 0 : _a.abortController) === null || _b === void 0 ? void 0 : _b.signal,
55
+ requestTimeout: (_c = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _c === void 0 ? void 0 : _c.timeoutMs,
56
+ });
57
+ const items = yield this.validateItems(entity, scanResult.Items);
58
+ return this.buildResult(items, scanResult);
59
+ });
60
+ }
61
+ executePaginated(entity) {
62
+ return __asyncGenerator(this, arguments, function* executePaginated_1() {
63
+ var _a, e_1, _b, _c;
64
+ var _d, _e, _f, _g;
65
+ const paginator = paginateScan({
66
+ client: entity.table.documentClient,
67
+ pageSize: (_d = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _d === void 0 ? void 0 : _d.pageSize,
68
+ }, this.buildCommandInput(entity), {
69
+ abortSignal: (_f = (_e = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _e === void 0 ? void 0 : _e.abortController) === null || _f === void 0 ? void 0 : _f.signal,
70
+ requestTimeout: (_g = __classPrivateFieldGet(this, _Scan_config, "f")) === null || _g === void 0 ? void 0 : _g.timeoutMs,
71
+ });
72
+ try {
73
+ for (var _h = true, paginator_1 = __asyncValues(paginator), paginator_1_1; paginator_1_1 = yield __await(paginator_1.next()), _a = paginator_1_1.done, !_a; _h = true) {
74
+ _c = paginator_1_1.value;
75
+ _h = false;
76
+ const page = _c;
77
+ const items = yield __await(this.validateItems(entity, page.Items));
78
+ yield yield __await(this.buildResult(items, page));
79
+ }
80
+ }
81
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
82
+ finally {
83
+ try {
84
+ if (!_h && !_a && (_b = paginator_1.return)) yield __await(_b.call(paginator_1));
85
+ }
86
+ finally { if (e_1) throw e_1.error; }
87
+ }
88
+ });
89
+ }
90
+ }
91
+ _Scan_config = new WeakMap();
92
+
93
+ export { Scan };
94
+ //# sourceMappingURL=scan.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan.mjs","sources":["../../src/commands/scan.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}