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,118 @@
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 conditions_conditionParser = require('../conditions/condition-parser.cjs');
7
+ var projections_projectionParser = require('../projections/projection-parser.cjs');
8
+ var errors = require('../errors.cjs');
9
+ var libDynamodb = require('@aws-sdk/lib-dynamodb');
10
+ var pMap = require('p-map');
11
+
12
+ var _ProjectedQuery_config;
13
+ class ProjectedQuery {
14
+ constructor(config) {
15
+ _ProjectedQuery_config.set(this, void 0);
16
+ tslib_es6.__classPrivateFieldSet(this, _ProjectedQuery_config, config, "f");
17
+ }
18
+ buildCommandInput(entity) {
19
+ var _a;
20
+ const attributeExpressionMap = new attributes_attributeMap.AttributeExpressionMap();
21
+ // Generate the PK or GSIPK key
22
+ const keyItem = entity.buildPrimaryOrIndexKey(tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f"));
23
+ let queryKeyName;
24
+ if ('key' in tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f")) {
25
+ queryKeyName = entity.table.partitionKeyName;
26
+ }
27
+ else if ('index' in tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f")) {
28
+ const indexes = Object.keys(tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").index);
29
+ if (!indexes) {
30
+ throw new errors.DocumentBuilderError('No index specified in query configuration.');
31
+ }
32
+ const indexName = Object.keys(tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_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 }, tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").sortKeyCondition), attributeExpressionMap).conditionExpression;
40
+ let filterExpression;
41
+ if (tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").filter) {
42
+ filterExpression = conditions_conditionParser.parseCondition(tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").filter, attributeExpressionMap).conditionExpression;
43
+ }
44
+ const { projectionExpression } = projections_projectionParser.parseProjection(tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").projection, attributeExpressionMap);
45
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, KeyConditionExpression: keyConditionExpression, FilterExpression: filterExpression, ProjectionExpression: projectionExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { Select: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").selectAttributes, Limit: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").limit, ConsistentRead: (_a = tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").consistent) !== null && _a !== void 0 ? _a : false, IndexName: 'index' in tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f") ? queryKeyName : undefined, ScanIndexForward: !tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").reverseIndexScan, ExclusiveStartKey: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").exclusiveStartKey, ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").returnConsumedCapacity });
46
+ }
47
+ validateItems(items) {
48
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
49
+ var _a, _b;
50
+ if (!items) {
51
+ return [];
52
+ }
53
+ if (tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").skipValidation) {
54
+ return items;
55
+ }
56
+ return pMap(items, item => tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").projectionSchema.parseAsync(item), {
57
+ concurrency: (_a = tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").validationConcurrency) !== null && _a !== void 0 ? _a : internalConstants.PROJECTED_QUERY_VALIDATION_CONCURRENCY,
58
+ signal: (_b = tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
59
+ });
60
+ });
61
+ }
62
+ buildResult(items, queryResult) {
63
+ var _a, _b;
64
+ return {
65
+ items,
66
+ count: (_a = queryResult.Count) !== null && _a !== void 0 ? _a : 0,
67
+ scannedCount: (_b = queryResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
68
+ lastEvaluatedKey: queryResult.LastEvaluatedKey,
69
+ responseMetadata: queryResult.$metadata,
70
+ consumedCapacity: queryResult.ConsumedCapacity,
71
+ };
72
+ }
73
+ execute(entity) {
74
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
75
+ var _a;
76
+ const query = new libDynamodb.QueryCommand(this.buildCommandInput(entity));
77
+ const queryResult = yield entity.table.documentClient.send(query, {
78
+ abortSignal: (_a = tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
79
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").timeoutMs,
80
+ });
81
+ const items = yield this.validateItems(queryResult.Items);
82
+ return this.buildResult(items, queryResult);
83
+ });
84
+ }
85
+ executePaginated(entity) {
86
+ return tslib_es6.__asyncGenerator(this, arguments, function* executePaginated_1() {
87
+ var _a, e_1, _b, _c;
88
+ var _d;
89
+ const paginator = libDynamodb.paginateQuery({
90
+ client: entity.table.documentClient,
91
+ pageSize: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").pageSize,
92
+ }, this.buildCommandInput(entity), {
93
+ abortSignal: (_d = tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").abortController) === null || _d === void 0 ? void 0 : _d.signal,
94
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _ProjectedQuery_config, "f").timeoutMs,
95
+ });
96
+ try {
97
+ 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) {
98
+ _c = paginator_1_1.value;
99
+ _e = false;
100
+ const page = _c;
101
+ const items = yield tslib_es6.__await(this.validateItems(page.Items));
102
+ yield yield tslib_es6.__await(this.buildResult(items, page));
103
+ }
104
+ }
105
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
106
+ finally {
107
+ try {
108
+ if (!_e && !_a && (_b = paginator_1.return)) yield tslib_es6.__await(_b.call(paginator_1));
109
+ }
110
+ finally { if (e_1) throw e_1.error; }
111
+ }
112
+ });
113
+ }
114
+ }
115
+ _ProjectedQuery_config = new WeakMap();
116
+
117
+ exports.ProjectedQuery = ProjectedQuery;
118
+ //# sourceMappingURL=projected-query.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-query.cjs","sources":["../../src/commands/projected-query.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","AttributeExpressionMap","__classPrivateFieldGet","DocumentBuilderError","parseCondition","parseProjection","PROJECTED_QUERY_VALIDATION_CONCURRENCY","QueryCommand","paginateQuery","__asyncValues","__await"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { DynamoEntity } from '@/core/entity';
2
+ import type { EntitySchema } from '@/core/core-types';
3
+ import type { Projection } from '@/projections/projection-types';
4
+ import type { QueryConfig } from '@/commands/query';
5
+ import type { ZodObject } from 'zod/v4';
6
+ import type { BaseResult, BaseCommand, BasePaginatable } from '@/commands/base-command';
7
+ import { type NativeAttributeValue, type QueryCommandInput, type QueryCommandOutput } from '@aws-sdk/lib-dynamodb';
8
+ export type ProjectedQueryConfig<Schema extends ZodObject, ProjectionSchema extends ZodObject> = QueryConfig<Schema> & {
9
+ projection: Projection;
10
+ projectionSchema: ProjectionSchema;
11
+ };
12
+ export type ProjectedQueryResult<Schema extends ZodObject, ProjectionSchema extends ZodObject> = BaseResult & {
13
+ items: EntitySchema<ProjectionSchema>[];
14
+ count: number;
15
+ scannedCount: number;
16
+ lastEvaluatedKey?: Partial<EntitySchema<Schema>> | undefined;
17
+ };
18
+ export declare class ProjectedQuery<Schema extends ZodObject, ProjectedSchema extends ZodObject> implements BaseCommand<ProjectedQueryResult<Schema, ProjectedSchema>, Schema>, BasePaginatable<ProjectedQueryResult<Schema, ProjectedSchema>, Schema> {
19
+ #private;
20
+ constructor(config: ProjectedQueryConfig<Schema, ProjectedSchema>);
21
+ buildCommandInput(entity: DynamoEntity<Schema>): QueryCommandInput;
22
+ validateItems(items: Record<string, NativeAttributeValue>[] | undefined): Promise<EntitySchema<ProjectedSchema>[]>;
23
+ buildResult(items: EntitySchema<ProjectedSchema>[], queryResult: QueryCommandOutput): ProjectedQueryResult<Schema, ProjectedSchema>;
24
+ execute(entity: DynamoEntity<Schema>): Promise<ProjectedQueryResult<Schema, ProjectedSchema>>;
25
+ executePaginated(entity: DynamoEntity<Schema>): AsyncGenerator<ProjectedQueryResult<Schema, ProjectedSchema>, void, unknown>;
26
+ }
@@ -0,0 +1,116 @@
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 { PROJECTED_QUERY_VALIDATION_CONCURRENCY } from '../internal-constants.mjs';
4
+ import { parseCondition } from '../conditions/condition-parser.mjs';
5
+ import { parseProjection } from '../projections/projection-parser.mjs';
6
+ import { DocumentBuilderError } from '../errors.mjs';
7
+ import { QueryCommand, paginateQuery } from '@aws-sdk/lib-dynamodb';
8
+ import pMap from 'p-map';
9
+
10
+ var _ProjectedQuery_config;
11
+ class ProjectedQuery {
12
+ constructor(config) {
13
+ _ProjectedQuery_config.set(this, void 0);
14
+ __classPrivateFieldSet(this, _ProjectedQuery_config, config, "f");
15
+ }
16
+ buildCommandInput(entity) {
17
+ var _a;
18
+ const attributeExpressionMap = new AttributeExpressionMap();
19
+ // Generate the PK or GSIPK key
20
+ const keyItem = entity.buildPrimaryOrIndexKey(__classPrivateFieldGet(this, _ProjectedQuery_config, "f"));
21
+ let queryKeyName;
22
+ if ('key' in __classPrivateFieldGet(this, _ProjectedQuery_config, "f")) {
23
+ queryKeyName = entity.table.partitionKeyName;
24
+ }
25
+ else if ('index' in __classPrivateFieldGet(this, _ProjectedQuery_config, "f")) {
26
+ const indexes = Object.keys(__classPrivateFieldGet(this, _ProjectedQuery_config, "f").index);
27
+ if (!indexes) {
28
+ throw new DocumentBuilderError('No index specified in query configuration.');
29
+ }
30
+ const indexName = Object.keys(__classPrivateFieldGet(this, _ProjectedQuery_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 }, __classPrivateFieldGet(this, _ProjectedQuery_config, "f").sortKeyCondition), attributeExpressionMap).conditionExpression;
38
+ let filterExpression;
39
+ if (__classPrivateFieldGet(this, _ProjectedQuery_config, "f").filter) {
40
+ filterExpression = parseCondition(__classPrivateFieldGet(this, _ProjectedQuery_config, "f").filter, attributeExpressionMap).conditionExpression;
41
+ }
42
+ const { projectionExpression } = parseProjection(__classPrivateFieldGet(this, _ProjectedQuery_config, "f").projection, attributeExpressionMap);
43
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, KeyConditionExpression: keyConditionExpression, FilterExpression: filterExpression, ProjectionExpression: projectionExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { Select: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").selectAttributes, Limit: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").limit, ConsistentRead: (_a = __classPrivateFieldGet(this, _ProjectedQuery_config, "f").consistent) !== null && _a !== void 0 ? _a : false, IndexName: 'index' in __classPrivateFieldGet(this, _ProjectedQuery_config, "f") ? queryKeyName : undefined, ScanIndexForward: !__classPrivateFieldGet(this, _ProjectedQuery_config, "f").reverseIndexScan, ExclusiveStartKey: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").exclusiveStartKey, ReturnConsumedCapacity: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").returnConsumedCapacity });
44
+ }
45
+ validateItems(items) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ var _a, _b;
48
+ if (!items) {
49
+ return [];
50
+ }
51
+ if (__classPrivateFieldGet(this, _ProjectedQuery_config, "f").skipValidation) {
52
+ return items;
53
+ }
54
+ return pMap(items, item => __classPrivateFieldGet(this, _ProjectedQuery_config, "f").projectionSchema.parseAsync(item), {
55
+ concurrency: (_a = __classPrivateFieldGet(this, _ProjectedQuery_config, "f").validationConcurrency) !== null && _a !== void 0 ? _a : PROJECTED_QUERY_VALIDATION_CONCURRENCY,
56
+ signal: (_b = __classPrivateFieldGet(this, _ProjectedQuery_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
57
+ });
58
+ });
59
+ }
60
+ buildResult(items, queryResult) {
61
+ var _a, _b;
62
+ return {
63
+ items,
64
+ count: (_a = queryResult.Count) !== null && _a !== void 0 ? _a : 0,
65
+ scannedCount: (_b = queryResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
66
+ lastEvaluatedKey: queryResult.LastEvaluatedKey,
67
+ responseMetadata: queryResult.$metadata,
68
+ consumedCapacity: queryResult.ConsumedCapacity,
69
+ };
70
+ }
71
+ execute(entity) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ var _a;
74
+ const query = new QueryCommand(this.buildCommandInput(entity));
75
+ const queryResult = yield entity.table.documentClient.send(query, {
76
+ abortSignal: (_a = __classPrivateFieldGet(this, _ProjectedQuery_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
77
+ requestTimeout: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").timeoutMs,
78
+ });
79
+ const items = yield this.validateItems(queryResult.Items);
80
+ return this.buildResult(items, queryResult);
81
+ });
82
+ }
83
+ executePaginated(entity) {
84
+ return __asyncGenerator(this, arguments, function* executePaginated_1() {
85
+ var _a, e_1, _b, _c;
86
+ var _d;
87
+ const paginator = paginateQuery({
88
+ client: entity.table.documentClient,
89
+ pageSize: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").pageSize,
90
+ }, this.buildCommandInput(entity), {
91
+ abortSignal: (_d = __classPrivateFieldGet(this, _ProjectedQuery_config, "f").abortController) === null || _d === void 0 ? void 0 : _d.signal,
92
+ requestTimeout: __classPrivateFieldGet(this, _ProjectedQuery_config, "f").timeoutMs,
93
+ });
94
+ try {
95
+ 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) {
96
+ _c = paginator_1_1.value;
97
+ _e = false;
98
+ const page = _c;
99
+ const items = yield __await(this.validateItems(page.Items));
100
+ yield yield __await(this.buildResult(items, page));
101
+ }
102
+ }
103
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
104
+ finally {
105
+ try {
106
+ if (!_e && !_a && (_b = paginator_1.return)) yield __await(_b.call(paginator_1));
107
+ }
108
+ finally { if (e_1) throw e_1.error; }
109
+ }
110
+ });
111
+ }
112
+ }
113
+ _ProjectedQuery_config = new WeakMap();
114
+
115
+ export { ProjectedQuery };
116
+ //# sourceMappingURL=projected-query.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-query.mjs","sources":["../../src/commands/projected-query.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
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 projections_projectionParser = require('../projections/projection-parser.cjs');
9
+ var pMap = require('p-map');
10
+
11
+ var _ProjectedScan_config;
12
+ class ProjectedScan {
13
+ constructor(config) {
14
+ _ProjectedScan_config.set(this, void 0);
15
+ tslib_es6.__classPrivateFieldSet(this, _ProjectedScan_config, config, "f");
16
+ }
17
+ buildCommandInput(entity) {
18
+ var _a;
19
+ const attributeExpressionMap = new attributes_attributeMap.AttributeExpressionMap();
20
+ let filterExpression;
21
+ if (tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").filter) {
22
+ filterExpression = conditions_conditionParser.parseCondition(tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").filter, attributeExpressionMap).conditionExpression;
23
+ }
24
+ const { projectionExpression } = projections_projectionParser.parseProjection(tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").projection, attributeExpressionMap);
25
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, FilterExpression: filterExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { ProjectionExpression: projectionExpression, Select: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").selectAttributes, Limit: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").limit, ConsistentRead: (_a = tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").consistent) !== null && _a !== void 0 ? _a : false, IndexName: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").indexName, Segment: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").segment, TotalSegments: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").totalSegments, ExclusiveStartKey: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").exclusiveStartKey, ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").returnConsumedCapacity });
26
+ }
27
+ validateItems(items) {
28
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
29
+ var _a, _b;
30
+ if (!items) {
31
+ return [];
32
+ }
33
+ if (tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").skipValidation) {
34
+ return items;
35
+ }
36
+ return pMap(items, item => tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").projectionSchema.parseAsync(item), {
37
+ concurrency: (_a = tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").validationConcurrency) !== null && _a !== void 0 ? _a : internalConstants.PROJECTED_SCAN_VALIDATION_CONCURRENCY,
38
+ signal: (_b = tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.signal,
39
+ });
40
+ });
41
+ }
42
+ buildResult(items, scanResult) {
43
+ var _a, _b;
44
+ return {
45
+ items,
46
+ count: (_a = scanResult.Count) !== null && _a !== void 0 ? _a : 0,
47
+ scannedCount: (_b = scanResult.ScannedCount) !== null && _b !== void 0 ? _b : 0,
48
+ lastEvaluatedKey: scanResult.LastEvaluatedKey,
49
+ responseMetadata: scanResult.$metadata,
50
+ consumedCapacity: scanResult.ConsumedCapacity,
51
+ };
52
+ }
53
+ execute(entity) {
54
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
55
+ var _a;
56
+ const scan = new libDynamodb.ScanCommand(this.buildCommandInput(entity));
57
+ const scanResult = yield entity.table.documentClient.send(scan, {
58
+ abortSignal: (_a = tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
59
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").timeoutMs,
60
+ });
61
+ const items = yield this.validateItems(scanResult.Items);
62
+ return this.buildResult(items, scanResult);
63
+ });
64
+ }
65
+ executePaginated(entity) {
66
+ return tslib_es6.__asyncGenerator(this, arguments, function* executePaginated_1() {
67
+ var _a, e_1, _b, _c;
68
+ var _d;
69
+ const paginator = libDynamodb.paginateScan({
70
+ client: entity.table.documentClient,
71
+ pageSize: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").pageSize,
72
+ }, this.buildCommandInput(entity), {
73
+ abortSignal: (_d = tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").abortController) === null || _d === void 0 ? void 0 : _d.signal,
74
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _ProjectedScan_config, "f").timeoutMs,
75
+ });
76
+ try {
77
+ 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) {
78
+ _c = paginator_1_1.value;
79
+ _e = false;
80
+ const page = _c;
81
+ const items = yield tslib_es6.__await(this.validateItems(page.Items));
82
+ yield yield tslib_es6.__await(this.buildResult(items, page));
83
+ }
84
+ }
85
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
86
+ finally {
87
+ try {
88
+ if (!_e && !_a && (_b = paginator_1.return)) yield tslib_es6.__await(_b.call(paginator_1));
89
+ }
90
+ finally { if (e_1) throw e_1.error; }
91
+ }
92
+ });
93
+ }
94
+ }
95
+ _ProjectedScan_config = new WeakMap();
96
+
97
+ exports.ProjectedScan = ProjectedScan;
98
+ //# sourceMappingURL=projected-scan.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-scan.cjs","sources":["../../src/commands/projected-scan.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","AttributeExpressionMap","__classPrivateFieldGet","parseCondition","parseProjection","PROJECTED_SCAN_VALIDATION_CONCURRENCY","ScanCommand","paginateScan","__asyncValues","__await"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { DynamoEntity } from '@/core/entity';
2
+ import type { EntitySchema } from '@/core/core-types';
3
+ import type { ScanConfig } from '@/commands/scan';
4
+ import type { Projection } from '@/projections/projection-types';
5
+ import type { ZodObject } from 'zod/v4';
6
+ import type { BaseCommand, BasePaginatable, BaseResult } from '@/commands/base-command';
7
+ import { type NativeAttributeValue, type ScanCommandInput, type ScanCommandOutput } from '@aws-sdk/lib-dynamodb';
8
+ export type ProjectedScanConfig<ProjectionSchema extends ZodObject> = ScanConfig<ProjectionSchema> & {
9
+ projection: Projection;
10
+ projectionSchema: ProjectionSchema;
11
+ };
12
+ export type ProjectedScanResult<Schema extends ZodObject, ProjectionSchema extends ZodObject> = BaseResult & {
13
+ items: EntitySchema<ProjectionSchema>[];
14
+ count: number;
15
+ scannedCount: number;
16
+ lastEvaluatedKey?: Partial<EntitySchema<Schema>> | undefined;
17
+ };
18
+ export declare class ProjectedScan<Schema extends ZodObject, ProjectedSchema extends ZodObject> implements BaseCommand<ProjectedScanResult<Schema, ProjectedSchema>, Schema>, BasePaginatable<ProjectedScanResult<Schema, ProjectedSchema>, Schema> {
19
+ #private;
20
+ constructor(config: ProjectedScanConfig<ProjectedSchema>);
21
+ buildCommandInput(entity: DynamoEntity<Schema>): ScanCommandInput;
22
+ validateItems(items: Record<string, NativeAttributeValue>[] | undefined): Promise<EntitySchema<ProjectedSchema>[]>;
23
+ buildResult(items: EntitySchema<ProjectedSchema>[], scanResult: ScanCommandOutput): ProjectedScanResult<Schema, ProjectedSchema>;
24
+ execute(entity: DynamoEntity<Schema>): Promise<ProjectedScanResult<Schema, ProjectedSchema>>;
25
+ executePaginated(entity: DynamoEntity<Schema>): AsyncGenerator<ProjectedScanResult<Schema, ProjectedSchema>, void, unknown>;
26
+ }
@@ -0,0 +1,96 @@
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 { PROJECTED_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 { parseProjection } from '../projections/projection-parser.mjs';
7
+ import pMap from 'p-map';
8
+
9
+ var _ProjectedScan_config;
10
+ class ProjectedScan {
11
+ constructor(config) {
12
+ _ProjectedScan_config.set(this, void 0);
13
+ __classPrivateFieldSet(this, _ProjectedScan_config, config, "f");
14
+ }
15
+ buildCommandInput(entity) {
16
+ var _a;
17
+ const attributeExpressionMap = new AttributeExpressionMap();
18
+ let filterExpression;
19
+ if (__classPrivateFieldGet(this, _ProjectedScan_config, "f").filter) {
20
+ filterExpression = parseCondition(__classPrivateFieldGet(this, _ProjectedScan_config, "f").filter, attributeExpressionMap).conditionExpression;
21
+ }
22
+ const { projectionExpression } = parseProjection(__classPrivateFieldGet(this, _ProjectedScan_config, "f").projection, attributeExpressionMap);
23
+ return Object.assign(Object.assign({ TableName: entity.table.tableName, FilterExpression: filterExpression }, attributeExpressionMap.toDynamoAttributeExpression()), { ProjectionExpression: projectionExpression, Select: __classPrivateFieldGet(this, _ProjectedScan_config, "f").selectAttributes, Limit: __classPrivateFieldGet(this, _ProjectedScan_config, "f").limit, ConsistentRead: (_a = __classPrivateFieldGet(this, _ProjectedScan_config, "f").consistent) !== null && _a !== void 0 ? _a : false, IndexName: __classPrivateFieldGet(this, _ProjectedScan_config, "f").indexName, Segment: __classPrivateFieldGet(this, _ProjectedScan_config, "f").segment, TotalSegments: __classPrivateFieldGet(this, _ProjectedScan_config, "f").totalSegments, ExclusiveStartKey: __classPrivateFieldGet(this, _ProjectedScan_config, "f").exclusiveStartKey, ReturnConsumedCapacity: __classPrivateFieldGet(this, _ProjectedScan_config, "f").returnConsumedCapacity });
24
+ }
25
+ validateItems(items) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ var _a, _b;
28
+ if (!items) {
29
+ return [];
30
+ }
31
+ if (__classPrivateFieldGet(this, _ProjectedScan_config, "f").skipValidation) {
32
+ return items;
33
+ }
34
+ return pMap(items, item => __classPrivateFieldGet(this, _ProjectedScan_config, "f").projectionSchema.parseAsync(item), {
35
+ concurrency: (_a = __classPrivateFieldGet(this, _ProjectedScan_config, "f").validationConcurrency) !== null && _a !== void 0 ? _a : PROJECTED_SCAN_VALIDATION_CONCURRENCY,
36
+ signal: (_b = __classPrivateFieldGet(this, _ProjectedScan_config, "f").abortController) === null || _b === void 0 ? void 0 : _b.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 __awaiter(this, void 0, void 0, function* () {
53
+ var _a;
54
+ const scan = new ScanCommand(this.buildCommandInput(entity));
55
+ const scanResult = yield entity.table.documentClient.send(scan, {
56
+ abortSignal: (_a = __classPrivateFieldGet(this, _ProjectedScan_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
57
+ requestTimeout: __classPrivateFieldGet(this, _ProjectedScan_config, "f").timeoutMs,
58
+ });
59
+ const items = yield this.validateItems(scanResult.Items);
60
+ return this.buildResult(items, scanResult);
61
+ });
62
+ }
63
+ executePaginated(entity) {
64
+ return __asyncGenerator(this, arguments, function* executePaginated_1() {
65
+ var _a, e_1, _b, _c;
66
+ var _d;
67
+ const paginator = paginateScan({
68
+ client: entity.table.documentClient,
69
+ pageSize: __classPrivateFieldGet(this, _ProjectedScan_config, "f").pageSize,
70
+ }, this.buildCommandInput(entity), {
71
+ abortSignal: (_d = __classPrivateFieldGet(this, _ProjectedScan_config, "f").abortController) === null || _d === void 0 ? void 0 : _d.signal,
72
+ requestTimeout: __classPrivateFieldGet(this, _ProjectedScan_config, "f").timeoutMs,
73
+ });
74
+ try {
75
+ 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) {
76
+ _c = paginator_1_1.value;
77
+ _e = false;
78
+ const page = _c;
79
+ const items = yield __await(this.validateItems(page.Items));
80
+ yield yield __await(this.buildResult(items, page));
81
+ }
82
+ }
83
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
84
+ finally {
85
+ try {
86
+ if (!_e && !_a && (_b = paginator_1.return)) yield __await(_b.call(paginator_1));
87
+ }
88
+ finally { if (e_1) throw e_1.error; }
89
+ }
90
+ });
91
+ }
92
+ }
93
+ _ProjectedScan_config = new WeakMap();
94
+
95
+ export { ProjectedScan };
96
+ //# sourceMappingURL=projected-scan.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projected-scan.mjs","sources":["../../src/commands/projected-scan.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
4
+ var libDynamodb = require('@aws-sdk/lib-dynamodb');
5
+
6
+ var _Put_config;
7
+ class Put {
8
+ constructor(config) {
9
+ _Put_config.set(this, void 0);
10
+ tslib_es6.__classPrivateFieldSet(this, _Put_config, config, "f");
11
+ }
12
+ buildItem(entity) {
13
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
14
+ const encodedData = tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").skipValidation
15
+ ? tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").item
16
+ : yield entity.schema.encodeAsync(tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").item);
17
+ return Object.assign(Object.assign({}, encodedData), entity.buildAllKeys(tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").item));
18
+ });
19
+ }
20
+ execute(entity) {
21
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
22
+ var _a;
23
+ const item = yield this.buildItem(entity);
24
+ const put = new libDynamodb.PutCommand({
25
+ TableName: entity.table.tableName,
26
+ Item: item,
27
+ ReturnValues: tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").returnValues,
28
+ ReturnConsumedCapacity: tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").returnConsumedCapacity,
29
+ ReturnItemCollectionMetrics: tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").returnItemCollectionMetrics,
30
+ });
31
+ const putResult = yield entity.table.documentClient.send(put, {
32
+ abortSignal: (_a = tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").abortController) === null || _a === void 0 ? void 0 : _a.signal,
33
+ requestTimeout: tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").timeoutMs,
34
+ });
35
+ if (putResult.Attributes) {
36
+ const returnItem = (tslib_es6.__classPrivateFieldGet(this, _Put_config, "f").skipValidation
37
+ ? putResult.Attributes
38
+ : yield entity.schema.partial().parseAsync(putResult.Attributes));
39
+ return {
40
+ returnItem,
41
+ responseMetadata: putResult.$metadata,
42
+ consumedCapacity: putResult.ConsumedCapacity,
43
+ itemCollectionMetrics: putResult.ItemCollectionMetrics,
44
+ };
45
+ }
46
+ return {
47
+ returnItem: undefined,
48
+ responseMetadata: putResult.$metadata,
49
+ consumedCapacity: putResult.ConsumedCapacity,
50
+ itemCollectionMetrics: putResult.ItemCollectionMetrics,
51
+ };
52
+ });
53
+ }
54
+ prepareWriteTransaction(entity) {
55
+ return tslib_es6.__awaiter(this, void 0, void 0, function* () {
56
+ const item = yield this.buildItem(entity);
57
+ return {
58
+ Put: {
59
+ TableName: entity.table.tableName,
60
+ Item: item,
61
+ },
62
+ };
63
+ });
64
+ }
65
+ }
66
+ _Put_config = new WeakMap();
67
+
68
+ exports.Put = Put;
69
+ //# sourceMappingURL=put.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put.cjs","sources":["../../src/commands/put.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","PutCommand"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { DynamoEntity } from '@/core/entity';
2
+ import type { EntitySchema, TransactWriteOperation } from '@/core/core-types';
3
+ import type { ItemCollectionMetrics, ReturnItemCollectionMetrics, ReturnValue } from '@aws-sdk/client-dynamodb';
4
+ import type { ZodObject } from 'zod/v4';
5
+ import type { BaseConfig, BaseCommand, BaseResult, WriteTransactable } from '@/commands/base-command';
6
+ export type PutConfig<Schema extends ZodObject> = BaseConfig & {
7
+ item: EntitySchema<Schema>;
8
+ returnValues?: ReturnValue;
9
+ returnItemCollectionMetrics?: ReturnItemCollectionMetrics;
10
+ };
11
+ export type PutResult<Schema extends ZodObject> = BaseResult & {
12
+ returnItem: Partial<EntitySchema<Schema>> | undefined;
13
+ itemCollectionMetrics?: ItemCollectionMetrics;
14
+ };
15
+ export declare class Put<Schema extends ZodObject> implements BaseCommand<PutResult<Schema>, Schema>, WriteTransactable<Schema> {
16
+ #private;
17
+ constructor(config: PutConfig<Schema>);
18
+ buildItem(entity: DynamoEntity<Schema>): Promise<(import("zod/v4").infer<Schema> & import("..").DynamoKey) | (import("zod/v4").input<Schema> & import("..").DynamoKey)>;
19
+ execute(entity: DynamoEntity<Schema>): Promise<PutResult<Schema>>;
20
+ prepareWriteTransaction(entity: DynamoEntity<Schema>): Promise<TransactWriteOperation>;
21
+ }