@kensio/yulin 0.45.0 → 0.47.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 (299) hide show
  1. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.d.ts +37 -0
  2. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.d.ts.map +1 -0
  3. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.js +63 -0
  4. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.js.map +1 -0
  5. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts.map +1 -1
  6. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +2 -0
  7. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js.map +1 -1
  8. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts +32 -0
  9. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts.map +1 -0
  10. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js +100 -0
  11. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js.map +1 -0
  12. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts +22 -0
  13. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts.map +1 -0
  14. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.js +55 -0
  15. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.js.map +1 -0
  16. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts +11 -0
  17. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts.map +1 -0
  18. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.js +16 -0
  19. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.js.map +1 -0
  20. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts +9 -1
  21. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts.map +1 -1
  22. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js +20 -17
  23. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js.map +1 -1
  24. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.d.ts +21 -0
  25. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.d.ts.map +1 -0
  26. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.js +28 -0
  27. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.js.map +1 -0
  28. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts +8 -20
  29. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts.map +1 -1
  30. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js +19 -32
  31. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js.map +1 -1
  32. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts +11 -0
  33. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts.map +1 -0
  34. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.js +18 -0
  35. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.js.map +1 -0
  36. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.d.ts +17 -4
  37. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.d.ts.map +1 -1
  38. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.js +45 -16
  39. package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.js.map +1 -1
  40. package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.d.ts +6 -4
  41. package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.d.ts.map +1 -1
  42. package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.js +7 -6
  43. package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.js.map +1 -1
  44. package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.d.ts +2 -2
  45. package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.d.ts.map +1 -1
  46. package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.js +8 -7
  47. package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.js.map +1 -1
  48. package/dist/service/dynamodb/command/query/sim-dynamodb-query.d.ts.map +1 -1
  49. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +18 -6
  50. package/dist/service/dynamodb/command/query/sim-dynamodb-query.js.map +1 -1
  51. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.d.ts.map +1 -1
  52. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
  53. package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js.map +1 -1
  54. package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.d.ts +20 -0
  55. package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.d.ts.map +1 -0
  56. package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.js +20 -0
  57. package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.js.map +1 -0
  58. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +12 -0
  59. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts.map +1 -1
  60. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +19 -1
  61. package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js.map +1 -1
  62. package/dist/service/dynamodb/command/read/sim-dynamodb-select.d.ts +18 -0
  63. package/dist/service/dynamodb/command/read/sim-dynamodb-select.d.ts.map +1 -1
  64. package/dist/service/dynamodb/command/read/sim-dynamodb-select.js +35 -5
  65. package/dist/service/dynamodb/command/read/sim-dynamodb-select.js.map +1 -1
  66. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.d.ts +2 -2
  67. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.d.ts.map +1 -1
  68. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.js +3 -3
  69. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.js.map +1 -1
  70. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.d.ts.map +1 -1
  71. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +13 -5
  72. package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js.map +1 -1
  73. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts.map +1 -1
  74. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +0 -1
  75. package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js.map +1 -1
  76. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts +2 -0
  77. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts.map +1 -1
  78. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js +3 -0
  79. package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js.map +1 -1
  80. package/dist/service/dynamodb/command/sim-dynamodb-command.types.d.ts +1 -1
  81. package/dist/service/dynamodb/command/sim-dynamodb-command.types.d.ts.map +1 -1
  82. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts.map +1 -1
  83. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js +6 -2
  84. package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js.map +1 -1
  85. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts +6 -6
  86. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts.map +1 -1
  87. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js +6 -19
  88. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js.map +1 -1
  89. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts +15 -0
  90. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts.map +1 -0
  91. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js +50 -0
  92. package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js.map +1 -0
  93. package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.d.ts +38 -0
  94. package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.d.ts.map +1 -0
  95. package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.js +39 -0
  96. package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.js.map +1 -0
  97. package/dist/service/dynamodb/command/table/table.command.d.ts +36 -1
  98. package/dist/service/dynamodb/command/table/table.command.d.ts.map +1 -1
  99. package/dist/service/dynamodb/command/table/table.types.d.ts +54 -0
  100. package/dist/service/dynamodb/command/table/table.types.d.ts.map +1 -1
  101. package/dist/service/dynamodb/command/time-to-live/sim-dynamodb-time-to-live-commands.js +3 -3
  102. package/dist/service/dynamodb/command/time-to-live/sim-dynamodb-time-to-live-commands.js.map +1 -1
  103. package/dist/service/dynamodb/document/sim-dynamodb-document-route.d.ts +1 -1
  104. package/dist/service/dynamodb/document/sim-dynamodb-document-route.d.ts.map +1 -1
  105. package/dist/service/dynamodb/document/sim-dynamodb-document-routes.d.ts.map +1 -1
  106. package/dist/service/dynamodb/document/sim-dynamodb-document-routes.js.map +1 -1
  107. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.d.ts +11 -1
  108. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.d.ts.map +1 -1
  109. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.js +12 -1
  110. package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.js.map +1 -1
  111. package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.d.ts.map +1 -1
  112. package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.js +4 -0
  113. package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.js.map +1 -1
  114. package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.d.ts +35 -0
  115. package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.d.ts.map +1 -0
  116. package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.js +42 -0
  117. package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.js.map +1 -0
  118. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.d.ts +43 -11
  119. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.d.ts.map +1 -1
  120. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.js +65 -2
  121. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.js.map +1 -1
  122. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.d.ts +39 -14
  123. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.d.ts.map +1 -1
  124. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.js +61 -61
  125. package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.js.map +1 -1
  126. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.d.ts +44 -0
  127. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.d.ts.map +1 -0
  128. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.js +2 -0
  129. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.js.map +1 -0
  130. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.d.ts +58 -0
  131. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.d.ts.map +1 -0
  132. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.js +77 -0
  133. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.js.map +1 -0
  134. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.d.ts +55 -0
  135. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.d.ts.map +1 -0
  136. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.js +71 -0
  137. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.js.map +1 -0
  138. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.d.ts +50 -0
  139. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.d.ts.map +1 -0
  140. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.js +82 -0
  141. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.js.map +1 -0
  142. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.d.ts +13 -0
  143. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.d.ts.map +1 -0
  144. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.js +19 -0
  145. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.js.map +1 -0
  146. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.d.ts +17 -0
  147. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.d.ts.map +1 -0
  148. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.js +17 -0
  149. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.js.map +1 -0
  150. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.d.ts +15 -0
  151. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.d.ts.map +1 -1
  152. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.js +21 -0
  153. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.js.map +1 -1
  154. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.d.ts +6 -7
  155. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.d.ts.map +1 -1
  156. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.js +7 -11
  157. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.js.map +1 -1
  158. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.d.ts +76 -0
  159. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.d.ts.map +1 -0
  160. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.js +107 -0
  161. package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.js.map +1 -0
  162. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.d.ts +12 -0
  163. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.d.ts.map +1 -0
  164. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.js +42 -0
  165. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.js.map +1 -0
  166. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.d.ts +35 -0
  167. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.d.ts.map +1 -0
  168. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.js +59 -0
  169. package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.js.map +1 -0
  170. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.d.ts +21 -0
  171. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.d.ts.map +1 -0
  172. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.js +47 -0
  173. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.js.map +1 -0
  174. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.d.ts +11 -0
  175. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.d.ts.map +1 -0
  176. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.js +29 -0
  177. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.js.map +1 -0
  178. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.d.ts +65 -0
  179. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.d.ts.map +1 -0
  180. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.js +106 -0
  181. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.js.map +1 -0
  182. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.d.ts +31 -0
  183. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.d.ts.map +1 -0
  184. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.js +47 -0
  185. package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.js.map +1 -0
  186. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.d.ts +6 -0
  187. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.d.ts.map +1 -0
  188. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.js +40 -0
  189. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.js.map +1 -0
  190. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.d.ts +34 -0
  191. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.d.ts.map +1 -0
  192. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.js +61 -0
  193. package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.js.map +1 -0
  194. package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.d.ts +38 -0
  195. package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.d.ts.map +1 -0
  196. package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.js +74 -0
  197. package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.js.map +1 -0
  198. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.d.ts +54 -0
  199. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.d.ts.map +1 -0
  200. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.js +2 -0
  201. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.js.map +1 -0
  202. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.d.ts +59 -0
  203. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.d.ts.map +1 -0
  204. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.js +77 -0
  205. package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.js.map +1 -0
  206. package/dist/service/dynamodb/sim-dynamodb.d.ts +6 -14
  207. package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
  208. package/dist/service/dynamodb/sim-dynamodb.js +8 -1
  209. package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
  210. package/dist/service/dynamodb/sim-dynamodb.types.d.ts +26 -0
  211. package/dist/service/dynamodb/sim-dynamodb.types.d.ts.map +1 -0
  212. package/dist/service/dynamodb/sim-dynamodb.types.js +2 -0
  213. package/dist/service/dynamodb/sim-dynamodb.types.js.map +1 -0
  214. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.d.ts +14 -0
  215. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.d.ts.map +1 -0
  216. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.js +33 -0
  217. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.js.map +1 -0
  218. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.d.ts +21 -0
  219. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.d.ts.map +1 -1
  220. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.js +53 -27
  221. package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.js.map +1 -1
  222. package/dist/service/dynamodb/table/sim-dynamodb-index-update.d.ts +23 -0
  223. package/dist/service/dynamodb/table/sim-dynamodb-index-update.d.ts.map +1 -0
  224. package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +88 -0
  225. package/dist/service/dynamodb/table/sim-dynamodb-index-update.js.map +1 -0
  226. package/dist/service/dynamodb/table/sim-dynamodb-item-collection.d.ts +7 -0
  227. package/dist/service/dynamodb/table/sim-dynamodb-item-collection.d.ts.map +1 -1
  228. package/dist/service/dynamodb/table/sim-dynamodb-item-collection.js +6 -3
  229. package/dist/service/dynamodb/table/sim-dynamodb-item-collection.js.map +1 -1
  230. package/dist/service/dynamodb/table/sim-dynamodb-read-view.d.ts +76 -0
  231. package/dist/service/dynamodb/table/sim-dynamodb-read-view.d.ts.map +1 -0
  232. package/dist/service/dynamodb/table/sim-dynamodb-read-view.js +2 -0
  233. package/dist/service/dynamodb/table/sim-dynamodb-read-view.js.map +1 -0
  234. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.d.ts +30 -0
  235. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.d.ts.map +1 -0
  236. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.js +39 -0
  237. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.js.map +1 -0
  238. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.d.ts +34 -20
  239. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.d.ts.map +1 -1
  240. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.js +47 -50
  241. package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.js.map +1 -1
  242. package/dist/service/dynamodb/table/sim-dynamodb-table-billing.d.ts +9 -0
  243. package/dist/service/dynamodb/table/sim-dynamodb-table-billing.d.ts.map +1 -1
  244. package/dist/service/dynamodb/table/sim-dynamodb-table-billing.js +17 -0
  245. package/dist/service/dynamodb/table/sim-dynamodb-table-billing.js.map +1 -1
  246. package/dist/service/dynamodb/table/sim-dynamodb-table-definition.d.ts +53 -0
  247. package/dist/service/dynamodb/table/sim-dynamodb-table-definition.d.ts.map +1 -0
  248. package/dist/service/dynamodb/table/sim-dynamodb-table-definition.js +63 -0
  249. package/dist/service/dynamodb/table/sim-dynamodb-table-definition.js.map +1 -0
  250. package/dist/service/dynamodb/table/sim-dynamodb-table-description.d.ts.map +1 -1
  251. package/dist/service/dynamodb/table/sim-dynamodb-table-description.js +2 -2
  252. package/dist/service/dynamodb/table/sim-dynamodb-table-description.js.map +1 -1
  253. package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.d.ts +29 -2
  254. package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.d.ts.map +1 -1
  255. package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.js +45 -4
  256. package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.js.map +1 -1
  257. package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.d.ts +26 -0
  258. package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.d.ts.map +1 -0
  259. package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.js +30 -0
  260. package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.js.map +1 -0
  261. package/dist/service/dynamodb/table/sim-dynamodb-table-scan.d.ts +2 -2
  262. package/dist/service/dynamodb/table/sim-dynamodb-table-scan.d.ts.map +1 -1
  263. package/dist/service/dynamodb/table/sim-dynamodb-table-scan.js +1 -2
  264. package/dist/service/dynamodb/table/sim-dynamodb-table-scan.js.map +1 -1
  265. package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts +27 -0
  266. package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts.map +1 -0
  267. package/dist/service/dynamodb/table/sim-dynamodb-table-update.js +79 -0
  268. package/dist/service/dynamodb/table/sim-dynamodb-table-update.js.map +1 -0
  269. package/dist/service/dynamodb/table/sim-dynamodb-table-view.d.ts +67 -0
  270. package/dist/service/dynamodb/table/sim-dynamodb-table-view.d.ts.map +1 -0
  271. package/dist/service/dynamodb/table/sim-dynamodb-table-view.js +90 -0
  272. package/dist/service/dynamodb/table/sim-dynamodb-table-view.js.map +1 -0
  273. package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts +49 -46
  274. package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts.map +1 -1
  275. package/dist/service/dynamodb/table/sim-dynamodb-table.js +87 -79
  276. package/dist/service/dynamodb/table/sim-dynamodb-table.js.map +1 -1
  277. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts +21 -0
  278. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts.map +1 -0
  279. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.js +2 -0
  280. package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.js.map +1 -0
  281. package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.d.ts +17 -0
  282. package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.d.ts.map +1 -0
  283. package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.js +24 -0
  284. package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.js.map +1 -0
  285. package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.d.ts +16 -0
  286. package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.d.ts.map +1 -0
  287. package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.js +32 -0
  288. package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.js.map +1 -0
  289. package/dist/service/dynamodb/time-to-live/{sim-dynamodb-table-expiry.d.ts → sim-dynamodb-table-time-to-live.d.ts} +28 -9
  290. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.d.ts.map +1 -0
  291. package/dist/service/dynamodb/time-to-live/{sim-dynamodb-table-expiry.js → sim-dynamodb-table-time-to-live.js} +32 -5
  292. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js.map +1 -0
  293. package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.d.ts +2 -1
  294. package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.d.ts.map +1 -1
  295. package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.js +2 -1
  296. package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.js.map +1 -1
  297. package/package.json +1 -1
  298. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-expiry.d.ts.map +0 -1
  299. package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-expiry.js.map +0 -1
