@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,42 @@
|
|
|
1
|
+
import { SimDynamoDbProjectedIndexAttributes } from "./sim-dynamodb-projected-index-attributes.js";
|
|
2
|
+
/**
|
|
3
|
+
* The attributes a local secondary index carries, plus the base table's.
|
|
4
|
+
*
|
|
5
|
+
* A local secondary index entry sits in the same partition as the item it
|
|
6
|
+
* indexes, so DynamoDB can read that item while it walks the index. An
|
|
7
|
+
* attribute the index does not project is therefore fetched rather than
|
|
8
|
+
* refused, which is the fetch the extra read capacity is charged for.
|
|
9
|
+
*
|
|
10
|
+
* The projection still decides what a read answers with by default, so cutting
|
|
11
|
+
* an item down is the same job it is on a global secondary index and is left to
|
|
12
|
+
* that class. What differs is that nothing here refuses a read for asking
|
|
13
|
+
* beyond the projection.
|
|
14
|
+
*/
|
|
15
|
+
export class SimDynamoDbFetchedIndexAttributes {
|
|
16
|
+
projected;
|
|
17
|
+
constructor(properties) {
|
|
18
|
+
this.projected = new SimDynamoDbProjectedIndexAttributes(properties);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Cut an item down to the attributes the index projects.
|
|
22
|
+
*
|
|
23
|
+
* This is what a read answers with unless it asked for whole items, since
|
|
24
|
+
* `ALL_PROJECTED_ATTRIBUTES` is what a read of any index defaults to.
|
|
25
|
+
*/
|
|
26
|
+
project(item) {
|
|
27
|
+
return this.projected.project(item);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Whole items are answerable from any projection, since the table is there.
|
|
31
|
+
*/
|
|
32
|
+
assertCarriesWholeItem() {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Any attribute is nameable, since one outside the projection is fetched.
|
|
37
|
+
*/
|
|
38
|
+
assertCarriesPaths() {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=sim-dynamodb-fetched-index-attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-fetched-index-attributes.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-fetched-index-attributes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAC;AAEnG;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,iCAAiC;IAC3B,SAAS,CAAsC;IAEhE,YAAY,UAAgD;QAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,mCAAmC,CAAC,UAAU,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAqB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,sBAAsB;QACpB,OAAO;IACT,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;IACT,CAAC;CACF"}
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import type { SimArn } from "../../aws/arn.js";
|
|
2
|
-
import type { SimDynamoDbGlobalSecondaryIndexDescription,
|
|
2
|
+
import type { SimDynamoDbGlobalSecondaryIndexDescription, SimDynamoDbSecondaryIndexInput, SimDynamoDbTableStatus } from "../command/table/table.types.js";
|
|
3
3
|
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
4
4
|
import type { SimDynamoDbAttributeDefinitions } from "../table/sim-dynamodb-attribute-definitions.js";
|
|
5
5
|
import { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
6
|
-
import type {
|
|
6
|
+
import type { SimDynamoDbIndexAttributes } from "./sim-dynamodb-index-attributes.js";
|
|
7
7
|
import { SimDynamoDbIndexProjection } from "./sim-dynamodb-index-projection.js";
|
|
8
|
-
|
|
9
|
-
* What a secondary index needs from the table it is declared on.
|
|
10
|
-
*/
|
|
11
|
-
export interface SimDynamoDbSecondaryIndexTable {
|
|
12
|
-
readonly tableArn: SimArn;
|
|
13
|
-
readonly billing: SimDynamoDbTableBilling;
|
|
14
|
-
}
|
|
8
|
+
import type { SimDynamoDbSecondaryIndex, SimDynamoDbSecondaryIndexTable } from "./sim-dynamodb-secondary-index.js";
|
|
15
9
|
/**
|
|
16
10
|
* One simulated global secondary index.
|
|
17
11
|
*
|
|
@@ -20,12 +14,13 @@ export interface SimDynamoDbSecondaryIndexTable {
|
|
|
20
14
|
* it holds are worked out when it is read, which is why nothing here is
|
|
21
15
|
* maintained on the write path.
|
|
22
16
|
*/
|
|
23
|
-
export declare class SimDynamoDbGlobalSecondaryIndex {
|
|
17
|
+
export declare class SimDynamoDbGlobalSecondaryIndex implements SimDynamoDbSecondaryIndex {
|
|
24
18
|
readonly name: string;
|
|
25
19
|
readonly arn: SimArn;
|
|
26
20
|
readonly keySchema: SimDynamoDbKeySchema;
|
|
27
21
|
readonly projection: SimDynamoDbIndexProjection;
|
|
28
22
|
private readonly throughput;
|
|
23
|
+
private readonly lifecycle;
|
|
29
24
|
private constructor();
|
|
30
25
|
/**
|
|
31
26
|
* Read one `GlobalSecondaryIndexes` entry a CreateTable request carries.
|
|
@@ -34,13 +29,50 @@ export declare class SimDynamoDbGlobalSecondaryIndex {
|
|
|
34
29
|
* about.
|
|
35
30
|
*/
|
|
36
31
|
static fromInput(input: SimDynamoDbSecondaryIndexInput, table: SimDynamoDbSecondaryIndexTable): SimDynamoDbGlobalSecondaryIndex;
|
|
32
|
+
/**
|
|
33
|
+
* Read the `Create` of a `GlobalSecondaryIndexUpdates` entry.
|
|
34
|
+
*
|
|
35
|
+
* An index declared this way is added to a table that already holds items, so
|
|
36
|
+
* it backfills where one declared on CreateTable does not. Everything else
|
|
37
|
+
* about it is read the same way, since a template or an SDK caller declares
|
|
38
|
+
* an index in the same shape either way.
|
|
39
|
+
*/
|
|
40
|
+
static added(input: SimDynamoDbSecondaryIndexInput, table: SimDynamoDbSecondaryIndexTable): SimDynamoDbGlobalSecondaryIndex;
|
|
41
|
+
private static declared;
|
|
42
|
+
/**
|
|
43
|
+
* Finish building this index, so reads of it are answered.
|
|
44
|
+
*/
|
|
45
|
+
activate(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Refuse a read of this index while it is still being built.
|
|
48
|
+
*/
|
|
49
|
+
assertReadable(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Which attributes a read of this index answers with.
|
|
52
|
+
*
|
|
53
|
+
* A global secondary index is held apart from the table, so what it projects
|
|
54
|
+
* is the whole of what a read of it can answer with.
|
|
55
|
+
*/
|
|
56
|
+
attributesOf(keyAttributeNames: ReadonlySet<string>): SimDynamoDbIndexAttributes;
|
|
57
|
+
/**
|
|
58
|
+
* Refuse a strongly consistent read of this index.
|
|
59
|
+
*
|
|
60
|
+
* A global secondary index is maintained asynchronously on AWS, so it cannot
|
|
61
|
+
* answer one at all. Every read here is strongly consistent, so accepting the
|
|
62
|
+
* request and ignoring the flag would leave a test passing on something real
|
|
63
|
+
* DynamoDB refuses outright.
|
|
64
|
+
*/
|
|
65
|
+
assertAnswersConsistentRead(): void;
|
|
37
66
|
/**
|
|
38
67
|
* Refuse an item carrying one of this index's key attributes as another type.
|
|
39
68
|
*/
|
|
40
69
|
assertItemKeyTypes(item: SimDynamoDbItem, attributeDefinitions: SimDynamoDbAttributeDefinitions): void;
|
|
41
70
|
/**
|
|
42
71
|
* Describe this index the way DynamoDB reports it.
|
|
72
|
+
*
|
|
73
|
+
* The table's status is taken rather than the index's own, since a table
|
|
74
|
+
* being deleted reports every index as DELETING whatever each one was doing.
|
|
43
75
|
*/
|
|
44
|
-
toDescription(
|
|
76
|
+
toDescription(tableStatus: SimDynamoDbTableStatus): SimDynamoDbGlobalSecondaryIndexDescription;
|
|
45
77
|
}
|
|
46
78
|
//# sourceMappingURL=sim-dynamodb-global-secondary-index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-global-secondary-index.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EACV,0CAA0C,EAC1C,
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-global-secondary-index.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EACV,0CAA0C,EAC1C,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAIrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAIhF,OAAO,KAAK,EACV,yBAAyB,EACzB,8BAA8B,EAC/B,MAAM,mCAAmC,CAAC;AAW3C;;;;;;;GAOG;AACH,qBAAa,+BAAgC,YAAW,yBAAyB;IAC/E,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,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IAEtD,OAAO,eASN;IAED;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE,8BAA8B,GACpC,+BAA+B,CASjC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CACV,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE,8BAA8B,GACpC,+BAA+B,CASjC;IAED,OAAO,CAAC,MAAM,CAAC,QAAQ;IAmBvB;;OAEG;IACH,QAAQ,IAAI,IAAI,CAEf;IAED;;OAEG;IACH,cAAc,IAAI,IAAI,CAErB;IAED;;;;;OAKG;IACH,YAAY,CACV,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,GACrC,0BAA0B,CAM5B;IAED;;;;;;;OAOG;IACH,2BAA2B,IAAI,IAAI,CAKlC;IAED;;OAEG;IACH,kBAAkB,CAChB,IAAI,EAAE,eAAe,EACrB,oBAAoB,EAAE,+BAA+B,GACpD,IAAI,CAON;IAED;;;;;OAKG;IACH,aAAa,CACX,WAAW,EAAE,sBAAsB,GAClC,0CAA0C,CAa5C;CACF"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { SimDynamoDbValidationException } from "../error/dynamodb.error.js";
|
|
1
2
|
import { SimDynamoDbKeySchema } from "../table/sim-dynamodb-key-schema.js";
|
|
2
3
|
import { SimDynamoDbKeySchemaSubject } from "../table/sim-dynamodb-key-schema-subject.js";
|
|
3
4
|
import { assertSimDynamoDbIndexKeyTypes } from "./sim-dynamodb-index-key-types.js";
|
|
5
|
+
import { SimDynamoDbIndexLifecycle } from "./sim-dynamodb-index-lifecycle.js";
|
|
6
|
+
import { simDynamoDbIndexStatus } from "./sim-dynamodb-index-status.js";
|
|
4
7
|
import { SimDynamoDbIndexProjection } from "./sim-dynamodb-index-projection.js";
|
|
5
8
|
import { readSimDynamoDbIndexName } from "./sim-dynamodb-index-name.js";
|
|
6
9
|
import { readSimDynamoDbIndexThroughput } from "./sim-dynamodb-index-throughput.js";
|
|
10
|
+
import { SimDynamoDbProjectedIndexAttributes } from "./sim-dynamodb-projected-index-attributes.js";
|
|
7
11
|
/**
|
|
8
12
|
* One simulated global secondary index.
|
|
9
13
|
*
|
|
@@ -18,6 +22,7 @@ export class SimDynamoDbGlobalSecondaryIndex {
|
|
|
18
22
|
keySchema;
|
|
19
23
|
projection;
|
|
20
24
|
throughput;
|
|
25
|
+
lifecycle;
|
|
21
26
|
constructor(properties) {
|
|
22
27
|
this.name = properties.name;
|
|
23
28
|
// An index ARN is the table's own with the index named under it, which is
|
|
@@ -26,6 +31,7 @@ export class SimDynamoDbGlobalSecondaryIndex {
|
|
|
26
31
|
this.keySchema = properties.keySchema;
|
|
27
32
|
this.projection = properties.projection;
|
|
28
33
|
this.throughput = properties.throughput;
|
|
34
|
+
this.lifecycle = properties.lifecycle;
|
|
29
35
|
}
|
|
30
36
|
/**
|
|
31
37
|
* Read one `GlobalSecondaryIndexes` entry a CreateTable request carries.
|
|
@@ -35,14 +41,67 @@ export class SimDynamoDbGlobalSecondaryIndex {
|
|
|
35
41
|
*/
|
|
36
42
|
static fromInput(input, table) {
|
|
37
43
|
const name = readSimDynamoDbIndexName(input.IndexName);
|
|
44
|
+
return this.declared(input, table, name, SimDynamoDbIndexLifecycle.withTable(name));
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Read the `Create` of a `GlobalSecondaryIndexUpdates` entry.
|
|
48
|
+
*
|
|
49
|
+
* An index declared this way is added to a table that already holds items, so
|
|
50
|
+
* it backfills where one declared on CreateTable does not. Everything else
|
|
51
|
+
* about it is read the same way, since a template or an SDK caller declares
|
|
52
|
+
* an index in the same shape either way.
|
|
53
|
+
*/
|
|
54
|
+
static added(input, table) {
|
|
55
|
+
const name = readSimDynamoDbIndexName(input.IndexName);
|
|
56
|
+
return this.declared(input, table, name, SimDynamoDbIndexLifecycle.backfilling(name));
|
|
57
|
+
}
|
|
58
|
+
static declared(input, table, name, lifecycle) {
|
|
38
59
|
return new this({
|
|
39
60
|
name,
|
|
40
61
|
tableArn: table.tableArn,
|
|
41
62
|
keySchema: SimDynamoDbKeySchema.fromInput(input.KeySchema, SimDynamoDbKeySchemaSubject.index(name)),
|
|
42
63
|
projection: SimDynamoDbIndexProjection.fromInput(input.Projection, name),
|
|
43
64
|
throughput: readSimDynamoDbIndexThroughput(input, name, table.billing),
|
|
65
|
+
lifecycle,
|
|
44
66
|
});
|
|
45
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Finish building this index, so reads of it are answered.
|
|
70
|
+
*/
|
|
71
|
+
activate() {
|
|
72
|
+
this.lifecycle.activate();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Refuse a read of this index while it is still being built.
|
|
76
|
+
*/
|
|
77
|
+
assertReadable() {
|
|
78
|
+
this.lifecycle.assertReadable();
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Which attributes a read of this index answers with.
|
|
82
|
+
*
|
|
83
|
+
* A global secondary index is held apart from the table, so what it projects
|
|
84
|
+
* is the whole of what a read of it can answer with.
|
|
85
|
+
*/
|
|
86
|
+
attributesOf(keyAttributeNames) {
|
|
87
|
+
return new SimDynamoDbProjectedIndexAttributes({
|
|
88
|
+
indexName: this.name,
|
|
89
|
+
projection: this.projection,
|
|
90
|
+
keyAttributeNames,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Refuse a strongly consistent read of this index.
|
|
95
|
+
*
|
|
96
|
+
* A global secondary index is maintained asynchronously on AWS, so it cannot
|
|
97
|
+
* answer one at all. Every read here is strongly consistent, so accepting the
|
|
98
|
+
* request and ignoring the flag would leave a test passing on something real
|
|
99
|
+
* DynamoDB refuses outright.
|
|
100
|
+
*/
|
|
101
|
+
assertAnswersConsistentRead() {
|
|
102
|
+
throw new SimDynamoDbValidationException(`Consistent reads are not supported on global secondary indexes, and ` +
|
|
103
|
+
`this request asks for one on ${this.name}`);
|
|
104
|
+
}
|
|
46
105
|
/**
|
|
47
106
|
* Refuse an item carrying one of this index's key attributes as another type.
|
|
48
107
|
*/
|
|
@@ -56,14 +115,18 @@ export class SimDynamoDbGlobalSecondaryIndex {
|
|
|
56
115
|
}
|
|
57
116
|
/**
|
|
58
117
|
* Describe this index the way DynamoDB reports it.
|
|
118
|
+
*
|
|
119
|
+
* The table's status is taken rather than the index's own, since a table
|
|
120
|
+
* being deleted reports every index as DELETING whatever each one was doing.
|
|
59
121
|
*/
|
|
60
|
-
toDescription(
|
|
122
|
+
toDescription(tableStatus) {
|
|
61
123
|
return {
|
|
62
124
|
IndexName: this.name,
|
|
63
125
|
IndexArn: this.arn,
|
|
64
126
|
KeySchema: this.keySchema.elements,
|
|
65
127
|
Projection: this.projection.toDescription(),
|
|
66
|
-
IndexStatus: status,
|
|
128
|
+
IndexStatus: simDynamoDbIndexStatus(tableStatus, this.lifecycle.status),
|
|
129
|
+
Backfilling: this.lifecycle.backfilling,
|
|
67
130
|
ProvisionedThroughput: this.throughput.toDescription(),
|
|
68
131
|
// Neither figure is tracked, the same way the table's are not.
|
|
69
132
|
ItemCount: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-global-secondary-index.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-global-secondary-index.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
import type { SimDynamoDbGlobalSecondaryIndexDescription,
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import { SimDynamoDbGlobalSecondaryIndex, type SimDynamoDbSecondaryIndexTable } from "./sim-dynamodb-global-secondary-index.js";
|
|
1
|
+
import type { SimDynamoDbGlobalSecondaryIndexDescription, SimDynamoDbSecondaryIndexInput, SimDynamoDbTableStatus } from "../command/table/table.types.js";
|
|
2
|
+
import { SimDynamoDbGlobalSecondaryIndex } from "./sim-dynamodb-global-secondary-index.js";
|
|
3
|
+
import type { SimDynamoDbTableUpdate } from "../table/sim-dynamodb-table-update.js";
|
|
4
|
+
import type { SimDynamoDbSecondaryIndexTable } from "./sim-dynamodb-secondary-index.js";
|
|
6
5
|
/**
|
|
7
6
|
* The global secondary indexes one table carries.
|
|
8
7
|
*
|
|
9
8
|
* The collection owns what is about how many there are, and each index owns
|
|
10
|
-
* what is about itself, the same split the table tags follow.
|
|
9
|
+
* what is about itself, the same split the table tags follow. The rules that
|
|
10
|
+
* span both kinds of index, such as a name being unique across them, belong to
|
|
11
|
+
* `SimDynamoDbSecondaryIndexes` instead.
|
|
12
|
+
*
|
|
13
|
+
* UpdateTable adds and removes indexes on a live table, so what a table carries
|
|
14
|
+
* changes over its life. The collection is what changes, rather than the table
|
|
15
|
+
* being given a new one, so everything already holding the table keeps reading
|
|
16
|
+
* the indexes it has now.
|
|
11
17
|
*/
|
|
12
18
|
export declare class SimDynamoDbGlobalSecondaryIndexes {
|
|
13
|
-
|
|
19
|
+
#private;
|
|
14
20
|
private constructor();
|
|
15
21
|
/**
|
|
16
22
|
* The indexes of a table declaring none.
|
|
@@ -21,22 +27,41 @@ export declare class SimDynamoDbGlobalSecondaryIndexes {
|
|
|
21
27
|
*/
|
|
22
28
|
static fromInput(input: readonly SimDynamoDbSecondaryIndexInput[] | undefined, table: SimDynamoDbSecondaryIndexTable): SimDynamoDbGlobalSecondaryIndexes;
|
|
23
29
|
/**
|
|
24
|
-
* The
|
|
30
|
+
* The indexes this table carries now.
|
|
31
|
+
*/
|
|
32
|
+
get elements(): readonly SimDynamoDbGlobalSecondaryIndex[];
|
|
33
|
+
/**
|
|
34
|
+
* Take the part of an UpdateTable that adds or removes an index.
|
|
35
|
+
*
|
|
36
|
+
* A request carries at most one of either, since that is AWS's limit, and
|
|
37
|
+
* both have already been checked against the table by this point. A local
|
|
38
|
+
* secondary index is never here, because neither AWS nor this changes one
|
|
39
|
+
* after the table exists.
|
|
40
|
+
*/
|
|
41
|
+
applyUpdate(update: SimDynamoDbTableUpdate): void;
|
|
42
|
+
/**
|
|
43
|
+
* Find a global secondary index by name, refusing one this table lacks.
|
|
25
44
|
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
45
|
+
* UpdateTable names an index to delete rather than describing it, and real
|
|
46
|
+
* DynamoDB answers a name it does not have with `ResourceNotFoundException`.
|
|
47
|
+
* A local secondary index is not found here either, since neither AWS nor
|
|
48
|
+
* this changes one through `GlobalSecondaryIndexUpdates`.
|
|
28
49
|
*/
|
|
29
|
-
|
|
50
|
+
required(indexName: string, tableName: string): SimDynamoDbGlobalSecondaryIndex;
|
|
30
51
|
/**
|
|
31
|
-
*
|
|
52
|
+
* Finish building every index this table carries.
|
|
32
53
|
*/
|
|
33
|
-
|
|
54
|
+
activate(): void;
|
|
34
55
|
/**
|
|
35
56
|
* How a table reports its indexes, which is not at all when it has none.
|
|
36
57
|
*
|
|
37
58
|
* Real DynamoDB leaves `GlobalSecondaryIndexes` out of the description of a
|
|
38
59
|
* table with no index, rather than reporting an empty list.
|
|
39
60
|
*/
|
|
40
|
-
descriptions(
|
|
61
|
+
descriptions(tableStatus: SimDynamoDbTableStatus): readonly SimDynamoDbGlobalSecondaryIndexDescription[] | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Take an index off this table.
|
|
64
|
+
*/
|
|
65
|
+
private remove;
|
|
41
66
|
}
|
|
42
67
|
//# sourceMappingURL=sim-dynamodb-global-secondary-indexes.d.ts.map
|
package/dist/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-global-secondary-indexes.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0CAA0C,EAC1C,
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-global-secondary-indexes.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0CAA0C,EAC1C,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAE3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAExF;;;;;;;;;;;;GAYG;AACH,qBAAa,iCAAiC;;IAG5C,OAAO,eAEN;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,iCAAiC,CAE/C;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,SAAS,8BAA8B,EAAE,GAAG,SAAS,EAC5D,KAAK,EAAE,8BAA8B,GACpC,iCAAiC,CAYnC;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,SAAS,+BAA+B,EAAE,CAEzD;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAQhD;IAED;;;;;;;OAOG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,+BAA+B,CAajC;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAIf;IAED;;;;;OAKG;IACH,YAAY,CACV,WAAW,EAAE,sBAAsB,GAClC,SAAS,0CAA0C,EAAE,GAAG,SAAS,CAMnE;IAED;;OAEG;IACH,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -1,52 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { SimDynamoDbGlobalSecondaryIndex
|
|
3
|
-
|
|
4
|
-
* The most global secondary indexes one table holds.
|
|
5
|
-
*/
|
|
6
|
-
const maxIndexes = 20;
|
|
7
|
-
/**
|
|
8
|
-
* The most NonKeyAttributes one table projects across all of its indexes.
|
|
9
|
-
*/
|
|
10
|
-
const maxProjectedAttributes = 100;
|
|
11
|
-
/**
|
|
12
|
-
* Refuse a request declaring one index name twice.
|
|
13
|
-
*
|
|
14
|
-
* An index is reached by name, so two indexes sharing one leave a read with no
|
|
15
|
-
* way of saying which it meant.
|
|
16
|
-
*/
|
|
17
|
-
function assertDistinctNames(elements) {
|
|
18
|
-
const names = new Set(elements.map((index) => index.name));
|
|
19
|
-
if (names.size !== elements.length) {
|
|
20
|
-
throw new SimDynamoDbValidationException("GlobalSecondaryIndexes names an index more than once, and an index " +
|
|
21
|
-
"name is unique within a table");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Refuse a table projecting more attributes than DynamoDB lets it.
|
|
26
|
-
*
|
|
27
|
-
* The 20 an index projects is not the whole rule: a table is capped at 100
|
|
28
|
-
* across all of its indexes too, which six fully projecting indexes reach. An
|
|
29
|
-
* attribute projected into two indexes counts twice, so this is a plain sum
|
|
30
|
-
* rather than a count of distinct names, as it is on AWS.
|
|
31
|
-
*/
|
|
32
|
-
function assertProjectedAttributeCount(elements) {
|
|
33
|
-
const projected = elements.reduce((total, index) => total + index.projection.nonKeyAttributeCount, 0);
|
|
34
|
-
if (projected > maxProjectedAttributes) {
|
|
35
|
-
const most = maxProjectedAttributes.toString();
|
|
36
|
-
throw new SimDynamoDbValidationException(`${projected.toString()} NonKeyAttributes are projected across the ` +
|
|
37
|
-
`table's indexes, and a table projects at most ${most}`);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
1
|
+
import { SimDynamoDbResourceNotFoundException } from "../error/dynamodb.error.js";
|
|
2
|
+
import { SimDynamoDbGlobalSecondaryIndex } from "./sim-dynamodb-global-secondary-index.js";
|
|
3
|
+
import { assertSimDynamoDbIndexCount } from "./sim-dynamodb-index-limits.js";
|
|
40
4
|
/**
|
|
41
5
|
* The global secondary indexes one table carries.
|
|
42
6
|
*
|
|
43
7
|
* The collection owns what is about how many there are, and each index owns
|
|
44
|
-
* what is about itself, the same split the table tags follow.
|
|
8
|
+
* what is about itself, the same split the table tags follow. The rules that
|
|
9
|
+
* span both kinds of index, such as a name being unique across them, belong to
|
|
10
|
+
* `SimDynamoDbSecondaryIndexes` instead.
|
|
11
|
+
*
|
|
12
|
+
* UpdateTable adds and removes indexes on a live table, so what a table carries
|
|
13
|
+
* changes over its life. The collection is what changes, rather than the table
|
|
14
|
+
* being given a new one, so everything already holding the table keeps reading
|
|
15
|
+
* the indexes it has now.
|
|
45
16
|
*/
|
|
46
17
|
export class SimDynamoDbGlobalSecondaryIndexes {
|
|
47
|
-
elements;
|
|
18
|
+
#elements;
|
|
48
19
|
constructor(elements) {
|
|
49
|
-
this
|
|
20
|
+
this.#elements = elements;
|
|
50
21
|
}
|
|
51
22
|
/**
|
|
52
23
|
* The indexes of a table declaring none.
|
|
@@ -61,30 +32,53 @@ export class SimDynamoDbGlobalSecondaryIndexes {
|
|
|
61
32
|
if (input === undefined || input.length === 0) {
|
|
62
33
|
return this.none();
|
|
63
34
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
35
|
+
assertSimDynamoDbIndexCount(input.length);
|
|
36
|
+
return new this(input.map((index) => SimDynamoDbGlobalSecondaryIndex.fromInput(index, table)));
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The indexes this table carries now.
|
|
40
|
+
*/
|
|
41
|
+
get elements() {
|
|
42
|
+
return this.#elements;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Take the part of an UpdateTable that adds or removes an index.
|
|
46
|
+
*
|
|
47
|
+
* A request carries at most one of either, since that is AWS's limit, and
|
|
48
|
+
* both have already been checked against the table by this point. A local
|
|
49
|
+
* secondary index is never here, because neither AWS nor this changes one
|
|
50
|
+
* after the table exists.
|
|
51
|
+
*/
|
|
52
|
+
applyUpdate(update) {
|
|
53
|
+
if (update.indexCreated !== undefined) {
|
|
54
|
+
this.#elements.push(update.indexCreated);
|
|
55
|
+
}
|
|
56
|
+
if (update.indexDeleted !== undefined) {
|
|
57
|
+
this.remove(update.indexDeleted);
|
|
67
58
|
}
|
|
68
|
-
const elements = input.map((index) => SimDynamoDbGlobalSecondaryIndex.fromInput(index, table));
|
|
69
|
-
assertDistinctNames(elements);
|
|
70
|
-
assertProjectedAttributeCount(elements);
|
|
71
|
-
return new this(elements);
|
|
72
59
|
}
|
|
73
60
|
/**
|
|
74
|
-
*
|
|
61
|
+
* Find a global secondary index by name, refusing one this table lacks.
|
|
75
62
|
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
63
|
+
* UpdateTable names an index to delete rather than describing it, and real
|
|
64
|
+
* DynamoDB answers a name it does not have with `ResourceNotFoundException`.
|
|
65
|
+
* A local secondary index is not found here either, since neither AWS nor
|
|
66
|
+
* this changes one through `GlobalSecondaryIndexUpdates`.
|
|
78
67
|
*/
|
|
79
|
-
|
|
80
|
-
|
|
68
|
+
required(indexName, tableName) {
|
|
69
|
+
const index = this.#elements.find((candidate) => candidate.name === indexName);
|
|
70
|
+
if (index === undefined) {
|
|
71
|
+
throw new SimDynamoDbResourceNotFoundException(`The table ${tableName} does not have the specified global secondary ` +
|
|
72
|
+
`index: ${indexName}`);
|
|
73
|
+
}
|
|
74
|
+
return index;
|
|
81
75
|
}
|
|
82
76
|
/**
|
|
83
|
-
*
|
|
77
|
+
* Finish building every index this table carries.
|
|
84
78
|
*/
|
|
85
|
-
|
|
86
|
-
for (const index of this
|
|
87
|
-
index.
|
|
79
|
+
activate() {
|
|
80
|
+
for (const index of this.#elements) {
|
|
81
|
+
index.activate();
|
|
88
82
|
}
|
|
89
83
|
}
|
|
90
84
|
/**
|
|
@@ -93,11 +87,17 @@ export class SimDynamoDbGlobalSecondaryIndexes {
|
|
|
93
87
|
* Real DynamoDB leaves `GlobalSecondaryIndexes` out of the description of a
|
|
94
88
|
* table with no index, rather than reporting an empty list.
|
|
95
89
|
*/
|
|
96
|
-
descriptions(
|
|
97
|
-
if (this
|
|
90
|
+
descriptions(tableStatus) {
|
|
91
|
+
if (this.#elements.length === 0) {
|
|
98
92
|
return undefined;
|
|
99
93
|
}
|
|
100
|
-
return this
|
|
94
|
+
return this.#elements.map((index) => index.toDescription(tableStatus));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Take an index off this table.
|
|
98
|
+
*/
|
|
99
|
+
remove(indexName) {
|
|
100
|
+
this.#elements = this.#elements.filter((index) => index.name !== indexName);
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
//# sourceMappingURL=sim-dynamodb-global-secondary-indexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sim-dynamodb-global-secondary-indexes.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-global-secondary-indexes.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-global-secondary-indexes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAI7E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,iCAAiC;IAC5C,SAAS,CAAoC;IAE7C,YAAoB,QAA2C;QAC7D,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,KAA4D,EAC5D,KAAqC;QAErC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,CAAC;QAED,2BAA2B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE1C,OAAO,IAAI,IAAI,CACb,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAClB,+BAA+B,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CACxD,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,MAA8B;QACxC,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CACN,SAAiB,EACjB,SAAiB;QAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAC/B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAC5C,CAAC;QAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,oCAAoC,CAC5C,aAAa,SAAS,gDAAgD;gBACpE,UAAU,SAAS,EAAE,CACxB,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,YAAY,CACV,WAAmC;QAEnC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,SAAiB;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { SimDynamoDbDocumentPath } from "../expression/sim-dynamodb-document-path.js";
|
|
2
|
+
import type { SimDynamoDbItem } from "../item/sim-dynamodb-item.js";
|
|
3
|
+
import type { SimDynamoDbIndexProjection } from "./sim-dynamodb-index-projection.js";
|
|
4
|
+
/**
|
|
5
|
+
* Which attributes one index carries, and what it refuses for not carrying.
|
|
6
|
+
*
|
|
7
|
+
* An index entry is keyed by the index key and identified by the table key, so
|
|
8
|
+
* both are in every item it holds and both come back whatever it projects. The
|
|
9
|
+
* projection says what else does.
|
|
10
|
+
*
|
|
11
|
+
* This is where the two index kinds part company, and it is the only place a
|
|
12
|
+
* read of one differs from a read of the other. A global secondary index is a
|
|
13
|
+
* copy of the table held apart from it, so it can only answer with what it
|
|
14
|
+
* projects and a read asking for more is refused. A local secondary index sits
|
|
15
|
+
* in the same partition as the item it indexes, so DynamoDB reads the base
|
|
16
|
+
* table for an attribute the index does not project, and charges the extra
|
|
17
|
+
* read capacity for it.
|
|
18
|
+
*
|
|
19
|
+
* This is separate from the index view because it is about attributes rather
|
|
20
|
+
* than items: nothing here knows which items the index holds, or in what order.
|
|
21
|
+
*/
|
|
22
|
+
export interface SimDynamoDbIndexAttributes {
|
|
23
|
+
/**
|
|
24
|
+
* Cut an item down to the attributes the index carries.
|
|
25
|
+
*/
|
|
26
|
+
project(item: SimDynamoDbItem): SimDynamoDbItem;
|
|
27
|
+
/**
|
|
28
|
+
* Refuse a read asking for whole items where the index holds part of one.
|
|
29
|
+
*/
|
|
30
|
+
assertCarriesWholeItem(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Refuse an expression naming an attribute the index does not project.
|
|
33
|
+
*/
|
|
34
|
+
assertCarriesPaths(paths: readonly SimDynamoDbDocumentPath[]): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* What either kind of index attributes is built from.
|
|
38
|
+
*/
|
|
39
|
+
export interface SimDynamoDbIndexAttributesProperties {
|
|
40
|
+
readonly indexName: string;
|
|
41
|
+
readonly projection: SimDynamoDbIndexProjection;
|
|
42
|
+
readonly keyAttributeNames: ReadonlySet<string>;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=sim-dynamodb-index-attributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-index-attributes.d.ts","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAErF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,CAAC;IAEhD;;OAEG;IACH,sBAAsB,IAAI,IAAI,CAAC;IAE/B;;OAEG;IACH,kBAAkB,CAAC,KAAK,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sim-dynamodb-index-attributes.js","sourceRoot":"","sources":["../../../../src/service/dynamodb/secondary-index/sim-dynamodb-index-attributes.ts"],"names":[],"mappings":""}
|