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,440 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DuckDB dialect implementation
|
|
3
|
+
*
|
|
4
|
+
* DuckDB is an embedded, in-process OLAP database (similar in deployment
|
|
5
|
+
* model to SQLite - a single file or `:memory:`, no server/host/port/auth)
|
|
6
|
+
* but with a genuinely modern analytical SQL engine: real window functions,
|
|
7
|
+
* recursive CTEs, rich composite types (LIST/STRUCT/MAP), first-class
|
|
8
|
+
* Parquet/CSV/JSON table functions, native sequences, and a real extension
|
|
9
|
+
* system (INSTALL/LOAD).
|
|
10
|
+
*
|
|
11
|
+
* The `duckdb` npm driver's public API (`duckdb/lib/duckdb.d.ts`) is
|
|
12
|
+
* callback-based (`new duckdb.Database(path, cb)`, `db.all(sql, ...args, cb)`,
|
|
13
|
+
* `db.run(sql, ...args, cb)`). All of that is wrapped in Promises here.
|
|
14
|
+
*/
|
|
15
|
+
import type * as duckdb from 'duckdb';
|
|
16
|
+
import { Dialect, DialectOptions, ColumnDefinition, TableOptions, DropTableOptions, TableDescription, IndexOptions, IndexDefinition, InsertOptions, UpdateOptions as DUpdateOptions, DeleteOptions, SelectOptions, UpsertQueryOptions, ConstraintDefinition, DropConstraintOptions, DropIndexOptions, ViewOptions, DropViewOptions, DropSchemaOptions, CreateExtensionOptions, DropExtensionOptions, ExtensionInfo, BuildOptions, FdwForeignServerOptions, FdwAlterForeignServerOptions, FdwUserMappingOptions, FdwForeignTableOptions, FdwImportForeignSchemaOptions } from '../dialect';
|
|
17
|
+
import { Transaction, TransactionOptions, QueryResult, QueryOptions, DataType, WhereOptions, Order, CreatePartitionOptions, AttachPartitionOptions, DetachPartitionOptions, StoredProcedureOptions, DropStoredProcedureOptions, ExecuteStoredProcedureOptions, TriggerOptions, DropTriggerOptions, SequenceOptions, DropSequenceOptions, StreamOptions } from '../../types';
|
|
18
|
+
import { Readable } from 'stream';
|
|
19
|
+
/**
|
|
20
|
+
* A single `ON CONFLICT (...) DO ...` target for multi-target upserts, mirroring
|
|
21
|
+
* SQLite's chained-conflict-target support (DuckDB's `ON CONFLICT` grammar is the
|
|
22
|
+
* same PostgreSQL-derived grammar SQLite adopted).
|
|
23
|
+
*/
|
|
24
|
+
export interface ConflictTarget {
|
|
25
|
+
fields: string[];
|
|
26
|
+
action?: 'DO NOTHING' | 'DO UPDATE';
|
|
27
|
+
updateColumns?: string[];
|
|
28
|
+
where?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Options accepted by the DuckDB dialect.
|
|
32
|
+
*
|
|
33
|
+
* DuckDB is embedded (like SQLite): there is no host/port/username/password -
|
|
34
|
+
* everything is a local file path or `:memory:`. `DuckDBDialectOptions`
|
|
35
|
+
* extends the shared `DialectOptions` (which declares those network fields as
|
|
36
|
+
* optional) purely so the constructor accepts the same shape other dialects
|
|
37
|
+
* do without a type error when callers pass a generic config object; any
|
|
38
|
+
* host/port/username/password values are accepted and silently ignored.
|
|
39
|
+
*/
|
|
40
|
+
export interface DuckDBDialectOptions extends DialectOptions {
|
|
41
|
+
/** File path to the database, or ':memory:' (default) */
|
|
42
|
+
storage?: string;
|
|
43
|
+
/** Open the database in read-only mode */
|
|
44
|
+
readonly?: boolean;
|
|
45
|
+
/** DuckDB config options passed through to the Database constructor (e.g. { max_memory: '4GB' }) */
|
|
46
|
+
config?: Record<string, string>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* DuckDB dialect class implementing the shared `Dialect` interface.
|
|
50
|
+
*/
|
|
51
|
+
export declare class DuckDBDialect implements Dialect {
|
|
52
|
+
readonly name = "duckdb";
|
|
53
|
+
readonly library = "duckdb";
|
|
54
|
+
private db;
|
|
55
|
+
private connection;
|
|
56
|
+
private _isConnected;
|
|
57
|
+
private config;
|
|
58
|
+
private transactionDepth;
|
|
59
|
+
constructor(config: DuckDBDialectOptions);
|
|
60
|
+
/**
|
|
61
|
+
* Connect to the DuckDB database (embedded - opens a local file or :memory:).
|
|
62
|
+
* host/port/username/password (if present on the config for API parity with
|
|
63
|
+
* networked dialects) are intentionally ignored - DuckDB is single-process.
|
|
64
|
+
*/
|
|
65
|
+
connect(): Promise<void>;
|
|
66
|
+
disconnect(): Promise<void>;
|
|
67
|
+
getConnection(): duckdb.Connection | null;
|
|
68
|
+
isConnected(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Stream query results by paging through `sql` via repeated
|
|
71
|
+
* dialect-appropriate LIMIT/OFFSET queries (see
|
|
72
|
+
* `createPaginatedQueryStream()` in `src/dialects/query-stream-helper.ts`)
|
|
73
|
+
* instead of loading the whole result set into memory at once.
|
|
74
|
+
* @param sql - The SELECT statement to stream
|
|
75
|
+
* @param options - Streaming options (batch size, backpressure watermark, model mapping)
|
|
76
|
+
*/
|
|
77
|
+
queryStream(sql: string, options?: StreamOptions): Readable;
|
|
78
|
+
/**
|
|
79
|
+
* Execute a raw SQL query with retry support.
|
|
80
|
+
*/
|
|
81
|
+
query(sql: string, options?: QueryOptions): Promise<QueryResult>;
|
|
82
|
+
private executeWithRetry;
|
|
83
|
+
/**
|
|
84
|
+
* Replace placeholders in SQL with actual values.
|
|
85
|
+
*/
|
|
86
|
+
replaceReplacements(sql: string, replacements?: Record<string, unknown> | unknown[]): string;
|
|
87
|
+
/**
|
|
88
|
+
* Escape a value for use in a query. DuckDB uses standard SQL literals -
|
|
89
|
+
* TRUE/FALSE for booleans (not 0/1), single-quoted strings, and a
|
|
90
|
+
* `'\x..'::BLOB` cast for binary data.
|
|
91
|
+
*/
|
|
92
|
+
escape(value: unknown): string;
|
|
93
|
+
private escapeString;
|
|
94
|
+
escapeId(identifier: unknown): string;
|
|
95
|
+
quoteIdentifier(identifier: string): string;
|
|
96
|
+
quoteTable(tableName: string, schema?: string): string;
|
|
97
|
+
getDatabaseVersion(): Promise<string>;
|
|
98
|
+
createDatabaseSQL(options: {
|
|
99
|
+
name: string;
|
|
100
|
+
encoding?: string;
|
|
101
|
+
lcCollate?: string;
|
|
102
|
+
lcCtype?: string;
|
|
103
|
+
template?: string;
|
|
104
|
+
tablespace?: string;
|
|
105
|
+
collate?: string;
|
|
106
|
+
isTemplate?: boolean;
|
|
107
|
+
}): string;
|
|
108
|
+
dropDatabaseSQL(name: string): string;
|
|
109
|
+
/**
|
|
110
|
+
* Attach another DuckDB (or SQLite/Postgres, via the respective DuckDB
|
|
111
|
+
* extension) database file under `alias`, making it queryable as
|
|
112
|
+
* `alias.table`.
|
|
113
|
+
*/
|
|
114
|
+
attachDatabase(path: string, alias: string, options?: {
|
|
115
|
+
readOnly?: boolean;
|
|
116
|
+
type?: string;
|
|
117
|
+
}): Promise<void>;
|
|
118
|
+
detachDatabase(alias: string): Promise<void>;
|
|
119
|
+
createSavepointSQL(name?: string): string;
|
|
120
|
+
releaseSavepointSQL(name: string): string;
|
|
121
|
+
rollbackToSavepointSQL(name: string): string;
|
|
122
|
+
createSchema(schema: string): Promise<void>;
|
|
123
|
+
dropSchema(schema: string, options?: DropSchemaOptions): Promise<void>;
|
|
124
|
+
showAllSchemas(): Promise<string[]>;
|
|
125
|
+
listSchemas(): Promise<string[]>;
|
|
126
|
+
createExtension(extensionName: string, options?: CreateExtensionOptions): Promise<void>;
|
|
127
|
+
dropExtension(_extensionName: string, _options?: DropExtensionOptions): Promise<void>;
|
|
128
|
+
getExtensions(): Promise<ExtensionInfo[]>;
|
|
129
|
+
hasExtension(extensionName: string): Promise<boolean>;
|
|
130
|
+
createTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: TableOptions): Promise<void>;
|
|
131
|
+
private _autoIncrementSequenceName;
|
|
132
|
+
private buildConstraintSql;
|
|
133
|
+
private getColumnDefinitionSql;
|
|
134
|
+
private getDefaultValue;
|
|
135
|
+
dropTable(tableName: string, options?: DropTableOptions): Promise<void>;
|
|
136
|
+
createPartitionedTable(tableName: string, columns: Record<string, ColumnDefinition>, options?: TableOptions & {
|
|
137
|
+
partitionBy: {
|
|
138
|
+
type: 'range' | 'list' | 'hash';
|
|
139
|
+
column: string | string[];
|
|
140
|
+
};
|
|
141
|
+
partitions?: {
|
|
142
|
+
name: string;
|
|
143
|
+
bound?: any;
|
|
144
|
+
tablespace?: string;
|
|
145
|
+
storageParameters?: Record<string, string | number>;
|
|
146
|
+
}[];
|
|
147
|
+
}): Promise<void>;
|
|
148
|
+
createPartition(options: CreatePartitionOptions): Promise<void>;
|
|
149
|
+
attachPartition(options: AttachPartitionOptions): Promise<void>;
|
|
150
|
+
detachPartition(options: DetachPartitionOptions): Promise<void>;
|
|
151
|
+
dropPartition(partitionName: string, options?: {
|
|
152
|
+
ifExists?: boolean;
|
|
153
|
+
cascade?: boolean;
|
|
154
|
+
}): Promise<void>;
|
|
155
|
+
listPartitions(tableName: string): Promise<Array<{
|
|
156
|
+
name: string;
|
|
157
|
+
parent_table: string;
|
|
158
|
+
bound: string | null;
|
|
159
|
+
is_detached: boolean;
|
|
160
|
+
}>>;
|
|
161
|
+
createView(viewName: string, query: string, options?: ViewOptions): Promise<void>;
|
|
162
|
+
dropView(viewName: string, options?: DropViewOptions): Promise<void>;
|
|
163
|
+
showViews(): Promise<string[]>;
|
|
164
|
+
/**
|
|
165
|
+
* Materialized views (not supported). DuckDB has no `CREATE MATERIALIZED
|
|
166
|
+
* VIEW` statement - the closest equivalents are a plain table populated via
|
|
167
|
+
* `CREATE TABLE ... AS SELECT ...` (refreshed by re-running the query) or
|
|
168
|
+
* exporting to Parquet with `copyTo()` and reading it back with
|
|
169
|
+
* `readParquet()`.
|
|
170
|
+
*/
|
|
171
|
+
createMaterializedView(): Promise<void>;
|
|
172
|
+
refreshMaterializedView(): Promise<void>;
|
|
173
|
+
dropMaterializedView(): Promise<void>;
|
|
174
|
+
hasMaterializedView(): Promise<boolean>;
|
|
175
|
+
showMaterializedViews(): Promise<string[]>;
|
|
176
|
+
addColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
|
|
177
|
+
removeColumn(tableName: string, columnName: string): Promise<void>;
|
|
178
|
+
changeColumn(tableName: string, columnName: string, definition: ColumnDefinition): Promise<void>;
|
|
179
|
+
renameColumn(tableName: string, oldColumnName: string, newColumnName: string): Promise<void>;
|
|
180
|
+
addForeignKey(tableName: string, _columnName: string, _referencedTableName: string, _referencedColumnName: string): Promise<void>;
|
|
181
|
+
bulkInsert(tableName: string, records: Record<string, any>[], _options?: any): Promise<QueryResult>;
|
|
182
|
+
showTables(): Promise<string[]>;
|
|
183
|
+
showConstraints(tableName: string): Promise<any[]>;
|
|
184
|
+
addConstraint(tableName: string, options: {
|
|
185
|
+
type: 'UNIQUE' | 'CHECK' | 'PRIMARY KEY' | 'FOREIGN KEY';
|
|
186
|
+
fields: string[];
|
|
187
|
+
name?: string;
|
|
188
|
+
references?: {
|
|
189
|
+
table: string;
|
|
190
|
+
fields: string[];
|
|
191
|
+
};
|
|
192
|
+
check?: string;
|
|
193
|
+
}): Promise<void>;
|
|
194
|
+
removeConstraint(tableName: string, constraintName: string): Promise<void>;
|
|
195
|
+
showIndexes(tableName: string): Promise<any[]>;
|
|
196
|
+
describeTable(tableName: string): Promise<TableDescription>;
|
|
197
|
+
renameTable(oldName: string, newName: string): Promise<void>;
|
|
198
|
+
addIndex(tableName: string, indexName: string, fields?: string[], options?: IndexOptions): Promise<void>;
|
|
199
|
+
removeIndex(_tableName: string, indexName: string): Promise<void>;
|
|
200
|
+
createIndex(tableName: string, indexDef: IndexDefinition): Promise<void>;
|
|
201
|
+
createFulltextIndex(): Promise<void>;
|
|
202
|
+
createSpatialIndex(): Promise<void>;
|
|
203
|
+
dropIndex(_tableName: string, indexName: string, _options?: DropIndexOptions): Promise<void>;
|
|
204
|
+
createConstraint(tableName: string, constraintDef: ConstraintDefinition): Promise<void>;
|
|
205
|
+
dropConstraint(tableName: string, constraintName: string, options?: DropConstraintOptions): Promise<void>;
|
|
206
|
+
changeOwner(): Promise<void>;
|
|
207
|
+
private fdwNotSupported;
|
|
208
|
+
createForeignDataWrapper(): Promise<void>;
|
|
209
|
+
dropForeignDataWrapper(): Promise<void>;
|
|
210
|
+
createForeignServer(): Promise<void>;
|
|
211
|
+
dropForeignServer(): Promise<void>;
|
|
212
|
+
createForeignTable(): Promise<void>;
|
|
213
|
+
buildCreateServerQuery(_name: string, _opts: FdwForeignServerOptions): string;
|
|
214
|
+
buildAlterServerQuery(_name: string, _opts: FdwAlterForeignServerOptions): string;
|
|
215
|
+
buildDropServerQuery(): string;
|
|
216
|
+
buildCreateUserMappingQuery(_opts: FdwUserMappingOptions): string;
|
|
217
|
+
buildAlterUserMappingQuery(_opts: FdwUserMappingOptions): string;
|
|
218
|
+
buildDropUserMappingQuery(): string;
|
|
219
|
+
createUserMapping(): Promise<void>;
|
|
220
|
+
dropUserMapping(): Promise<void>;
|
|
221
|
+
buildCreateForeignTableQuery(_tableName: string, _opts: FdwForeignTableOptions): string;
|
|
222
|
+
buildDropForeignTableQuery(): string;
|
|
223
|
+
buildImportForeignSchemaQuery(_remoteSchema: string, _serverName: string, _opts?: FdwImportForeignSchemaOptions): string;
|
|
224
|
+
getServersQuery(): string;
|
|
225
|
+
createSecurityPolicy(): Promise<void>;
|
|
226
|
+
dropSecurityPolicy(): Promise<void>;
|
|
227
|
+
private userMgmtNotSupported;
|
|
228
|
+
buildCreateUserQuery(): string;
|
|
229
|
+
buildAlterUserQuery(): string;
|
|
230
|
+
buildDropUserQuery(): string;
|
|
231
|
+
getUsersQuery(): string;
|
|
232
|
+
buildGrantQuery(): string;
|
|
233
|
+
buildRevokeQuery(): string;
|
|
234
|
+
buildShowGrantsQuery(): string;
|
|
235
|
+
buildFlushPrivilegesQuery(): string;
|
|
236
|
+
buildCreateRoleQuery(): string;
|
|
237
|
+
buildDropRoleQuery(): string;
|
|
238
|
+
buildGrantRoleQuery(): string;
|
|
239
|
+
buildRevokeRoleQuery(): string;
|
|
240
|
+
getRolesQuery(): string;
|
|
241
|
+
createStoredProcedure(options: StoredProcedureOptions): Promise<void>;
|
|
242
|
+
createProcedure(options: StoredProcedureOptions): Promise<void>;
|
|
243
|
+
dropStoredProcedure(procedureName: string, _options?: DropStoredProcedureOptions): Promise<void>;
|
|
244
|
+
dropProcedure(procedureName: string, options?: DropStoredProcedureOptions): Promise<void>;
|
|
245
|
+
executeStoredProcedure(options: ExecuteStoredProcedureOptions): Promise<QueryResult>;
|
|
246
|
+
hasStoredProcedure(): Promise<boolean>;
|
|
247
|
+
createTrigger(options: TriggerOptions): Promise<void>;
|
|
248
|
+
dropTrigger(triggerName: string, _tableName: string, _options?: DropTriggerOptions): Promise<void>;
|
|
249
|
+
hasTrigger(): Promise<boolean>;
|
|
250
|
+
createSequence(options: SequenceOptions): Promise<void>;
|
|
251
|
+
dropSequence(sequenceName: string, options?: DropSequenceOptions): Promise<void>;
|
|
252
|
+
nextSequenceValue(sequenceName: string): Promise<number>;
|
|
253
|
+
hasSequence(sequenceName: string, schema?: string): Promise<boolean>;
|
|
254
|
+
listSequences(): Promise<string[]>;
|
|
255
|
+
createPolicy(): Promise<void>;
|
|
256
|
+
dropPolicy(): Promise<void>;
|
|
257
|
+
enableRLS(): Promise<void>;
|
|
258
|
+
disableRLS(): Promise<void>;
|
|
259
|
+
hasPolicy(): Promise<boolean>;
|
|
260
|
+
commentTable(tableName: string, comment: string): Promise<void>;
|
|
261
|
+
commentColumn(tableName: string, columnName: string, comment: string): Promise<void>;
|
|
262
|
+
createPartialIndex(): Promise<void>;
|
|
263
|
+
createExpressionIndex(tableName: string, indexName: string, expression: string, options?: IndexOptions): Promise<void>;
|
|
264
|
+
createIdentityColumn(tableName: string, columnName: string, options?: {
|
|
265
|
+
startWith?: number;
|
|
266
|
+
incrementBy?: number;
|
|
267
|
+
}): Promise<void>;
|
|
268
|
+
createComputedColumn(tableName: string, columnName: string, expression: string, options?: {
|
|
269
|
+
persisted?: boolean;
|
|
270
|
+
type?: string;
|
|
271
|
+
}): Promise<void>;
|
|
272
|
+
startTransaction(options?: TransactionOptions): Promise<Transaction>;
|
|
273
|
+
commitTransaction(transaction: Transaction): Promise<void>;
|
|
274
|
+
rollbackTransaction(transaction: Transaction): Promise<void>;
|
|
275
|
+
getDataTypeSql(dataType: DataType, columnName?: string): string;
|
|
276
|
+
buildWhereClause(where: WhereOptions, _options?: BuildOptions): {
|
|
277
|
+
sql: string;
|
|
278
|
+
values: unknown[];
|
|
279
|
+
};
|
|
280
|
+
buildOrderClause(order: Order): string;
|
|
281
|
+
buildLimitOffset(limit?: number | string, offset?: number | string): string;
|
|
282
|
+
buildInsertQuery(tableName: string, values: Record<string, unknown>, options?: InsertOptions & {
|
|
283
|
+
doNothing?: boolean;
|
|
284
|
+
conflictTargets?: ConflictTarget[];
|
|
285
|
+
}): {
|
|
286
|
+
sql: string;
|
|
287
|
+
values: unknown[];
|
|
288
|
+
};
|
|
289
|
+
private buildOnConflictClause;
|
|
290
|
+
private buildConflictTargetsSql;
|
|
291
|
+
buildUpsertQuery(tableName: string, values: Record<string, unknown>, options?: UpsertQueryOptions & {
|
|
292
|
+
doNothing?: boolean;
|
|
293
|
+
conflictTargets?: ConflictTarget[];
|
|
294
|
+
}): {
|
|
295
|
+
sql: string;
|
|
296
|
+
values: unknown[];
|
|
297
|
+
};
|
|
298
|
+
buildIncrementQuery(tableName: string, fields: string | string[] | Record<string, number>, where: WhereOptions, options?: {
|
|
299
|
+
by?: number;
|
|
300
|
+
}): {
|
|
301
|
+
sql: string;
|
|
302
|
+
values: unknown[];
|
|
303
|
+
};
|
|
304
|
+
buildUpdateQuery(tableName: string, values: Record<string, unknown>, where: WhereOptions, options?: DUpdateOptions): {
|
|
305
|
+
sql: string;
|
|
306
|
+
values: unknown[];
|
|
307
|
+
};
|
|
308
|
+
buildDeleteQuery(tableName: string, where: WhereOptions, options?: DeleteOptions): {
|
|
309
|
+
sql: string;
|
|
310
|
+
values: unknown[];
|
|
311
|
+
};
|
|
312
|
+
buildSelectQuery(options: SelectOptions): {
|
|
313
|
+
sql: string;
|
|
314
|
+
values: unknown[];
|
|
315
|
+
};
|
|
316
|
+
/**
|
|
317
|
+
* Formats a SELECT attribute string: bare identifiers get quoted, anything
|
|
318
|
+
* that already looks like an expression (function call, `*`, operators,
|
|
319
|
+
* DuckDB's `EXCLUDE`/`REPLACE` column-transform syntax) passes through
|
|
320
|
+
* verbatim so callers can supply raw analytical SQL.
|
|
321
|
+
*/
|
|
322
|
+
private formatMaybeExpression;
|
|
323
|
+
buildJsonExtract(column: string, path: string, asText?: boolean): string;
|
|
324
|
+
private escapeStringForJsonPath;
|
|
325
|
+
buildJsonQuery(column: string, path: string, value?: unknown, operator?: string): {
|
|
326
|
+
sql: string;
|
|
327
|
+
values: unknown[];
|
|
328
|
+
};
|
|
329
|
+
/**
|
|
330
|
+
* Build a `read_parquet(...)` table-function expression usable in a FROM
|
|
331
|
+
* clause, e.g. `FROM ${dialect.readParquet('data/*.parquet')}`.
|
|
332
|
+
*/
|
|
333
|
+
readParquet(path: string | string[], options?: {
|
|
334
|
+
hivePartitioning?: boolean;
|
|
335
|
+
unionByName?: boolean;
|
|
336
|
+
filename?: boolean;
|
|
337
|
+
columns?: Record<string, string>;
|
|
338
|
+
}): string;
|
|
339
|
+
/**
|
|
340
|
+
* Build a `read_csv_auto(...)` (or `read_csv(...)` with explicit options)
|
|
341
|
+
* table-function expression usable in a FROM clause.
|
|
342
|
+
*/
|
|
343
|
+
readCsv(path: string | string[], options?: {
|
|
344
|
+
header?: boolean;
|
|
345
|
+
delim?: string;
|
|
346
|
+
columns?: Record<string, string>;
|
|
347
|
+
autoDetect?: boolean;
|
|
348
|
+
allVarchar?: boolean;
|
|
349
|
+
}): string;
|
|
350
|
+
/**
|
|
351
|
+
* Build a `read_json_auto(...)` (or `read_json(...)` with explicit options)
|
|
352
|
+
* table-function expression usable in a FROM clause.
|
|
353
|
+
*/
|
|
354
|
+
readJson(path: string | string[], options?: {
|
|
355
|
+
format?: 'auto' | 'newline_delimited' | 'array';
|
|
356
|
+
columns?: Record<string, string>;
|
|
357
|
+
autoDetect?: boolean;
|
|
358
|
+
}): string;
|
|
359
|
+
/**
|
|
360
|
+
* Export the results of a query straight to a Parquet/CSV/JSON file via
|
|
361
|
+
* DuckDB's `COPY (query) TO 'file' (FORMAT ...)`.
|
|
362
|
+
*/
|
|
363
|
+
copyTo(query: string, path: string, format: 'PARQUET' | 'CSV' | 'JSON', options?: {
|
|
364
|
+
partitionBy?: string[];
|
|
365
|
+
overwrite?: boolean;
|
|
366
|
+
compression?: string;
|
|
367
|
+
header?: boolean;
|
|
368
|
+
}): Promise<void>;
|
|
369
|
+
/**
|
|
370
|
+
* Configure S3 access via DuckDB httpfs `SET s3_...` session/global
|
|
371
|
+
* variables. Only emits a `SET` statement for options that are actually
|
|
372
|
+
* provided. Simpler than `createSecret()` but global to the instance (later
|
|
373
|
+
* calls overwrite earlier ones; there is no per-bucket scoping) - prefer
|
|
374
|
+
* `createSecret()` when multiple credentials/buckets are in play.
|
|
375
|
+
*
|
|
376
|
+
* Requires the `httpfs` extension to be installed/loaded first (see
|
|
377
|
+
* `createExtension('httpfs')`).
|
|
378
|
+
*/
|
|
379
|
+
configureS3Credentials(options: {
|
|
380
|
+
region?: string;
|
|
381
|
+
accessKeyId?: string;
|
|
382
|
+
secretAccessKey?: string;
|
|
383
|
+
sessionToken?: string;
|
|
384
|
+
endpoint?: string;
|
|
385
|
+
urlStyle?: 'vhost' | 'path';
|
|
386
|
+
useSsl?: boolean;
|
|
387
|
+
}): Promise<void>;
|
|
388
|
+
/**
|
|
389
|
+
* Create a named DuckDB Secrets Manager secret of `TYPE S3` for use with
|
|
390
|
+
* `read_parquet`/`read_csv`/`read_json`/`copyTo` against `s3://` paths.
|
|
391
|
+
* This is the newer, DuckDB-recommended alternative to
|
|
392
|
+
* `configureS3Credentials()`'s global `SET s3_...` variables: secrets are
|
|
393
|
+
* named, can be scoped to a path prefix, and multiple secrets (for
|
|
394
|
+
* different buckets/credentials) can coexist.
|
|
395
|
+
*
|
|
396
|
+
* Requires the `httpfs` extension to be installed/loaded first (see
|
|
397
|
+
* `createExtension('httpfs')`).
|
|
398
|
+
*/
|
|
399
|
+
createSecret(name: string, options?: {
|
|
400
|
+
keyId?: string;
|
|
401
|
+
secret?: string;
|
|
402
|
+
region?: string;
|
|
403
|
+
sessionToken?: string;
|
|
404
|
+
endpoint?: string;
|
|
405
|
+
urlStyle?: 'vhost' | 'path';
|
|
406
|
+
useSsl?: boolean;
|
|
407
|
+
scope?: string | string[];
|
|
408
|
+
replace?: boolean;
|
|
409
|
+
persistent?: boolean;
|
|
410
|
+
}): Promise<void>;
|
|
411
|
+
/**
|
|
412
|
+
* Drop a previously created `CREATE SECRET` (see `createSecret()`).
|
|
413
|
+
*/
|
|
414
|
+
dropSecret(name: string, options?: {
|
|
415
|
+
ifExists?: boolean;
|
|
416
|
+
}): Promise<void>;
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* DuckDB-specific transaction class. DuckDB supports SAVEPOINT for nested
|
|
420
|
+
* transactions (in addition to top-level BEGIN/COMMIT/ROLLBACK).
|
|
421
|
+
*/
|
|
422
|
+
export declare class DuckDBTransaction implements Transaction {
|
|
423
|
+
private dialect?;
|
|
424
|
+
id: string;
|
|
425
|
+
finished: boolean;
|
|
426
|
+
options: TransactionOptions;
|
|
427
|
+
parent: Transaction | null;
|
|
428
|
+
savepoints: string[];
|
|
429
|
+
constructor(depth: number, options?: TransactionOptions, dialect?: {
|
|
430
|
+
commitTransaction(tx: Transaction): Promise<void>;
|
|
431
|
+
rollbackTransaction(tx: Transaction): Promise<void>;
|
|
432
|
+
} | undefined);
|
|
433
|
+
commit(): Promise<void>;
|
|
434
|
+
rollback(): Promise<void>;
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Create a new DuckDB dialect instance.
|
|
438
|
+
*/
|
|
439
|
+
export declare function createDuckDBDialect(options?: DuckDBDialectOptions): DuckDBDialect;
|
|
440
|
+
export default DuckDBDialect;
|
|
@@ -13,43 +13,26 @@
|
|
|
13
13
|
* callback-based (`new duckdb.Database(path, cb)`, `db.all(sql, ...args, cb)`,
|
|
14
14
|
* `db.run(sql, ...args, cb)`). All of that is wrapped in Promises here.
|
|
15
15
|
*/
|
|
16
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
17
|
-
if (k2 === undefined) k2 = k;
|
|
18
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
19
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
20
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
21
|
-
}
|
|
22
|
-
Object.defineProperty(o, k2, desc);
|
|
23
|
-
}) : (function(o, m, k, k2) {
|
|
24
|
-
if (k2 === undefined) k2 = k;
|
|
25
|
-
o[k2] = m[k];
|
|
26
|
-
}));
|
|
27
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
28
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
29
|
-
}) : function(o, v) {
|
|
30
|
-
o["default"] = v;
|
|
31
|
-
});
|
|
32
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
33
|
-
var ownKeys = function(o) {
|
|
34
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
35
|
-
var ar = [];
|
|
36
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
37
|
-
return ar;
|
|
38
|
-
};
|
|
39
|
-
return ownKeys(o);
|
|
40
|
-
};
|
|
41
|
-
return function (mod) {
|
|
42
|
-
if (mod && mod.__esModule) return mod;
|
|
43
|
-
var result = {};
|
|
44
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
45
|
-
__setModuleDefault(result, mod);
|
|
46
|
-
return result;
|
|
47
|
-
};
|
|
48
|
-
})();
|
|
49
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
17
|
exports.DuckDBTransaction = exports.DuckDBDialect = void 0;
|
|
51
18
|
exports.createDuckDBDialect = createDuckDBDialect;
|
|
52
|
-
|
|
19
|
+
// Lazily-loaded `duckdb` driver. This native addon is only loaded the first
|
|
20
|
+
// time a connection is opened, so importing this ORM never dlopens the duckdb
|
|
21
|
+
// native binding.
|
|
22
|
+
let duckdbModule = null;
|
|
23
|
+
function loadDuckDb() {
|
|
24
|
+
if (!duckdbModule) {
|
|
25
|
+
try {
|
|
26
|
+
duckdbModule = require('duckdb');
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
throw new Error("The 'duckdb' package is required to use the DuckDB dialect but could not be loaded. " +
|
|
30
|
+
'Install it with `npm install duckdb`. Original error: ' +
|
|
31
|
+
(err instanceof Error ? err.message : String(err)));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return duckdbModule;
|
|
35
|
+
}
|
|
53
36
|
const query_stream_helper_1 = require("../query-stream-helper");
|
|
54
37
|
const prorm_1 = require("../../prorm");
|
|
55
38
|
const operators_1 = require("../../operators");
|
|
@@ -127,7 +110,7 @@ class DuckDBDialect {
|
|
|
127
110
|
accessMode = { ...accessMode, access_mode: 'READ_ONLY' };
|
|
128
111
|
}
|
|
129
112
|
else if (!accessMode) {
|
|
130
|
-
accessMode =
|
|
113
|
+
accessMode = loadDuckDb().OPEN_READONLY;
|
|
131
114
|
}
|
|
132
115
|
}
|
|
133
116
|
const cb = (err) => {
|
|
@@ -142,9 +125,10 @@ class DuckDBDialect {
|
|
|
142
125
|
else
|
|
143
126
|
resolve(database);
|
|
144
127
|
};
|
|
128
|
+
const DuckDbDatabase = loadDuckDb().Database;
|
|
145
129
|
const database = accessMode
|
|
146
|
-
? new
|
|
147
|
-
: new
|
|
130
|
+
? new DuckDbDatabase(this.config.storage, accessMode, cb)
|
|
131
|
+
: new DuckDbDatabase(this.config.storage, cb);
|
|
148
132
|
});
|
|
149
133
|
this.connection = this.db.connect();
|
|
150
134
|
this._isConnected = true;
|