dynamo-document-builder 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/README.md +270 -0
  2. package/dist/attributes/attribute-map.cjs +52 -0
  3. package/dist/attributes/attribute-map.cjs.map +1 -1
  4. package/dist/attributes/attribute-map.d.ts +67 -0
  5. package/dist/attributes/attribute-map.mjs +52 -0
  6. package/dist/attributes/attribute-map.mjs.map +1 -1
  7. package/dist/commands/batch-get.cjs +36 -0
  8. package/dist/commands/batch-get.cjs.map +1 -1
  9. package/dist/commands/batch-get.d.ts +48 -2
  10. package/dist/commands/batch-get.mjs +36 -0
  11. package/dist/commands/batch-get.mjs.map +1 -1
  12. package/dist/commands/batch-projected-get.cjs +42 -0
  13. package/dist/commands/batch-projected-get.cjs.map +1 -1
  14. package/dist/commands/batch-projected-get.d.ts +56 -3
  15. package/dist/commands/batch-projected-get.mjs +42 -0
  16. package/dist/commands/batch-projected-get.mjs.map +1 -1
  17. package/dist/commands/batch-write.cjs +38 -0
  18. package/dist/commands/batch-write.cjs.map +1 -1
  19. package/dist/commands/batch-write.d.ts +51 -3
  20. package/dist/commands/batch-write.mjs +38 -0
  21. package/dist/commands/batch-write.mjs.map +1 -1
  22. package/dist/commands/condition-check.cjs +37 -0
  23. package/dist/commands/condition-check.cjs.map +1 -1
  24. package/dist/commands/condition-check.d.ts +45 -3
  25. package/dist/commands/condition-check.mjs +37 -0
  26. package/dist/commands/condition-check.mjs.map +1 -1
  27. package/dist/commands/conditional-delete.cjs +33 -0
  28. package/dist/commands/conditional-delete.cjs.map +1 -1
  29. package/dist/commands/conditional-delete.d.ts +46 -3
  30. package/dist/commands/conditional-delete.mjs +33 -0
  31. package/dist/commands/conditional-delete.mjs.map +1 -1
  32. package/dist/commands/conditional-put.cjs +34 -0
  33. package/dist/commands/conditional-put.cjs.map +1 -1
  34. package/dist/commands/conditional-put.d.ts +48 -4
  35. package/dist/commands/conditional-put.mjs +34 -0
  36. package/dist/commands/conditional-put.mjs.map +1 -1
  37. package/dist/commands/conditional-update.cjs +35 -0
  38. package/dist/commands/conditional-update.cjs.map +1 -1
  39. package/dist/commands/conditional-update.d.ts +48 -3
  40. package/dist/commands/conditional-update.mjs +35 -0
  41. package/dist/commands/conditional-update.mjs.map +1 -1
  42. package/dist/commands/delete.cjs +32 -0
  43. package/dist/commands/delete.cjs.map +1 -1
  44. package/dist/commands/delete.d.ts +44 -2
  45. package/dist/commands/delete.mjs +32 -0
  46. package/dist/commands/delete.mjs.map +1 -1
  47. package/dist/commands/get.cjs +33 -0
  48. package/dist/commands/get.cjs.map +1 -1
  49. package/dist/commands/get.d.ts +45 -2
  50. package/dist/commands/get.mjs +33 -0
  51. package/dist/commands/get.mjs.map +1 -1
  52. package/dist/commands/index.d.ts +62 -1
  53. package/dist/commands/projected-get.cjs +40 -0
  54. package/dist/commands/projected-get.cjs.map +1 -1
  55. package/dist/commands/projected-get.d.ts +54 -3
  56. package/dist/commands/projected-get.mjs +40 -0
  57. package/dist/commands/projected-get.mjs.map +1 -1
  58. package/dist/commands/projected-query.cjs +41 -0
  59. package/dist/commands/projected-query.cjs.map +1 -1
  60. package/dist/commands/projected-query.d.ts +56 -3
  61. package/dist/commands/projected-query.mjs +41 -0
  62. package/dist/commands/projected-query.mjs.map +1 -1
  63. package/dist/commands/projected-scan.cjs +41 -0
  64. package/dist/commands/projected-scan.cjs.map +1 -1
  65. package/dist/commands/projected-scan.d.ts +55 -3
  66. package/dist/commands/projected-scan.mjs +41 -0
  67. package/dist/commands/projected-scan.mjs.map +1 -1
  68. package/dist/commands/put.cjs +37 -0
  69. package/dist/commands/put.cjs.map +1 -1
  70. package/dist/commands/put.d.ts +50 -3
  71. package/dist/commands/put.mjs +37 -0
  72. package/dist/commands/put.mjs.map +1 -1
  73. package/dist/commands/query.cjs +36 -1
  74. package/dist/commands/query.cjs.map +1 -1
  75. package/dist/commands/query.d.ts +48 -3
  76. package/dist/commands/query.mjs +36 -1
  77. package/dist/commands/query.mjs.map +1 -1
  78. package/dist/commands/scan.cjs +33 -0
  79. package/dist/commands/scan.cjs.map +1 -1
  80. package/dist/commands/scan.d.ts +46 -3
  81. package/dist/commands/scan.mjs +33 -0
  82. package/dist/commands/scan.mjs.map +1 -1
  83. package/dist/commands/transact-get.cjs +35 -0
  84. package/dist/commands/transact-get.cjs.map +1 -1
  85. package/dist/commands/transact-get.d.ts +47 -2
  86. package/dist/commands/transact-get.mjs +35 -0
  87. package/dist/commands/transact-get.mjs.map +1 -1
  88. package/dist/commands/transact-write.cjs +37 -0
  89. package/dist/commands/transact-write.cjs.map +1 -1
  90. package/dist/commands/transact-write.d.ts +46 -1
  91. package/dist/commands/transact-write.mjs +37 -0
  92. package/dist/commands/transact-write.mjs.map +1 -1
  93. package/dist/commands/update.cjs +37 -0
  94. package/dist/commands/update.cjs.map +1 -1
  95. package/dist/commands/update.d.ts +50 -3
  96. package/dist/commands/update.mjs +37 -0
  97. package/dist/commands/update.mjs.map +1 -1
  98. package/dist/conditions/and.cjs +3 -0
  99. package/dist/conditions/and.cjs.map +1 -1
  100. package/dist/conditions/and.d.ts +4 -1
  101. package/dist/conditions/and.mjs +3 -0
  102. package/dist/conditions/and.mjs.map +1 -1
  103. package/dist/conditions/begins-with.cjs +3 -0
  104. package/dist/conditions/begins-with.cjs.map +1 -1
  105. package/dist/conditions/begins-with.d.ts +4 -1
  106. package/dist/conditions/begins-with.mjs +3 -0
  107. package/dist/conditions/begins-with.mjs.map +1 -1
  108. package/dist/conditions/between.cjs +3 -0
  109. package/dist/conditions/between.cjs.map +1 -1
  110. package/dist/conditions/between.d.ts +4 -1
  111. package/dist/conditions/between.mjs +3 -0
  112. package/dist/conditions/between.mjs.map +1 -1
  113. package/dist/conditions/condition-parser.d.ts +1 -1
  114. package/dist/conditions/contains.cjs +3 -0
  115. package/dist/conditions/contains.cjs.map +1 -1
  116. package/dist/conditions/contains.d.ts +4 -1
  117. package/dist/conditions/contains.mjs +3 -0
  118. package/dist/conditions/contains.mjs.map +1 -1
  119. package/dist/conditions/equals.cjs +3 -0
  120. package/dist/conditions/equals.cjs.map +1 -1
  121. package/dist/conditions/equals.d.ts +4 -1
  122. package/dist/conditions/equals.mjs +3 -0
  123. package/dist/conditions/equals.mjs.map +1 -1
  124. package/dist/conditions/exists.cjs +3 -0
  125. package/dist/conditions/exists.cjs.map +1 -1
  126. package/dist/conditions/exists.d.ts +4 -1
  127. package/dist/conditions/exists.mjs +3 -0
  128. package/dist/conditions/exists.mjs.map +1 -1
  129. package/dist/conditions/greater-than-or-equal.cjs +3 -0
  130. package/dist/conditions/greater-than-or-equal.cjs.map +1 -1
  131. package/dist/conditions/greater-than-or-equal.d.ts +4 -1
  132. package/dist/conditions/greater-than-or-equal.mjs +3 -0
  133. package/dist/conditions/greater-than-or-equal.mjs.map +1 -1
  134. package/dist/conditions/greater-than.cjs +3 -0
  135. package/dist/conditions/greater-than.cjs.map +1 -1
  136. package/dist/conditions/greater-than.d.ts +4 -1
  137. package/dist/conditions/greater-than.mjs +3 -0
  138. package/dist/conditions/greater-than.mjs.map +1 -1
  139. package/dist/conditions/index.cjs +2 -2
  140. package/dist/conditions/index.d.ts +185 -2
  141. package/dist/conditions/index.mjs +1 -1
  142. package/dist/conditions/is-in.cjs +3 -0
  143. package/dist/conditions/is-in.cjs.map +1 -1
  144. package/dist/conditions/is-in.d.ts +4 -1
  145. package/dist/conditions/is-in.mjs +3 -0
  146. package/dist/conditions/is-in.mjs.map +1 -1
  147. package/dist/conditions/less-than-or-equal.cjs +3 -0
  148. package/dist/conditions/less-than-or-equal.cjs.map +1 -1
  149. package/dist/conditions/less-than-or-equal.d.ts +4 -1
  150. package/dist/conditions/less-than-or-equal.mjs +3 -0
  151. package/dist/conditions/less-than-or-equal.mjs.map +1 -1
  152. package/dist/conditions/less-than.cjs +3 -0
  153. package/dist/conditions/less-than.cjs.map +1 -1
  154. package/dist/conditions/less-than.d.ts +4 -1
  155. package/dist/conditions/less-than.mjs +3 -0
  156. package/dist/conditions/less-than.mjs.map +1 -1
  157. package/dist/conditions/not-equals.cjs +3 -0
  158. package/dist/conditions/not-equals.cjs.map +1 -1
  159. package/dist/conditions/not-equals.d.ts +4 -1
  160. package/dist/conditions/not-equals.mjs +3 -0
  161. package/dist/conditions/not-equals.mjs.map +1 -1
  162. package/dist/conditions/not-exists.cjs +3 -0
  163. package/dist/conditions/not-exists.cjs.map +1 -1
  164. package/dist/conditions/not-exists.d.ts +4 -1
  165. package/dist/conditions/not-exists.mjs +3 -0
  166. package/dist/conditions/not-exists.mjs.map +1 -1
  167. package/dist/conditions/not.cjs +3 -0
  168. package/dist/conditions/not.cjs.map +1 -1
  169. package/dist/conditions/not.d.ts +4 -1
  170. package/dist/conditions/not.mjs +3 -0
  171. package/dist/conditions/not.mjs.map +1 -1
  172. package/dist/conditions/or.cjs +3 -0
  173. package/dist/conditions/or.cjs.map +1 -1
  174. package/dist/conditions/or.d.ts +4 -1
  175. package/dist/conditions/or.mjs +3 -0
  176. package/dist/conditions/or.mjs.map +1 -1
  177. package/dist/conditions/size.cjs +3 -0
  178. package/dist/conditions/size.cjs.map +1 -1
  179. package/dist/conditions/size.d.ts +4 -1
  180. package/dist/conditions/size.mjs +3 -0
  181. package/dist/conditions/size.mjs.map +1 -1
  182. package/dist/conditions/type-is.cjs +3 -0
  183. package/dist/conditions/type-is.cjs.map +1 -1
  184. package/dist/conditions/type-is.d.ts +4 -1
  185. package/dist/conditions/type-is.mjs +3 -0
  186. package/dist/conditions/type-is.mjs.map +1 -1
  187. package/dist/core/entity.cjs +57 -0
  188. package/dist/core/entity.cjs.map +1 -1
  189. package/dist/core/entity.d.ts +79 -4
  190. package/dist/core/entity.mjs +57 -0
  191. package/dist/core/entity.mjs.map +1 -1
  192. package/dist/core/index.d.ts +139 -2
  193. package/dist/core/key.cjs +1 -1
  194. package/dist/core/key.cjs.map +1 -1
  195. package/dist/core/key.d.ts +26 -2
  196. package/dist/core/key.mjs +1 -1
  197. package/dist/core/key.mjs.map +1 -1
  198. package/dist/core/table.cjs +22 -0
  199. package/dist/core/table.cjs.map +1 -1
  200. package/dist/core/table.d.ts +35 -1
  201. package/dist/core/table.mjs +22 -0
  202. package/dist/core/table.mjs.map +1 -1
  203. package/dist/errors.cjs +3 -0
  204. package/dist/errors.cjs.map +1 -1
  205. package/dist/errors.d.ts +3 -0
  206. package/dist/errors.mjs +3 -0
  207. package/dist/errors.mjs.map +1 -1
  208. package/dist/index.cjs +4 -4
  209. package/dist/index.d.ts +7 -7
  210. package/dist/index.mjs +2 -2
  211. package/dist/projections/index.d.ts +7 -1
  212. package/dist/projections/projection-parser.d.ts +1 -1
  213. package/dist/updates/add-to-set.cjs +5 -0
  214. package/dist/updates/add-to-set.cjs.map +1 -1
  215. package/dist/updates/add-to-set.d.ts +6 -1
  216. package/dist/updates/add-to-set.mjs +5 -0
  217. package/dist/updates/add-to-set.mjs.map +1 -1
  218. package/dist/updates/add.cjs +5 -0
  219. package/dist/updates/add.cjs.map +1 -1
  220. package/dist/updates/add.d.ts +6 -1
  221. package/dist/updates/add.mjs +5 -0
  222. package/dist/updates/add.mjs.map +1 -1
  223. package/dist/updates/append.cjs +5 -0
  224. package/dist/updates/append.cjs.map +1 -1
  225. package/dist/updates/append.d.ts +6 -1
  226. package/dist/updates/append.mjs +5 -0
  227. package/dist/updates/append.mjs.map +1 -1
  228. package/dist/updates/index.d.ts +78 -1
  229. package/dist/updates/prepend.cjs +5 -0
  230. package/dist/updates/prepend.cjs.map +1 -1
  231. package/dist/updates/prepend.d.ts +6 -1
  232. package/dist/updates/prepend.mjs +5 -0
  233. package/dist/updates/prepend.mjs.map +1 -1
  234. package/dist/updates/ref.cjs +6 -0
  235. package/dist/updates/ref.cjs.map +1 -1
  236. package/dist/updates/ref.d.ts +7 -1
  237. package/dist/updates/ref.mjs +6 -0
  238. package/dist/updates/ref.mjs.map +1 -1
  239. package/dist/updates/remove-from-set.cjs +5 -0
  240. package/dist/updates/remove-from-set.cjs.map +1 -1
  241. package/dist/updates/remove-from-set.d.ts +6 -1
  242. package/dist/updates/remove-from-set.mjs +5 -0
  243. package/dist/updates/remove-from-set.mjs.map +1 -1
  244. package/dist/updates/remove.cjs +3 -0
  245. package/dist/updates/remove.cjs.map +1 -1
  246. package/dist/updates/remove.d.ts +4 -1
  247. package/dist/updates/remove.mjs +3 -0
  248. package/dist/updates/remove.mjs.map +1 -1
  249. package/dist/updates/subtract.cjs +5 -0
  250. package/dist/updates/subtract.cjs.map +1 -1
  251. package/dist/updates/subtract.d.ts +6 -1
  252. package/dist/updates/subtract.mjs +5 -0
  253. package/dist/updates/subtract.mjs.map +1 -1
  254. package/dist/updates/update-parser.cjs +10 -0
  255. package/dist/updates/update-parser.cjs.map +1 -1
  256. package/dist/updates/update-parser.d.ts +17 -1
  257. package/dist/updates/update-parser.mjs +10 -0
  258. package/dist/updates/update-parser.mjs.map +1 -1
  259. package/package.json +2 -1
  260. package/dist/commands/base-command.cjs +0 -3
  261. package/dist/commands/base-command.cjs.map +0 -1
  262. package/dist/commands/base-command.d.ts +0 -27
  263. package/dist/commands/base-command.mjs +0 -2
  264. package/dist/commands/base-command.mjs.map +0 -1
  265. package/dist/conditions/condition-types.cjs +0 -3
  266. package/dist/conditions/condition-types.cjs.map +0 -1
  267. package/dist/conditions/condition-types.d.ts +0 -95
  268. package/dist/conditions/condition-types.mjs +0 -2
  269. package/dist/conditions/condition-types.mjs.map +0 -1
  270. package/dist/core/core-types.cjs +0 -3
  271. package/dist/core/core-types.cjs.map +0 -1
  272. package/dist/core/core-types.d.ts +0 -44
  273. package/dist/core/core-types.mjs +0 -2
  274. package/dist/core/core-types.mjs.map +0 -1
  275. package/dist/projections/projection-types.cjs +0 -3
  276. package/dist/projections/projection-types.cjs.map +0 -1
  277. package/dist/projections/projection-types.d.ts +0 -3
  278. package/dist/projections/projection-types.mjs +0 -2
  279. package/dist/projections/projection-types.mjs.map +0 -1
  280. package/dist/updates/update-types.cjs +0 -3
  281. package/dist/updates/update-types.cjs.map +0 -1
  282. package/dist/updates/update-types.d.ts +0 -45
  283. package/dist/updates/update-types.mjs +0 -2
  284. package/dist/updates/update-types.mjs.map +0 -1