@@ -1,6 +1,5 @@
1
1
  import { assertDefined } from "../../../util/type-guard/defined.js";
2
2
  import { simDynamoDbValuesEqual } from "../item/sim-dynamodb-value-comparison.js";
3
- import { SimDynamoDbSortKeyOrder } from "./sim-dynamodb-sort-key-order.js";
4
3
  /**
5
4
  * The items one key condition names, in sort key order.
6
5
  *
@@ -9,13 +8,17 @@ import { SimDynamoDbSortKeyOrder } from "./sim-dynamodb-sort-key-order.js";
9
8
  * it is read rather than kept that way. Real DynamoDB keeps a collection in
10
9
  * sort key order, and a query reads the same items in the same order either
11
10
  * way.
11
+ *
12
+ * The key schema is the one being read by, which for a query on an index is the
13
+ * index's own rather than the table's. The order comes in alongside it, since
14
+ * what separates two items sharing a sort key is the view's business rather
15
+ * than the collection's.
12
16
  */
13
17
  export class SimDynamoDbItemCollection {
14
18
  order;
15
19
  ascending;
16
20
  constructor(properties) {
17
- const { keySchema, keyCondition } = properties;
18
- const order = new SimDynamoDbSortKeyOrder(keySchema.rangeKeyAttributeName);
21
+ const { keySchema, keyCondition, order } = properties;
19
22
  this.order = order;
20
23
  this.ascending = order.ascending([...properties.items].filter((item) => this.named(item, keySchema, keyCondition)));
21
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-item-collection.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-item-collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAa3E;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAAyB;IACnB,KAAK,CAA0B;IAC/B,SAAS,CAA6B;IAEvD,YAAY,UAA+C;QACzD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,uBAAuB,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAE3E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAC9B,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAC1C,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,UAAyC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACK,KAAK,CACX,IAAqB,EACrB,SAA+B,EAC/B,YAAqC;QAErC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAEpE,aAAa,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;QAE9D,OAAO,CACL,sBAAsB,CAAC,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;YACpE,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,OAAgB;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-item-collection.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-item-collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAgBlF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,yBAAyB;IACnB,KAAK,CAA0B;IAC/B,SAAS,CAA6B;IAEvD,YAAY,UAA+C;QACzD,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAEtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAC9B,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAC1C,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,UAAyC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;QAE/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACK,KAAK,CACX,IAAqB,EACrB,SAA+B,EAC/B,YAAqC;QAErC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAEpE,aAAa,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;QAE9D,OAAO,CACL,sBAAsB,CAAC,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC;YACpE,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,OAAO,CAAC,OAAgB;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;IACrC,CAAC;CACF"}
@@ -0,0 +1,76 @@
1
+ import type { SimDynamoDbAttributeValue } from "../command/item/item.types.js";
2
+ import type { SimDynamoDbKeyCondition } from "../expression/key-condition/sim-dynamodb-key-condition.js";
3
+ import type { SimDynamoDbDocumentPath } from "../expression/sim-dynamodb-document-path.js";
4
+ import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
5
+ import type { SimDynamoDbAttributeDefinitions } from "./sim-dynamodb-attribute-definitions.js";
6
+ import type { SimDynamoDbItemCollection } from "./sim-dynamodb-item-collection.js";
7
+ import type { SimDynamoDbKeySchema } from "./sim-dynamodb-key-schema.js";
8
+ import type { SimDynamoDbTableScan } from "./sim-dynamodb-table-scan.js";
9
+ /**
10
+ * What a Query or a Scan reads: a table, or one of its secondary indexes.
11
+ *
12
+ * The two answer the same questions and answer them differently, which is the
13
+ * whole of what `IndexName` does to a read. A table view holds every item and
14
+ * every attribute of it. An index view holds the items carrying the index key,
15
+ * keyed by that key, and only the attributes the index projects.
16
+ *
17
+ * A view is built per read rather than kept, since an index is derived when it
18
+ * is looked at rather than maintained on the write path.
19
+ */
20
+ export interface SimDynamoDbReadView {
21
+ /**
22
+ * How a refusal names what is being read.
23
+ */
24
+ readonly description: string;
25
+ /**
26
+ * The key a read of this walks by, which for an index is its own.
27
+ */
28
+ readonly keySchema: SimDynamoDbKeySchema;
29
+ /**
30
+ * The types the key attributes were declared with, which the table owns
31
+ * whichever view uses them.
32
+ */
33
+ readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
34
+ /**
35
+ * The items one key condition names, in sort key order.
36
+ */
37
+ itemCollection(keyCondition: SimDynamoDbKeyCondition): SimDynamoDbItemCollection;
38
+ /**
39
+ * Every item this view holds, in the order a Scan reads them.
40
+ */
41
+ scan(): SimDynamoDbTableScan;
42
+ /**
43
+ * Refuse an `ExclusiveStartKey` this view could not have handed out.
44
+ */
45
+ assertStartKey(key: SimDynamoDbItem): void;
46
+ /**
47
+ * The key attributes a pagination token carries for this view.
48
+ */
49
+ tokenKey(item: SimDynamoDbItem): Record<string, SimDynamoDbAttributeValue>;
50
+ /**
51
+ * Cut an item down to what this view carries.
52
+ */
53
+ project(item: SimDynamoDbItem): SimDynamoDbItem;
54
+ /**
55
+ * Refuse a read asking for whole items where this view holds part of them.
56
+ */
57
+ assertCarriesWholeItem(): void;
58
+ /**
59
+ * Refuse an expression naming an attribute this view does not carry.
60
+ *
61
+ * A path into an attribute an index does not project would match nothing
62
+ * here, which reads as a collection that happens to be empty. Real DynamoDB
63
+ * refuses it, so this does too rather than answering with a page that means
64
+ * something else.
65
+ */
66
+ assertCarriesPaths(paths: readonly SimDynamoDbDocumentPath[]): void;
67
+ /**
68
+ * Refuse a strongly consistent read this view cannot answer.
69
+ *
70
+ * Only a global secondary index refuses one. It is maintained asynchronously
71
+ * on AWS, so it cannot answer a strongly consistent read whatever the
72
+ * simulation does. A table and a local secondary index both can.
73
+ */
74
+ assertConsistentRead(): void;
75
+ }
76
+ //# sourceMappingURL=sim-dynamodb-read-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-read-view.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-read-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2DAA2D,CAAC;AACzG,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC/F,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IAEzC;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;IAE/D;;OAEG;IACH,cAAc,CACZ,YAAY,EAAE,uBAAuB,GACpC,yBAAyB,CAAC;IAE7B;;OAEG;IACH,IAAI,IAAI,oBAAoB,CAAC;IAE7B;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IAE3C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAE3E;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC;IAEhD;;OAEG;IACH,sBAAsB,IAAI,IAAI,CAAC;IAE/B;;;;;;;OAOG;IACH,kBAAkB,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAAC;IAEpE;;;;;;OAMG;IACH,oBAAoB,IAAI,IAAI,CAAC;CAC9B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sim-dynamodb-read-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-read-view.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-read-view.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
2
+ import type { SimDynamoDbValue } from "../item/sim-dynamodb-value.js";
3
+ import type { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
4
+ /**
5
+ * The sort key a stored item holds.
6
+ *
7
+ * Every item of a collection carries the key attributes it is walked by. A
8
+ * write that left a table key attribute out was refused, and an index holds
9
+ * only the items carrying the whole of its key, so the value is there either
10
+ * way.
11
+ */
12
+ export declare function simDynamoDbSortKeyValue(item: SimDynamoDbItem, attributeName: string): SimDynamoDbValue;
13
+ /**
14
+ * Order two items by their sort keys.
15
+ *
16
+ * Two items of one collection always order: every key attribute is checked
17
+ * against its declared type on the way in, so no collection holds two sort keys
18
+ * of different types.
19
+ */
20
+ export declare function compareSimDynamoDbSortKeys(first: SimDynamoDbItem, second: SimDynamoDbItem, attributeName: string): number;
21
+ /**
22
+ * Separate two items their sort keys did not, by the key that identifies them.
23
+ *
24
+ * The marshalled key is compared as UTF-8 bytes, which is the order the rest of
25
+ * the simulation compares text in. Nothing depends on which of two items comes
26
+ * first, only that the answer is the same every time, since an
27
+ * `ExclusiveStartKey` could not resume a walk otherwise.
28
+ */
29
+ export declare function compareSimDynamoDbItemIdentities(first: SimDynamoDbItem, second: SimDynamoDbItem, identity: SimDynamoDbItemKey): number;
30
+ //# sourceMappingURL=sim-dynamodb-sort-key-compare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-sort-key-compare.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-sort-key-compare.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAKpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,eAAe,EACrB,aAAa,EAAE,MAAM,GACpB,gBAAgB,CAMlB;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM,GACpB,MAAM,CASR;AAED;;;;;;;GAOG;AACH,wBAAgB,gCAAgC,CAC9C,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAKR"}
@@ -0,0 +1,39 @@
1
+ import { assertDefined } from "../../../util/type-guard/defined.js";
2
+ import { compareSimDynamoDbBytes, compareSimDynamoDbValues, } from "../item/sim-dynamodb-value-order.js";
3
+ /**
4
+ * The sort key a stored item holds.
5
+ *
6
+ * Every item of a collection carries the key attributes it is walked by. A
7
+ * write that left a table key attribute out was refused, and an index holds
8
+ * only the items carrying the whole of its key, so the value is there either
9
+ * way.
10
+ */
11
+ export function simDynamoDbSortKeyValue(item, attributeName) {
12
+ const value = item.attribute(attributeName);
13
+ assertDefined(value, `sort key ${attributeName} of a stored item`);
14
+ return value;
15
+ }
16
+ /**
17
+ * Order two items by their sort keys.
18
+ *
19
+ * Two items of one collection always order: every key attribute is checked
20
+ * against its declared type on the way in, so no collection holds two sort keys
21
+ * of different types.
22
+ */
23
+ export function compareSimDynamoDbSortKeys(first, second, attributeName) {
24
+ const order = compareSimDynamoDbValues(simDynamoDbSortKeyValue(first, attributeName), simDynamoDbSortKeyValue(second, attributeName));
25
+ assertDefined(order, `order of two ${attributeName} sort keys`);
26
+ return order;
27
+ }
28
+ /**
29
+ * Separate two items their sort keys did not, by the key that identifies them.
30
+ *
31
+ * The marshalled key is compared as UTF-8 bytes, which is the order the rest of
32
+ * the simulation compares text in. Nothing depends on which of two items comes
33
+ * first, only that the answer is the same every time, since an
34
+ * `ExclusiveStartKey` could not resume a walk otherwise.
35
+ */
36
+ export function compareSimDynamoDbItemIdentities(first, second, identity) {
37
+ return compareSimDynamoDbBytes(Buffer.from(identity.of(first), "utf8"), Buffer.from(identity.of(second), "utf8"));
38
+ }
39
+ //# sourceMappingURL=sim-dynamodb-sort-key-compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-sort-key-compare.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-sort-key-compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,qCAAqC,CAAC;AAI7C;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAqB,EACrB,aAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE5C,aAAa,CAAC,KAAK,EAAE,YAAY,aAAa,mBAAmB,CAAC,CAAC;IAEnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAsB,EACtB,MAAuB,EACvB,aAAqB;IAErB,MAAM,KAAK,GAAG,wBAAwB,CACpC,uBAAuB,CAAC,KAAK,EAAE,aAAa,CAAC,EAC7C,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAC,CAC/C,CAAC;IAEF,aAAa,CAAC,KAAK,EAAE,gBAAgB,aAAa,YAAY,CAAC,CAAC;IAEhE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gCAAgC,CAC9C,KAAsB,EACtB,MAAuB,EACvB,QAA4B;IAE5B,OAAO,uBAAuB,CAC5B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EACvC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CACzC,CAAC;AACJ,CAAC"}
@@ -1,21 +1,33 @@
1
1
  import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
2
2
  import type { SimDynamoDbValue } from "../item/sim-dynamodb-value.js";
3
+ import type { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
4
+ interface SimDynamoDbSortKeyOrderProperties {
5
+ readonly attributeName: string | undefined;
6
+ readonly identity?: SimDynamoDbItemKey | undefined;
7
+ }
3
8
  /**
4
- * The order a table's sort key puts an item collection in.
9
+ * The order a sort key puts an item collection in.
5
10
  *
6
11
  * A table with no sort key holds at most one item under a partition key, so
7
12
  * every question here has a trivial answer for one. That is why the attribute
8
13
  * name is optional rather than each caller asking whether there is one.
9
14
  *
10
- * The order is DynamoDB's rather than JavaScript's, through
11
- * `compareSimDynamoDbValues`: numbers order by value however they were written,
12
- * strings by their UTF-8 bytes, and binary as unsigned bytes.
15
+ * The order is DynamoDB's rather than JavaScript's: numbers order by value
16
+ * however they were written, strings by their UTF-8 bytes, and binary as
17
+ * unsigned bytes.
18
+ *
19
+ * An index needs one thing more. Index key values are not unique, so a sort key
20
+ * settles nothing between two items sharing one, and a walk that could not tell
21
+ * them apart could not resume after either. The identity is what separates
22
+ * them: the table primary key, which is unique by definition. That is why a
23
+ * read of an index hands out a token carrying both.
13
24
  */
14
25
  export declare class SimDynamoDbSortKeyOrder {
15
26
  private readonly attributeName;
16
- constructor(attributeName: string | undefined);
27
+ private readonly identity;
28
+ constructor(properties: SimDynamoDbSortKeyOrderProperties);
17
29
  /**
18
- * The sort key of an item, or nothing when the table has no sort key.
30
+ * The sort key of an item, or nothing when the collection has no sort key.
19
31
  */
20
32
  valueOf(item: SimDynamoDbItem): SimDynamoDbValue | undefined;
21
33
  /**
@@ -25,29 +37,31 @@ export declare class SimDynamoDbSortKeyOrder {
25
37
  /**
26
38
  * The items past the one a request resumes after, in the walk direction.
27
39
  *
28
- * With no sort key a collection holds one item, and that is the item the
29
- * token names, so nothing comes after it.
40
+ * With nothing to order a collection by, it holds one item, and that is the
41
+ * item the token names, so nothing comes after it.
30
42
  */
31
43
  beyond(items: readonly SimDynamoDbItem[], after: SimDynamoDbItem, forward: boolean): readonly SimDynamoDbItem[];
32
44
  /**
33
- * Order two items of one table by their sort keys.
45
+ * Order two items of one collection, by sort key and then by identity.
34
46
  *
35
- * With no sort key a partition key value names at most one item, so two items
36
- * that reach here are the same item and nothing separates them. A scan orders
37
- * a whole table this way once it has ordered by partition key.
47
+ * With neither a sort key nor an identity, a partition key value names at
48
+ * most one item, so two items that reach here are the same item and nothing
49
+ * separates them. A scan orders a whole table this way once it has ordered by
50
+ * partition key.
38
51
  */
39
52
  compareItems(first: SimDynamoDbItem, second: SimDynamoDbItem): number;
40
53
  /**
41
- * Which way along the sort key the walk is going.
54
+ * Order two items by their sort keys, if the collection has one.
42
55
  */
43
- private direction;
56
+ private compareSortKeys;
44
57
  /**
45
- * Order two items by their sort keys.
46
- *
47
- * Two items in one table always order: the table checks the type of every key
48
- * attribute on the way in, so no collection holds two sort keys of different
49
- * types.
58
+ * Separate two items their sort keys did not, where something can.
50
59
  */
51
- private compare;
60
+ private compareIdentities;
61
+ /**
62
+ * Which way along the sort key the walk is going.
63
+ */
64
+ private direction;
52
65
  }
66
+ export {};
53
67
  //# sourceMappingURL=sim-dynamodb-sort-key-order.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-sort-key-order.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-sort-key-order.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,YAAY,aAAa,EAAE,MAAM,GAAG,SAAS,EAE5C;IAED;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,GAAG,SAAS,CAQ3D;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE,CAUvE;IAED;;;;;OAKG;IACH,MAAM,CACJ,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,GACf,SAAS,eAAe,EAAE,CAY5B;IAED;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAQpE;IAED;;OAEG;IACH,OAAO,CAAC,SAAS;IAQjB;;;;;;OAMG;IACH,OAAO,CAAC,OAAO;CAchB"}
1
+ {"version":3,"file":"sim-dynamodb-sort-key-order.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-sort-key-order.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAOrE,UAAU,iCAAiC;IACzC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAE1D,YAAY,UAAU,EAAE,iCAAiC,EAGxD;IAED;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,GAAG,SAAS,CAQ3D;IAED;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,GAAG,SAAS,eAAe,EAAE,CAEvE;IAED;;;;;OAKG;IACH,MAAM,CACJ,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,OAAO,GACf,SAAS,eAAe,EAAE,CAM5B;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAQpE;IAED;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,SAAS;CAOlB"}
@@ -1,68 +1,88 @@
1
- import { assertDefined } from "../../../util/type-guard/defined.js";
2
- import { compareSimDynamoDbValues } from "../item/sim-dynamodb-value-order.js";
1
+ import { compareSimDynamoDbItemIdentities, compareSimDynamoDbSortKeys, simDynamoDbSortKeyValue, } from "./sim-dynamodb-sort-key-compare.js";
3
2
  /**
4
- * The order a table's sort key puts an item collection in.
3
+ * The order a sort key puts an item collection in.
5
4
  *
6
5
  * A table with no sort key holds at most one item under a partition key, so
7
6
  * every question here has a trivial answer for one. That is why the attribute
8
7
  * name is optional rather than each caller asking whether there is one.
9
8
  *
10
- * The order is DynamoDB's rather than JavaScript's, through
11
- * `compareSimDynamoDbValues`: numbers order by value however they were written,
12
- * strings by their UTF-8 bytes, and binary as unsigned bytes.
9
+ * The order is DynamoDB's rather than JavaScript's: numbers order by value
10
+ * however they were written, strings by their UTF-8 bytes, and binary as
11
+ * unsigned bytes.
12
+ *
13
+ * An index needs one thing more. Index key values are not unique, so a sort key
14
+ * settles nothing between two items sharing one, and a walk that could not tell
15
+ * them apart could not resume after either. The identity is what separates
16
+ * them: the table primary key, which is unique by definition. That is why a
17
+ * read of an index hands out a token carrying both.
13
18
  */
14
19
  export class SimDynamoDbSortKeyOrder {
15
20
  attributeName;
16
- constructor(attributeName) {
17
- this.attributeName = attributeName;
21
+ identity;
22
+ constructor(properties) {
23
+ this.attributeName = properties.attributeName;
24
+ this.identity = properties.identity;
18
25
  }
19
26
  /**
20
- * The sort key of an item, or nothing when the table has no sort key.
27
+ * The sort key of an item, or nothing when the collection has no sort key.
21
28
  */
22
29
  valueOf(item) {
23
30
  const attributeName = this.attributeName;
24
31
  if (attributeName === undefined) {
25
32
  return undefined;
26
33
  }
27
- return sortKeyValue(item, attributeName);
34
+ return simDynamoDbSortKeyValue(item, attributeName);
28
35
  }
29
36
  /**
30
37
  * Items in ascending sort key order.
31
38
  */
32
39
  ascending(items) {
33
- const attributeName = this.attributeName;
34
- if (attributeName === undefined) {
35
- return items;
36
- }
37
- return items.toSorted((first, second) => this.compare(first, second, attributeName));
40
+ return items.toSorted((first, second) => this.compareItems(first, second));
38
41
  }
39
42
  /**
40
43
  * The items past the one a request resumes after, in the walk direction.
41
44
  *
42
- * With no sort key a collection holds one item, and that is the item the
43
- * token names, so nothing comes after it.
45
+ * With nothing to order a collection by, it holds one item, and that is the
46
+ * item the token names, so nothing comes after it.
44
47
  */
45
48
  beyond(items, after, forward) {
46
- const attributeName = this.attributeName;
47
- if (attributeName === undefined) {
48
- return [];
49
- }
50
49
  const direction = this.direction(forward);
51
- return items.filter((item) => this.compare(item, after, attributeName) * direction > 0);
50
+ return items.filter((item) => this.compareItems(item, after) * direction > 0);
52
51
  }
53
52
  /**
54
- * Order two items of one table by their sort keys.
53
+ * Order two items of one collection, by sort key and then by identity.
55
54
  *
56
- * With no sort key a partition key value names at most one item, so two items
57
- * that reach here are the same item and nothing separates them. A scan orders
58
- * a whole table this way once it has ordered by partition key.
55
+ * With neither a sort key nor an identity, a partition key value names at
56
+ * most one item, so two items that reach here are the same item and nothing
57
+ * separates them. A scan orders a whole table this way once it has ordered by
58
+ * partition key.
59
59
  */
60
60
  compareItems(first, second) {
61
+ const bySortKey = this.compareSortKeys(first, second);
62
+ if (bySortKey !== 0) {
63
+ return bySortKey;
64
+ }
65
+ return this.compareIdentities(first, second);
66
+ }
67
+ /**
68
+ * Order two items by their sort keys, if the collection has one.
69
+ */
70
+ compareSortKeys(first, second) {
61
71
  const attributeName = this.attributeName;
62
72
  if (attributeName === undefined) {
63
73
  return 0;
64
74
  }
65
- return this.compare(first, second, attributeName);
75
+ return compareSimDynamoDbSortKeys(first, second, attributeName);
76
+ }
77
+ /**
78
+ * Separate two items their sort keys did not, where something can.
79
+ */
80
+ compareIdentities(first, second) {
81
+ const identity = this.identity;
82
+ if (identity === undefined) {
83
+ return 0;
84
+ }
85
+ return compareSimDynamoDbItemIdentities(first, second, identity);
66
86
  }
67
87
  /**
68
88
  * Which way along the sort key the walk is going.
@@ -73,28 +93,5 @@ export class SimDynamoDbSortKeyOrder {
73
93
  }
74
94
  return -1;
75
95
  }
76
- /**
77
- * Order two items by their sort keys.
78
- *
79
- * Two items in one table always order: the table checks the type of every key
80
- * attribute on the way in, so no collection holds two sort keys of different
81
- * types.
82
- */
83
- compare(first, second, attributeName) {
84
- const order = compareSimDynamoDbValues(sortKeyValue(first, attributeName), sortKeyValue(second, attributeName));
85
- assertDefined(order, `order of two ${attributeName} sort keys`);
86
- return order;
87
- }
88
- }
89
- /**
90
- * The sort key a stored item holds.
91
- *
92
- * Every item in a table carries its key attributes: a write that left one out
93
- * was refused, so the value is there by the time an item is stored.
94
- */
95
- function sortKeyValue(item, attributeName) {
96
- const value = item.attribute(attributeName);
97
- assertDefined(value, `sort key ${attributeName} of a stored item`);
98
- return value;
99
96
  }
100
97
  //# sourceMappingURL=sim-dynamodb-sort-key-order.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-sort-key-order.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-sort-key-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAG/E;;;;;;;;;;GAUG;AACH,MAAM,OAAO,uBAAuB;IACjB,aAAa,CAAqB;IAEnD,YAAY,aAAiC;QAC3C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAqB;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAiC;QACzC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAC3C,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,KAAiC,EACjC,KAAsB,EACtB,OAAgB;QAEhB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE1C,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,GAAG,SAAS,GAAG,CAAC,CACnE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,KAAsB,EAAE,MAAuB;QAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,OAAgB;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACK,OAAO,CACb,KAAsB,EACtB,MAAuB,EACvB,aAAqB;QAErB,MAAM,KAAK,GAAG,wBAAwB,CACpC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,EAClC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CACpC,CAAC;QAEF,aAAa,CAAC,KAAK,EAAE,gBAAgB,aAAa,YAAY,CAAC,CAAC;QAEhE,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,YAAY,CACnB,IAAqB,EACrB,aAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAE5C,aAAa,CAAC,KAAK,EAAE,YAAY,aAAa,mBAAmB,CAAC,CAAC;IAEnE,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"sim-dynamodb-sort-key-order.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-sort-key-order.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gCAAgC,EAChC,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,oCAAoC,CAAC;AAO5C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,uBAAuB;IACjB,aAAa,CAAqB;IAClC,QAAQ,CAAiC;IAE1D,YAAY,UAA6C;QACvD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAqB;QAC3B,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,uBAAuB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,KAAiC;QACzC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;OAKG;IACH,MAAM,CACJ,KAAiC,EACjC,KAAsB,EACtB,OAAgB;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE1C,OAAO,KAAK,CAAC,MAAM,CACjB,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,CAAC,CACzD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,KAAsB,EAAE,MAAuB;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,eAAe,CACrB,KAAsB,EACtB,MAAuB;QAEvB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QAEzC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,KAAsB,EACtB,MAAuB;QAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,gCAAgC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,OAAgB;QAChC,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF"}
@@ -18,6 +18,15 @@ export declare class SimDynamoDbTableBilling {
18
18
  * Read the billing mode and throughput a CreateTable request carries.
19
19
  */
20
20
  static fromInput(input: SimDynamoDbTableBillingInput): SimDynamoDbTableBilling;
21
+ /**
22
+ * This billing with the capacity an UpdateTable request names.
23
+ *
24
+ * A request carrying capacity and no `BillingMode` is asking to reprovision
25
+ * the table rather than to bill it another way, so the mode is kept. Whether
26
+ * the table reports a `BillingModeSummary` is kept too, since that says
27
+ * whether the request that made it named a mode, and this request did not.
28
+ */
29
+ withThroughput(throughput: SimDynamoDbProvisionedThroughput | undefined): SimDynamoDbTableBilling;
21
30
  /**
22
31
  * How the table reports its throughput.
23
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-billing.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,2CAA2C,EAC5C,MAAM,iCAAiC,CAAC;AAIzC,UAAU,4BAA4B;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,gCAAgC,GAAG,SAAS,CAAC;CAC/E;AA2DD;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,SAAgB,IAAI,EAAE,sBAAsB,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC,OAAO,eAIN;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,4BAA4B,GAClC,uBAAuB,CAQzB;IAED;;OAEG;IACH,qBAAqB,IAAI,2CAA2C,CAEnE;IAED;;OAEG;IACH,OAAO,IAAI,6BAA6B,GAAG,SAAS,CAMnD;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-billing.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-billing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,gCAAgC,EAChC,2CAA2C,EAC5C,MAAM,iCAAiC,CAAC;AAIzC,UAAU,4BAA4B;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,gCAAgC,GAAG,SAAS,CAAC;CAC/E;AA2DD;;;;;GAKG;AACH,qBAAa,uBAAuB;IAClC,SAAgB,IAAI,EAAE,sBAAsB,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IAExC,OAAO,eAIN;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,4BAA4B,GAClC,uBAAuB,CAQzB;IAED;;;;;;;OAOG;IACH,cAAc,CACZ,UAAU,EAAE,gCAAgC,GAAG,SAAS,GACvD,uBAAuB,CAQzB;IAED;;OAEG;IACH,qBAAqB,IAAI,2CAA2C,CAEnE;IAED;;OAEG;IACH,OAAO,IAAI,6BAA6B,GAAG,SAAS,CAMnD;CACF"}
@@ -61,6 +61,23 @@ export class SimDynamoDbTableBilling {
61
61
  requestedMode: input.BillingMode !== undefined,
62
62
  });
63
63
  }
64
+ /**
65
+ * This billing with the capacity an UpdateTable request names.
66
+ *
67
+ * A request carrying capacity and no `BillingMode` is asking to reprovision
68
+ * the table rather than to bill it another way, so the mode is kept. Whether
69
+ * the table reports a `BillingModeSummary` is kept too, since that says
70
+ * whether the request that made it named a mode, and this request did not.
71
+ */
72
+ withThroughput(throughput) {
73
+ return new SimDynamoDbTableBilling({
74
+ mode: this.mode,
75
+ throughput: readThroughput(this.mode, {
76
+ ProvisionedThroughput: throughput,
77
+ }),
78
+ requestedMode: this.requestedMode,
79
+ });
80
+ }
64
81
  /**
65
82
  * How the table reports its throughput.
66
83
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sim-dynamodb-table-billing.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-billing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAahF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;CAClB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,eAAe,CACtB,SAA6B;IAE7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,8BAA8B,CACtC,gBAAgB,SAAS,4CAA4C;YACnE,kBAAkB,CACrB,CAAC;IACJ,CAAC;IAED,OAAO,SAAmC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,IAA4B,EAC5B,KAAmC;IAEnC,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,OAAO,0BAA0B,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,8BAA8B,CACtC,uEAAuE;YACrE,8DAA8D;YAC9D,iBAAiB,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,0BAA0B,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAClB,IAAI,CAAyB;IAE5B,UAAU,CAA6B;IACvC,aAAa,CAAU;IAExC,YAAoB,UAA6C;QAC/D,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAmC;QAEnC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEhD,OAAO,IAAI,IAAI,CAAC;YACd,IAAI;YACJ,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;YACvC,aAAa,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS;SAC/C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"sim-dynamodb-table-billing.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-billing.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAahF,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC;IAChD,aAAa;IACb,iBAAiB;CAClB,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,eAAe,CACtB,SAA6B;IAE7B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,8BAA8B,CACtC,gBAAgB,SAAS,4CAA4C;YACnE,kBAAkB,CACrB,CAAC;IACJ,CAAC;IAED,OAAO,SAAmC,CAAC;AAC7C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CACrB,IAA4B,EAC5B,KAAmC;IAEnC,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,OAAO,0BAA0B,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,8BAA8B,CACtC,uEAAuE;YACrE,8DAA8D;YAC9D,iBAAiB,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,0BAA0B,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAuB;IAClB,IAAI,CAAyB;IAE5B,UAAU,CAA6B;IACvC,aAAa,CAAU;IAExC,YAAoB,UAA6C;QAC/D,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAmC;QAEnC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEhD,OAAO,IAAI,IAAI,CAAC;YACd,IAAI;YACJ,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC;YACvC,aAAa,EAAE,KAAK,CAAC,WAAW,KAAK,SAAS;SAC/C,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,cAAc,CACZ,UAAwD;QAExD,OAAO,IAAI,uBAAuB,CAAC;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE;gBACpC,qBAAqB,EAAE,UAAU;aAClC,CAAC;YACF,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;CACF"}
@@ -0,0 +1,53 @@
1
+ import type { SimDynamoDbTableClass } from "../command/table/table.types.js";
2
+ import type { SimDynamoDbAttributeDefinitions } from "./sim-dynamodb-attribute-definitions.js";
3
+ import { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
4
+ import type { SimDynamoDbKeySchema } from "./sim-dynamodb-key-schema.js";
5
+ import type { SimDynamoDbTableBilling } from "./sim-dynamodb-table-billing.js";
6
+ import type { SimDynamoDbTableUpdate } from "./sim-dynamodb-table-update.js";
7
+ interface SimDynamoDbTableDefinitionProperties {
8
+ readonly keySchema: SimDynamoDbKeySchema;
9
+ readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
10
+ readonly billing: SimDynamoDbTableBilling;
11
+ readonly tableClass: SimDynamoDbTableClass | undefined;
12
+ }
13
+ /**
14
+ * What a table is, as far as UpdateTable can change it.
15
+ *
16
+ * A table's key schema is fixed for its whole life, and everything here is not:
17
+ * the attributes its keys are made of grow when an index is added, and how it is
18
+ * billed and which class it is stored under can both be changed. Holding them
19
+ * together is what lets an update replace them in one step, while everything
20
+ * already holding the table goes on reading the table.
21
+ */
22
+ export declare class SimDynamoDbTableDefinition {
23
+ #private;
24
+ readonly keySchema: SimDynamoDbKeySchema;
25
+ constructor(properties: SimDynamoDbTableDefinitionProperties);
26
+ /**
27
+ * The attributes the table's keys are made of, its own and its indexes'.
28
+ */
29
+ get attributeDefinitions(): SimDynamoDbAttributeDefinitions;
30
+ /**
31
+ * How the table is billed, and what it is provisioned for.
32
+ */
33
+ get billing(): SimDynamoDbTableBilling;
34
+ /**
35
+ * The class the table is stored under, when it was given one.
36
+ */
37
+ get tableClass(): SimDynamoDbTableClass | undefined;
38
+ /**
39
+ * How the table reads the primary key of an item.
40
+ */
41
+ get itemKey(): SimDynamoDbItemKey;
42
+ /**
43
+ * Take the part of an UpdateTable that changes what the table is.
44
+ *
45
+ * The attribute definitions always come through, since an update that added
46
+ * none gives back the set the table already had. The item key is rebuilt from
47
+ * them, so a key attribute is still checked against the type the table
48
+ * declares for it.
49
+ */
50
+ apply(update: SimDynamoDbTableUpdate): void;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=sim-dynamodb-table-definition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sim-dynamodb-table-definition.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-definition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,UAAU,oCAAoC;IAC5C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;;IACrC,SAAgB,SAAS,EAAE,oBAAoB,CAAC;IAOhD,YAAY,UAAU,EAAE,oCAAoC,EAS3D;IAED;;OAEG;IACH,IAAI,oBAAoB,IAAI,+BAA+B,CAE1D;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,uBAAuB,CAErC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,qBAAqB,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,kBAAkB,CAEhC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAQ1C;CACF"}