ts-prorm-orm 1.1.0 → 1.2.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/CHANGELOG.md +83 -0
- package/README.md +194 -72
- package/dist/audit/history-query.d.ts +35 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/logger.d.ts +126 -0
- package/dist/cache/cache-manager.d.ts +341 -0
- package/dist/cache/index.d.ts +8 -0
- package/dist/cache/redis-cluster-cache.d.ts +164 -0
- package/dist/cache/redis-cluster-cache.js +19 -36
- package/dist/cli/cloud.d.ts +55 -0
- package/dist/cli/cloud.js +318 -0
- package/dist/cli/commands/auth.d.ts +2 -0
- package/dist/cli/commands/auth.js +345 -0
- package/dist/cli/commands/billing.d.ts +2 -0
- package/dist/cli/commands/billing.js +135 -0
- package/dist/cli/commands/code.d.ts +2 -0
- package/dist/cli/commands/code.js +168 -0
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.js +154 -0
- package/dist/cli/commands/db.d.ts +2 -0
- package/dist/cli/commands/db.js +189 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +22 -0
- package/dist/cli/commands/keys.d.ts +2 -0
- package/dist/cli/commands/keys.js +100 -0
- package/dist/cli/commands/misc.d.ts +2 -0
- package/dist/cli/commands/misc.js +282 -0
- package/dist/cli/commands/pull.d.ts +2 -0
- package/dist/cli/commands/pull.js +306 -0
- package/dist/cli/commands/runners.d.ts +2 -0
- package/dist/cli/commands/runners.js +218 -0
- package/dist/cli/commands/scaffold.d.ts +2 -0
- package/dist/cli/commands/scaffold.js +383 -0
- package/dist/cli/commands/secrets.d.ts +2 -0
- package/dist/cli/commands/secrets.js +162 -0
- package/dist/cli/commands/store.d.ts +2 -0
- package/dist/cli/commands/store.js +274 -0
- package/dist/cli/commands/system.d.ts +10 -0
- package/dist/cli/commands/system.js +169 -0
- package/dist/cli/commands/teams.d.ts +2 -0
- package/dist/cli/commands/teams.js +189 -0
- package/dist/cli/commands/user.d.ts +2 -0
- package/dist/cli/commands/user.js +171 -0
- package/dist/cli/framework.d.ts +103 -0
- package/dist/cli/framework.js +436 -0
- package/dist/cli/io.d.ts +26 -0
- package/dist/cli/io.js +181 -0
- package/dist/cli/keychain.d.ts +10 -0
- package/dist/cli/keychain.js +101 -0
- package/dist/cli/prompt.d.ts +20 -0
- package/dist/cli/prompt.js +111 -0
- package/dist/cli.d.ts +214 -0
- package/dist/cli.js +72 -5
- package/dist/compliance/audit-trail.d.ts +66 -0
- package/dist/compliance/backup-verification.d.ts +279 -0
- package/dist/compliance/breach-detector.d.ts +197 -0
- package/dist/compliance/consent-record.d.ts +107 -0
- package/dist/compliance/consent-versioning.d.ts +169 -0
- package/dist/compliance/cross-border-log.d.ts +254 -0
- package/dist/compliance/data-classifier.d.ts +127 -0
- package/dist/compliance/data-lineage.d.ts +268 -0
- package/dist/compliance/data-masker.d.ts +110 -0
- package/dist/compliance/data-portability.d.ts +98 -0
- package/dist/compliance/data-retention.d.ts +108 -0
- package/dist/compliance/dsar-workflow.d.ts +175 -0
- package/dist/compliance/field-encryption.d.ts +84 -0
- package/dist/compliance/immutable-record.d.ts +84 -0
- package/dist/compliance/index.d.ts +93 -0
- package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
- package/dist/compliance/pseudonymization.d.ts +96 -0
- package/dist/compliance/query-firewall.d.ts +661 -0
- package/dist/compliance/rate-limiter.d.ts +203 -0
- package/dist/compliance/right-to-erasure.d.ts +96 -0
- package/dist/compliance/row-level-security.d.ts +152 -0
- package/dist/compliance/security-decorator.d.ts +388 -0
- package/dist/compliance/security-monitor.d.ts +170 -0
- package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
- package/dist/compliance/session-isolation.d.ts +286 -0
- package/dist/compliance/tls-enforcer.d.ts +51 -0
- package/dist/compliance/worm-storage.d.ts +225 -0
- package/dist/connection-manager.d.ts +130 -0
- package/dist/connection-pool.d.ts +311 -0
- package/dist/decorators/audit.d.ts +49 -0
- package/dist/decorators/check.d.ts +218 -0
- package/dist/decorators/collate.d.ts +346 -0
- package/dist/decorators/comment.d.ts +51 -0
- package/dist/decorators/database-settings.d.ts +193 -0
- package/dist/decorators/default.d.ts +148 -0
- package/dist/decorators/encryption.d.ts +175 -0
- package/dist/decorators/engine.d.ts +97 -0
- package/dist/decorators/fk-constraints.d.ts +387 -0
- package/dist/decorators/foreign-table.d.ts +57 -0
- package/dist/decorators/generated.d.ts +232 -0
- package/dist/decorators/hstore.d.ts +96 -0
- package/dist/decorators/index.d.ts +57 -0
- package/dist/decorators/index.js +14 -30
- package/dist/decorators/json-column.d.ts +47 -0
- package/dist/decorators/jsonb.d.ts +83 -0
- package/dist/decorators/orm-decorators.d.ts +274 -0
- package/dist/decorators/permissions.d.ts +192 -0
- package/dist/decorators/procedure.d.ts +168 -0
- package/dist/decorators/procedure.js +31 -7
- package/dist/decorators/query-options.d.ts +527 -0
- package/dist/decorators/range.d.ts +122 -0
- package/dist/decorators/set-column.d.ts +43 -0
- package/dist/decorators/spatial.d.ts +60 -0
- package/dist/decorators/storage.d.ts +561 -0
- package/dist/decorators/timezone.d.ts +319 -0
- package/dist/decorators/trigger.d.ts +50 -0
- package/dist/decorators/uuid.d.ts +102 -0
- package/dist/decorators/view.d.ts +213 -0
- package/dist/diagrams/chen-diagram.d.ts +70 -0
- package/dist/diagrams/chen-diagram.js +33 -31
- package/dist/diagrams/class-diagram.d.ts +78 -0
- package/dist/diagrams/class-diagram.js +23 -27
- package/dist/diagrams/dependency-diagram.d.ts +82 -0
- package/dist/diagrams/dependency-diagram.js +18 -9
- package/dist/diagrams/er-diagram.d.ts +82 -0
- package/dist/diagrams/er-diagram.js +174 -231
- package/dist/diagrams/flow-diagram.d.ts +70 -0
- package/dist/diagrams/flow-diagram.js +23 -18
- package/dist/diagrams/gantt-diagram.d.ts +67 -0
- package/dist/diagrams/gantt-diagram.js +20 -18
- package/dist/diagrams/index-diagram.d.ts +61 -0
- package/dist/diagrams/index-diagram.js +36 -31
- package/dist/diagrams/index.d.ts +155 -0
- package/dist/diagrams/index.js +7 -1
- package/dist/diagrams/migration-diagram.d.ts +67 -0
- package/dist/diagrams/migration-diagram.js +45 -57
- package/dist/diagrams/model-diagram.d.ts +85 -0
- package/dist/diagrams/model-diagram.js +225 -287
- package/dist/diagrams/package-diagram.d.ts +69 -0
- package/dist/diagrams/package-diagram.js +30 -32
- package/dist/diagrams/palette.d.ts +138 -0
- package/dist/diagrams/palette.js +134 -25
- package/dist/diagrams/relational-diagram.d.ts +82 -0
- package/dist/diagrams/relational-diagram.js +51 -59
- package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
- package/dist/diagrams/schemadoc-diagram.js +36 -28
- package/dist/diagrams/sequence-diagram.d.ts +61 -0
- package/dist/diagrams/sequence-diagram.js +20 -11
- package/dist/diagrams/state-diagram.d.ts +85 -0
- package/dist/diagrams/state-diagram.js +21 -17
- package/dist/diagrams/svg-dom.d.ts +62 -0
- package/dist/diagrams/svg-dom.js +11 -0
- package/dist/diagrams/tree-diagram.d.ts +47 -0
- package/dist/diagrams/tree-diagram.js +19 -10
- package/dist/dialects/clickhouse/index.d.ts +660 -0
- package/dist/dialects/clickhouse/index.js +107 -2
- package/dist/dialects/cockroachdb/index.d.ts +1708 -0
- package/dist/dialects/cockroachdb/index.js +139 -10
- package/dist/dialects/cratedb/index.d.ts +262 -0
- package/dist/dialects/cratedb/index.js +148 -0
- package/dist/dialects/databricks/index.d.ts +397 -0
- package/dist/dialects/databricks/index.js +233 -11
- package/dist/dialects/db2/index.d.ts +729 -0
- package/dist/dialects/db2/index.js +152 -2
- package/dist/dialects/dialect.d.ts +1653 -0
- package/dist/dialects/duckdb/index.d.ts +440 -0
- package/dist/dialects/duckdb/index.js +21 -37
- package/dist/dialects/exasol/index.d.ts +197 -0
- package/dist/dialects/exasol/index.js +14 -0
- package/dist/dialects/firebird/index.d.ts +286 -0
- package/dist/dialects/firebird/index.js +135 -0
- package/dist/dialects/greenplum/index.d.ts +336 -0
- package/dist/dialects/greenplum/index.js +168 -0
- package/dist/dialects/hana/index.d.ts +512 -0
- package/dist/dialects/hana/index.js +17 -35
- package/dist/dialects/mariadb/index.d.ts +1241 -0
- package/dist/dialects/mariadb/index.js +181 -43
- package/dist/dialects/mssql/index.d.ts +729 -0
- package/dist/dialects/mssql/index.js +76 -7
- package/dist/dialects/mysql/index.d.ts +1233 -0
- package/dist/dialects/mysql/index.js +87 -19
- package/dist/dialects/oracle/index.d.ts +1222 -0
- package/dist/dialects/oracle/index.js +210 -9
- package/dist/dialects/postgres/index.d.ts +1598 -0
- package/dist/dialects/postgres/index.js +34 -13
- package/dist/dialects/query-stream-helper.d.ts +58 -0
- package/dist/dialects/questdb/index.d.ts +430 -0
- package/dist/dialects/questdb/index.js +292 -0
- package/dist/dialects/redshift/index.d.ts +933 -0
- package/dist/dialects/redshift/index.js +17 -5
- package/dist/dialects/singlestore/index.d.ts +233 -0
- package/dist/dialects/singlestore/index.js +53 -0
- package/dist/dialects/snowflake/index.d.ts +727 -0
- package/dist/dialects/snowflake/index.js +154 -5
- package/dist/dialects/spanner/index.d.ts +660 -0
- package/dist/dialects/spanner/index.js +43 -21
- package/dist/dialects/sqlite/index.d.ts +1133 -0
- package/dist/dialects/sqlite/index.js +168 -30
- package/dist/dialects/tidb/index.d.ts +226 -0
- package/dist/dialects/tidb/index.js +10 -0
- package/dist/dialects/timescaledb/index.d.ts +286 -0
- package/dist/dialects/timescaledb/index.js +179 -0
- package/dist/dialects/trino/index.d.ts +230 -0
- package/dist/dialects/trino/index.js +85 -10
- package/dist/dialects/turso/index.d.ts +98 -0
- package/dist/dialects/turso/index.js +10 -0
- package/dist/dialects/vertica/index.d.ts +321 -0
- package/dist/dialects/vertica/index.js +161 -0
- package/dist/dialects/yugabytedb/index.d.ts +276 -0
- package/dist/dialects/yugabytedb/index.js +121 -0
- package/dist/errors/index.d.ts +378 -0
- package/dist/errors/index.js +29 -1
- package/dist/errors/utils.d.ts +53 -0
- package/dist/errors.d.ts +5 -0
- package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
- package/dist/extensions/catalog/mssql-features.d.ts +20 -0
- package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
- package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
- package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
- package/dist/extensions/index.d.ts +34 -0
- package/dist/extensions/types.d.ts +43 -0
- package/dist/external-fields/adapters.d.ts +50 -0
- package/dist/external-fields/adapters.js +227 -0
- package/dist/external-fields/decorator.d.ts +77 -0
- package/dist/external-fields/decorator.js +80 -0
- package/dist/external-fields/index.d.ts +10 -0
- package/dist/external-fields/index.js +19 -0
- package/dist/external-fields/runtime.d.ts +39 -0
- package/dist/external-fields/runtime.js +221 -0
- package/dist/foreign-data.d.ts +168 -0
- package/dist/graph/base-graph-dialect.d.ts +250 -0
- package/dist/graph/base-graph-dialect.js +539 -0
- package/dist/graph/dgraph/index.d.ts +65 -0
- package/dist/graph/dgraph/index.js +559 -0
- package/dist/graph/gremlin/index.d.ts +59 -0
- package/dist/graph/gremlin/index.js +378 -0
- package/dist/graph/index.d.ts +60 -0
- package/dist/graph/index.js +67 -0
- package/dist/graph/neo4j/index.d.ts +50 -0
- package/dist/graph/neo4j/index.js +462 -0
- package/dist/graph/types.d.ts +213 -0
- package/dist/graph/types.js +234 -0
- package/dist/hooks/hooks-manager.d.ts +189 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/index.d.ts +711 -0
- package/dist/index.js +19 -4
- package/dist/logging.d.ts +183 -0
- package/dist/migrations/index.d.ts +9 -0
- package/dist/migrations/migration.d.ts +143 -0
- package/dist/migrations/migrator.d.ts +199 -0
- package/dist/migrations/prormmigration.d.ts +131 -0
- package/dist/migrations/query-interface.d.ts +335 -0
- package/dist/migrations/seeder.d.ts +167 -0
- package/dist/models/associations.d.ts +131 -0
- package/dist/models/associations.js +7 -2
- package/dist/models/constraints.d.ts +175 -0
- package/dist/models/data-types.d.ts +1656 -0
- package/dist/models/decorators.d.ts +328 -0
- package/dist/models/decorators.js +61 -82
- package/dist/models/eager-load.d.ts +86 -0
- package/dist/models/eager-load.js +369 -0
- package/dist/models/index.d.ts +13 -0
- package/dist/models/indexes.d.ts +325 -0
- package/dist/models/methods.d.ts +419 -0
- package/dist/models/model-manager.d.ts +76 -0
- package/dist/models/model.d.ts +820 -0
- package/dist/models/model.js +15 -101
- package/dist/models/operators.d.ts +29 -0
- package/dist/models/scopes.d.ts +71 -0
- package/dist/models/typescript-types.d.ts +177 -0
- package/dist/nosql/aerospike/index.d.ts +126 -0
- package/dist/nosql/allegrograph/index.d.ts +86 -0
- package/dist/nosql/arangodb/index.d.ts +285 -0
- package/dist/nosql/arangodb/index.js +274 -2
- package/dist/nosql/arangodb/where.d.ts +38 -0
- package/dist/nosql/arangodb/where.js +94 -0
- package/dist/nosql/azure-blob/index.d.ts +104 -0
- package/dist/nosql/beanstalkd/index.d.ts +88 -0
- package/dist/nosql/beequeue/index.d.ts +99 -0
- package/dist/nosql/bigchaindb/index.d.ts +113 -0
- package/dist/nosql/bigtable/index.d.ts +144 -0
- package/dist/nosql/blazegraph/index.d.ts +88 -0
- package/dist/nosql/bullmq/index.d.ts +83 -0
- package/dist/nosql/cassandra/index.d.ts +119 -0
- package/dist/nosql/chroma/index.d.ts +151 -0
- package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
- package/dist/nosql/coherence/index.d.ts +91 -0
- package/dist/nosql/cosmosdb/index.d.ts +78 -0
- package/dist/nosql/couchbase/index.d.ts +103 -0
- package/dist/nosql/dax/index.d.ts +118 -0
- package/dist/nosql/deno-kv/index.d.ts +109 -0
- package/dist/nosql/dgraph/index.d.ts +80 -0
- package/dist/nosql/doris/index.d.ts +88 -0
- package/dist/nosql/druid/index.d.ts +95 -0
- package/dist/nosql/dynamodb/index.d.ts +643 -0
- package/dist/nosql/dynamodb/index.js +423 -0
- package/dist/nosql/elasticsearch/index.d.ts +239 -0
- package/dist/nosql/etcd/index.d.ts +243 -0
- package/dist/nosql/eventhubs/index.d.ts +89 -0
- package/dist/nosql/eventstore/index.d.ts +102 -0
- package/dist/nosql/faunadb/index.d.ts +141 -0
- package/dist/nosql/faunadb/index.js +329 -0
- package/dist/nosql/firestore/index.d.ts +67 -0
- package/dist/nosql/fluree/index.d.ts +88 -0
- package/dist/nosql/fuseki/index.d.ts +94 -0
- package/dist/nosql/gcs/index.d.ts +62 -0
- package/dist/nosql/gearman/index.d.ts +77 -0
- package/dist/nosql/geode/index.d.ts +93 -0
- package/dist/nosql/graphdb/index.d.ts +86 -0
- package/dist/nosql/graylog/index.d.ts +118 -0
- package/dist/nosql/gridgain/index.d.ts +78 -0
- package/dist/nosql/hazelcast/index.d.ts +73 -0
- package/dist/nosql/hbase/index.d.ts +123 -0
- package/dist/nosql/ignite/index.d.ts +80 -0
- package/dist/nosql/immudb/index.d.ts +131 -0
- package/dist/nosql/index.d.ts +215 -0
- package/dist/nosql/infinispan/index.d.ts +95 -0
- package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
- package/dist/nosql/influxdb/flux-compiler.js +170 -0
- package/dist/nosql/influxdb/index.d.ts +300 -0
- package/dist/nosql/influxdb/index.js +0 -0
- package/dist/nosql/kafka/index.d.ts +113 -0
- package/dist/nosql/keyspaces/index.d.ts +122 -0
- package/dist/nosql/kinesis/index.d.ts +121 -0
- package/dist/nosql/leveldb/index.d.ts +112 -0
- package/dist/nosql/leveldb/index.js +103 -1
- package/dist/nosql/lmdb/index.d.ts +76 -0
- package/dist/nosql/loki/index.d.ts +126 -0
- package/dist/nosql/marklogic/index.d.ts +76 -0
- package/dist/nosql/materialize/index.d.ts +91 -0
- package/dist/nosql/meilisearch/index.d.ts +76 -0
- package/dist/nosql/memcached/index.d.ts +138 -0
- package/dist/nosql/milvus/index.d.ts +167 -0
- package/dist/nosql/minio/index.d.ts +122 -0
- package/dist/nosql/momento/index.d.ts +99 -0
- package/dist/nosql/mongodb/index.d.ts +265 -0
- package/dist/nosql/mongodb/index.js +139 -0
- package/dist/nosql/mongodb/where.d.ts +8 -0
- package/dist/nosql/mongodb/where.js +181 -0
- package/dist/nosql/nats/index.d.ts +139 -0
- package/dist/nosql/nedb/index.d.ts +79 -0
- package/dist/nosql/neo4j/index.d.ts +217 -0
- package/dist/nosql/neo4j/index.js +26 -14
- package/dist/nosql/neptune/index.d.ts +234 -0
- package/dist/nosql/neptune/index.js +23 -9
- package/dist/nosql/nsq/index.d.ts +93 -0
- package/dist/nosql/opensearch/index.d.ts +97 -0
- package/dist/nosql/orientdb/index.d.ts +72 -0
- package/dist/nosql/papertrail/index.d.ts +120 -0
- package/dist/nosql/pinecone/index.d.ts +148 -0
- package/dist/nosql/pinot/index.d.ts +90 -0
- package/dist/nosql/pouchdb/index.d.ts +95 -0
- package/dist/nosql/prometheus/index.d.ts +112 -0
- package/dist/nosql/provendb/index.d.ts +143 -0
- package/dist/nosql/provendb/index.js +262 -0
- package/dist/nosql/pubsub/index.d.ts +83 -0
- package/dist/nosql/pulsar/index.d.ts +105 -0
- package/dist/nosql/qdrant/index.d.ts +231 -0
- package/dist/nosql/qldb/index.d.ts +182 -0
- package/dist/nosql/qldb/index.js +302 -1
- package/dist/nosql/r2/index.d.ts +160 -0
- package/dist/nosql/rabbitmq/index.d.ts +131 -0
- package/dist/nosql/ravendb/index.d.ts +138 -0
- package/dist/nosql/ravendb/index.js +323 -9
- package/dist/nosql/ravendb/where.d.ts +38 -0
- package/dist/nosql/ravendb/where.js +94 -0
- package/dist/nosql/redis/index.d.ts +267 -0
- package/dist/nosql/redis/index.js +19 -5
- package/dist/nosql/redpanda/index.d.ts +117 -0
- package/dist/nosql/resque/index.d.ts +91 -0
- package/dist/nosql/rethinkdb/index.d.ts +194 -0
- package/dist/nosql/rethinkdb/index.js +290 -0
- package/dist/nosql/rethinkdb/where.d.ts +38 -0
- package/dist/nosql/rethinkdb/where.js +94 -0
- package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
- package/dist/nosql/rocksdb/document-layer.js +338 -0
- package/dist/nosql/rocksdb/index.d.ts +112 -0
- package/dist/nosql/rocksdb/index.js +103 -1
- package/dist/nosql/rocksdb/where-match.d.ts +21 -0
- package/dist/nosql/rocksdb/where-match.js +238 -0
- package/dist/nosql/rockset/index.d.ts +84 -0
- package/dist/nosql/s3/index.d.ts +170 -0
- package/dist/nosql/scylladb/index.d.ts +117 -0
- package/dist/nosql/signoz/index.d.ts +116 -0
- package/dist/nosql/sns/index.d.ts +99 -0
- package/dist/nosql/solr/index.d.ts +129 -0
- package/dist/nosql/splunk/index.d.ts +125 -0
- package/dist/nosql/sqs/index.d.ts +116 -0
- package/dist/nosql/stardog/index.d.ts +86 -0
- package/dist/nosql/starrocks/index.d.ts +89 -0
- package/dist/nosql/store.d.ts +23 -0
- package/dist/nosql/sumologic/index.d.ts +119 -0
- package/dist/nosql/surrealdb/index.d.ts +156 -0
- package/dist/nosql/surrealdb/index.js +174 -1
- package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
- package/dist/nosql/surrealdb/query-compiler.js +193 -0
- package/dist/nosql/terminusdb/index.d.ts +95 -0
- package/dist/nosql/tigergraph/index.d.ts +314 -0
- package/dist/nosql/typesense/index.d.ts +82 -0
- package/dist/nosql/unqlite/index.d.ts +68 -0
- package/dist/nosql/upstash/index.d.ts +80 -0
- package/dist/nosql/vercel-kv/index.d.ts +82 -0
- package/dist/nosql/victoriametrics/index.d.ts +129 -0
- package/dist/nosql/virtuoso/index.d.ts +87 -0
- package/dist/nosql/weaviate/index.d.ts +196 -0
- package/dist/operators/index.d.ts +7 -0
- package/dist/operators.d.ts +2947 -0
- package/dist/operators.js +46 -1
- package/dist/prisma-migrate/index.d.ts +28 -0
- package/dist/prisma-migrate/migration-generator.d.ts +21 -0
- package/dist/prisma-migrate/model-generator.d.ts +12 -0
- package/dist/prisma-migrate/relations.d.ts +28 -0
- package/dist/prisma-migrate/schema-parser.d.ts +42 -0
- package/dist/prisma-migrate/type-mapper.d.ts +20 -0
- package/dist/prorm.d.ts +2093 -0
- package/dist/prorm.js +721 -302
- package/dist/query-builders/cte-builder.d.ts +104 -0
- package/dist/query-builders/functions/aggregate.d.ts +199 -0
- package/dist/query-builders/functions/conditional.d.ts +195 -0
- package/dist/query-builders/functions/datetime.d.ts +202 -0
- package/dist/query-builders/functions/fulltext.d.ts +220 -0
- package/dist/query-builders/functions/index.d.ts +17 -0
- package/dist/query-builders/functions/json.d.ts +157 -0
- package/dist/query-builders/functions/math.d.ts +215 -0
- package/dist/query-builders/functions/string.d.ts +233 -0
- package/dist/query-builders/functions/window.d.ts +209 -0
- package/dist/query-builders/include-builder.d.ts +85 -0
- package/dist/query-builders/index-expression-builder.d.ts +153 -0
- package/dist/query-builders/index.d.ts +121 -0
- package/dist/query-builders/index.js +10 -0
- package/dist/query-builders/insert-builder.d.ts +62 -0
- package/dist/query-builders/model-helpers.d.ts +28 -0
- package/dist/query-builders/order-limit-builder.d.ts +84 -0
- package/dist/query-builders/sql-compiler.d.ts +562 -0
- package/dist/query-builders/subquery-builder.d.ts +133 -0
- package/dist/query-builders/update-builder.d.ts +71 -0
- package/dist/query-builders/view-builder.d.ts +189 -0
- package/dist/query-builders/where-builder.d.ts +124 -0
- package/dist/query-interface.d.ts +407 -0
- package/dist/query-interface.js +84 -0
- package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
- package/dist/query-optimizers/explain-plans.d.ts +187 -0
- package/dist/query-optimizers/index.d.ts +27 -0
- package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
- package/dist/query-optimizers/query-hints.d.ts +201 -0
- package/dist/query-optimizers/query-optimizer.d.ts +162 -0
- package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
- package/dist/replica-manager.d.ts +235 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/migration-generator.d.ts +74 -0
- package/dist/schema/schema-differ.d.ts +114 -0
- package/dist/schema/types.d.ts +246 -0
- package/dist/schema-objects.d.ts +78 -0
- package/dist/schema-objects.js +203 -0
- package/dist/sql-constants.d.ts +240 -0
- package/dist/sqlite-advanced.d.ts +572 -0
- package/dist/streams/index.d.ts +5 -0
- package/dist/streams/transforms.d.ts +120 -0
- package/dist/transaction.d.ts +221 -0
- package/dist/types/index.d.ts +3123 -0
- package/dist/user-management.d.ts +141 -0
- package/dist/utils/date.d.ts +149 -0
- package/dist/utils/index.d.ts +359 -0
- package/dist/utils/string.d.ts +88 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/validator.d.ts +306 -0
- package/package.json +20 -5
|
@@ -0,0 +1,643 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Amazon DynamoDB store.
|
|
3
|
+
*
|
|
4
|
+
* DynamoDB is a partition-key-based key-value/document store, not a SQL
|
|
5
|
+
* database — it has no arbitrary WHERE-clause queries, no joins, and no
|
|
6
|
+
* ad hoc filtering without first reading data (`FilterExpression` runs
|
|
7
|
+
* *after* items are read/consumed against RCU, it does not reduce the
|
|
8
|
+
* amount of data scanned). Access patterns must be designed up front
|
|
9
|
+
* around the table's partition key (and optional sort key), plus any
|
|
10
|
+
* Global/Local Secondary Indexes. Because none of that fits the SQL-shaped
|
|
11
|
+
* `Dialect` interface (`src/dialects/dialect.ts`), this store instead
|
|
12
|
+
* implements the minimal `NoSqlStore` marker interface
|
|
13
|
+
* (`src/nosql/store.ts`) and exposes DynamoDB's own item-level operations
|
|
14
|
+
* directly.
|
|
15
|
+
*
|
|
16
|
+
* Built on AWS SDK v3: `DynamoDBClient` (`@aws-sdk/client-dynamodb`) is the
|
|
17
|
+
* low-level client that speaks the DynamoDB wire protocol in terms of
|
|
18
|
+
* `AttributeValue` maps (`{ S: 'foo' }`, `{ N: '1' }`, ...). This store
|
|
19
|
+
* wraps it in a `DynamoDBDocumentClient` (`@aws-sdk/lib-dynamodb`), which
|
|
20
|
+
* marshals/unmarshals plain JavaScript objects to/from that wire format
|
|
21
|
+
* automatically, so callers of this class work with ordinary objects.
|
|
22
|
+
*/
|
|
23
|
+
import { DynamoDBClient, type DynamoDBClientConfig, type UpdateTableCommandInput, type CreateTableCommandInput, type StreamViewType, type TimeToLiveStatus, type TableDescription, type GlobalSecondaryIndexUpdate, type BillingMode, type ProvisionedThroughput, type PointInTimeRecoveryStatus, type BackupSummary, type BackupDescription, type Tag } from '@aws-sdk/client-dynamodb';
|
|
24
|
+
import { DynamoDBDocumentClient, type PutCommandInput, type UpdateCommandInput, type DeleteCommandInput, type TransactGetCommandInput, type TransactWriteCommandInput, type TranslateConfig } from '@aws-sdk/lib-dynamodb';
|
|
25
|
+
import { DatabaseError } from '../../errors';
|
|
26
|
+
import type { NoSqlStore } from '../store';
|
|
27
|
+
/** Plain JS object representing a DynamoDB item/key (no raw AttributeValues). */
|
|
28
|
+
export type DynamoDbItem = Record<string, unknown>;
|
|
29
|
+
/**
|
|
30
|
+
* Companion enum for DynamoDB's `ReturnValues` parameter (PutItem, UpdateItem,
|
|
31
|
+
* DeleteItem). Provided for callers who prefer enum members over raw string
|
|
32
|
+
* literals; the underlying option fields still accept the original
|
|
33
|
+
* `'NONE' | 'ALL_OLD' | 'ALL_NEW' | 'UPDATED_OLD' | 'UPDATED_NEW'` string
|
|
34
|
+
* literals too; this is purely additive and does not narrow what's accepted.
|
|
35
|
+
*/
|
|
36
|
+
export declare enum DynamoReturnValues {
|
|
37
|
+
None = "NONE",
|
|
38
|
+
AllOld = "ALL_OLD",
|
|
39
|
+
AllNew = "ALL_NEW",
|
|
40
|
+
UpdatedOld = "UPDATED_OLD",
|
|
41
|
+
UpdatedNew = "UPDATED_NEW"
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Companion enum for DynamoDB's `StreamViewType` (used by `enableStreams`).
|
|
45
|
+
* Provided for callers who prefer enum members over raw string literals; the
|
|
46
|
+
* `enableStreams` parameter still accepts the original
|
|
47
|
+
* `'NEW_IMAGE' | 'OLD_IMAGE' | 'NEW_AND_OLD_IMAGES' | 'KEYS_ONLY'` string
|
|
48
|
+
* literals too; this is purely additive and does not narrow what's accepted.
|
|
49
|
+
*/
|
|
50
|
+
export declare enum DynamoStreamViewType {
|
|
51
|
+
NewImage = "NEW_IMAGE",
|
|
52
|
+
OldImage = "OLD_IMAGE",
|
|
53
|
+
NewAndOldImages = "NEW_AND_OLD_IMAGES",
|
|
54
|
+
KeysOnly = "KEYS_ONLY"
|
|
55
|
+
}
|
|
56
|
+
export interface DynamoDbStoreOptions {
|
|
57
|
+
/** AWS region, e.g. 'us-east-1'. Required unless using a local endpoint that ignores it. */
|
|
58
|
+
region?: string;
|
|
59
|
+
/** Static credentials. Omit to fall back to the default AWS credential provider chain. */
|
|
60
|
+
credentials?: {
|
|
61
|
+
accessKeyId: string;
|
|
62
|
+
secretAccessKey: string;
|
|
63
|
+
sessionToken?: string;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Override the service endpoint, e.g. 'http://localhost:8000' for
|
|
67
|
+
* DynamoDB Local / dynamodb-local test containers. When set, region and
|
|
68
|
+
* credentials can be dummy values since DynamoDB Local doesn't validate them.
|
|
69
|
+
*/
|
|
70
|
+
endpoint?: string;
|
|
71
|
+
/** Passed straight through to the underlying `DynamoDBClient` constructor for anything not covered above. */
|
|
72
|
+
clientConfig?: DynamoDBClientConfig;
|
|
73
|
+
/** Marshalling options for the document client (e.g. `{ removeUndefinedValues: true }`). */
|
|
74
|
+
translateConfig?: TranslateConfig;
|
|
75
|
+
}
|
|
76
|
+
export interface PutItemOptions {
|
|
77
|
+
/** Conditional write, e.g. 'attribute_not_exists(pk)' to emulate an insert-only put. */
|
|
78
|
+
conditionExpression?: string;
|
|
79
|
+
expressionAttributeNames?: Record<string, string>;
|
|
80
|
+
expressionAttributeValues?: Record<string, unknown>;
|
|
81
|
+
/**
|
|
82
|
+
* PutItem only supports `'NONE'` (default) or `'ALL_OLD'` (returns the
|
|
83
|
+
* item's previous value if one existed, or nothing if it didn't) —
|
|
84
|
+
* unlike UpdateItem, there is no `ALL_NEW`/`UPDATED_*` variant since a Put
|
|
85
|
+
* always writes the whole item.
|
|
86
|
+
*/
|
|
87
|
+
returnValues?: PutCommandInput['ReturnValues'] | DynamoReturnValues;
|
|
88
|
+
}
|
|
89
|
+
export interface UpdateItemOptions {
|
|
90
|
+
conditionExpression?: string;
|
|
91
|
+
expressionAttributeNames?: Record<string, string>;
|
|
92
|
+
returnValues?: UpdateCommandInput['ReturnValues'] | DynamoReturnValues;
|
|
93
|
+
}
|
|
94
|
+
export interface DeleteItemOptions {
|
|
95
|
+
conditionExpression?: string;
|
|
96
|
+
expressionAttributeNames?: Record<string, string>;
|
|
97
|
+
expressionAttributeValues?: Record<string, unknown>;
|
|
98
|
+
/**
|
|
99
|
+
* Defaults to `'ALL_OLD'` (returns the deleted item) for backwards
|
|
100
|
+
* compatibility. Pass `'NONE'` to skip returning the deleted item when
|
|
101
|
+
* the caller doesn't need it (saves a small amount of response payload).
|
|
102
|
+
*/
|
|
103
|
+
returnValues?: DeleteCommandInput['ReturnValues'] | DynamoReturnValues;
|
|
104
|
+
}
|
|
105
|
+
/** Options controlling the retry/backoff behavior of `batchGetItem`/`batchWriteItem`. */
|
|
106
|
+
export interface BatchRetryOptions {
|
|
107
|
+
/**
|
|
108
|
+
* Maximum number of attempts per chunk (the initial request plus
|
|
109
|
+
* retries) when DynamoDB returns `UnprocessedKeys`/`UnprocessedItems`
|
|
110
|
+
* (typically due to throttling). Defaults to 5.
|
|
111
|
+
*/
|
|
112
|
+
maxAttempts?: number;
|
|
113
|
+
/** Base delay in ms for exponential backoff between retries. Defaults to 50ms. */
|
|
114
|
+
baseDelayMs?: number;
|
|
115
|
+
/** Cap on the backoff delay in ms, before jitter is applied. Defaults to 2000ms. */
|
|
116
|
+
maxDelayMs?: number;
|
|
117
|
+
}
|
|
118
|
+
export interface QueryParams {
|
|
119
|
+
/** Name of a Global or Local Secondary Index to query instead of the base table. */
|
|
120
|
+
indexName?: string;
|
|
121
|
+
/** e.g. 'pk = :pk' */
|
|
122
|
+
keyConditionExpression: string;
|
|
123
|
+
expressionAttributeNames?: Record<string, string>;
|
|
124
|
+
expressionAttributeValues?: Record<string, unknown>;
|
|
125
|
+
/** Applied after the key condition, does not reduce RCU consumption. */
|
|
126
|
+
filterExpression?: string;
|
|
127
|
+
/**
|
|
128
|
+
* Restricts which attributes are returned, e.g. `'#n, total'`. Use
|
|
129
|
+
* `expressionAttributeNames` for any reserved-word-safe `#alias` tokens
|
|
130
|
+
* referenced here, same as `keyConditionExpression`/`filterExpression`.
|
|
131
|
+
*/
|
|
132
|
+
projectionExpression?: string;
|
|
133
|
+
limit?: number;
|
|
134
|
+
scanIndexForward?: boolean;
|
|
135
|
+
/** Pagination cursor from a previous page's `lastEvaluatedKey`. */
|
|
136
|
+
exclusiveStartKey?: DynamoDbItem;
|
|
137
|
+
consistentRead?: boolean;
|
|
138
|
+
}
|
|
139
|
+
export interface QueryResult<T extends DynamoDbItem = DynamoDbItem> {
|
|
140
|
+
items: T[];
|
|
141
|
+
/** Present when there are more pages; pass back in as `exclusiveStartKey` to continue. */
|
|
142
|
+
lastEvaluatedKey?: DynamoDbItem;
|
|
143
|
+
count: number;
|
|
144
|
+
scannedCount: number;
|
|
145
|
+
}
|
|
146
|
+
export interface ScanParams {
|
|
147
|
+
indexName?: string;
|
|
148
|
+
filterExpression?: string;
|
|
149
|
+
/**
|
|
150
|
+
* Restricts which attributes are returned. Use `expressionAttributeNames`
|
|
151
|
+
* for any `#alias` tokens referenced here (same rules as `getItem()`).
|
|
152
|
+
*/
|
|
153
|
+
projectionExpression?: string;
|
|
154
|
+
expressionAttributeNames?: Record<string, string>;
|
|
155
|
+
expressionAttributeValues?: Record<string, unknown>;
|
|
156
|
+
limit?: number;
|
|
157
|
+
exclusiveStartKey?: DynamoDbItem;
|
|
158
|
+
consistentRead?: boolean;
|
|
159
|
+
/** For parallel scans: this segment's index (0-based). */
|
|
160
|
+
segment?: number;
|
|
161
|
+
/** For parallel scans: total number of segments. */
|
|
162
|
+
totalSegments?: number;
|
|
163
|
+
}
|
|
164
|
+
export type ScanResult<T extends DynamoDbItem = DynamoDbItem> = QueryResult<T>;
|
|
165
|
+
/**
|
|
166
|
+
* Describes a single item update for `updateItem()`'s convenience API. Each
|
|
167
|
+
* entry SETs `attributeName` to `value`. For anything beyond a flat SET
|
|
168
|
+
* (REMOVE, ADD, DELETE, nested paths), build an `UpdateExpression` by hand
|
|
169
|
+
* and call the document client returned by `getClient()` directly, or pass
|
|
170
|
+
* a raw `UpdateCommandInput` via `updateItemRaw()`.
|
|
171
|
+
*/
|
|
172
|
+
export type UpdateAttributes = Record<string, unknown>;
|
|
173
|
+
/**
|
|
174
|
+
* One entry of a `TransactionCanceledException.CancellationReasons` list —
|
|
175
|
+
* DynamoDB's per-item explanation of why a `TransactWriteItems`/
|
|
176
|
+
* `TransactGetItems` call was cancelled (e.g. a `ConditionCheck` failing on
|
|
177
|
+
* one specific item). `item` is the raw (still-marshalled, `{ S: 'foo' }`
|
|
178
|
+
* style) `AttributeValue` map DynamoDB includes for the failing item, if
|
|
179
|
+
* any — this store doesn't depend on `@aws-sdk/util-dynamodb` to unmarshal
|
|
180
|
+
* it, so callers that want a plain object should unmarshal it themselves.
|
|
181
|
+
*/
|
|
182
|
+
export interface DynamoDbCancellationReason {
|
|
183
|
+
/** Status code for why this item's part of the transaction was cancelled, e.g. 'ConditionalCheckFailed', 'None'. */
|
|
184
|
+
code?: string;
|
|
185
|
+
/** Human-readable description of the cancellation reason. */
|
|
186
|
+
message?: string;
|
|
187
|
+
/** Raw (marshalled) AttributeValue map of the item that caused the cancellation, if DynamoDB returned one. */
|
|
188
|
+
item?: Record<string, unknown>;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* `DatabaseError` subclass used for all DynamoDB failures wrapped by this
|
|
192
|
+
* store. Adds `cancellationReasons`, populated whenever the underlying AWS
|
|
193
|
+
* error is a `TransactionCanceledException` (thrown by
|
|
194
|
+
* `transactWriteItems()`/`transactGetItems()`), so callers can inspect which
|
|
195
|
+
* item(s) caused the transaction to be cancelled and why without digging
|
|
196
|
+
* into `.parent`/`.original`.
|
|
197
|
+
*/
|
|
198
|
+
export declare class DynamoDbError extends DatabaseError {
|
|
199
|
+
/**
|
|
200
|
+
* Per-item cancellation reasons from a `TransactionCanceledException`,
|
|
201
|
+
* in the same order as the `transactItems` request. Undefined for any
|
|
202
|
+
* other kind of error.
|
|
203
|
+
*/
|
|
204
|
+
readonly cancellationReasons?: DynamoDbCancellationReason[];
|
|
205
|
+
constructor(message: string, options?: {
|
|
206
|
+
code?: import('../../errors').ErrorCode;
|
|
207
|
+
parent?: Error;
|
|
208
|
+
sql?: string;
|
|
209
|
+
original?: string;
|
|
210
|
+
cancellationReasons?: DynamoDbCancellationReason[];
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
/** Result of `listTables()`. */
|
|
214
|
+
export interface ListTablesResult {
|
|
215
|
+
tableNames: string[];
|
|
216
|
+
/** Present when there are more pages; pass back in as `exclusiveStartTableName` to continue. */
|
|
217
|
+
lastEvaluatedTableName?: string;
|
|
218
|
+
}
|
|
219
|
+
/** Result of `describePITR()`. */
|
|
220
|
+
export interface PitrDescription {
|
|
221
|
+
status: PointInTimeRecoveryStatus | undefined;
|
|
222
|
+
recoveryPeriodInDays?: number;
|
|
223
|
+
earliestRestorableDateTime?: Date;
|
|
224
|
+
latestRestorableDateTime?: Date;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Describes a table's (or index's) key attributes so the ORM layer can pick
|
|
228
|
+
* `Query` vs `Scan` and extract item keys for update/delete. Supply this to
|
|
229
|
+
* {@link DynamoDbStore.findAll} et al. via the `key` option (or per-index via
|
|
230
|
+
* `indexes`).
|
|
231
|
+
*/
|
|
232
|
+
export interface DynamoKeySchema {
|
|
233
|
+
/** Partition (HASH) key attribute name. */
|
|
234
|
+
partitionKey: string;
|
|
235
|
+
/** Optional sort (RANGE) key attribute name. */
|
|
236
|
+
sortKey?: string;
|
|
237
|
+
/** Key schemas for named GSIs/LSIs, so a query can target an index. */
|
|
238
|
+
indexes?: Record<string, {
|
|
239
|
+
partitionKey: string;
|
|
240
|
+
sortKey?: string;
|
|
241
|
+
}>;
|
|
242
|
+
}
|
|
243
|
+
/** Options for {@link DynamoDbStore.findAll}/{@link DynamoDbStore.findOne}. */
|
|
244
|
+
export interface DynamoFindOptions {
|
|
245
|
+
/** ORM `where` clause (plain equality and/or `Op`-keyed conditions). */
|
|
246
|
+
where?: Record<string, any>;
|
|
247
|
+
/** Key schema; enables `Query` (vs `Scan`) and key extraction. */
|
|
248
|
+
key?: DynamoKeySchema;
|
|
249
|
+
/** Query a named GSI/LSI (its schema must be in `key.indexes`). */
|
|
250
|
+
indexName?: string;
|
|
251
|
+
/** Restrict returned attributes (compiled to a ProjectionExpression). */
|
|
252
|
+
attributes?: string[];
|
|
253
|
+
/** Sort-key ordering for `Query` results: `'ASC'` (default) or `'DESC'`. */
|
|
254
|
+
order?: 'ASC' | 'DESC';
|
|
255
|
+
/** Per-page item cap. */
|
|
256
|
+
limit?: number;
|
|
257
|
+
/** Pagination cursor from a previous page's `lastEvaluatedKey`. */
|
|
258
|
+
exclusiveStartKey?: DynamoDbItem;
|
|
259
|
+
/** Strongly-consistent read (base table only; not valid on a GSI). */
|
|
260
|
+
consistentRead?: boolean;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Amazon DynamoDB store, implementing the minimal `NoSqlStore` marker
|
|
264
|
+
* interface. Unlike the SQL dialects, there is no `query(sql)` — DynamoDB's
|
|
265
|
+
* operations are item/key-shaped (Get/Put/Update/Delete/Query/Scan/Batch/Transact),
|
|
266
|
+
* and that shape is preserved here rather than forced into a SQL string.
|
|
267
|
+
*/
|
|
268
|
+
export declare class DynamoDbStore implements NoSqlStore {
|
|
269
|
+
readonly name = "dynamodb";
|
|
270
|
+
readonly library = "@aws-sdk/client-dynamodb";
|
|
271
|
+
private readonly options;
|
|
272
|
+
private client;
|
|
273
|
+
private docClient;
|
|
274
|
+
private connected;
|
|
275
|
+
constructor(options?: DynamoDbStoreOptions);
|
|
276
|
+
connect(): Promise<void>;
|
|
277
|
+
disconnect(): Promise<void>;
|
|
278
|
+
isConnected(): boolean;
|
|
279
|
+
/** Returns the `DynamoDBDocumentClient` (plain-object marshalling), not the raw `DynamoDBClient`. */
|
|
280
|
+
getClient(): DynamoDBDocumentClient;
|
|
281
|
+
/** Access to the low-level `DynamoDBClient` (raw `AttributeValue` shapes), for anything the document client doesn't cover. */
|
|
282
|
+
getRawClient(): DynamoDBClient;
|
|
283
|
+
private requireClient;
|
|
284
|
+
/**
|
|
285
|
+
* Wraps an AWS SDK failure in a `DynamoDbError` (a `DatabaseError`
|
|
286
|
+
* subclass) while preserving the original error (incl. `.name` like
|
|
287
|
+
* `ConditionalCheckFailedException`) on `.parent`/`.original`. When the
|
|
288
|
+
* underlying error is a `TransactionCanceledException`, its
|
|
289
|
+
* `CancellationReasons` (per-item cancellation detail from
|
|
290
|
+
* `transactWriteItems()`/`transactGetItems()`) are also surfaced directly
|
|
291
|
+
* on `.cancellationReasons`, so callers don't have to dig into `.parent`
|
|
292
|
+
* to find out which item caused a transaction to be cancelled.
|
|
293
|
+
*/
|
|
294
|
+
private wrapError;
|
|
295
|
+
getItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, key: DynamoDbItem, options?: {
|
|
296
|
+
consistentRead?: boolean;
|
|
297
|
+
projectionExpression?: string;
|
|
298
|
+
}): Promise<T | undefined>;
|
|
299
|
+
/**
|
|
300
|
+
* `options.returnValues` defaults to `'NONE'` (matching real PutItem
|
|
301
|
+
* default behavior). Pass `'ALL_OLD'` to get the item's previous value
|
|
302
|
+
* back (`undefined` if there wasn't one).
|
|
303
|
+
*/
|
|
304
|
+
putItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, item: T, options?: PutItemOptions): Promise<T | undefined>;
|
|
305
|
+
/**
|
|
306
|
+
* Convenience update: SETs each key in `updates` to its value. Builds a
|
|
307
|
+
* simple `UpdateExpression`/`ExpressionAttributeValues` internally, using
|
|
308
|
+
* `#k0`, `#k1`, ... as attribute name placeholders (so reserved words like
|
|
309
|
+
* `status` are always safe) merged with any `options.expressionAttributeNames`.
|
|
310
|
+
* For REMOVE/ADD/DELETE or nested-path updates, use `updateItemRaw()`.
|
|
311
|
+
*/
|
|
312
|
+
updateItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, key: DynamoDbItem, updates: UpdateAttributes, options?: UpdateItemOptions): Promise<T | undefined>;
|
|
313
|
+
/** Escape hatch for update expressions beyond the flat-SET convenience wrapper above (REMOVE/ADD/DELETE, nested paths, etc). */
|
|
314
|
+
updateItemRaw<T extends DynamoDbItem = DynamoDbItem>(tableName: string, input: UpdateCommandInput): Promise<T | undefined>;
|
|
315
|
+
/** `options.returnValues` defaults to `'ALL_OLD'` (returns the deleted item); pass `'NONE'` to skip returning it. */
|
|
316
|
+
deleteItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, key: DynamoDbItem, options?: DeleteItemOptions): Promise<T | undefined>;
|
|
317
|
+
/**
|
|
318
|
+
* Query by partition key equality (plus an optional sort-key condition)
|
|
319
|
+
* against the base table or a named GSI/LSI. This is the primary way to
|
|
320
|
+
* read more than one item efficiently from DynamoDB — unlike Scan, it
|
|
321
|
+
* only reads the partition(s) that match, not the whole table.
|
|
322
|
+
*/
|
|
323
|
+
query<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params: QueryParams): Promise<QueryResult<T>>;
|
|
324
|
+
/**
|
|
325
|
+
* Full table (or index) scan. This reads every item in the table — cost
|
|
326
|
+
* and latency scale with table size, not with how many items you actually
|
|
327
|
+
* want, and `filterExpression` is applied *after* the read (it does not
|
|
328
|
+
* reduce RCU consumption or the amount of data scanned). Prefer `query()`
|
|
329
|
+
* with a well-designed partition/sort key or GSI. Only reach for `scan()`
|
|
330
|
+
* for admin/maintenance/export tasks, small tables, or as a last resort
|
|
331
|
+
* when no query-friendly access pattern exists.
|
|
332
|
+
*/
|
|
333
|
+
scan<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params?: ScanParams): Promise<ScanResult<T>>;
|
|
334
|
+
/**
|
|
335
|
+
* Auto-paginating `query()`: DynamoDB caps each `Query` response at 1MB of
|
|
336
|
+
* data, so a query over more items than that fits in a single page and
|
|
337
|
+
* returns a `lastEvaluatedKey` that the caller must pass back in as
|
|
338
|
+
* `exclusiveStartKey` to fetch the next page. Forgetting to loop on that
|
|
339
|
+
* silently truncates results. `queryAll()` follows `lastEvaluatedKey`
|
|
340
|
+
* automatically and returns every matching item across all pages.
|
|
341
|
+
*
|
|
342
|
+
* `params.limit`, if set, still applies per-page (as DynamoDB defines
|
|
343
|
+
* it) — it does not cap the total number of items returned here. To
|
|
344
|
+
* consume pages one at a time instead of buffering everything in memory,
|
|
345
|
+
* use `queryPages()`.
|
|
346
|
+
*/
|
|
347
|
+
queryAll<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params: QueryParams): Promise<T[]>;
|
|
348
|
+
/**
|
|
349
|
+
* Async-generator form of `queryAll()`: yields each page of items as it
|
|
350
|
+
* arrives instead of buffering the entire result set in memory, while
|
|
351
|
+
* still following `lastEvaluatedKey` automatically.
|
|
352
|
+
*/
|
|
353
|
+
queryPages<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params: QueryParams): AsyncGenerator<T[], void, void>;
|
|
354
|
+
/**
|
|
355
|
+
* Auto-paginating `scan()` — see `queryAll()` above for why this matters
|
|
356
|
+
* (the same 1MB-per-page cap applies to Scan). Reminder: `scan()` is
|
|
357
|
+
* already O(table size) per the warning on `scan()` itself; `scanAll()`
|
|
358
|
+
* makes that even more explicit by reading literally the whole table (or
|
|
359
|
+
* index) into memory across as many pages as it takes.
|
|
360
|
+
*/
|
|
361
|
+
scanAll<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params?: ScanParams): Promise<T[]>;
|
|
362
|
+
/** Async-generator form of `scanAll()`; yields each page as it arrives. */
|
|
363
|
+
scanPages<T extends DynamoDbItem = DynamoDbItem>(tableName: string, params?: ScanParams): AsyncGenerator<T[], void, void>;
|
|
364
|
+
/** Sleeps for `ms` milliseconds. */
|
|
365
|
+
private delay;
|
|
366
|
+
/**
|
|
367
|
+
* Exponential backoff with full jitter (AWS's recommended strategy):
|
|
368
|
+
* a random delay between 0 and `min(maxDelayMs, baseDelayMs * 2^attempt)`.
|
|
369
|
+
* `attempt` is 0-based (the delay before the *first* retry, i.e. after
|
|
370
|
+
* the initial attempt has already failed/returned unprocessed items).
|
|
371
|
+
*/
|
|
372
|
+
private backoffDelayMs;
|
|
373
|
+
/**
|
|
374
|
+
* BatchGetItem across one or more tables. DynamoDB caps a single
|
|
375
|
+
* BatchGetItem call at 100 items total; this method chunks `keys`
|
|
376
|
+
* internally (25-at-a-time chunks well under the limit, sent
|
|
377
|
+
* sequentially) so callers can pass an arbitrarily large key list without
|
|
378
|
+
* worrying about the limit themselves. Also retries any
|
|
379
|
+
* `UnprocessedKeys` DynamoDB returns for a chunk (throttling) with
|
|
380
|
+
* exponential backoff and jitter between attempts, up to
|
|
381
|
+
* `options.maxAttempts` (default 5) attempts per chunk, before giving up
|
|
382
|
+
* and returning whatever's still unprocessed to the caller.
|
|
383
|
+
*/
|
|
384
|
+
batchGetItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, keys: DynamoDbItem[], options?: {
|
|
385
|
+
consistentRead?: boolean;
|
|
386
|
+
chunkSize?: number;
|
|
387
|
+
} & BatchRetryOptions): Promise<{
|
|
388
|
+
items: T[];
|
|
389
|
+
unprocessedKeys: DynamoDbItem[];
|
|
390
|
+
}>;
|
|
391
|
+
/**
|
|
392
|
+
* BatchWriteItem (put and/or delete) against a single table. DynamoDB
|
|
393
|
+
* caps a single BatchWriteItem call at 25 write requests; this method
|
|
394
|
+
* chunks `requests` internally so callers can pass an arbitrarily large
|
|
395
|
+
* batch. Also retries `UnprocessedItems` with exponential backoff and
|
|
396
|
+
* jitter, up to `options.maxAttempts` (default 5) attempts per chunk,
|
|
397
|
+
* before returning whatever's left to the caller.
|
|
398
|
+
*/
|
|
399
|
+
batchWriteItem<T extends DynamoDbItem = DynamoDbItem>(tableName: string, requests: Array<{
|
|
400
|
+
put?: T;
|
|
401
|
+
} | {
|
|
402
|
+
delete: DynamoDbItem;
|
|
403
|
+
}>, options?: {
|
|
404
|
+
chunkSize?: number;
|
|
405
|
+
} & BatchRetryOptions): Promise<{
|
|
406
|
+
unprocessedCount: number;
|
|
407
|
+
}>;
|
|
408
|
+
/**
|
|
409
|
+
* Passthrough to DynamoDB's TransactWriteItems — up to 100 Put/Update/
|
|
410
|
+
* Delete/ConditionCheck actions, atomically, potentially across multiple
|
|
411
|
+
* tables. Not chunked: DynamoDB rejects the whole transaction if it
|
|
412
|
+
* exceeds the limit, so it's on the caller to stay under it (unlike the
|
|
413
|
+
* batch methods above, there's no safe way to silently split a
|
|
414
|
+
* transaction into several without breaking its atomicity guarantee).
|
|
415
|
+
*/
|
|
416
|
+
transactWriteItems(input: Omit<TransactWriteCommandInput, 'TransactItems'> & {
|
|
417
|
+
transactItems: TransactWriteCommandInput['TransactItems'];
|
|
418
|
+
}): Promise<void>;
|
|
419
|
+
/** Passthrough to DynamoDB's TransactGetItems — up to 100 Get actions, read as a single consistent snapshot. */
|
|
420
|
+
transactGetItems<T extends DynamoDbItem = DynamoDbItem>(input: Omit<TransactGetCommandInput, 'TransactItems'> & {
|
|
421
|
+
transactItems: TransactGetCommandInput['TransactItems'];
|
|
422
|
+
}): Promise<Array<T | undefined>>;
|
|
423
|
+
/**
|
|
424
|
+
* Enables DynamoDB Streams on a table via `UpdateTableCommand`'s
|
|
425
|
+
* `StreamSpecification`, choosing what a stream record captures:
|
|
426
|
+
* `KEYS_ONLY` (just the key attributes of the modified item), `NEW_IMAGE`
|
|
427
|
+
* (the entire item as it appears after modification), `OLD_IMAGE` (as it
|
|
428
|
+
* appeared before), or `NEW_AND_OLD_IMAGES` (both). This only flips the
|
|
429
|
+
* table-level setting and returns the ARN DynamoDB assigns the new
|
|
430
|
+
* stream — it does not read from the stream itself; see "Known
|
|
431
|
+
* limitations" in the README for why a stream *consumer* is out of scope
|
|
432
|
+
* for this store.
|
|
433
|
+
*/
|
|
434
|
+
enableStreams(tableName: string, streamViewType: StreamViewType | DynamoStreamViewType): Promise<string | undefined>;
|
|
435
|
+
/** Disables DynamoDB Streams on a table via `UpdateTableCommand`. */
|
|
436
|
+
disableStreams(tableName: string): Promise<void>;
|
|
437
|
+
/**
|
|
438
|
+
* Reads back the table's current stream ARN (`undefined` if streams
|
|
439
|
+
* aren't enabled) via `DescribeTableCommand`. Consuming the stream itself
|
|
440
|
+
* (shard iterators / record polling) requires the separate
|
|
441
|
+
* `@aws-sdk/client-dynamodb-streams` package or a Lambda event source
|
|
442
|
+
* mapping — out of scope here, see the README.
|
|
443
|
+
*/
|
|
444
|
+
getStreamArn(tableName: string): Promise<string | undefined>;
|
|
445
|
+
/**
|
|
446
|
+
* Enables TTL on a table via `UpdateTimeToLiveCommand`: DynamoDB
|
|
447
|
+
* periodically (usually within 48 hours, not immediately) deletes items
|
|
448
|
+
* whose `attributeName` holds a Unix epoch-seconds number in the past.
|
|
449
|
+
* A table may only have one TTL attribute at a time.
|
|
450
|
+
*/
|
|
451
|
+
enableTTL(tableName: string, attributeName: string): Promise<void>;
|
|
452
|
+
/**
|
|
453
|
+
* Disables TTL on a table. DynamoDB requires the currently-enabled
|
|
454
|
+
* `AttributeName` to be repeated on the disabling call, so this first
|
|
455
|
+
* reads it back via `describeTTL()` and is a no-op if TTL isn't
|
|
456
|
+
* currently enabled on the table.
|
|
457
|
+
*/
|
|
458
|
+
disableTTL(tableName: string): Promise<void>;
|
|
459
|
+
/** Reads back a table's TTL configuration via `DescribeTimeToLiveCommand`. */
|
|
460
|
+
describeTTL(tableName: string): Promise<{
|
|
461
|
+
status: TimeToLiveStatus | undefined;
|
|
462
|
+
attributeName: string | undefined;
|
|
463
|
+
}>;
|
|
464
|
+
/**
|
|
465
|
+
* Creates a table via `CreateTableCommand`. Thin passthrough to the raw
|
|
466
|
+
* SDK input shape: `params.TableName`, `params.KeySchema`, and
|
|
467
|
+
* `params.AttributeDefinitions` are required (as real CreateTable
|
|
468
|
+
* requires), plus either `params.BillingMode: 'PAY_PER_REQUEST'` or
|
|
469
|
+
* `params.ProvisionedThroughput` (real CreateTable requires one or the
|
|
470
|
+
* other), and optionally `params.GlobalSecondaryIndexes`/
|
|
471
|
+
* `params.LocalSecondaryIndexes`. Table creation is asynchronous on AWS's
|
|
472
|
+
* side (the table starts in `CREATING` status) — this call returns as
|
|
473
|
+
* soon as DynamoDB accepts the request, it does not wait for the table to
|
|
474
|
+
* become `ACTIVE`; poll `describeTable()` if you need to wait.
|
|
475
|
+
*/
|
|
476
|
+
createTable(params: CreateTableCommandInput): Promise<TableDescription | undefined>;
|
|
477
|
+
/**
|
|
478
|
+
* Deletes a table via `DeleteTableCommand`. Like `createTable()`, this is
|
|
479
|
+
* asynchronous on AWS's side (the table moves to `DELETING` status); this
|
|
480
|
+
* call returns as soon as DynamoDB accepts the request.
|
|
481
|
+
*/
|
|
482
|
+
deleteTable(tableName: string): Promise<TableDescription | undefined>;
|
|
483
|
+
/**
|
|
484
|
+
* Lists table names in the current account/region via `ListTablesCommand`.
|
|
485
|
+
* A single call returns at most 100 table names (or `params.limit` if
|
|
486
|
+
* lower); pass `params.exclusiveStartTableName` (from a previous call's
|
|
487
|
+
* `lastEvaluatedTableName`) to page through the rest.
|
|
488
|
+
*/
|
|
489
|
+
listTables(params?: {
|
|
490
|
+
exclusiveStartTableName?: string;
|
|
491
|
+
limit?: number;
|
|
492
|
+
}): Promise<ListTablesResult>;
|
|
493
|
+
/**
|
|
494
|
+
* Reads back a table's full description (status, key schema, billing
|
|
495
|
+
* mode, indexes, stream ARN, item count, etc.) via `DescribeTableCommand`.
|
|
496
|
+
* `getStreamArn()` above is a narrow convenience wrapper around this same
|
|
497
|
+
* command for just the stream ARN.
|
|
498
|
+
*/
|
|
499
|
+
describeTable(tableName: string): Promise<TableDescription | undefined>;
|
|
500
|
+
/**
|
|
501
|
+
* Adds or removes a Global Secondary Index on an existing table via
|
|
502
|
+
* `UpdateTableCommand`'s `GlobalSecondaryIndexUpdates`. DynamoDB only
|
|
503
|
+
* allows one GSI create/delete/update action per `UpdateTable` call, so
|
|
504
|
+
* `gsiUpdates` must contain exactly one `GlobalSecondaryIndexUpdate`
|
|
505
|
+
* entry (`{ Create: {...} }`, `{ Update: {...} }`, or `{ Delete: {...} }`).
|
|
506
|
+
* When creating a new GSI, `attributeDefinitions` must include the key
|
|
507
|
+
* attribute(s) of the new index (DynamoDB validates this).
|
|
508
|
+
*/
|
|
509
|
+
updateTableIndexes(tableName: string, gsiUpdates: GlobalSecondaryIndexUpdate[], attributeDefinitions?: UpdateTableCommandInput['AttributeDefinitions']): Promise<TableDescription | undefined>;
|
|
510
|
+
/**
|
|
511
|
+
* Switches a table between on-demand (`PAY_PER_REQUEST`) and provisioned
|
|
512
|
+
* (`PROVISIONED`) capacity via `UpdateTableCommand`. When switching to
|
|
513
|
+
* `PROVISIONED`, `throughput` (`ReadCapacityUnits`/`WriteCapacityUnits`)
|
|
514
|
+
* is required (real DynamoDB rejects the call without it); it's ignored
|
|
515
|
+
* when switching to `PAY_PER_REQUEST`.
|
|
516
|
+
*/
|
|
517
|
+
updateBillingMode(tableName: string, mode: BillingMode | 'PAY_PER_REQUEST' | 'PROVISIONED', throughput?: ProvisionedThroughput): Promise<TableDescription | undefined>;
|
|
518
|
+
/**
|
|
519
|
+
* Enables Point-in-Time Recovery on a table via
|
|
520
|
+
* `UpdateContinuousBackupsCommand`, allowing restore to any second within
|
|
521
|
+
* the retention window (35 days by default; DynamoDB currently ignores
|
|
522
|
+
* a custom `recoveryPeriodInDays` on enable and defaults to 35).
|
|
523
|
+
*/
|
|
524
|
+
enablePITR(tableName: string): Promise<void>;
|
|
525
|
+
/** Disables Point-in-Time Recovery on a table via `UpdateContinuousBackupsCommand`. */
|
|
526
|
+
disablePITR(tableName: string): Promise<void>;
|
|
527
|
+
/** Reads back a table's PITR configuration via `DescribeContinuousBackupsCommand`. */
|
|
528
|
+
describePITR(tableName: string): Promise<PitrDescription>;
|
|
529
|
+
/** Creates an on-demand backup of a table via `CreateBackupCommand`. */
|
|
530
|
+
createBackup(tableName: string, backupName: string): Promise<BackupDescription['BackupDetails']>;
|
|
531
|
+
/** Reads back a backup's full description via `DescribeBackupCommand`. */
|
|
532
|
+
describeBackup(backupArn: string): Promise<BackupDescription | undefined>;
|
|
533
|
+
/**
|
|
534
|
+
* Lists backups via `ListBackupsCommand`, optionally scoped to a single
|
|
535
|
+
* table. Does not auto-paginate — pass the last item's `BackupArn` back
|
|
536
|
+
* in as `exclusiveStartBackupArn` to fetch the next page, same pattern as
|
|
537
|
+
* `listTables()`.
|
|
538
|
+
*/
|
|
539
|
+
listBackups(tableName?: string, options?: {
|
|
540
|
+
limit?: number;
|
|
541
|
+
exclusiveStartBackupArn?: string;
|
|
542
|
+
}): Promise<BackupSummary[]>;
|
|
543
|
+
/**
|
|
544
|
+
* Restores a backup into a new table via `RestoreTableFromBackupCommand`.
|
|
545
|
+
* DynamoDB always restores into a *new* table (`newTableName` must not
|
|
546
|
+
* already exist) — it does not overwrite the original table the backup
|
|
547
|
+
* was taken from. Like `createTable()`, this is asynchronous: the new
|
|
548
|
+
* table starts in `CREATING` status.
|
|
549
|
+
*/
|
|
550
|
+
restoreTableFromBackup(backupArn: string, newTableName: string): Promise<TableDescription | undefined>;
|
|
551
|
+
/** Adds (or updates, if the key already exists) tags on a table/backup resource via `TagResourceCommand`. */
|
|
552
|
+
tagResource(resourceArn: string, tags: Record<string, string> | Tag[]): Promise<void>;
|
|
553
|
+
/** Removes tags (by key) from a table/backup resource via `UntagResourceCommand`. */
|
|
554
|
+
untagResource(resourceArn: string, tagKeys: string[]): Promise<void>;
|
|
555
|
+
/**
|
|
556
|
+
* Lists tags on a table/backup resource via `ListTagsOfResourceCommand`.
|
|
557
|
+
* Does not auto-paginate — pass a returned `nextToken` back in as
|
|
558
|
+
* `options.nextToken` to fetch the next page.
|
|
559
|
+
*/
|
|
560
|
+
listTags(resourceArn: string, options?: {
|
|
561
|
+
nextToken?: string;
|
|
562
|
+
}): Promise<{
|
|
563
|
+
tags: Tag[];
|
|
564
|
+
nextToken?: string;
|
|
565
|
+
}>;
|
|
566
|
+
/**
|
|
567
|
+
* Compile an ORM `where` clause + read options into either a `QueryParams`
|
|
568
|
+
* (when the partition key is pinned by equality, so DynamoDB can Query) or a
|
|
569
|
+
* `ScanParams` (otherwise). Shared by {@link findAll}/{@link findAllPaged}/
|
|
570
|
+
* {@link count}.
|
|
571
|
+
*/
|
|
572
|
+
private compileRead;
|
|
573
|
+
/**
|
|
574
|
+
* Fetch items matching the ORM `where` clause. When `options.key` pins the
|
|
575
|
+
* partition key by equality this issues an efficient `Query`; otherwise it
|
|
576
|
+
* falls back to a `Scan` (see the warning on {@link scan}). Returns a single
|
|
577
|
+
* page plus the `lastEvaluatedKey` cursor (pass it back as
|
|
578
|
+
* `exclusiveStartKey` for the next page, or use {@link findAll} to
|
|
579
|
+
* auto-paginate).
|
|
580
|
+
*/
|
|
581
|
+
findAllPaged<T extends DynamoDbItem = DynamoDbItem>(tableName: string, options?: DynamoFindOptions): Promise<QueryResult<T>>;
|
|
582
|
+
/**
|
|
583
|
+
* Auto-paginating {@link findAllPaged}: follows `lastEvaluatedKey` and
|
|
584
|
+
* returns every matching item. `options.limit` still applies per page (as
|
|
585
|
+
* DynamoDB defines it); to cap total results, slice the return value.
|
|
586
|
+
*/
|
|
587
|
+
findAll<T extends DynamoDbItem = DynamoDbItem>(tableName: string, options?: DynamoFindOptions): Promise<T[]>;
|
|
588
|
+
/** Fetch the first item matching `where` (page-limited to 1), or `undefined`. */
|
|
589
|
+
findOne<T extends DynamoDbItem = DynamoDbItem>(tableName: string, options?: DynamoFindOptions): Promise<T | undefined>;
|
|
590
|
+
/**
|
|
591
|
+
* Count items matching `where` using `Select: 'COUNT'` (server-side count;
|
|
592
|
+
* items are not returned). Follows pagination automatically and sums each
|
|
593
|
+
* page's count.
|
|
594
|
+
*/
|
|
595
|
+
count(tableName: string, options?: DynamoFindOptions): Promise<number>;
|
|
596
|
+
/**
|
|
597
|
+
* Insert an item (`PutItem`). By default overwrites any existing item with
|
|
598
|
+
* the same key (native Put semantics); pass `options.key` with
|
|
599
|
+
* `options.insertOnly` to add an `attribute_not_exists(<pk>)` condition so a
|
|
600
|
+
* duplicate primary key fails instead (SQL `INSERT` semantics).
|
|
601
|
+
*/
|
|
602
|
+
create<T extends DynamoDbItem = DynamoDbItem>(tableName: string, item: T, options?: {
|
|
603
|
+
key?: DynamoKeySchema;
|
|
604
|
+
insertOnly?: boolean;
|
|
605
|
+
}): Promise<T>;
|
|
606
|
+
/** Insert many items via chunked/retried `BatchWriteItem` puts. */
|
|
607
|
+
bulkCreate<T extends DynamoDbItem = DynamoDbItem>(tableName: string, items: T[], options?: BatchRetryOptions & {
|
|
608
|
+
chunkSize?: number;
|
|
609
|
+
}): Promise<{
|
|
610
|
+
inserted: number;
|
|
611
|
+
unprocessedCount: number;
|
|
612
|
+
}>;
|
|
613
|
+
/**
|
|
614
|
+
* Insert-or-replace an item (`PutItem`) — DynamoDB's native Put already has
|
|
615
|
+
* upsert semantics (it creates the item or overwrites it wholesale).
|
|
616
|
+
*/
|
|
617
|
+
upsert<T extends DynamoDbItem = DynamoDbItem>(tableName: string, item: T): Promise<T>;
|
|
618
|
+
/** Extract a full primary key `{pk, sk?}` from top-level eq leaves, or null. */
|
|
619
|
+
private extractFullKey;
|
|
620
|
+
/**
|
|
621
|
+
* Update every item matching `where`, SETting each key in `values`. When
|
|
622
|
+
* `where` pins the full primary key (and nothing else), this is a single
|
|
623
|
+
* `UpdateItem`; otherwise it finds matching items (Query/Scan via `key`),
|
|
624
|
+
* then issues one `UpdateItem` per item. Requires `options.key`. Returns the
|
|
625
|
+
* number of items updated.
|
|
626
|
+
*/
|
|
627
|
+
update(tableName: string, values: UpdateAttributes, where: Record<string, any>, options?: {
|
|
628
|
+
key: DynamoKeySchema;
|
|
629
|
+
indexName?: string;
|
|
630
|
+
}): Promise<number>;
|
|
631
|
+
/**
|
|
632
|
+
* Delete every item matching `where`. When `where` pins the full primary key
|
|
633
|
+
* this is a single `DeleteItem`; otherwise it finds matching items and
|
|
634
|
+
* deletes them via chunked `BatchWriteItem`. Requires `options.key`. Returns
|
|
635
|
+
* the number of items deleted.
|
|
636
|
+
*/
|
|
637
|
+
destroy(tableName: string, where: Record<string, any>, options?: {
|
|
638
|
+
key: DynamoKeySchema;
|
|
639
|
+
indexName?: string;
|
|
640
|
+
}): Promise<number>;
|
|
641
|
+
/** Project an item down to just its key attributes for the given schema. */
|
|
642
|
+
private itemKey;
|
|
643
|
+
}
|