@@ -2,6 +2,43 @@ import { __classPrivateFieldSet, __awaiter, __classPrivateFieldGet } from '../no
2
2
  import { parseCondition } from '../conditions/condition-parser.mjs';
3
3
 
4
4
  var _ConditionCheck_config;
5
+ /**
6
+ * Command to verify a condition without modifying data in a transaction.
7
+ *
8
+ * @template Schema - The Zod schema defining the structure of the entity.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { DynamoTable, DynamoEntity, key, TransactWrite, ConditionCheck, Update } from 'dynamo-document-builder';
13
+ *
14
+ * const table = new DynamoTable({
15
+ * tableName: 'ExampleTable',
16
+ * documentClient,
17
+ * });
18
+ *
19
+ * const userEntity = new DynamoEntity({
20
+ * table,
21
+ * schema: z.object({
22
+ * userId: z.string(),
23
+ * balance: z.number(),
24
+ * }),
25
+ * partitionKey: user => key('USER', user.userId),
26
+ * sortKey: () => 'METADATA',
27
+ * });
28
+ *
29
+ * const transactWriteCommand = new TransactWrite({
30
+ * writes: [
31
+ * new ConditionCheck({
32
+ * key: { userId: 'user1' },
33
+ * condition: { balance: greaterThan(100) },
34
+ * }),
35
+ * new Update({ key: { userId: 'user2' }, update: { balance: add(50) } }),
36
+ * ],
37
+ * });
38
+ *
39
+ * await userEntity.send(transactWriteCommand);
40
+ * ```
41
+ */
5
42
  class ConditionCheck {
6
43
  constructor(config) {
7
44
  _ConditionCheck_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"condition-check.mjs","sources":["../../src/commands/condition-check.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAca,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAY,MAAoC,EAAA;QAFhD,sBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,uBAAuB,CAClC,MAA4B,EAAA;;AAE5B,YAAA,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,GAAG,cAAc,CAAC,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS,CAAC;YAC9F,OAAO;AACL,gBAAA,cAAc,gCACZ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC,EAC7C,mBAAmB,EAAE,mBAAmB,EAAA,EACrC,sBAAsB,CAAC,2BAA2B,EAAE,CAAA,EAAA,EACvD,mCAAmC,EAAE,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,mCAAmC,EAAA,CACtF;aACF;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
1
+ {"version":3,"file":"condition-check.mjs","sources":["../../src/commands/condition-check.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAmBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCG;MACU,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAY,MAAoC,EAAA;QAFhD,sBAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAA,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,uBAAuB,CAClC,MAA4B,EAAA;;AAE5B,YAAA,MAAM,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,GAAG,cAAc,CAAC,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,SAAS,CAAC;YAC9F,OAAO;AACL,gBAAA,cAAc,gCACZ,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,EACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC,EAC7C,mBAAmB,EAAE,mBAAmB,EAAA,EACrC,sBAAsB,CAAC,2BAA2B,EAAE,CAAA,EAAA,EACvD,mCAAmC,EAAE,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAQ,CAAC,mCAAmC,EAAA,CACtF;aACF;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
@@ -5,6 +5,39 @@ var libDynamodb = require('@aws-sdk/lib-dynamodb');
5
5
  var conditions_conditionParser = require('../conditions/condition-parser.cjs');
6
6
 
7
7
  var _ConditionalDelete_config;
8
+ /**
9
+ * Command to remove an item with a condition expression.
10
+ *
11
+ * @template Schema - The Zod schema defining the structure of the entity.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { DynamoTable, DynamoEntity, key, ConditionalDelete } from 'dynamo-document-builder';
16
+ *
17
+ * const table = new DynamoTable({
18
+ * tableName: 'ExampleTable',
19
+ * documentClient,
20
+ * });
21
+ *
22
+ * const userEntity = new DynamoEntity({
23
+ * table,
24
+ * schema: z.object({
25
+ * userId: z.string(),
26
+ * status: z.string(),
27
+ * }),
28
+ * partitionKey: user => key('USER', user.userId),
29
+ * sortKey: () => 'METADATA',
30
+ * });
31
+ *
32
+ * const conditionalDeleteCommand = new ConditionalDelete({
33
+ * key: { userId: 'user123' },
34
+ * condition: { status: 'inactive' },
35
+ * returnValues: 'ALL_OLD',
36
+ * });
37
+ *
38
+ * const { deletedItem } = await userEntity.send(conditionalDeleteCommand);
39
+ * ```
40
+ */
8
41
  class ConditionalDelete {
9
42
  constructor(config) {
10
43
  _ConditionalDelete_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-delete.cjs","sources":["../../src/commands/conditional-delete.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseCondition","__classPrivateFieldGet","DeleteCommand"],"mappings":"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"}
1
+ {"version":3,"file":"conditional-delete.cjs","sources":["../../src/commands/conditional-delete.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","parseCondition","__classPrivateFieldGet","DeleteCommand"],"mappings":"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"}
@@ -1,19 +1,62 @@
1
- import { Condition } from '../conditions/condition-types.js';
1
+ import { Condition } from '../conditions/index.js';
2
2
  import { DeleteConfig } from './delete.js';
3
3
  import { DynamoEntity } from '../core/entity.js';
4
- import { EntitySchema, TransactWriteOperation } from '../core/core-types.js';
4
+ import { EntitySchema, TransactWriteOperation } from '../core/index.js';
5
5
  import { ReturnValuesOnConditionCheckFailure, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
6
6
  import { ZodObject } from 'zod/v4';
7
- import { BaseResult, BaseCommand, WriteTransactable } from './base-command.js';
7
+ import { BaseResult, BaseCommand, WriteTransactable } from './index.js';
8
8
 
9
+ /**
10
+ * Configuration for the ConditionalDelete command.
11
+ *
12
+ * @template Schema - The Zod schema defining the structure of the entity.
13
+ */
9
14
  type ConditionalDeleteConfig<Schema extends ZodObject> = DeleteConfig<Schema> & {
10
15
  condition: Condition;
11
16
  returnValuesOnConditionCheckFailure?: ReturnValuesOnConditionCheckFailure;
12
17
  };
18
+ /**
19
+ * Result of the ConditionalDelete command.
20
+ *
21
+ * @template Schema - The Zod schema defining the structure of the entity.
22
+ */
13
23
  type ConditionalDeleteResult<Schema extends ZodObject> = BaseResult & {
14
24
  deletedItem?: Partial<EntitySchema<Schema>> | undefined;
15
25
  itemCollectionMetrics?: ItemCollectionMetrics;
16
26
  };
27
+ /**
28
+ * Command to remove an item with a condition expression.
29
+ *
30
+ * @template Schema - The Zod schema defining the structure of the entity.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { DynamoTable, DynamoEntity, key, ConditionalDelete } from 'dynamo-document-builder';
35
+ *
36
+ * const table = new DynamoTable({
37
+ * tableName: 'ExampleTable',
38
+ * documentClient,
39
+ * });
40
+ *
41
+ * const userEntity = new DynamoEntity({
42
+ * table,
43
+ * schema: z.object({
44
+ * userId: z.string(),
45
+ * status: z.string(),
46
+ * }),
47
+ * partitionKey: user => key('USER', user.userId),
48
+ * sortKey: () => 'METADATA',
49
+ * });
50
+ *
51
+ * const conditionalDeleteCommand = new ConditionalDelete({
52
+ * key: { userId: 'user123' },
53
+ * condition: { status: 'inactive' },
54
+ * returnValues: 'ALL_OLD',
55
+ * });
56
+ *
57
+ * const { deletedItem } = await userEntity.send(conditionalDeleteCommand);
58
+ * ```
59
+ */
17
60
  declare class ConditionalDelete<Schema extends ZodObject> implements BaseCommand<ConditionalDeleteResult<Schema>, Schema>, WriteTransactable<Schema> {
18
61
  #private;
19
62
  constructor(config: ConditionalDeleteConfig<Schema>);
@@ -3,6 +3,39 @@ import { DeleteCommand } from '@aws-sdk/lib-dynamodb';
3
3
  import { parseCondition } from '../conditions/condition-parser.mjs';
4
4
 
5
5
  var _ConditionalDelete_config;
6
+ /**
7
+ * Command to remove an item with a condition expression.
8
+ *
9
+ * @template Schema - The Zod schema defining the structure of the entity.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { DynamoTable, DynamoEntity, key, ConditionalDelete } from 'dynamo-document-builder';
14
+ *
15
+ * const table = new DynamoTable({
16
+ * tableName: 'ExampleTable',
17
+ * documentClient,
18
+ * });
19
+ *
20
+ * const userEntity = new DynamoEntity({
21
+ * table,
22
+ * schema: z.object({
23
+ * userId: z.string(),
24
+ * status: z.string(),
25
+ * }),
26
+ * partitionKey: user => key('USER', user.userId),
27
+ * sortKey: () => 'METADATA',
28
+ * });
29
+ *
30
+ * const conditionalDeleteCommand = new ConditionalDelete({
31
+ * key: { userId: 'user123' },
32
+ * condition: { status: 'inactive' },
33
+ * returnValues: 'ALL_OLD',
34
+ * });
35
+ *
36
+ * const { deletedItem } = await userEntity.send(conditionalDeleteCommand);
37
+ * ```
38
+ */
6
39
  class ConditionalDelete {
7
40
  constructor(config) {
8
41
  _ConditionalDelete_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-delete.mjs","sources":["../../src/commands/conditional-delete.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditional-delete.mjs","sources":["../../src/commands/conditional-delete.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -5,6 +5,40 @@ var libDynamodb = require('@aws-sdk/lib-dynamodb');
5
5
  var conditions_conditionParser = require('../conditions/condition-parser.cjs');
6
6
 
7
7
  var _ConditionalPut_config;
8
+ /**
9
+ * Command to create or replace an item with a condition expression.
10
+ *
11
+ * @template Schema - The Zod schema defining the structure of the entity.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { DynamoTable, DynamoEntity, key, ConditionalPut, notExists } from 'dynamo-document-builder';
16
+ *
17
+ * const table = new DynamoTable({
18
+ * tableName: 'ExampleTable',
19
+ * documentClient,
20
+ * });
21
+ *
22
+ * const userEntity = new DynamoEntity({
23
+ * table,
24
+ * schema: z.object({
25
+ * userId: z.string(),
26
+ * name: z.string(),
27
+ * status: z.string(),
28
+ * }),
29
+ * partitionKey: user => key('USER', user.userId),
30
+ * sortKey: () => 'METADATA',
31
+ * });
32
+ *
33
+ * const conditionalPutCommand = new ConditionalPut({
34
+ * item: { userId: 'user123', name: 'John', status: 'active' },
35
+ * condition: { status: 'draft' },
36
+ * returnValuesOnConditionCheckFailure: 'ALL_OLD',
37
+ * });
38
+ *
39
+ * await userEntity.send(conditionalPutCommand);
40
+ * ```
41
+ */
8
42
  class ConditionalPut {
9
43
  constructor(config) {
10
44
  _ConditionalPut_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-put.cjs","sources":["../../src/commands/conditional-put.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","parseCondition","PutCommand"],"mappings":"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"}
1
+ {"version":3,"file":"conditional-put.cjs","sources":["../../src/commands/conditional-put.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","__classPrivateFieldGet","parseCondition","PutCommand"],"mappings":"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"}
@@ -1,21 +1,65 @@
1
- import { DynamoKey } from '../core/key.js';
1
+ import { EntitySchema, TransactWriteOperation } from '../core/index.js';
2
2
  import * as zod_v4 from 'zod/v4';
3
3
  import { ZodObject } from 'zod/v4';
4
- import { Condition } from '../conditions/condition-types.js';
4
+ import { Condition } from '../conditions/index.js';
5
5
  import { DynamoEntity } from '../core/entity.js';
6
- import { EntitySchema, TransactWriteOperation } from '../core/core-types.js';
7
6
  import { ReturnValuesOnConditionCheckFailure, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
8
7
  import { PutConfig } from './put.js';
9
- import { BaseResult, BaseCommand, WriteTransactable } from './base-command.js';
8
+ import { BaseResult, BaseCommand, WriteTransactable } from './index.js';
9
+ import { DynamoKey } from '../core/key.js';
10
10
 
11
+ /**
12
+ * Configuration for the ConditionalPut command.
13
+ *
14
+ * @template Schema - The Zod schema defining the structure of the entity.
15
+ */
11
16
  type ConditionalPutConfig<Schema extends ZodObject> = PutConfig<Schema> & {
12
17
  condition: Condition;
13
18
  returnValuesOnConditionCheckFailure?: ReturnValuesOnConditionCheckFailure;
14
19
  };
20
+ /**
21
+ * Result of the ConditionalPut command.
22
+ *
23
+ * @template Schema - The Zod schema defining the structure of the entity.
24
+ */
15
25
  type ConditionalPutResult<Schema extends ZodObject> = BaseResult & {
16
26
  returnItem: EntitySchema<Schema> | undefined;
17
27
  itemCollectionMetrics: ItemCollectionMetrics | undefined;
18
28
  };
29
+ /**
30
+ * Command to create or replace an item with a condition expression.
31
+ *
32
+ * @template Schema - The Zod schema defining the structure of the entity.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * import { DynamoTable, DynamoEntity, key, ConditionalPut, notExists } from 'dynamo-document-builder';
37
+ *
38
+ * const table = new DynamoTable({
39
+ * tableName: 'ExampleTable',
40
+ * documentClient,
41
+ * });
42
+ *
43
+ * const userEntity = new DynamoEntity({
44
+ * table,
45
+ * schema: z.object({
46
+ * userId: z.string(),
47
+ * name: z.string(),
48
+ * status: z.string(),
49
+ * }),
50
+ * partitionKey: user => key('USER', user.userId),
51
+ * sortKey: () => 'METADATA',
52
+ * });
53
+ *
54
+ * const conditionalPutCommand = new ConditionalPut({
55
+ * item: { userId: 'user123', name: 'John', status: 'active' },
56
+ * condition: { status: 'draft' },
57
+ * returnValuesOnConditionCheckFailure: 'ALL_OLD',
58
+ * });
59
+ *
60
+ * await userEntity.send(conditionalPutCommand);
61
+ * ```
62
+ */
19
63
  declare class ConditionalPut<Schema extends ZodObject> implements BaseCommand<ConditionalPutResult<Schema>, Schema>, WriteTransactable<Schema> {
20
64
  #private;
21
65
  constructor(config: ConditionalPutConfig<Schema>);
@@ -3,6 +3,40 @@ import { PutCommand } from '@aws-sdk/lib-dynamodb';
3
3
  import { parseCondition } from '../conditions/condition-parser.mjs';
4
4
 
5
5
  var _ConditionalPut_config;
6
+ /**
7
+ * Command to create or replace an item with a condition expression.
8
+ *
9
+ * @template Schema - The Zod schema defining the structure of the entity.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { DynamoTable, DynamoEntity, key, ConditionalPut, notExists } from 'dynamo-document-builder';
14
+ *
15
+ * const table = new DynamoTable({
16
+ * tableName: 'ExampleTable',
17
+ * documentClient,
18
+ * });
19
+ *
20
+ * const userEntity = new DynamoEntity({
21
+ * table,
22
+ * schema: z.object({
23
+ * userId: z.string(),
24
+ * name: z.string(),
25
+ * status: z.string(),
26
+ * }),
27
+ * partitionKey: user => key('USER', user.userId),
28
+ * sortKey: () => 'METADATA',
29
+ * });
30
+ *
31
+ * const conditionalPutCommand = new ConditionalPut({
32
+ * item: { userId: 'user123', name: 'John', status: 'active' },
33
+ * condition: { status: 'draft' },
34
+ * returnValuesOnConditionCheckFailure: 'ALL_OLD',
35
+ * });
36
+ *
37
+ * await userEntity.send(conditionalPutCommand);
38
+ * ```
39
+ */
6
40
  class ConditionalPut {
7
41
  constructor(config) {
8
42
  _ConditionalPut_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-put.mjs","sources":["../../src/commands/conditional-put.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditional-put.mjs","sources":["../../src/commands/conditional-put.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -7,6 +7,41 @@ var conditions_conditionParser = require('../conditions/condition-parser.cjs');
7
7
  var updates_updateParser = require('../updates/update-parser.cjs');
8
8
 
9
9
  var _ConditionalUpdate_config;
10
+ /**
11
+ * Command to modify existing item attributes with a condition expression.
12
+ *
13
+ * @template Schema - The Zod schema defining the structure of the entity.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import { DynamoTable, DynamoEntity, key, ConditionalUpdate, add } from 'dynamo-document-builder';
18
+ *
19
+ * const table = new DynamoTable({
20
+ * tableName: 'ExampleTable',
21
+ * documentClient,
22
+ * });
23
+ *
24
+ * const userEntity = new DynamoEntity({
25
+ * table,
26
+ * schema: z.object({
27
+ * userId: z.string(),
28
+ * balance: z.number(),
29
+ * status: z.string(),
30
+ * }),
31
+ * partitionKey: user => key('USER', user.userId),
32
+ * sortKey: () => 'METADATA',
33
+ * });
34
+ *
35
+ * const conditionalUpdateCommand = new ConditionalUpdate({
36
+ * key: { userId: 'user123' },
37
+ * update: { balance: add(50) },
38
+ * condition: { status: 'active' },
39
+ * returnValues: 'ALL_NEW',
40
+ * });
41
+ *
42
+ * const { updatedItem } = await userEntity.send(conditionalUpdateCommand);
43
+ * ```
44
+ */
10
45
  class ConditionalUpdate {
11
46
  constructor(config) {
12
47
  _ConditionalUpdate_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-update.cjs","sources":["../../src/commands/conditional-update.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","AttributeExpressionMap","parseUpdate","__classPrivateFieldGet","parseCondition","UpdateCommand"],"mappings":"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"}
1
+ {"version":3,"file":"conditional-update.cjs","sources":["../../src/commands/conditional-update.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","AttributeExpressionMap","parseUpdate","__classPrivateFieldGet","parseCondition","UpdateCommand"],"mappings":"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"}
@@ -1,19 +1,64 @@
1
- import { Condition } from '../conditions/condition-types.js';
1
+ import { Condition } from '../conditions/index.js';
2
2
  import { DynamoEntity } from '../core/entity.js';
3
- import { EntitySchema, TransactWriteOperation } from '../core/core-types.js';
3
+ import { EntitySchema, TransactWriteOperation } from '../core/index.js';
4
4
  import { ReturnValuesOnConditionCheckFailure, ItemCollectionMetrics } from '@aws-sdk/client-dynamodb';
5
5
  import { UpdateConfig } from './update.js';
6
6
  import { ZodObject } from 'zod/v4';
7
- import { BaseResult, BaseCommand, WriteTransactable } from './base-command.js';
7
+ import { BaseResult, BaseCommand, WriteTransactable } from './index.js';
8
8
 
9
+ /**
10
+ * Configuration for the ConditionalUpdate command.
11
+ *
12
+ * @template Schema - The Zod schema defining the structure of the entity.
13
+ */
9
14
  type ConditionalUpdateConfig<Schema extends ZodObject> = UpdateConfig<Schema> & {
10
15
  condition: Condition;
11
16
  returnValuesOnConditionCheckFailure?: ReturnValuesOnConditionCheckFailure;
12
17
  };
18
+ /**
19
+ * Result of the ConditionalUpdate command.
20
+ *
21
+ * @template Schema - The Zod schema defining the structure of the entity.
22
+ */
13
23
  type ConditionalUpdateResult<Schema extends ZodObject> = BaseResult & {
14
24
  updatedItem?: EntitySchema<Schema> | undefined;
15
25
  itemCollectionMetrics?: ItemCollectionMetrics;
16
26
  };
27
+ /**
28
+ * Command to modify existing item attributes with a condition expression.
29
+ *
30
+ * @template Schema - The Zod schema defining the structure of the entity.
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { DynamoTable, DynamoEntity, key, ConditionalUpdate, add } from 'dynamo-document-builder';
35
+ *
36
+ * const table = new DynamoTable({
37
+ * tableName: 'ExampleTable',
38
+ * documentClient,
39
+ * });
40
+ *
41
+ * const userEntity = new DynamoEntity({
42
+ * table,
43
+ * schema: z.object({
44
+ * userId: z.string(),
45
+ * balance: z.number(),
46
+ * status: z.string(),
47
+ * }),
48
+ * partitionKey: user => key('USER', user.userId),
49
+ * sortKey: () => 'METADATA',
50
+ * });
51
+ *
52
+ * const conditionalUpdateCommand = new ConditionalUpdate({
53
+ * key: { userId: 'user123' },
54
+ * update: { balance: add(50) },
55
+ * condition: { status: 'active' },
56
+ * returnValues: 'ALL_NEW',
57
+ * });
58
+ *
59
+ * const { updatedItem } = await userEntity.send(conditionalUpdateCommand);
60
+ * ```
61
+ */
17
62
  declare class ConditionalUpdate<Schema extends ZodObject> implements BaseCommand<ConditionalUpdateResult<Schema>, Schema>, WriteTransactable<Schema> {
18
63
  #private;
19
64
  constructor(config: ConditionalUpdateConfig<Schema>);
@@ -5,6 +5,41 @@ import { parseCondition } from '../conditions/condition-parser.mjs';
5
5
  import { parseUpdate } from '../updates/update-parser.mjs';
6
6
 
7
7
  var _ConditionalUpdate_config;
8
+ /**
9
+ * Command to modify existing item attributes with a condition expression.
10
+ *
11
+ * @template Schema - The Zod schema defining the structure of the entity.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { DynamoTable, DynamoEntity, key, ConditionalUpdate, add } from 'dynamo-document-builder';
16
+ *
17
+ * const table = new DynamoTable({
18
+ * tableName: 'ExampleTable',
19
+ * documentClient,
20
+ * });
21
+ *
22
+ * const userEntity = new DynamoEntity({
23
+ * table,
24
+ * schema: z.object({
25
+ * userId: z.string(),
26
+ * balance: z.number(),
27
+ * status: z.string(),
28
+ * }),
29
+ * partitionKey: user => key('USER', user.userId),
30
+ * sortKey: () => 'METADATA',
31
+ * });
32
+ *
33
+ * const conditionalUpdateCommand = new ConditionalUpdate({
34
+ * key: { userId: 'user123' },
35
+ * update: { balance: add(50) },
36
+ * condition: { status: 'active' },
37
+ * returnValues: 'ALL_NEW',
38
+ * });
39
+ *
40
+ * const { updatedItem } = await userEntity.send(conditionalUpdateCommand);
41
+ * ```
42
+ */
8
43
  class ConditionalUpdate {
9
44
  constructor(config) {
10
45
  _ConditionalUpdate_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-update.mjs","sources":["../../src/commands/conditional-update.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conditional-update.mjs","sources":["../../src/commands/conditional-update.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -4,6 +4,38 @@ var tslib_es6 = require('../node_modules/tslib/tslib.es6.cjs');
4
4
  var libDynamodb = require('@aws-sdk/lib-dynamodb');
5
5
 
6
6
  var _Delete_config;
7
+ /**
8
+ * Command to remove an item from a DynamoDB table.
9
+ *
10
+ * @template Schema - The Zod schema defining the structure of the entity.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { DynamoTable, DynamoEntity, key, Delete } from 'dynamo-document-builder';
15
+ *
16
+ * const table = new DynamoTable({
17
+ * tableName: 'ExampleTable',
18
+ * documentClient,
19
+ * });
20
+ *
21
+ * const userEntity = new DynamoEntity({
22
+ * table,
23
+ * schema: z.object({
24
+ * userId: z.string(),
25
+ * name: z.string(),
26
+ * }),
27
+ * partitionKey: user => key('USER', user.userId),
28
+ * sortKey: () => 'METADATA',
29
+ * });
30
+ *
31
+ * const deleteCommand = new Delete({
32
+ * key: { userId: 'user123' },
33
+ * returnValues: 'ALL_OLD',
34
+ * });
35
+ *
36
+ * const { deletedItem } = await userEntity.send(deleteCommand);
37
+ * ```
38
+ */
7
39
  class Delete {
8
40
  constructor(config) {
9
41
  _Delete_config.set(this, void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"delete.cjs","sources":["../../src/commands/delete.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","DeleteCommand","__classPrivateFieldGet"],"mappings":";;;;;;MA2Ba,MAAM,CAAA;AAKjB,IAAA,WAAA,CAAY,MAA4B,EAAA;QAFxC,cAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,SAAS,GAAG,IAAIC,yBAAa,CAAC;AAClC,gBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;gBACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAACC,iCAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC;AAC7C,gBAAA,YAAY,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,YAAY;AACvC,gBAAA,sBAAsB,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACtE,aAAA,CAAC;AAEF,YAAA,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE;gBACrE,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,sBAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;AAEF,YAAA,IAAI,WAAsD;AAC1D,YAAA,IAAI,YAAY,CAAC,UAAU,EAAE;AAC3B,gBAAA,IAAIA,iCAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,WAAW,GAAG,YAAY,CAAC,UAA2C;gBACxE;qBAAO;AACL,oBAAA,WAAW,IAAI,MAAM,MAAM,CAAC;AACzB,yBAAA,OAAO;AACP,yBAAA,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAkC;gBAC1E;YACF;YAEA,OAAO;gBACL,WAAW;gBACX,gBAAgB,EAAE,YAAY,CAAC,SAAS;gBACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AAEY,IAAA,uBAAuB,CAClC,MAA4B,EAAA;;YAE5B,OAAO;AACL,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAACA,iCAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC;AAC9C,iBAAA;aACF;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}
1
+ {"version":3,"file":"delete.cjs","sources":["../../src/commands/delete.ts"],"sourcesContent":[null],"names":["__classPrivateFieldSet","DeleteCommand","__classPrivateFieldGet"],"mappings":";;;;;;AAgCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;MACU,MAAM,CAAA;AAKjB,IAAA,WAAA,CAAY,MAA4B,EAAA;QAFxC,cAAA,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGE,QAAAA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAW,MAAM,EAAA,GAAA,CAAA;IACvB;AAEa,IAAA,OAAO,CAAC,MAA4B,EAAA;;;AAC/C,YAAA,MAAM,SAAS,GAAG,IAAIC,yBAAa,CAAC;AAClC,gBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;gBACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAACC,iCAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC;AAC7C,gBAAA,YAAY,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,YAAY;AACvC,gBAAA,sBAAsB,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,sBAAsB;AAC3D,gBAAA,2BAA2B,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,2BAA2B;AACtE,aAAA,CAAC;AAEF,YAAA,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE;gBACrE,WAAW,EAAE,MAAAA,gCAAA,CAAA,IAAI,sBAAQ,CAAC,eAAe,0CAAE,MAAM;AACjD,gBAAA,cAAc,EAAEA,gCAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,SAAS;AACvC,aAAA,CAAC;AAEF,YAAA,IAAI,WAAsD;AAC1D,YAAA,IAAI,YAAY,CAAC,UAAU,EAAE;AAC3B,gBAAA,IAAIA,iCAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,cAAc,EAAE;AAC/B,oBAAA,WAAW,GAAG,YAAY,CAAC,UAA2C;gBACxE;qBAAO;AACL,oBAAA,WAAW,IAAI,MAAM,MAAM,CAAC;AACzB,yBAAA,OAAO;AACP,yBAAA,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAkC;gBAC1E;YACF;YAEA,OAAO;gBACL,WAAW;gBACX,gBAAgB,EAAE,YAAY,CAAC,SAAS;gBACxC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;gBAC/C,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;aAC1D;QACH,CAAC,CAAA;AAAA,IAAA;AAEY,IAAA,uBAAuB,CAClC,MAA4B,EAAA;;YAE5B,OAAO;AACL,gBAAA,MAAM,EAAE;AACN,oBAAA,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;oBACjC,GAAG,EAAE,MAAM,CAAC,eAAe,CAACA,iCAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,GAAG,CAAC;AAC9C,iBAAA;aACF;QACH,CAAC,CAAA;AAAA,IAAA;AACF;;;;;"}