@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.
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.d.ts +37 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.js +63 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-indexed-table-resource.factory.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js +2 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-creator.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts +32 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js +100 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-index-rules.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts +22 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.js +55 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-indexes.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts +11 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.js +16 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-key-schema.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts +9 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js +20 -17
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-properties.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.d.ts +21 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.js +28 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-error.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts +8 -20
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js +19 -32
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-property-rules.js.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts +11 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.d.ts.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.js +18 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-throughput.js.map +1 -0
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.d.ts +17 -4
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.d.ts.map +1 -1
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.js +45 -16
- package/dist/service/dynamodb/cfn/table/sim-cfn-dynamodb-table-values.js.map +1 -1
- package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.d.ts +6 -4
- package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.d.ts.map +1 -1
- package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.js +7 -6
- package/dist/service/dynamodb/command/item/sim-dynamodb-item-page.js.map +1 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.d.ts +2 -2
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.d.ts.map +1 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.js +8 -7
- package/dist/service/dynamodb/command/query/sim-dynamodb-query-start-key.js.map +1 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-query.d.ts.map +1 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-query.js +18 -6
- package/dist/service/dynamodb/command/query/sim-dynamodb-query.js.map +1 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.d.ts.map +1 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js +0 -1
- package/dist/service/dynamodb/command/query/sim-dynamodb-unsimulated-query-input.js.map +1 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.d.ts +20 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.d.ts.map +1 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.js +20 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-consistent-read.js.map +1 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts +12 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.d.ts.map +1 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js +19 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-read-answer.js.map +1 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-select.d.ts +18 -0
- package/dist/service/dynamodb/command/read/sim-dynamodb-select.d.ts.map +1 -1
- package/dist/service/dynamodb/command/read/sim-dynamodb-select.js +35 -5
- package/dist/service/dynamodb/command/read/sim-dynamodb-select.js.map +1 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.d.ts +2 -2
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.d.ts.map +1 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.js +3 -3
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan-start-key.js.map +1 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.d.ts.map +1 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js +13 -5
- package/dist/service/dynamodb/command/scan/sim-dynamodb-scan.js.map +1 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.d.ts.map +1 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js +0 -1
- package/dist/service/dynamodb/command/scan/sim-dynamodb-unsimulated-scan-input.js.map +1 -1
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts +2 -0
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.d.ts.map +1 -1
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js +3 -0
- package/dist/service/dynamodb/command/sim-dynamodb-command-handlers.js.map +1 -1
- package/dist/service/dynamodb/command/sim-dynamodb-command.types.d.ts +1 -1
- package/dist/service/dynamodb/command/sim-dynamodb-command.types.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js +6 -2
- package/dist/service/dynamodb/command/table/sim-dynamodb-create-table.js.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts +6 -6
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js +6 -19
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-table-input.js.map +1 -1
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts +15 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.d.ts.map +1 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js +50 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-unsimulated-update-input.js.map +1 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.d.ts +38 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.d.ts.map +1 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.js +39 -0
- package/dist/service/dynamodb/command/table/sim-dynamodb-update-table.js.map +1 -0
- package/dist/service/dynamodb/command/table/table.command.d.ts +36 -1
- package/dist/service/dynamodb/command/table/table.command.d.ts.map +1 -1
- package/dist/service/dynamodb/command/table/table.types.d.ts +54 -0
- package/dist/service/dynamodb/command/table/table.types.d.ts.map +1 -1
- package/dist/service/dynamodb/command/time-to-live/sim-dynamodb-time-to-live-commands.js +3 -3
- package/dist/service/dynamodb/command/time-to-live/sim-dynamodb-time-to-live-commands.js.map +1 -1
- package/dist/service/dynamodb/document/sim-dynamodb-document-route.d.ts +1 -1
- package/dist/service/dynamodb/document/sim-dynamodb-document-route.d.ts.map +1 -1
- package/dist/service/dynamodb/document/sim-dynamodb-document-routes.d.ts.map +1 -1
- package/dist/service/dynamodb/document/sim-dynamodb-document-routes.js.map +1 -1
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.d.ts +11 -1
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.d.ts.map +1 -1
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.js +12 -1
- package/dist/service/dynamodb/expression/filter/sim-dynamodb-filter.js.map +1 -1
- package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.d.ts.map +1 -1
- package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.js +4 -0
- package/dist/service/dynamodb/sdk/sim-dynamodb-sdk-command-router.js.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.d.ts +35 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.js +42 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.d.ts +43 -11
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.d.ts.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.js +65 -2
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.js.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.d.ts +39 -14
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.d.ts.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.js +61 -61
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.js.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.d.ts +44 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.js +2 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.d.ts +58 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.js +77 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-keys.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.d.ts +55 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.js +71 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lifecycle.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.d.ts +50 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.js +82 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-limits.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.d.ts +13 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.js +19 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-lookup.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.d.ts +17 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.js +17 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection-input.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.d.ts +15 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.d.ts.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.js +21 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-projection.js.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.d.ts +6 -7
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.d.ts.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.js +7 -11
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-status.js.map +1 -1
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.d.ts +76 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.js +107 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-index-view.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.d.ts +12 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.js +42 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.d.ts +35 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.js +59 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.d.ts +21 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.js +47 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.d.ts +11 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.js +29 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.d.ts +65 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.js +106 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.d.ts +31 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.js +47 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-indexes.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.d.ts +6 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.js +40 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-orders.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.d.ts +34 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.js +61 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-locally-indexed-table.factory.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.d.ts +38 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.js +74 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-projected-index-attributes.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.d.ts +54 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.js +2 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-index.js.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.d.ts +59 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.d.ts.map +1 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.js +77 -0
- package/dist/service/dynamodb/secondary-index/sim-dynamodb-secondary-indexes.js.map +1 -0
- package/dist/service/dynamodb/sim-dynamodb.d.ts +6 -14
- package/dist/service/dynamodb/sim-dynamodb.d.ts.map +1 -1
- package/dist/service/dynamodb/sim-dynamodb.js +8 -1
- package/dist/service/dynamodb/sim-dynamodb.js.map +1 -1
- package/dist/service/dynamodb/sim-dynamodb.types.d.ts +26 -0
- package/dist/service/dynamodb/sim-dynamodb.types.d.ts.map +1 -0
- package/dist/service/dynamodb/sim-dynamodb.types.js +2 -0
- package/dist/service/dynamodb/sim-dynamodb.types.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.d.ts +14 -0
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.js +33 -0
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definition.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.d.ts +21 -0
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.js +53 -27
- package/dist/service/dynamodb/table/sim-dynamodb-attribute-definitions.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-index-update.d.ts +23 -0
- package/dist/service/dynamodb/table/sim-dynamodb-index-update.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-index-update.js +88 -0
- package/dist/service/dynamodb/table/sim-dynamodb-index-update.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-item-collection.d.ts +7 -0
- package/dist/service/dynamodb/table/sim-dynamodb-item-collection.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-item-collection.js +6 -3
- package/dist/service/dynamodb/table/sim-dynamodb-item-collection.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-read-view.d.ts +76 -0
- package/dist/service/dynamodb/table/sim-dynamodb-read-view.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-read-view.js +2 -0
- package/dist/service/dynamodb/table/sim-dynamodb-read-view.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.d.ts +30 -0
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.js +39 -0
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-compare.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.d.ts +34 -20
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.js +47 -50
- package/dist/service/dynamodb/table/sim-dynamodb-sort-key-order.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-billing.d.ts +9 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-billing.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-billing.js +17 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-billing.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-definition.d.ts +53 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-definition.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-definition.js +63 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-definition.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-description.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-description.js +2 -2
- package/dist/service/dynamodb/table/sim-dynamodb-table-description.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.d.ts +29 -2
- package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.js +45 -4
- package/dist/service/dynamodb/table/sim-dynamodb-table-lifecycle.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.d.ts +26 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.js +30 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-read-view.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-scan.d.ts +2 -2
- package/dist/service/dynamodb/table/sim-dynamodb-table-scan.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-scan.js +1 -2
- package/dist/service/dynamodb/table/sim-dynamodb-table-scan.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts +27 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.js +79 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-update.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-view.d.ts +67 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-view.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-view.js +90 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table-view.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts +49 -46
- package/dist/service/dynamodb/table/sim-dynamodb-table.d.ts.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-table.js +87 -79
- package/dist/service/dynamodb/table/sim-dynamodb-table.js.map +1 -1
- package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts +21 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.js +2 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updatable-table.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.d.ts +17 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.js +24 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-billing.js.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.d.ts +16 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.d.ts.map +1 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.js +32 -0
- package/dist/service/dynamodb/table/sim-dynamodb-updated-indexes.js.map +1 -0
- package/dist/service/dynamodb/time-to-live/{sim-dynamodb-table-expiry.d.ts → sim-dynamodb-table-time-to-live.d.ts} +28 -9
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.d.ts.map +1 -0
- package/dist/service/dynamodb/time-to-live/{sim-dynamodb-table-expiry.js → sim-dynamodb-table-time-to-live.js} +32 -5
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-time-to-live.js.map +1 -0
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.d.ts +2 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.d.ts.map +1 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.js +2 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-time-to-live.js.map +1 -1
- package/package.json +1 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-expiry.d.ts.map +0 -1
- package/dist/service/dynamodb/time-to-live/sim-dynamodb-table-expiry.js.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
|
|
2
|
+
/**
|
|
3
|
+
* What a table is, as far as UpdateTable can change it.
|
|
4
|
+
*
|
|
5
|
+
* A table's key schema is fixed for its whole life, and everything here is not:
|
|
6
|
+
* the attributes its keys are made of grow when an index is added, and how it is
|
|
7
|
+
* billed and which class it is stored under can both be changed. Holding them
|
|
8
|
+
* together is what lets an update replace them in one step, while everything
|
|
9
|
+
* already holding the table goes on reading the table.
|
|
10
|
+
*/
|
|
11
|
+
export class SimDynamoDbTableDefinition {
|
|
12
|
+
keySchema;
|
|
13
|
+
#attributeDefinitions;
|
|
14
|
+
#billing;
|
|
15
|
+
#tableClass;
|
|
16
|
+
#itemKey;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
this.keySchema = properties.keySchema;
|
|
19
|
+
this.#attributeDefinitions = properties.attributeDefinitions;
|
|
20
|
+
this.#billing = properties.billing;
|
|
21
|
+
this.#tableClass = properties.tableClass;
|
|
22
|
+
this.#itemKey = new SimDynamoDbItemKey(properties.keySchema, properties.attributeDefinitions);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* The attributes the table's keys are made of, its own and its indexes'.
|
|
26
|
+
*/
|
|
27
|
+
get attributeDefinitions() {
|
|
28
|
+
return this.#attributeDefinitions;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* How the table is billed, and what it is provisioned for.
|
|
32
|
+
*/
|
|
33
|
+
get billing() {
|
|
34
|
+
return this.#billing;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* The class the table is stored under, when it was given one.
|
|
38
|
+
*/
|
|
39
|
+
get tableClass() {
|
|
40
|
+
return this.#tableClass;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* How the table reads the primary key of an item.
|
|
44
|
+
*/
|
|
45
|
+
get itemKey() {
|
|
46
|
+
return this.#itemKey;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Take the part of an UpdateTable that changes what the table is.
|
|
50
|
+
*
|
|
51
|
+
* The attribute definitions always come through, since an update that added
|
|
52
|
+
* none gives back the set the table already had. The item key is rebuilt from
|
|
53
|
+
* them, so a key attribute is still checked against the type the table
|
|
54
|
+
* declares for it.
|
|
55
|
+
*/
|
|
56
|
+
apply(update) {
|
|
57
|
+
this.#attributeDefinitions = update.attributeDefinitions;
|
|
58
|
+
this.#itemKey = new SimDynamoDbItemKey(this.keySchema, update.attributeDefinitions);
|
|
59
|
+
this.#billing = update.billing ?? this.#billing;
|
|
60
|
+
this.#tableClass = update.tableClass ?? this.#tableClass;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=sim-dynamodb-table-definition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-definition.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-definition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAYhE;;;;;;;;GAQG;AACH,MAAM,OAAO,0BAA0B;IACrB,SAAS,CAAuB;IAEhD,qBAAqB,CAAkC;IACvD,QAAQ,CAA0B;IAClC,WAAW,CAAoC;IAC/C,QAAQ,CAAqB;IAE7B,YAAY,UAAgD;QAC1D,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,oBAAoB,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CACpC,UAAU,CAAC,SAAS,EACpB,UAAU,CAAC,oBAAoB,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAA8B;QAClC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,oBAAoB,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,kBAAkB,CACpC,IAAI,CAAC,SAAS,EACd,MAAM,CAAC,oBAAoB,CAC5B,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,CAAC;IAC3D,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-table-description.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-description.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,2BAA2B,EAC5B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAehE;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,gBAAgB,GACtB,2BAA2B,CAoB7B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { simDynamoDbIndexStatus } from "../secondary-index/sim-dynamodb-index-status.js";
|
|
2
1
|
/**
|
|
3
2
|
* How a table reports its class, when the request that made it named one.
|
|
4
3
|
*/
|
|
@@ -27,7 +26,8 @@ export function describeSimDynamoDbTable(table) {
|
|
|
27
26
|
BillingModeSummary: table.billing.summary(),
|
|
28
27
|
ProvisionedThroughput: table.billing.throughputDescription(),
|
|
29
28
|
TableClassSummary: tableClassSummary(table.tableClass),
|
|
30
|
-
GlobalSecondaryIndexes: table.indexes.descriptions(
|
|
29
|
+
GlobalSecondaryIndexes: table.indexes.global.descriptions(table.status),
|
|
30
|
+
LocalSecondaryIndexes: table.indexes.local.descriptions(),
|
|
31
31
|
DeletionProtectionEnabled: table.deletionProtectionEnabled,
|
|
32
32
|
// Neither figure is tracked yet. Real DynamoDB updates both about every
|
|
33
33
|
// six hours, so they lag behind the items anyway.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-table-description.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-description.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-description.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,SAAS,iBAAiB,CACxB,UAA6C;IAE7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAuB;IAEvB,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG;QACnB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ;QACnC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAAC,QAAQ;QACzD,WAAW,EAAE,KAAK,CAAC,MAAM;QACzB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE;QAC3C,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAC5D,iBAAiB,EAAE,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;QACtD,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC;QACvE,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE;QACzD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;QAC1D,wEAAwE;QACxE,kDAAkD;QAClD,SAAS,EAAE,CAAC;QACZ,cAAc,EAAE,CAAC;KAClB,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { SimDynamoDbTableStatus } from "../command/table/table.types.js";
|
|
2
|
+
import type { SimDynamoDbTableUpdate } from "./sim-dynamodb-table-update.js";
|
|
2
3
|
interface SimDynamoDbTableLifecycleProperties {
|
|
3
4
|
readonly tableName: string;
|
|
4
5
|
readonly deletionProtectionEnabled: boolean;
|
|
@@ -14,16 +15,42 @@ interface SimDynamoDbTableLifecycleProperties {
|
|
|
14
15
|
export declare class SimDynamoDbTableLifecycle {
|
|
15
16
|
#private;
|
|
16
17
|
private readonly tableName;
|
|
17
|
-
private readonly deletionProtectionEnabled;
|
|
18
18
|
constructor(properties: SimDynamoDbTableLifecycleProperties);
|
|
19
19
|
/**
|
|
20
20
|
* Where the table is now.
|
|
21
21
|
*/
|
|
22
22
|
get status(): SimDynamoDbTableStatus;
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* Whether the table is protected from deletion.
|
|
25
|
+
*/
|
|
26
|
+
get deletionProtectionEnabled(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Finish creating or updating the table.
|
|
25
29
|
*/
|
|
26
30
|
activate(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Start changing the table's definition.
|
|
33
|
+
*
|
|
34
|
+
* The table serves reads and writes throughout, since AWS does not take one
|
|
35
|
+
* offline to update it. What UPDATING says is that another UpdateTable will
|
|
36
|
+
* be refused until this one has finished.
|
|
37
|
+
*/
|
|
38
|
+
beginUpdate(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Refuse an update the table is not in a state to take.
|
|
41
|
+
*
|
|
42
|
+
* Real DynamoDB takes one UpdateTable at a time: while a table is UPDATING,
|
|
43
|
+
* a second request is refused rather than queued. A table that is still
|
|
44
|
+
* being created has nothing to update yet.
|
|
45
|
+
*/
|
|
46
|
+
assertUpdatable(): void;
|
|
47
|
+
/**
|
|
48
|
+
* Take the part of an UpdateTable that moves the table's status.
|
|
49
|
+
*
|
|
50
|
+
* Deletion protection belongs here because it is what `assertDeletable`
|
|
51
|
+
* reads, so the two stay in one place rather than being kept in step.
|
|
52
|
+
*/
|
|
53
|
+
applyUpdate(update: SimDynamoDbTableUpdate): void;
|
|
27
54
|
/**
|
|
28
55
|
* Start deleting the table.
|
|
29
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-table-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAK9E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,UAAU,mCAAmC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,qBAAa,yBAAyB;;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAInC,YAAY,UAAU,EAAE,mCAAmC,EAG1D;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,sBAAsB,CAEnC;IAED;;OAEG;IACH,IAAI,yBAAyB,IAAI,OAAO,CAEvC;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAEf;IAED;;;;;;OAMG;IACH,WAAW,IAAI,IAAI,CAElB;IAED;;;;;;OAMG;IACH,eAAe,IAAI,IAAI,CAOtB;IAED;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAMhD;IAED;;OAEG;IACH,aAAa,IAAI,IAAI,CAEpB;IAED;;;;;OAKG;IACH,eAAe,IAAI,IAAI,CActB;CACF"}
|
|
@@ -9,11 +9,11 @@ import { SimDynamoDbResourceInUseException, SimDynamoDbValidationException, } fr
|
|
|
9
9
|
*/
|
|
10
10
|
export class SimDynamoDbTableLifecycle {
|
|
11
11
|
tableName;
|
|
12
|
-
deletionProtectionEnabled;
|
|
12
|
+
#deletionProtectionEnabled;
|
|
13
13
|
#status = "CREATING";
|
|
14
14
|
constructor(properties) {
|
|
15
15
|
this.tableName = properties.tableName;
|
|
16
|
-
this
|
|
16
|
+
this.#deletionProtectionEnabled = properties.deletionProtectionEnabled;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
19
|
* Where the table is now.
|
|
@@ -22,11 +22,52 @@ export class SimDynamoDbTableLifecycle {
|
|
|
22
22
|
return this.#status;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
*
|
|
25
|
+
* Whether the table is protected from deletion.
|
|
26
|
+
*/
|
|
27
|
+
get deletionProtectionEnabled() {
|
|
28
|
+
return this.#deletionProtectionEnabled;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Finish creating or updating the table.
|
|
26
32
|
*/
|
|
27
33
|
activate() {
|
|
28
34
|
this.#status = "ACTIVE";
|
|
29
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Start changing the table's definition.
|
|
38
|
+
*
|
|
39
|
+
* The table serves reads and writes throughout, since AWS does not take one
|
|
40
|
+
* offline to update it. What UPDATING says is that another UpdateTable will
|
|
41
|
+
* be refused until this one has finished.
|
|
42
|
+
*/
|
|
43
|
+
beginUpdate() {
|
|
44
|
+
this.#status = "UPDATING";
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Refuse an update the table is not in a state to take.
|
|
48
|
+
*
|
|
49
|
+
* Real DynamoDB takes one UpdateTable at a time: while a table is UPDATING,
|
|
50
|
+
* a second request is refused rather than queued. A table that is still
|
|
51
|
+
* being created has nothing to update yet.
|
|
52
|
+
*/
|
|
53
|
+
assertUpdatable() {
|
|
54
|
+
if (this.#status !== "ACTIVE") {
|
|
55
|
+
throw new SimDynamoDbResourceInUseException(`Table ${this.tableName} is ${this.#status} and cannot be updated ` +
|
|
56
|
+
`until it is ACTIVE`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Take the part of an UpdateTable that moves the table's status.
|
|
61
|
+
*
|
|
62
|
+
* Deletion protection belongs here because it is what `assertDeletable`
|
|
63
|
+
* reads, so the two stay in one place rather than being kept in step.
|
|
64
|
+
*/
|
|
65
|
+
applyUpdate(update) {
|
|
66
|
+
if (update.deletionProtectionEnabled !== undefined) {
|
|
67
|
+
this.#deletionProtectionEnabled = update.deletionProtectionEnabled;
|
|
68
|
+
}
|
|
69
|
+
this.beginUpdate();
|
|
70
|
+
}
|
|
30
71
|
/**
|
|
31
72
|
* Start deleting the table.
|
|
32
73
|
*/
|
|
@@ -40,7 +81,7 @@ export class SimDynamoDbTableLifecycle {
|
|
|
40
81
|
* protected table stays as it was rather than being taken part way through.
|
|
41
82
|
*/
|
|
42
83
|
assertDeletable() {
|
|
43
|
-
if (this
|
|
84
|
+
if (this.#deletionProtectionEnabled) {
|
|
44
85
|
throw new SimDynamoDbValidationException(`Table ${this.tableName} cannot be deleted while DeletionProtection ` +
|
|
45
86
|
`is enabled`);
|
|
46
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-table-lifecycle.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-lifecycle.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-lifecycle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC;AAQpC;;;;;;;GAOG;AACH,MAAM,OAAO,yBAAyB;IACnB,SAAS,CAAS;IACnC,0BAA0B,CAAU;IACpC,OAAO,GAA2B,UAAU,CAAC;IAE7C,YAAY,UAA+C;QACzD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,0BAA0B,GAAG,UAAU,CAAC,yBAAyB,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,0BAA0B,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,WAAW;QACT,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,iCAAiC,CACzC,SAAS,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,OAAO,yBAAyB;gBACjE,oBAAoB,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,MAA8B;QACxC,IAAI,MAAM,CAAC,yBAAyB,KAAK,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,yBAAyB,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,eAAe;QACb,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,MAAM,IAAI,8BAA8B,CACtC,SAAS,IAAI,CAAC,SAAS,8CAA8C;gBACnE,YAAY,CACf,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YAC/D,MAAM,IAAI,iCAAiC,CACzC,SAAS,IAAI,CAAC,SAAS,OAAO,IAAI,CAAC,OAAO,yBAAyB;gBACjE,oBAAoB,CACvB,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
2
|
+
import type { SimDynamoDbSecondaryIndexes } from "../secondary-index/sim-dynamodb-secondary-indexes.js";
|
|
3
|
+
import type { SimDynamoDbAttributeDefinitions } from "./sim-dynamodb-attribute-definitions.js";
|
|
4
|
+
import type { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
|
|
5
|
+
import type { SimDynamoDbKeySchema } from "./sim-dynamodb-key-schema.js";
|
|
6
|
+
import type { SimDynamoDbReadView } from "./sim-dynamodb-read-view.js";
|
|
7
|
+
interface SimDynamoDbTableReadViewProperties {
|
|
8
|
+
readonly tableName: string;
|
|
9
|
+
readonly indexName: string | undefined;
|
|
10
|
+
readonly items: readonly SimDynamoDbItem[];
|
|
11
|
+
readonly keySchema: SimDynamoDbKeySchema;
|
|
12
|
+
readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
|
|
13
|
+
readonly indexes: SimDynamoDbSecondaryIndexes;
|
|
14
|
+
readonly itemKey: SimDynamoDbItemKey;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build what a Query or a Scan reads: a table, or one of its indexes.
|
|
18
|
+
*
|
|
19
|
+
* An index is worked out here rather than kept up to date on the write path, so
|
|
20
|
+
* a view is built per read from the items as they stand. An `IndexName` the
|
|
21
|
+
* table does not have is refused rather than read as the table, and so is one
|
|
22
|
+
* it is still building.
|
|
23
|
+
*/
|
|
24
|
+
export declare function simDynamoDbTableReadView(properties: SimDynamoDbTableReadViewProperties): SimDynamoDbReadView;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=sim-dynamodb-table-read-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-read-view.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-read-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACxG,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC/F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,UAAU,kCAAkC;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,2BAA2B,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,kCAAkC,GAC7C,mBAAmB,CAqBrB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { SimDynamoDbIndexView } from "../secondary-index/sim-dynamodb-index-view.js";
|
|
2
|
+
import { SimDynamoDbTableView } from "./sim-dynamodb-table-view.js";
|
|
3
|
+
/**
|
|
4
|
+
* Build what a Query or a Scan reads: a table, or one of its indexes.
|
|
5
|
+
*
|
|
6
|
+
* An index is worked out here rather than kept up to date on the write path, so
|
|
7
|
+
* a view is built per read from the items as they stand. An `IndexName` the
|
|
8
|
+
* table does not have is refused rather than read as the table, and so is one
|
|
9
|
+
* it is still building.
|
|
10
|
+
*/
|
|
11
|
+
export function simDynamoDbTableReadView(properties) {
|
|
12
|
+
const { tableName, indexName, items, keySchema, attributeDefinitions } = properties;
|
|
13
|
+
if (indexName === undefined) {
|
|
14
|
+
return new SimDynamoDbTableView({
|
|
15
|
+
tableName,
|
|
16
|
+
items,
|
|
17
|
+
keySchema,
|
|
18
|
+
attributeDefinitions,
|
|
19
|
+
itemKey: properties.itemKey,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return new SimDynamoDbIndexView({
|
|
23
|
+
index: properties.indexes.required(indexName, tableName),
|
|
24
|
+
items,
|
|
25
|
+
tableKeySchema: keySchema,
|
|
26
|
+
attributeDefinitions,
|
|
27
|
+
tableItemKey: properties.itemKey,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=sim-dynamodb-table-read-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-read-view.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-read-view.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAMrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAYpE;;;;;;;GAOG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAA8C;IAE9C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,GACpE,UAAU,CAAC;IAEb,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,oBAAoB,CAAC;YAC9B,SAAS;YACT,KAAK;YACL,SAAS;YACT,oBAAoB;YACpB,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,oBAAoB,CAAC;QAC9B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;QACxD,KAAK;QACL,cAAc,EAAE,SAAS;QACzB,oBAAoB;QACpB,YAAY,EAAE,UAAU,CAAC,OAAO;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
2
2
|
import type { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
|
|
3
|
-
import type { SimDynamoDbKeySchema } from "./sim-dynamodb-key-schema.js";
|
|
4
3
|
import { SimDynamoDbScanPosition } from "./sim-dynamodb-scan-position.js";
|
|
5
4
|
import type { SimDynamoDbScanSegment } from "./sim-dynamodb-scan-segment.js";
|
|
5
|
+
import type { SimDynamoDbSortKeyOrder } from "./sim-dynamodb-sort-key-order.js";
|
|
6
6
|
interface SimDynamoDbTableScanProperties {
|
|
7
7
|
readonly items: Iterable<SimDynamoDbItem>;
|
|
8
|
-
readonly
|
|
8
|
+
readonly order: SimDynamoDbSortKeyOrder;
|
|
9
9
|
readonly itemKey: SimDynamoDbItemKey;
|
|
10
10
|
}
|
|
11
11
|
interface SimDynamoDbTableScanWalk {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-table-scan.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-scan.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-scan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED,UAAU,wBAAwB;IAChC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC9C;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAE/D,YAAY,UAAU,EAAE,8BAA8B,EAMrD;IAED;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,uBAAuB,CAMzD;IAED;;OAEG;IACH,IAAI,CAAC,UAAU,EAAE,wBAAwB,GAAG,SAAS,eAAe,EAAE,CAMrE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;CAYf"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SimDynamoDbScanPosition } from "./sim-dynamodb-scan-position.js";
|
|
2
|
-
import { SimDynamoDbSortKeyOrder } from "./sim-dynamodb-sort-key-order.js";
|
|
3
2
|
/**
|
|
4
3
|
* Every item one table holds, in the order a Scan reads them.
|
|
5
4
|
*
|
|
@@ -14,7 +13,7 @@ export class SimDynamoDbTableScan {
|
|
|
14
13
|
positions;
|
|
15
14
|
constructor(properties) {
|
|
16
15
|
this.itemKey = properties.itemKey;
|
|
17
|
-
this.sortKeyOrder =
|
|
16
|
+
this.sortKeyOrder = properties.order;
|
|
18
17
|
this.positions = [...properties.items]
|
|
19
18
|
.map((item) => this.positionOf(item))
|
|
20
19
|
.toSorted((first, second) => first.compareTo(second));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-table-scan.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-scan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-scan.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-scan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAe1E;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAoB;IACd,OAAO,CAAqB;IAC5B,YAAY,CAA0B;IACtC,SAAS,CAAqC;IAE/D,YAAY,UAA0C;QACpD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC;aACnC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACpC,QAAQ,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,IAAqB;QAC9B,OAAO,IAAI,uBAAuB,CAAC;YACjC,IAAI;YACJ,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;YAC5C,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,UAAoC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC9C,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CACvC,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;OAMG;IACK,MAAM,CACZ,SAA6C,EAC7C,KAAkC;QAElC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACtE,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { SimUpdateTableCommandInput } from "../command/table/table.command.js";
|
|
2
|
+
import type { SimDynamoDbTableClass } from "../command/table/table.types.js";
|
|
3
|
+
import type { SimDynamoDbGlobalSecondaryIndex } from "../secondary-index/sim-dynamodb-global-secondary-index.js";
|
|
4
|
+
import type { SimDynamoDbAttributeDefinitions } from "./sim-dynamodb-attribute-definitions.js";
|
|
5
|
+
import type { SimDynamoDbTableBilling } from "./sim-dynamodb-table-billing.js";
|
|
6
|
+
import type { SimDynamoDbUpdatableTable } from "./sim-dynamodb-updatable-table.js";
|
|
7
|
+
/**
|
|
8
|
+
* One change an UpdateTable request makes to a table.
|
|
9
|
+
*
|
|
10
|
+
* Everything the request says is read and checked here, against the table as it
|
|
11
|
+
* stands, before any of it is applied. That is what keeps a request that turns
|
|
12
|
+
* out to be invalid from leaving a half-updated table behind.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SimDynamoDbTableUpdate {
|
|
15
|
+
readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
|
|
16
|
+
readonly billing: SimDynamoDbTableBilling | undefined;
|
|
17
|
+
readonly indexCreated: SimDynamoDbGlobalSecondaryIndex | undefined;
|
|
18
|
+
readonly indexDeleted: string | undefined;
|
|
19
|
+
readonly tableClass: SimDynamoDbTableClass | undefined;
|
|
20
|
+
readonly deletionProtectionEnabled: boolean | undefined;
|
|
21
|
+
private constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Read the change an UpdateTable request asks a table for.
|
|
24
|
+
*/
|
|
25
|
+
static fromInput(input: SimUpdateTableCommandInput, table: SimDynamoDbUpdatableTable): SimDynamoDbTableUpdate;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sim-dynamodb-table-update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-update.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,2DAA2D,CAAC;AACjH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAE/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AA2DnF;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,SAAgB,oBAAoB,EAAE,+BAA+B,CAAC;IACtE,SAAgB,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC7D,SAAgB,YAAY,EAAE,+BAA+B,GAAG,SAAS,CAAC;IAC1E,SAAgB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjD,SAAgB,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC9D,SAAgB,yBAAyB,EAAE,OAAO,GAAG,SAAS,CAAC;IAE/D,OAAO,eASN;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,0BAA0B,EACjC,KAAK,EAAE,yBAAyB,GAC/B,sBAAsB,CAyBxB;CACF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
2
|
+
import { SimDynamoDbIndexUpdate } from "./sim-dynamodb-index-update.js";
|
|
3
|
+
import { readSimDynamoDbTableClass } from "./sim-dynamodb-table-class.js";
|
|
4
|
+
import { readSimDynamoDbUpdatedBilling } from "./sim-dynamodb-updated-billing.js";
|
|
5
|
+
import { simDynamoDbCreatedIndex, simDynamoDbDeletedIndexName, } from "./sim-dynamodb-updated-indexes.js";
|
|
6
|
+
/**
|
|
7
|
+
* Refuse a request asking for more than one thing at a time.
|
|
8
|
+
*
|
|
9
|
+
* AWS takes one of these per call: change what the table is billed and
|
|
10
|
+
* provisioned as, add one global secondary index, or remove one. A table class
|
|
11
|
+
* or deletion protection change is not one of them and rides along with any of
|
|
12
|
+
* them.
|
|
13
|
+
*/
|
|
14
|
+
function assertOneOperation(billing, indexUpdate) {
|
|
15
|
+
if (billing !== undefined && !indexUpdate.isEmpty) {
|
|
16
|
+
throw new SimDynamoDbValidationException("One or more parameter values were invalid: UpdateTable does one thing " +
|
|
17
|
+
"at a time, and this request changes the table's throughput and a " +
|
|
18
|
+
"global secondary index together");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Refuse a request that asks for nothing.
|
|
23
|
+
*/
|
|
24
|
+
function assertAsksForSomething(properties) {
|
|
25
|
+
const asks = properties.billing !== undefined ||
|
|
26
|
+
properties.indexCreated !== undefined ||
|
|
27
|
+
properties.indexDeleted !== undefined ||
|
|
28
|
+
properties.tableClass !== undefined ||
|
|
29
|
+
properties.deletionProtectionEnabled !== undefined;
|
|
30
|
+
if (!asks) {
|
|
31
|
+
throw new SimDynamoDbValidationException("An UpdateTable request changes the table's billing and throughput, " +
|
|
32
|
+
"its global secondary indexes, its table class or its deletion " +
|
|
33
|
+
"protection, and this one changes none of them");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* One change an UpdateTable request makes to a table.
|
|
38
|
+
*
|
|
39
|
+
* Everything the request says is read and checked here, against the table as it
|
|
40
|
+
* stands, before any of it is applied. That is what keeps a request that turns
|
|
41
|
+
* out to be invalid from leaving a half-updated table behind.
|
|
42
|
+
*/
|
|
43
|
+
export class SimDynamoDbTableUpdate {
|
|
44
|
+
attributeDefinitions;
|
|
45
|
+
billing;
|
|
46
|
+
indexCreated;
|
|
47
|
+
indexDeleted;
|
|
48
|
+
tableClass;
|
|
49
|
+
deletionProtectionEnabled;
|
|
50
|
+
constructor(properties) {
|
|
51
|
+
assertAsksForSomething(properties);
|
|
52
|
+
this.attributeDefinitions = properties.attributeDefinitions;
|
|
53
|
+
this.billing = properties.billing;
|
|
54
|
+
this.indexCreated = properties.indexCreated;
|
|
55
|
+
this.indexDeleted = properties.indexDeleted;
|
|
56
|
+
this.tableClass = properties.tableClass;
|
|
57
|
+
this.deletionProtectionEnabled = properties.deletionProtectionEnabled;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Read the change an UpdateTable request asks a table for.
|
|
61
|
+
*/
|
|
62
|
+
static fromInput(input, table) {
|
|
63
|
+
const indexUpdate = SimDynamoDbIndexUpdate.fromInput(input.GlobalSecondaryIndexUpdates);
|
|
64
|
+
const billing = readSimDynamoDbUpdatedBilling(input, table);
|
|
65
|
+
assertOneOperation(billing, indexUpdate);
|
|
66
|
+
// UpdateTable is the only chance to declare the key attributes of the index
|
|
67
|
+
// it is adding, so the definitions it carries are added to the table's.
|
|
68
|
+
const attributeDefinitions = table.attributeDefinitions.with(input.AttributeDefinitions);
|
|
69
|
+
return new this({
|
|
70
|
+
attributeDefinitions,
|
|
71
|
+
billing,
|
|
72
|
+
indexCreated: simDynamoDbCreatedIndex(indexUpdate, table, attributeDefinitions),
|
|
73
|
+
indexDeleted: simDynamoDbDeletedIndexName(indexUpdate, table),
|
|
74
|
+
tableClass: readSimDynamoDbTableClass(input.TableClass),
|
|
75
|
+
deletionProtectionEnabled: input.DeletionProtectionEnabled,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=sim-dynamodb-table-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-update.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-update.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EACL,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAW3C;;;;;;;GAOG;AACH,SAAS,kBAAkB,CACzB,OAA4C,EAC5C,WAAmC;IAEnC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,IAAI,8BAA8B,CACtC,wEAAwE;YACtE,mEAAmE;YACnE,iCAAiC,CACpC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,UAA4C;IAE5C,MAAM,IAAI,GACR,UAAU,CAAC,OAAO,KAAK,SAAS;QAChC,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,UAAU,CAAC,YAAY,KAAK,SAAS;QACrC,UAAU,CAAC,UAAU,KAAK,SAAS;QACnC,UAAU,CAAC,yBAAyB,KAAK,SAAS,CAAC;IAErD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,8BAA8B,CACtC,qEAAqE;YACnE,gEAAgE;YAChE,+CAA+C,CAClD,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,sBAAsB;IACjB,oBAAoB,CAAkC;IACtD,OAAO,CAAsC;IAC7C,YAAY,CAA8C;IAC1D,YAAY,CAAqB;IACjC,UAAU,CAAoC;IAC9C,yBAAyB,CAAsB;IAE/D,YAAoB,UAA4C;QAC9D,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,yBAAyB,GAAG,UAAU,CAAC,yBAAyB,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAiC,EACjC,KAAgC;QAEhC,MAAM,WAAW,GAAG,sBAAsB,CAAC,SAAS,CAClD,KAAK,CAAC,2BAA2B,CAClC,CAAC;QACF,MAAM,OAAO,GAAG,6BAA6B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC5D,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEzC,4EAA4E;QAC5E,wEAAwE;QACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAC1D,KAAK,CAAC,oBAAoB,CAC3B,CAAC;QAEF,OAAO,IAAI,IAAI,CAAC;YACd,oBAAoB;YACpB,OAAO;YACP,YAAY,EAAE,uBAAuB,CACnC,WAAW,EACX,KAAK,EACL,oBAAoB,CACrB;YACD,YAAY,EAAE,2BAA2B,CAAC,WAAW,EAAE,KAAK,CAAC;YAC7D,UAAU,EAAE,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC;YACvD,yBAAyB,EAAE,KAAK,CAAC,yBAAyB;SAC3D,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
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 { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
4
|
+
import type { SimDynamoDbAttributeDefinitions } from "./sim-dynamodb-attribute-definitions.js";
|
|
5
|
+
import { SimDynamoDbItemCollection } from "./sim-dynamodb-item-collection.js";
|
|
6
|
+
import type { SimDynamoDbItemKey } from "./sim-dynamodb-item-key.js";
|
|
7
|
+
import type { SimDynamoDbKeySchema } from "./sim-dynamodb-key-schema.js";
|
|
8
|
+
import type { SimDynamoDbReadView } from "./sim-dynamodb-read-view.js";
|
|
9
|
+
import { SimDynamoDbTableScan } from "./sim-dynamodb-table-scan.js";
|
|
10
|
+
interface SimDynamoDbTableViewProperties {
|
|
11
|
+
readonly tableName: string;
|
|
12
|
+
readonly items: readonly SimDynamoDbItem[];
|
|
13
|
+
readonly keySchema: SimDynamoDbKeySchema;
|
|
14
|
+
readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
|
|
15
|
+
readonly itemKey: SimDynamoDbItemKey;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Reading the table itself, rather than one of its indexes.
|
|
19
|
+
*
|
|
20
|
+
* This is the view a request naming no `IndexName` gets, and it holds
|
|
21
|
+
* everything: every item the table has, keyed by the table's own primary key,
|
|
22
|
+
* with every attribute of each. So the questions an index answers narrowly all
|
|
23
|
+
* have the wide answer here.
|
|
24
|
+
*/
|
|
25
|
+
export declare class SimDynamoDbTableView implements SimDynamoDbReadView {
|
|
26
|
+
readonly description: string;
|
|
27
|
+
readonly keySchema: SimDynamoDbKeySchema;
|
|
28
|
+
readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
|
|
29
|
+
private readonly items;
|
|
30
|
+
private readonly itemKey;
|
|
31
|
+
private readonly order;
|
|
32
|
+
constructor(properties: SimDynamoDbTableViewProperties);
|
|
33
|
+
/**
|
|
34
|
+
* The items of the table one key condition names.
|
|
35
|
+
*/
|
|
36
|
+
itemCollection(keyCondition: SimDynamoDbKeyCondition): SimDynamoDbItemCollection;
|
|
37
|
+
/**
|
|
38
|
+
* Every item the table holds, in the order a Scan reads them.
|
|
39
|
+
*/
|
|
40
|
+
scan(): SimDynamoDbTableScan;
|
|
41
|
+
/**
|
|
42
|
+
* Refuse a token that is not a whole primary key of this table.
|
|
43
|
+
*/
|
|
44
|
+
assertStartKey(key: SimDynamoDbItem): void;
|
|
45
|
+
/**
|
|
46
|
+
* The primary key of the item a walk stopped on.
|
|
47
|
+
*/
|
|
48
|
+
tokenKey(item: SimDynamoDbItem): Record<string, SimDynamoDbAttributeValue>;
|
|
49
|
+
/**
|
|
50
|
+
* A table read answers with the whole item, so there is nothing to cut.
|
|
51
|
+
*/
|
|
52
|
+
project(item: SimDynamoDbItem): SimDynamoDbItem;
|
|
53
|
+
/**
|
|
54
|
+
* A table read already answers with whole items, so nothing is refused.
|
|
55
|
+
*/
|
|
56
|
+
assertCarriesWholeItem(): void;
|
|
57
|
+
/**
|
|
58
|
+
* A filter may name any attribute of a table, so nothing is refused.
|
|
59
|
+
*/
|
|
60
|
+
assertCarriesPaths(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Every simulated read of a table is strongly consistent already.
|
|
63
|
+
*/
|
|
64
|
+
assertConsistentRead(): void;
|
|
65
|
+
}
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=sim-dynamodb-table-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-table-view.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/table/sim-dynamodb-table-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,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAGpE,UAAU,8BAA8B;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,YAAW,mBAAmB;IAC9D,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,SAAgB,SAAS,EAAE,oBAAoB,CAAC;IAChD,SAAgB,oBAAoB,EAAE,+BAA+B,CAAC;IAEtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,YAAY,UAAU,EAAE,8BAA8B,EAWrD;IAED;;OAEG;IACH,cAAc,CACZ,YAAY,EAAE,uBAAuB,GACpC,yBAAyB,CAO3B;IAED;;OAEG;IACH,IAAI,IAAI,oBAAoB,CAM3B;IAED;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAEzC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAEzE;IAED;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAE9C;IAED;;OAEG;IACH,sBAAsB,IAAI,IAAI,CAE7B;IAED;;OAEG;IACH,kBAAkB,IAAI,IAAI,CAEzB;IAED;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAE3B;CACF"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { SimDynamoDbItemCollection } from "./sim-dynamodb-item-collection.js";
|
|
2
|
+
import { simDynamoDbPrimaryKeyAttributes } from "./sim-dynamodb-primary-key.js";
|
|
3
|
+
import { SimDynamoDbTableScan } from "./sim-dynamodb-table-scan.js";
|
|
4
|
+
import { SimDynamoDbSortKeyOrder } from "./sim-dynamodb-sort-key-order.js";
|
|
5
|
+
/**
|
|
6
|
+
* Reading the table itself, rather than one of its indexes.
|
|
7
|
+
*
|
|
8
|
+
* This is the view a request naming no `IndexName` gets, and it holds
|
|
9
|
+
* everything: every item the table has, keyed by the table's own primary key,
|
|
10
|
+
* with every attribute of each. So the questions an index answers narrowly all
|
|
11
|
+
* have the wide answer here.
|
|
12
|
+
*/
|
|
13
|
+
export class SimDynamoDbTableView {
|
|
14
|
+
description;
|
|
15
|
+
keySchema;
|
|
16
|
+
attributeDefinitions;
|
|
17
|
+
items;
|
|
18
|
+
itemKey;
|
|
19
|
+
order;
|
|
20
|
+
constructor(properties) {
|
|
21
|
+
this.description = `table ${properties.tableName}`;
|
|
22
|
+
this.keySchema = properties.keySchema;
|
|
23
|
+
this.attributeDefinitions = properties.attributeDefinitions;
|
|
24
|
+
this.items = properties.items;
|
|
25
|
+
this.itemKey = properties.itemKey;
|
|
26
|
+
// A table primary key is unique, so the sort key settles every order
|
|
27
|
+
// question and nothing has to separate two items sharing one.
|
|
28
|
+
this.order = new SimDynamoDbSortKeyOrder({
|
|
29
|
+
attributeName: properties.keySchema.rangeKeyAttributeName,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The items of the table one key condition names.
|
|
34
|
+
*/
|
|
35
|
+
itemCollection(keyCondition) {
|
|
36
|
+
return new SimDynamoDbItemCollection({
|
|
37
|
+
items: this.items,
|
|
38
|
+
keySchema: this.keySchema,
|
|
39
|
+
order: this.order,
|
|
40
|
+
keyCondition,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Every item the table holds, in the order a Scan reads them.
|
|
45
|
+
*/
|
|
46
|
+
scan() {
|
|
47
|
+
return new SimDynamoDbTableScan({
|
|
48
|
+
items: this.items,
|
|
49
|
+
order: this.order,
|
|
50
|
+
itemKey: this.itemKey,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Refuse a token that is not a whole primary key of this table.
|
|
55
|
+
*/
|
|
56
|
+
assertStartKey(key) {
|
|
57
|
+
this.itemKey.ofKey(key);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The primary key of the item a walk stopped on.
|
|
61
|
+
*/
|
|
62
|
+
tokenKey(item) {
|
|
63
|
+
return simDynamoDbPrimaryKeyAttributes(item, this.keySchema);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A table read answers with the whole item, so there is nothing to cut.
|
|
67
|
+
*/
|
|
68
|
+
project(item) {
|
|
69
|
+
return item;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* A table read already answers with whole items, so nothing is refused.
|
|
73
|
+
*/
|
|
74
|
+
assertCarriesWholeItem() {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A filter may name any attribute of a table, so nothing is refused.
|
|
79
|
+
*/
|
|
80
|
+
assertCarriesPaths() {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Every simulated read of a table is strongly consistent already.
|
|
85
|
+
*/
|
|
86
|
+
assertConsistentRead() {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=sim-dynamodb-table-view.js.map
|