@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
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The status an index
|
|
2
|
+
* The status an index reports while its table is in a status of its own.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* apart from it.
|
|
4
|
+
* A global secondary index has a status of its own, because a table can carry
|
|
5
|
+
* an ACTIVE index and a CREATING one at the same time: UpdateTable adds one to
|
|
6
|
+
* a table that keeps serving the rest. A table being deleted takes all of them
|
|
7
|
+
* with it, so that one case is answered from the table rather than the index.
|
|
9
8
|
*/
|
|
10
|
-
export function simDynamoDbIndexStatus(tableStatus) {
|
|
11
|
-
if (tableStatus === "CREATING") {
|
|
12
|
-
return "CREATING";
|
|
13
|
-
}
|
|
9
|
+
export function simDynamoDbIndexStatus(tableStatus, indexStatus) {
|
|
14
10
|
if (tableStatus === "DELETING") {
|
|
15
11
|
return "DELETING";
|
|
16
12
|
}
|
|
17
|
-
return
|
|
13
|
+
return indexStatus;
|
|
18
14
|
}
|
|
19
15
|
//# sourceMappingURL=sim-dynamodb-index-status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-index-status.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-index-status.ts"],"names":[],"mappings":"AAKA
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-index-status.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-index-status.ts"],"names":[],"mappings":"AAKA;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmC,EACnC,WAAmC;IAEnC,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -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 "../table/sim-dynamodb-attribute-definitions.js";
|
|
6
|
+
import { SimDynamoDbItemCollection } from "../table/sim-dynamodb-item-collection.js";
|
|
7
|
+
import type { SimDynamoDbItemKey } from "../table/sim-dynamodb-item-key.js";
|
|
8
|
+
import type { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
9
|
+
import type { SimDynamoDbReadView } from "../table/sim-dynamodb-read-view.js";
|
|
10
|
+
import { SimDynamoDbTableScan } from "../table/sim-dynamodb-table-scan.js";
|
|
11
|
+
import type { SimDynamoDbSecondaryIndex } from "./sim-dynamodb-secondary-index.js";
|
|
12
|
+
interface SimDynamoDbIndexViewProperties {
|
|
13
|
+
readonly index: SimDynamoDbSecondaryIndex;
|
|
14
|
+
readonly items: readonly SimDynamoDbItem[];
|
|
15
|
+
readonly tableKeySchema: SimDynamoDbKeySchema;
|
|
16
|
+
readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
|
|
17
|
+
readonly tableItemKey: SimDynamoDbItemKey;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Reading one secondary index, of either kind.
|
|
21
|
+
*
|
|
22
|
+
* The index is worked out here rather than maintained on the write path, which
|
|
23
|
+
* is what makes an index added to a table have nothing to backfill and every
|
|
24
|
+
* item write unaware of it.
|
|
25
|
+
*
|
|
26
|
+
* The two things that make an index narrower than the table are answered by a
|
|
27
|
+
* collaborator each. `SimDynamoDbIndexKeys` is which items it holds and how
|
|
28
|
+
* they are named, and `SimDynamoDbIndexAttributes` is which parts of them come
|
|
29
|
+
* back. What is left here is the walking, which is the same walking a table
|
|
30
|
+
* gets, and the same walking whichever kind of index this is.
|
|
31
|
+
*/
|
|
32
|
+
export declare class SimDynamoDbIndexView implements SimDynamoDbReadView {
|
|
33
|
+
readonly description: string;
|
|
34
|
+
readonly keySchema: SimDynamoDbKeySchema;
|
|
35
|
+
readonly attributeDefinitions: SimDynamoDbAttributeDefinitions;
|
|
36
|
+
private readonly index;
|
|
37
|
+
private readonly items;
|
|
38
|
+
private readonly keys;
|
|
39
|
+
private readonly attributes;
|
|
40
|
+
private readonly order;
|
|
41
|
+
constructor(properties: SimDynamoDbIndexViewProperties);
|
|
42
|
+
/**
|
|
43
|
+
* The entries of the index one key condition names, by the index key.
|
|
44
|
+
*/
|
|
45
|
+
itemCollection(keyCondition: SimDynamoDbKeyCondition): SimDynamoDbItemCollection;
|
|
46
|
+
/**
|
|
47
|
+
* Every entry the index holds, in the order a Scan reads them.
|
|
48
|
+
*/
|
|
49
|
+
scan(): SimDynamoDbTableScan;
|
|
50
|
+
/**
|
|
51
|
+
* Refuse an `ExclusiveStartKey` this index could not have handed out.
|
|
52
|
+
*/
|
|
53
|
+
assertStartKey(key: SimDynamoDbItem): void;
|
|
54
|
+
/**
|
|
55
|
+
* The index key and the table key of the entry a walk stopped on.
|
|
56
|
+
*/
|
|
57
|
+
tokenKey(item: SimDynamoDbItem): Record<string, SimDynamoDbAttributeValue>;
|
|
58
|
+
/**
|
|
59
|
+
* Cut an item down to the attributes this index carries.
|
|
60
|
+
*/
|
|
61
|
+
project(item: SimDynamoDbItem): SimDynamoDbItem;
|
|
62
|
+
/**
|
|
63
|
+
* Refuse a read asking for whole items from a partial projection.
|
|
64
|
+
*/
|
|
65
|
+
assertCarriesWholeItem(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Refuse an expression naming an attribute this index does not project.
|
|
68
|
+
*/
|
|
69
|
+
assertCarriesPaths(paths: readonly SimDynamoDbDocumentPath[]): void;
|
|
70
|
+
/**
|
|
71
|
+
* Refuse a strongly consistent read this index cannot answer.
|
|
72
|
+
*/
|
|
73
|
+
assertConsistentRead(): void;
|
|
74
|
+
}
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=sim-dynamodb-index-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-index-view.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-index-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,gDAAgD,CAAC;AACtG,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAI3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,UAAU,8BAA8B;IACtC,QAAQ,CAAC,KAAK,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;IAC3C,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,oBAAoB,EAAE,+BAA+B,CAAC;IAC/D,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;CAC3C;AAED;;;;;;;;;;;;GAYG;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,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,YAAY,UAAU,EAAE,8BAA8B,EAwBrD;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,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAElE;IAED;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAE3B;CACF"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { SimDynamoDbItemCollection } from "../table/sim-dynamodb-item-collection.js";
|
|
2
|
+
import { SimDynamoDbTableScan } from "../table/sim-dynamodb-table-scan.js";
|
|
3
|
+
import { SimDynamoDbSortKeyOrder } from "../table/sim-dynamodb-sort-key-order.js";
|
|
4
|
+
import { SimDynamoDbIndexKeys } from "./sim-dynamodb-index-keys.js";
|
|
5
|
+
/**
|
|
6
|
+
* Reading one secondary index, of either kind.
|
|
7
|
+
*
|
|
8
|
+
* The index is worked out here rather than maintained on the write path, which
|
|
9
|
+
* is what makes an index added to a table have nothing to backfill and every
|
|
10
|
+
* item write unaware of it.
|
|
11
|
+
*
|
|
12
|
+
* The two things that make an index narrower than the table are answered by a
|
|
13
|
+
* collaborator each. `SimDynamoDbIndexKeys` is which items it holds and how
|
|
14
|
+
* they are named, and `SimDynamoDbIndexAttributes` is which parts of them come
|
|
15
|
+
* back. What is left here is the walking, which is the same walking a table
|
|
16
|
+
* gets, and the same walking whichever kind of index this is.
|
|
17
|
+
*/
|
|
18
|
+
export class SimDynamoDbIndexView {
|
|
19
|
+
description;
|
|
20
|
+
keySchema;
|
|
21
|
+
attributeDefinitions;
|
|
22
|
+
index;
|
|
23
|
+
items;
|
|
24
|
+
keys;
|
|
25
|
+
attributes;
|
|
26
|
+
order;
|
|
27
|
+
constructor(properties) {
|
|
28
|
+
const { index } = properties;
|
|
29
|
+
this.index = index;
|
|
30
|
+
this.description = `index ${index.name}`;
|
|
31
|
+
this.keySchema = index.keySchema;
|
|
32
|
+
this.attributeDefinitions = properties.attributeDefinitions;
|
|
33
|
+
this.keys = new SimDynamoDbIndexKeys({
|
|
34
|
+
indexName: index.name,
|
|
35
|
+
indexKeySchema: index.keySchema,
|
|
36
|
+
tableKeySchema: properties.tableKeySchema,
|
|
37
|
+
attributeDefinitions: properties.attributeDefinitions,
|
|
38
|
+
tableItemKey: properties.tableItemKey,
|
|
39
|
+
});
|
|
40
|
+
this.attributes = index.attributesOf(this.keys.attributeNames);
|
|
41
|
+
// Index key values are not unique, so the table key is what separates two
|
|
42
|
+
// entries sharing one and lets a walk resume after either.
|
|
43
|
+
this.order = new SimDynamoDbSortKeyOrder({
|
|
44
|
+
attributeName: index.keySchema.rangeKeyAttributeName,
|
|
45
|
+
identity: properties.tableItemKey,
|
|
46
|
+
});
|
|
47
|
+
this.items = properties.items.filter((item) => this.keys.holds(item));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The entries of the index one key condition names, by the index key.
|
|
51
|
+
*/
|
|
52
|
+
itemCollection(keyCondition) {
|
|
53
|
+
return new SimDynamoDbItemCollection({
|
|
54
|
+
items: this.items,
|
|
55
|
+
keySchema: this.keySchema,
|
|
56
|
+
order: this.order,
|
|
57
|
+
keyCondition,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Every entry the index holds, in the order a Scan reads them.
|
|
62
|
+
*/
|
|
63
|
+
scan() {
|
|
64
|
+
return new SimDynamoDbTableScan({
|
|
65
|
+
items: this.items,
|
|
66
|
+
order: this.order,
|
|
67
|
+
itemKey: this.keys.indexItemKey,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Refuse an `ExclusiveStartKey` this index could not have handed out.
|
|
72
|
+
*/
|
|
73
|
+
assertStartKey(key) {
|
|
74
|
+
this.keys.assertStartKey(key);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* The index key and the table key of the entry a walk stopped on.
|
|
78
|
+
*/
|
|
79
|
+
tokenKey(item) {
|
|
80
|
+
return this.keys.tokenKey(item);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Cut an item down to the attributes this index carries.
|
|
84
|
+
*/
|
|
85
|
+
project(item) {
|
|
86
|
+
return this.attributes.project(item);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Refuse a read asking for whole items from a partial projection.
|
|
90
|
+
*/
|
|
91
|
+
assertCarriesWholeItem() {
|
|
92
|
+
this.attributes.assertCarriesWholeItem();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Refuse an expression naming an attribute this index does not project.
|
|
96
|
+
*/
|
|
97
|
+
assertCarriesPaths(paths) {
|
|
98
|
+
this.attributes.assertCarriesPaths(paths);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Refuse a strongly consistent read this index cannot answer.
|
|
102
|
+
*/
|
|
103
|
+
assertConsistentRead() {
|
|
104
|
+
this.index.assertAnswersConsistentRead();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=sim-dynamodb-index-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-index-view.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-index-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAIrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAWpE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,oBAAoB;IACf,WAAW,CAAS;IACpB,SAAS,CAAuB;IAChC,oBAAoB,CAAkC;IAErD,KAAK,CAA4B;IACjC,KAAK,CAA6B;IAClC,IAAI,CAAuB;IAC3B,UAAU,CAA6B;IACvC,KAAK,CAA0B;IAEhD,YAAY,UAA0C;QACpD,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAE7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,oBAAoB,GAAG,UAAU,CAAC,oBAAoB,CAAC;QAC5D,IAAI,CAAC,IAAI,GAAG,IAAI,oBAAoB,CAAC;YACnC,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,cAAc,EAAE,KAAK,CAAC,SAAS;YAC/B,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,oBAAoB,EAAE,UAAU,CAAC,oBAAoB;YACrD,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE/D,0EAA0E;QAC1E,2DAA2D;QAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAuB,CAAC;YACvC,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,qBAAqB;YACpD,QAAQ,EAAE,UAAU,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,cAAc,CACZ,YAAqC;QAErC,OAAO,IAAI,yBAAyB,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,oBAAoB,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,GAAoB;QACjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAAqB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAqB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,KAAyC;QAC1D,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC;IAC3C,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SimDynamoDbAttributeValue } from "../command/item/item.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The orders an indexed table holds, as the items they are written as.
|
|
4
|
+
*
|
|
5
|
+
* Every third order carries no `status`, so the index is missing it and a test
|
|
6
|
+
* has something the table holds and the index does not. The statuses that are
|
|
7
|
+
* there repeat, so the index holds several items under one partition key, and
|
|
8
|
+
* `shippedAt` repeats within a status so two index entries share a whole index
|
|
9
|
+
* key and only the table key separates them.
|
|
10
|
+
*/
|
|
11
|
+
export declare function simDynamoDbIndexedOrders(orderCount: number): readonly Readonly<Record<string, SimDynamoDbAttributeValue>>[];
|
|
12
|
+
//# sourceMappingURL=sim-dynamodb-indexed-orders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-indexed-orders.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAoB/E;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,GACjB,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAmBhE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The status the order in one place of the table carries.
|
|
3
|
+
*/
|
|
4
|
+
function statusAt(position) {
|
|
5
|
+
if (position % 2 === 0) {
|
|
6
|
+
return "OPEN";
|
|
7
|
+
}
|
|
8
|
+
return "SHIPPED";
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Whether the order in one place of the table is written without a status.
|
|
12
|
+
*/
|
|
13
|
+
function isDraft(position) {
|
|
14
|
+
return position % 3 === 2;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The orders an indexed table holds, as the items they are written as.
|
|
18
|
+
*
|
|
19
|
+
* Every third order carries no `status`, so the index is missing it and a test
|
|
20
|
+
* has something the table holds and the index does not. The statuses that are
|
|
21
|
+
* there repeat, so the index holds several items under one partition key, and
|
|
22
|
+
* `shippedAt` repeats within a status so two index entries share a whole index
|
|
23
|
+
* key and only the table key separates them.
|
|
24
|
+
*/
|
|
25
|
+
export function simDynamoDbIndexedOrders(orderCount) {
|
|
26
|
+
return Array.from({ length: orderCount }, (_unused, position) => {
|
|
27
|
+
const orderId = `order-${(position + 1).toString().padStart(2, "0")}`;
|
|
28
|
+
const order = { orderId: { S: orderId }, title: { S: `Order ${orderId}` } };
|
|
29
|
+
if (isDraft(position)) {
|
|
30
|
+
return order;
|
|
31
|
+
}
|
|
32
|
+
const shippedMonth = (Math.floor(position / 4) + 1)
|
|
33
|
+
.toString()
|
|
34
|
+
.padStart(2, "0");
|
|
35
|
+
return {
|
|
36
|
+
...order,
|
|
37
|
+
status: { S: statusAt(position) },
|
|
38
|
+
shippedAt: { S: `2026-${shippedMonth}` },
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=sim-dynamodb-indexed-orders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-indexed-orders.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-indexed-orders.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,SAAS,QAAQ,CAAC,QAAgB;IAChC,IAAI,QAAQ,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,QAAgB;IAC/B,OAAO,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAkB;IAElB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC;QAE5E,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aAChD,QAAQ,EAAE;aACV,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAEpB,OAAO;YACL,GAAG,KAAK;YACR,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACjC,SAAS,EAAE,EAAE,CAAC,EAAE,QAAQ,YAAY,EAAE,EAAE;SACzC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { AsyncMappedFactory } from "@kensio/part-factory";
|
|
2
|
+
import type { SimAws } from "../../aws/sim-aws.js";
|
|
3
|
+
import type { SimDynamoDbProjectionType } from "../command/table/table.types.js";
|
|
4
|
+
import type { SimDynamoDbTable } from "../table/sim-dynamodb-table.js";
|
|
5
|
+
/**
|
|
6
|
+
* What a test asks for when it wants a table with an index to read.
|
|
7
|
+
*
|
|
8
|
+
* The projection is the input because it is what makes reads of one index
|
|
9
|
+
* differ from another: which attributes come back, and which `Select` values
|
|
10
|
+
* and filters the index can answer.
|
|
11
|
+
*/
|
|
12
|
+
export interface SimDynamoDbIndexedTableInput {
|
|
13
|
+
readonly tableName: string;
|
|
14
|
+
readonly indexName: string;
|
|
15
|
+
readonly projectionType: SimDynamoDbProjectionType;
|
|
16
|
+
readonly nonKeyAttributes: readonly string[];
|
|
17
|
+
readonly orderCount: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a table with one global secondary index, holding orders to read.
|
|
21
|
+
*
|
|
22
|
+
* The table is keyed by `orderId` and the index by `status` and `shippedAt`, so
|
|
23
|
+
* a read of the index walks a key the table does not have. Every third order is
|
|
24
|
+
* written without a `status`, which is what makes the index sparse rather than
|
|
25
|
+
* a second copy of the table.
|
|
26
|
+
*
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const table = await simDynamoDbIndexedTableFactory.make(
|
|
29
|
+
* { projectionType: "KEYS_ONLY" },
|
|
30
|
+
* simAws,
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare const simDynamoDbIndexedTableFactory: AsyncMappedFactory<SimDynamoDbIndexedTableInput, SimDynamoDbTable, SimAws>;
|
|
35
|
+
//# sourceMappingURL=sim-dynamodb-indexed-table.factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-indexed-table.factory.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAIvE;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,yBAAyB,CAAC;IACnD,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,8BAA8B,4EAwD1C,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { AsyncMappedFactory } from "@kensio/part-factory";
|
|
2
|
+
import { assertDefined } from "../../../util/type-guard/defined.js";
|
|
3
|
+
import { simDynamoDbIndexProjectionInput } from "./sim-dynamodb-index-projection-input.js";
|
|
4
|
+
import { simDynamoDbIndexedOrders } from "./sim-dynamodb-indexed-orders.js";
|
|
5
|
+
/**
|
|
6
|
+
* Creates a table with one global secondary index, holding orders to read.
|
|
7
|
+
*
|
|
8
|
+
* The table is keyed by `orderId` and the index by `status` and `shippedAt`, so
|
|
9
|
+
* a read of the index walks a key the table does not have. Every third order is
|
|
10
|
+
* written without a `status`, which is what makes the index sparse rather than
|
|
11
|
+
* a second copy of the table.
|
|
12
|
+
*
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const table = await simDynamoDbIndexedTableFactory.make(
|
|
15
|
+
* { projectionType: "KEYS_ONLY" },
|
|
16
|
+
* simAws,
|
|
17
|
+
* );
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export const simDynamoDbIndexedTableFactory = new AsyncMappedFactory(() => ({
|
|
21
|
+
tableName: "OrdersTable",
|
|
22
|
+
indexName: "byStatus",
|
|
23
|
+
projectionType: "ALL",
|
|
24
|
+
nonKeyAttributes: [],
|
|
25
|
+
orderCount: 6,
|
|
26
|
+
}), async (input, simAws) => {
|
|
27
|
+
const simDynamoDb = simAws.dynamoDb();
|
|
28
|
+
await simDynamoDb.createTable({
|
|
29
|
+
input: {
|
|
30
|
+
TableName: input.tableName,
|
|
31
|
+
KeySchema: [{ AttributeName: "orderId", KeyType: "HASH" }],
|
|
32
|
+
AttributeDefinitions: [
|
|
33
|
+
{ AttributeName: "orderId", AttributeType: "S" },
|
|
34
|
+
{ AttributeName: "status", AttributeType: "S" },
|
|
35
|
+
{ AttributeName: "shippedAt", AttributeType: "S" },
|
|
36
|
+
],
|
|
37
|
+
BillingMode: "PAY_PER_REQUEST",
|
|
38
|
+
GlobalSecondaryIndexes: [
|
|
39
|
+
{
|
|
40
|
+
IndexName: input.indexName,
|
|
41
|
+
KeySchema: [
|
|
42
|
+
{ AttributeName: "status", KeyType: "HASH" },
|
|
43
|
+
{ AttributeName: "shippedAt", KeyType: "RANGE" },
|
|
44
|
+
],
|
|
45
|
+
Projection: simDynamoDbIndexProjectionInput(input),
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
await simAws.backgroundTasksComplete();
|
|
51
|
+
await Promise.all(simDynamoDbIndexedOrders(input.orderCount).map(async (order) => simDynamoDb.putItem({
|
|
52
|
+
input: { TableName: input.tableName, Item: order },
|
|
53
|
+
})));
|
|
54
|
+
const table = simDynamoDb.findTable(input.tableName);
|
|
55
|
+
assertDefined(table, `Simulated DynamoDB created the table ${input.tableName} and then did ` +
|
|
56
|
+
`not hold it`);
|
|
57
|
+
return table;
|
|
58
|
+
});
|
|
59
|
+
//# sourceMappingURL=sim-dynamodb-indexed-table.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-indexed-table.factory.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-indexed-table.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAiB5E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,kBAAkB,CAKlE,GAAG,EAAE,CAAC,CAAC;IACL,SAAS,EAAE,aAAa;IACxB,SAAS,EAAE,UAAU;IACrB,cAAc,EAAE,KAAK;IACrB,gBAAgB,EAAE,EAAE;IACpB,UAAU,EAAE,CAAC;CACd,CAAC,EACF,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAEtC,MAAM,WAAW,CAAC,WAAW,CAAC;QAC5B,KAAK,EAAE;YACL,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC1D,oBAAoB,EAAE;gBACpB,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE;gBAChD,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE;gBAC/C,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,EAAE;aACnD;YACD,WAAW,EAAE,iBAAiB;YAC9B,sBAAsB,EAAE;gBACtB;oBACE,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,SAAS,EAAE;wBACT,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;wBAC5C,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;qBACjD;oBACD,UAAU,EAAE,+BAA+B,CAAC,KAAK,CAAC;iBACnD;aACF;SACF;KACF,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,uBAAuB,EAAE,CAAC;IAEvC,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAC7D,WAAW,CAAC,OAAO,CAAC;QAClB,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;KACnD,CAAC,CACH,CACF,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrD,aAAa,CACX,KAAK,EACL,wCAAwC,KAAK,CAAC,SAAS,gBAAgB;QACrE,aAAa,CAChB,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SimDynamoDbKeySchemaElementInput } from "../command/table/table.types.js";
|
|
2
|
+
import { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* Refuse a local secondary index on a table with no sort key of its own.
|
|
5
|
+
*
|
|
6
|
+
* The index adds a second sort key to an item collection, and a table keyed by
|
|
7
|
+
* a partition key alone holds one item per collection. There is nothing there
|
|
8
|
+
* to sort, which is why AWS refuses the whole request rather than the index.
|
|
9
|
+
*/
|
|
10
|
+
export declare function assertSimDynamoDbTableSortsForLocalIndexes(tableKeySchema: SimDynamoDbKeySchema): void;
|
|
11
|
+
/**
|
|
12
|
+
* Read the KeySchema of one local secondary index.
|
|
13
|
+
*
|
|
14
|
+
* The key schema is what makes the index local. Its partition key is the
|
|
15
|
+
* table's own, so an entry sits in the same partition as the item it indexes,
|
|
16
|
+
* and its sort key is some other attribute, so the collection has a second
|
|
17
|
+
* order to be read in. An index sorted by the attribute the table is already
|
|
18
|
+
* sorted by would be the table written twice.
|
|
19
|
+
*/
|
|
20
|
+
export declare function readSimDynamoDbLocalIndexKeySchema(input: readonly SimDynamoDbKeySchemaElementInput[] | undefined, indexName: string, tableKeySchema: SimDynamoDbKeySchema): SimDynamoDbKeySchema;
|
|
21
|
+
//# sourceMappingURL=sim-dynamodb-local-index-key-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-local-index-key-schema.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AAExF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E;;;;;;GAMG;AACH,wBAAgB,0CAA0C,CACxD,cAAc,EAAE,oBAAoB,GACnC,IAAI,CAUN;AAED;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,gCAAgC,EAAE,GAAG,SAAS,EAC9D,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,oBAAoB,GACnC,oBAAoB,CA+BtB"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
2
|
+
import { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
3
|
+
import { SimDynamoDbKeySchemaSubject } from "../table/sim-dynamodb-key-schema-subject.js";
|
|
4
|
+
/**
|
|
5
|
+
* Refuse a local secondary index on a table with no sort key of its own.
|
|
6
|
+
*
|
|
7
|
+
* The index adds a second sort key to an item collection, and a table keyed by
|
|
8
|
+
* a partition key alone holds one item per collection. There is nothing there
|
|
9
|
+
* to sort, which is why AWS refuses the whole request rather than the index.
|
|
10
|
+
*/
|
|
11
|
+
export function assertSimDynamoDbTableSortsForLocalIndexes(tableKeySchema) {
|
|
12
|
+
if (tableKeySchema.rangeKeyAttributeName !== undefined) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
throw new SimDynamoDbValidationException("One or more parameter values were invalid: Table KeySchema does not " +
|
|
16
|
+
"have a range key, which is required when specifying a " +
|
|
17
|
+
"LocalSecondaryIndex");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Read the KeySchema of one local secondary index.
|
|
21
|
+
*
|
|
22
|
+
* The key schema is what makes the index local. Its partition key is the
|
|
23
|
+
* table's own, so an entry sits in the same partition as the item it indexes,
|
|
24
|
+
* and its sort key is some other attribute, so the collection has a second
|
|
25
|
+
* order to be read in. An index sorted by the attribute the table is already
|
|
26
|
+
* sorted by would be the table written twice.
|
|
27
|
+
*/
|
|
28
|
+
export function readSimDynamoDbLocalIndexKeySchema(input, indexName, tableKeySchema) {
|
|
29
|
+
const subject = SimDynamoDbKeySchemaSubject.index(indexName);
|
|
30
|
+
const keySchema = SimDynamoDbKeySchema.fromInput(input, subject);
|
|
31
|
+
const partitionKey = keySchema.hashKeyAttributeName;
|
|
32
|
+
if (partitionKey !== tableKeySchema.hashKeyAttributeName) {
|
|
33
|
+
throw subject.refuse(`the HASH element names ${partitionKey}, and a local secondary index ` +
|
|
34
|
+
`shares the table's partition key, which is ${tableKeySchema.hashKeyAttributeName}`);
|
|
35
|
+
}
|
|
36
|
+
const sortKey = keySchema.rangeKeyAttributeName;
|
|
37
|
+
if (sortKey === undefined) {
|
|
38
|
+
throw subject.refuse("a local secondary index gives an item collection a second sort key, " +
|
|
39
|
+
"and this key schema has no RANGE element");
|
|
40
|
+
}
|
|
41
|
+
if (sortKey === tableKeySchema.rangeKeyAttributeName) {
|
|
42
|
+
throw subject.refuse(`the RANGE element names ${sortKey}, which is the table's own sort ` +
|
|
43
|
+
`key, so the index would repeat the order the table is already in`);
|
|
44
|
+
}
|
|
45
|
+
return keySchema;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=sim-dynamodb-local-index-key-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-local-index-key-schema.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-local-index-key-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAE1F;;;;;;GAMG;AACH,MAAM,UAAU,0CAA0C,CACxD,cAAoC;IAEpC,IAAI,cAAc,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,8BAA8B,CACtC,sEAAsE;QACpE,wDAAwD;QACxD,qBAAqB,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAChD,KAA8D,EAC9D,SAAiB,EACjB,cAAoC;IAEpC,MAAM,OAAO,GAAG,2BAA2B,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,YAAY,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAEpD,IAAI,YAAY,KAAK,cAAc,CAAC,oBAAoB,EAAE,CAAC;QACzD,MAAM,OAAO,CAAC,MAAM,CAClB,0BAA0B,YAAY,gCAAgC;YACpE,8CACE,cAAc,CAAC,oBACjB,EAAE,CACL,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,qBAAqB,CAAC;IAEhD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,OAAO,CAAC,MAAM,CAClB,sEAAsE;YACpE,0CAA0C,CAC7C,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,cAAc,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,OAAO,CAAC,MAAM,CAClB,2BAA2B,OAAO,kCAAkC;YAClE,kEAAkE,CACrE,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SimDynamoDbSecondaryIndexInput } from "../command/table/table.types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Refuse the capacity a local secondary index cannot be given.
|
|
4
|
+
*
|
|
5
|
+
* A local secondary index sits in the same partition as the items it indexes
|
|
6
|
+
* and shares the table's throughput, so there is nothing to provision for it.
|
|
7
|
+
* Real DynamoDB has no throughput field on a `LocalSecondaryIndex` at all, so a
|
|
8
|
+
* request carrying one is refused rather than stored and ignored.
|
|
9
|
+
*/
|
|
10
|
+
export declare function refuseSimDynamoDbLocalIndexThroughput(input: SimDynamoDbSecondaryIndexInput, indexName: string): void;
|
|
11
|
+
//# sourceMappingURL=sim-dynamodb-local-index-throughput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-local-index-throughput.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAiBtF;;;;;;;GAOG;AACH,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,8BAA8B,EACrC,SAAS,EAAE,MAAM,GAChB,IAAI,CAYN"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
2
|
+
/**
|
|
3
|
+
* How a refusal says a local secondary index has no capacity of its own.
|
|
4
|
+
*/
|
|
5
|
+
function refuseSetting(setting, indexName) {
|
|
6
|
+
return new SimDynamoDbValidationException(`One or more parameter values were invalid: ${setting} cannot be ` +
|
|
7
|
+
`specified for index: ${indexName} because it is a local secondary ` +
|
|
8
|
+
`index, which is read and written out of the table's own throughput`);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Refuse the capacity a local secondary index cannot be given.
|
|
12
|
+
*
|
|
13
|
+
* A local secondary index sits in the same partition as the items it indexes
|
|
14
|
+
* and shares the table's throughput, so there is nothing to provision for it.
|
|
15
|
+
* Real DynamoDB has no throughput field on a `LocalSecondaryIndex` at all, so a
|
|
16
|
+
* request carrying one is refused rather than stored and ignored.
|
|
17
|
+
*/
|
|
18
|
+
export function refuseSimDynamoDbLocalIndexThroughput(input, indexName) {
|
|
19
|
+
if (input.ProvisionedThroughput !== undefined) {
|
|
20
|
+
throw refuseSetting("ProvisionedThroughput", indexName);
|
|
21
|
+
}
|
|
22
|
+
if (input.OnDemandThroughput !== undefined) {
|
|
23
|
+
throw refuseSetting("OnDemandThroughput", indexName);
|
|
24
|
+
}
|
|
25
|
+
if (input.WarmThroughput !== undefined) {
|
|
26
|
+
throw refuseSetting("WarmThroughput", indexName);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=sim-dynamodb-local-index-throughput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-local-index-throughput.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-local-index-throughput.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;GAEG;AACH,SAAS,aAAa,CACpB,OAAe,EACf,SAAiB;IAEjB,OAAO,IAAI,8BAA8B,CACvC,8CAA8C,OAAO,aAAa;QAChE,wBAAwB,SAAS,mCAAmC;QACpE,oEAAoE,CACvE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qCAAqC,CACnD,KAAqC,EACrC,SAAiB;IAEjB,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,aAAa,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,aAAa,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,aAAa,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { SimArn } from "../../aws/arn.js";
|
|
2
|
+
import type { SimDynamoDbLocalSecondaryIndexDescription, SimDynamoDbSecondaryIndexInput } from "../command/table/table.types.js";
|
|
3
|
+
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
4
|
+
import type { SimDynamoDbAttributeDefinitions } from "../table/sim-dynamodb-attribute-definitions.js";
|
|
5
|
+
import type { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
6
|
+
import type { SimDynamoDbIndexAttributes } from "./sim-dynamodb-index-attributes.js";
|
|
7
|
+
import { SimDynamoDbIndexProjection } from "./sim-dynamodb-index-projection.js";
|
|
8
|
+
import type { SimDynamoDbSecondaryIndex, SimDynamoDbSecondaryIndexTable } from "./sim-dynamodb-secondary-index.js";
|
|
9
|
+
/**
|
|
10
|
+
* One simulated local secondary index.
|
|
11
|
+
*
|
|
12
|
+
* A local secondary index gives an item collection a second sort key. It shares
|
|
13
|
+
* the table's partition key, so an entry sits in the same partition as the item
|
|
14
|
+
* it indexes, which is what lets it answer a strongly consistent read and lets a
|
|
15
|
+
* read of it reach the base table for an attribute it does not project.
|
|
16
|
+
*
|
|
17
|
+
* `CreateTable` is the only place one can be declared. AWS has no call that
|
|
18
|
+
* adds, changes or removes one afterwards, so neither does this.
|
|
19
|
+
*/
|
|
20
|
+
export declare class SimDynamoDbLocalSecondaryIndex implements SimDynamoDbSecondaryIndex {
|
|
21
|
+
readonly name: string;
|
|
22
|
+
readonly arn: SimArn;
|
|
23
|
+
readonly keySchema: SimDynamoDbKeySchema;
|
|
24
|
+
readonly projection: SimDynamoDbIndexProjection;
|
|
25
|
+
private constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Read one `LocalSecondaryIndexes` entry a CreateTable request carries.
|
|
28
|
+
*
|
|
29
|
+
* The name is read first, since every other refusal names the index it is
|
|
30
|
+
* about.
|
|
31
|
+
*/
|
|
32
|
+
static fromInput(input: SimDynamoDbSecondaryIndexInput, table: SimDynamoDbSecondaryIndexTable): SimDynamoDbLocalSecondaryIndex;
|
|
33
|
+
/**
|
|
34
|
+
* Which attributes a read of this index answers with.
|
|
35
|
+
*/
|
|
36
|
+
attributesOf(keyAttributeNames: ReadonlySet<string>): SimDynamoDbIndexAttributes;
|
|
37
|
+
/**
|
|
38
|
+
* A local secondary index answers a strongly consistent read.
|
|
39
|
+
*
|
|
40
|
+
* It is written in the same partition as the item it indexes, in the same
|
|
41
|
+
* operation, so there is no window in which it lags behind the table. That is
|
|
42
|
+
* the difference from a global secondary index, which is maintained
|
|
43
|
+
* asynchronously and refuses one.
|
|
44
|
+
*/
|
|
45
|
+
assertAnswersConsistentRead(): void;
|
|
46
|
+
/**
|
|
47
|
+
* A local secondary index is always ready to be read.
|
|
48
|
+
*
|
|
49
|
+
* It is built with the table that carries it, and AWS has no call that adds
|
|
50
|
+
* one afterwards, so there is no window in which it exists and cannot answer.
|
|
51
|
+
*/
|
|
52
|
+
assertReadable(): void;
|
|
53
|
+
/**
|
|
54
|
+
* Refuse an item carrying one of this index's key attributes as another type.
|
|
55
|
+
*/
|
|
56
|
+
assertItemKeyTypes(item: SimDynamoDbItem, attributeDefinitions: SimDynamoDbAttributeDefinitions): void;
|
|
57
|
+
/**
|
|
58
|
+
* Describe this index the way DynamoDB reports it.
|
|
59
|
+
*
|
|
60
|
+
* There is no `IndexStatus` and no `ProvisionedThroughput`, since a local
|
|
61
|
+
* secondary index is built with the table and shares its capacity.
|
|
62
|
+
*/
|
|
63
|
+
toDescription(): SimDynamoDbLocalSecondaryIndexDescription;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=sim-dynamodb-local-secondary-index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-local-secondary-index.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-local-secondary-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EACV,yCAAyC,EACzC,8BAA8B,EAC/B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAGhF,OAAO,KAAK,EACV,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mCAAmC,CAAC;AAS3C;;;;;;;;;;GAUG;AACH,qBAAa,8BAA+B,YAAW,yBAAyB;IAC9E,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,SAAS,EAAE,oBAAoB,CAAC;IAChD,SAAgB,UAAU,EAAE,0BAA0B,CAAC;IAEvD,OAAO,eAON;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE,8BAA8B,GACpC,8BAA8B,CAehC;IAED;;OAEG;IACH,YAAY,CACV,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,0BAA0B,CAM5B;IAED;;;;;;;OAOG;IACH,2BAA2B,IAAI,IAAI,CAElC;IAED;;;;;OAKG;IACH,cAAc,IAAI,IAAI,CAErB;IAED;;OAEG;IACH,kBAAkB,CAChB,IAAI,EAAE,eAAe,EACrB,oBAAoB,EAAE,+BAA+B,GACpD,IAAI,CAON;IAED;;;;;OAKG;IACH,aAAa,IAAI,yCAAyC,CAUzD;CACF"}
|