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,407 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QueryInterface - Provides methods for executing database operations during migrations
|
|
3
|
+
* Works with all supported dialects: SQLite, MySQL, PostgreSQL, MariaDB
|
|
4
|
+
*/
|
|
5
|
+
import { Dialect, TableOptions, DropTableOptions, TableDescription, IndexOptions, ViewOptions, DropViewOptions, MaterializedViewOptions, DropMaterializedViewOptions, RefreshOptions } from './dialects/dialect';
|
|
6
|
+
import { type SequenceOptions, type PolicyOptions, type FullTextIndexOptions, type TriggerDefinition } from './schema-objects';
|
|
7
|
+
import { Transaction, DataType, WhereOptions, PartitionType, PartitionBound, CreatePartitionOptions, AttachPartitionOptions, DetachPartitionOptions } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* QueryInterface options for various operations
|
|
10
|
+
*/
|
|
11
|
+
export interface QueryInterfaceOptions {
|
|
12
|
+
transaction?: Transaction;
|
|
13
|
+
logging?: boolean | ((sql: string, time?: number) => void);
|
|
14
|
+
benchmark?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Column definition for createTable/alterTable
|
|
18
|
+
*/
|
|
19
|
+
export interface TableColumnDefinition {
|
|
20
|
+
type: DataType | string;
|
|
21
|
+
allowNull?: boolean;
|
|
22
|
+
defaultValue?: any;
|
|
23
|
+
primaryKey?: boolean;
|
|
24
|
+
autoIncrement?: boolean;
|
|
25
|
+
unique?: boolean | string;
|
|
26
|
+
references?: {
|
|
27
|
+
model: string;
|
|
28
|
+
key: string;
|
|
29
|
+
deferrable?: string;
|
|
30
|
+
onDelete?: string;
|
|
31
|
+
onUpdate?: string;
|
|
32
|
+
};
|
|
33
|
+
comment?: string;
|
|
34
|
+
validate?: Record<string, any>;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Index definition for addIndex
|
|
38
|
+
*/
|
|
39
|
+
export interface IndexFieldDefinition {
|
|
40
|
+
name: string;
|
|
41
|
+
length?: number | string;
|
|
42
|
+
order?: 'ASC' | 'DESC';
|
|
43
|
+
collate?: string;
|
|
44
|
+
/** Expression for expression-based indexes (e.g., "LOWER(column_name)") */
|
|
45
|
+
expression?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Constraint definition for addConstraint
|
|
49
|
+
*/
|
|
50
|
+
export interface ConstraintDefinition {
|
|
51
|
+
type: 'UNIQUE' | 'PRIMARY KEY' | 'FOREIGN KEY' | 'CHECK';
|
|
52
|
+
fields?: string[];
|
|
53
|
+
name?: string;
|
|
54
|
+
references?: {
|
|
55
|
+
table: string;
|
|
56
|
+
fields: string[];
|
|
57
|
+
};
|
|
58
|
+
onDelete?: string;
|
|
59
|
+
onUpdate?: string;
|
|
60
|
+
where?: WhereOptions;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Bulk operation options
|
|
64
|
+
*/
|
|
65
|
+
export interface BulkOperationOptions {
|
|
66
|
+
transaction?: Transaction;
|
|
67
|
+
logging?: boolean | ((sql: string, time?: number) => void);
|
|
68
|
+
benchmark?: boolean;
|
|
69
|
+
validate?: boolean;
|
|
70
|
+
fields?: string[];
|
|
71
|
+
returning?: boolean | string[];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* CreateQueryInterface - Provides migration operations for all database dialects
|
|
75
|
+
*/
|
|
76
|
+
export declare class CreateQueryInterface {
|
|
77
|
+
private dialect;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new QueryInterface instance
|
|
80
|
+
* @param dialect - The database dialect to use
|
|
81
|
+
*/
|
|
82
|
+
constructor(dialect: Dialect);
|
|
83
|
+
/**
|
|
84
|
+
* Get the dialect instance
|
|
85
|
+
*/
|
|
86
|
+
getDialect(): Dialect;
|
|
87
|
+
/**
|
|
88
|
+
* Create a new table
|
|
89
|
+
* @param tableName - Name of the table to create
|
|
90
|
+
* @param columns - Column definitions
|
|
91
|
+
* @param options - Table options
|
|
92
|
+
*/
|
|
93
|
+
createTable(tableName: string, columns: Record<string, TableColumnDefinition>, options?: TableOptions & QueryInterfaceOptions): Promise<void>;
|
|
94
|
+
/**
|
|
95
|
+
* Create a partitioned table (PostgreSQL 10+)
|
|
96
|
+
* @param tableName - Name of the table to create
|
|
97
|
+
* @param columns - Column definitions
|
|
98
|
+
* @param options - Table options including partition configuration
|
|
99
|
+
*/
|
|
100
|
+
createPartitionedTable(tableName: string, columns: Record<string, TableColumnDefinition>, options?: TableOptions & QueryInterfaceOptions & {
|
|
101
|
+
partitionBy: {
|
|
102
|
+
type: PartitionType;
|
|
103
|
+
column: string | string[];
|
|
104
|
+
};
|
|
105
|
+
partitions?: {
|
|
106
|
+
name: string;
|
|
107
|
+
bound?: PartitionBound;
|
|
108
|
+
tablespace?: string;
|
|
109
|
+
storageParameters?: Record<string, string | number>;
|
|
110
|
+
}[];
|
|
111
|
+
}): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Create a partition for an existing partitioned table (PostgreSQL 10+)
|
|
114
|
+
* @param options - Partition creation options
|
|
115
|
+
*/
|
|
116
|
+
createPartition(options: CreatePartitionOptions): Promise<void>;
|
|
117
|
+
/**
|
|
118
|
+
* Attach a partition to a partitioned table (PostgreSQL 11+)
|
|
119
|
+
* @param options - Partition attachment options
|
|
120
|
+
*/
|
|
121
|
+
attachPartition(options: AttachPartitionOptions): Promise<void>;
|
|
122
|
+
/**
|
|
123
|
+
* Detach a partition from a partitioned table (PostgreSQL 11+)
|
|
124
|
+
* @param options - Partition detachment options
|
|
125
|
+
*/
|
|
126
|
+
detachPartition(options: DetachPartitionOptions): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Drop a partition (PostgreSQL 10+)
|
|
129
|
+
* @param partitionName - Name of the partition to drop
|
|
130
|
+
* @param options - Drop options
|
|
131
|
+
*/
|
|
132
|
+
dropPartition(partitionName: string, options?: {
|
|
133
|
+
ifExists?: boolean;
|
|
134
|
+
cascade?: boolean;
|
|
135
|
+
} & QueryInterfaceOptions): Promise<void>;
|
|
136
|
+
/**
|
|
137
|
+
* Drop a table
|
|
138
|
+
* @param tableName - Name of the table to drop
|
|
139
|
+
* @param options - Drop options
|
|
140
|
+
*/
|
|
141
|
+
dropTable(tableName: string, options?: DropTableOptions & QueryInterfaceOptions): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Drop all tables (dialect-specific)
|
|
144
|
+
*/
|
|
145
|
+
dropAllTables(_options?: QueryInterfaceOptions): Promise<void>;
|
|
146
|
+
/**
|
|
147
|
+
* Rename a table
|
|
148
|
+
* @param oldName - Current table name
|
|
149
|
+
* @param newName - New table name
|
|
150
|
+
*/
|
|
151
|
+
renameTable(oldName: string, newName: string, _options?: QueryInterfaceOptions): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Add a column to a table
|
|
154
|
+
* @param tableName - Name of the table
|
|
155
|
+
* @param columnName - Name of the new column
|
|
156
|
+
* @param definition - Column definition
|
|
157
|
+
*/
|
|
158
|
+
addColumn(tableName: string, columnName: string, definition: TableColumnDefinition, _options?: QueryInterfaceOptions): Promise<void>;
|
|
159
|
+
/**
|
|
160
|
+
* Remove a column from a table
|
|
161
|
+
* @param tableName - Name of the table
|
|
162
|
+
* @param columnName - Name of the column to remove
|
|
163
|
+
*/
|
|
164
|
+
removeColumn(tableName: string, columnName: string, _options?: QueryInterfaceOptions): Promise<void>;
|
|
165
|
+
/**
|
|
166
|
+
* Change a column definition
|
|
167
|
+
* @param tableName - Name of the table
|
|
168
|
+
* @param columnName - Name of the column to change
|
|
169
|
+
* @param definition - New column definition
|
|
170
|
+
*/
|
|
171
|
+
changeColumn(tableName: string, columnName: string, definition: TableColumnDefinition, _options?: QueryInterfaceOptions): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* Rename a column
|
|
174
|
+
* @param tableName - Name of the table
|
|
175
|
+
* @param oldColumnName - Current column name
|
|
176
|
+
* @param newColumnName - New column name
|
|
177
|
+
*/
|
|
178
|
+
renameColumn(tableName: string, oldColumnName: string, newColumnName: string, _options?: QueryInterfaceOptions): Promise<void>;
|
|
179
|
+
/**
|
|
180
|
+
* Add an index to a table
|
|
181
|
+
* @param tableName - Name of the table
|
|
182
|
+
* @param indexName - Name of the index
|
|
183
|
+
* @param fields - Fields to include in the index
|
|
184
|
+
* @param options - Index options
|
|
185
|
+
*/
|
|
186
|
+
addIndex(tableName: string, indexNameOrFields: string | string[] | IndexFieldDefinition[], fieldsOrOptions?: string[] | IndexFieldDefinition[] | (IndexOptions & QueryInterfaceOptions), options?: IndexOptions & QueryInterfaceOptions): Promise<void>;
|
|
187
|
+
/**
|
|
188
|
+
* Remove an index from a table
|
|
189
|
+
* @param tableName - Name of the table
|
|
190
|
+
* @param indexName - Name of the index to remove
|
|
191
|
+
*/
|
|
192
|
+
removeIndex(tableName: string, indexName: string, _options?: QueryInterfaceOptions): Promise<void>;
|
|
193
|
+
/**
|
|
194
|
+
* Show all indexes for a table
|
|
195
|
+
* @param tableName - Name of the table
|
|
196
|
+
*/
|
|
197
|
+
showIndexes(tableName: string): Promise<{
|
|
198
|
+
name: string;
|
|
199
|
+
fields: string[];
|
|
200
|
+
unique: boolean;
|
|
201
|
+
}[]>;
|
|
202
|
+
/**
|
|
203
|
+
* Add a constraint to a table
|
|
204
|
+
* @param tableName - Name of the table
|
|
205
|
+
* @param constraintName - Name of the constraint
|
|
206
|
+
* @param constraint - Constraint definition
|
|
207
|
+
*/
|
|
208
|
+
addConstraint(tableName: string, constraintNameOrOptions: string | (ConstraintDefinition & {
|
|
209
|
+
name?: string;
|
|
210
|
+
}), constraintOrOptions?: ConstraintDefinition, _options?: QueryInterfaceOptions): Promise<void>;
|
|
211
|
+
/**
|
|
212
|
+
* Remove a constraint from a table
|
|
213
|
+
* @param tableName - Name of the table
|
|
214
|
+
* @param constraintName - Name of the constraint to remove
|
|
215
|
+
*/
|
|
216
|
+
removeConstraint(tableName: string, constraintName: string, _typeOrOptions?: string | QueryInterfaceOptions): Promise<void>;
|
|
217
|
+
/**
|
|
218
|
+
* Check if an index exists on a table
|
|
219
|
+
*/
|
|
220
|
+
indexExists(tableName: string, indexName: string): Promise<boolean>;
|
|
221
|
+
/**
|
|
222
|
+
* Bulk insert records
|
|
223
|
+
* @param tableName - Name of the table
|
|
224
|
+
* @param records - Records to insert
|
|
225
|
+
* @param options - Insert options
|
|
226
|
+
*/
|
|
227
|
+
bulkInsert(tableName: string, records: Record<string, any>[], _options?: BulkOperationOptions): Promise<number>;
|
|
228
|
+
/**
|
|
229
|
+
* Bulk update records
|
|
230
|
+
* @param tableName - Name of the table
|
|
231
|
+
* @param values - Values to update
|
|
232
|
+
* @param where - Where clause
|
|
233
|
+
* @param options - Update options
|
|
234
|
+
*/
|
|
235
|
+
bulkUpdate(tableName: string, values: Record<string, any>, where: WhereOptions, _options?: BulkOperationOptions): Promise<number>;
|
|
236
|
+
/**
|
|
237
|
+
* Bulk delete records
|
|
238
|
+
* @param tableName - Name of the table
|
|
239
|
+
* @param where - Where clause
|
|
240
|
+
* @param options - Delete options
|
|
241
|
+
*/
|
|
242
|
+
bulkDelete(tableName: string, where: WhereOptions, _options?: BulkOperationOptions): Promise<number>;
|
|
243
|
+
/**
|
|
244
|
+
* Describe a table (get column information)
|
|
245
|
+
* @param tableName - Name of the table
|
|
246
|
+
*/
|
|
247
|
+
describeTable(tableName: string): Promise<TableDescription>;
|
|
248
|
+
/**
|
|
249
|
+
* Show all tables in the database
|
|
250
|
+
*/
|
|
251
|
+
showTables(): Promise<string[]>;
|
|
252
|
+
/**
|
|
253
|
+
* Check if a table exists
|
|
254
|
+
* @param tableName - Name of the table
|
|
255
|
+
*/
|
|
256
|
+
tableExists(tableName: string): Promise<boolean>;
|
|
257
|
+
/**
|
|
258
|
+
* Get all table names with schema (for PostgreSQL, MySQL, etc.)
|
|
259
|
+
* @param _schema - Optional schema name
|
|
260
|
+
*/
|
|
261
|
+
getTableNames(_schema?: string): Promise<string[]>;
|
|
262
|
+
/**
|
|
263
|
+
* Get foreign keys for a table
|
|
264
|
+
* @param tableName - Name of the table
|
|
265
|
+
*/
|
|
266
|
+
getForeignKeysForTable(_tableName: string): Promise<any[]>;
|
|
267
|
+
/**
|
|
268
|
+
* Get constraints for a table
|
|
269
|
+
* @param tableName - Name of the table
|
|
270
|
+
*/
|
|
271
|
+
getConstraints(_tableName: string): Promise<any[]>;
|
|
272
|
+
/**
|
|
273
|
+
* Create a database (for databases that support it)
|
|
274
|
+
* @param databaseName - Name of the database
|
|
275
|
+
*/
|
|
276
|
+
createDatabase(_databaseName: string, _options?: QueryInterfaceOptions): Promise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* Drop a database (for databases that support it)
|
|
279
|
+
* @param databaseName - Name of the database
|
|
280
|
+
*/
|
|
281
|
+
dropDatabase(_databaseName: string, _options?: QueryInterfaceOptions): Promise<void>;
|
|
282
|
+
/**
|
|
283
|
+
* Create a database view
|
|
284
|
+
* @param viewName - Name of the view to create
|
|
285
|
+
* @param query - The SELECT query for the view
|
|
286
|
+
* @param options - View options
|
|
287
|
+
*/
|
|
288
|
+
createView(viewName: string, query: string, options?: ViewOptions & QueryInterfaceOptions): Promise<void>;
|
|
289
|
+
/**
|
|
290
|
+
* Drop a database view
|
|
291
|
+
* @param viewName - Name of the view to drop
|
|
292
|
+
* @param options - Drop options
|
|
293
|
+
*/
|
|
294
|
+
dropView(viewName: string, options?: DropViewOptions & QueryInterfaceOptions): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* Show all views in the database
|
|
297
|
+
*/
|
|
298
|
+
showViews(): Promise<string[]>;
|
|
299
|
+
/**
|
|
300
|
+
* Check if a view exists
|
|
301
|
+
* @param viewName - Name of the view
|
|
302
|
+
*/
|
|
303
|
+
viewExists(viewName: string): Promise<boolean>;
|
|
304
|
+
/**
|
|
305
|
+
* Create a materialized view
|
|
306
|
+
* @param options - Materialized view options
|
|
307
|
+
*/
|
|
308
|
+
createMaterializedView(options: MaterializedViewOptions & QueryInterfaceOptions): Promise<void>;
|
|
309
|
+
/**
|
|
310
|
+
* Refresh a materialized view
|
|
311
|
+
* @param viewName - Name of the materialized view to refresh
|
|
312
|
+
* @param options - Refresh options
|
|
313
|
+
*/
|
|
314
|
+
refreshMaterializedView(viewName: string, options?: RefreshOptions & QueryInterfaceOptions): Promise<void>;
|
|
315
|
+
/**
|
|
316
|
+
* Drop a materialized view
|
|
317
|
+
* @param viewName - Name of the materialized view to drop
|
|
318
|
+
* @param options - Drop options
|
|
319
|
+
*/
|
|
320
|
+
dropMaterializedView(viewName: string, options?: DropMaterializedViewOptions & QueryInterfaceOptions): Promise<void>;
|
|
321
|
+
/**
|
|
322
|
+
* Check if a materialized view exists
|
|
323
|
+
* @param viewName - Name of the materialized view
|
|
324
|
+
*/
|
|
325
|
+
materializedViewExists(viewName: string): Promise<boolean>;
|
|
326
|
+
/**
|
|
327
|
+
* Show all materialized views in the database
|
|
328
|
+
*/
|
|
329
|
+
showMaterializedViews(): Promise<string[]>;
|
|
330
|
+
private get _quoteId();
|
|
331
|
+
private get _quoteTable();
|
|
332
|
+
private get _dialectName();
|
|
333
|
+
/**
|
|
334
|
+
* Create a sequence.
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```typescript
|
|
338
|
+
* await qi.createSequence('order_id_seq', { start: 1000, increment: 1 });
|
|
339
|
+
* ```
|
|
340
|
+
*/
|
|
341
|
+
createSequence(name: string, options?: SequenceOptions): Promise<void>;
|
|
342
|
+
/** Drop a sequence. */
|
|
343
|
+
dropSequence(name: string, options?: {
|
|
344
|
+
ifExists?: boolean;
|
|
345
|
+
}): Promise<void>;
|
|
346
|
+
/**
|
|
347
|
+
* Create a trigger.
|
|
348
|
+
*
|
|
349
|
+
* On PostgreSQL this also creates the backing trigger function, which the
|
|
350
|
+
* database requires and which a hand-written `CREATE TRIGGER` easily forgets.
|
|
351
|
+
*/
|
|
352
|
+
createTrigger(trigger: TriggerDefinition): Promise<void>;
|
|
353
|
+
/** Drop a trigger. */
|
|
354
|
+
dropTrigger(name: string, table: string, options?: {
|
|
355
|
+
ifExists?: boolean;
|
|
356
|
+
}): Promise<void>;
|
|
357
|
+
/** Enable row-level security on a table (PostgreSQL family). */
|
|
358
|
+
enableRowLevelSecurity(table: string): Promise<void>;
|
|
359
|
+
/** Disable row-level security on a table (PostgreSQL family). */
|
|
360
|
+
disableRowLevelSecurity(table: string): Promise<void>;
|
|
361
|
+
/**
|
|
362
|
+
* Create a row-level security policy.
|
|
363
|
+
*
|
|
364
|
+
* @example
|
|
365
|
+
* ```typescript
|
|
366
|
+
* await qi.createPolicy({
|
|
367
|
+
* name: 'users_own_rows',
|
|
368
|
+
* table: 'users',
|
|
369
|
+
* for: 'SELECT',
|
|
370
|
+
* using: 'user_id = current_user_id()',
|
|
371
|
+
* });
|
|
372
|
+
* ```
|
|
373
|
+
*/
|
|
374
|
+
createPolicy(options: PolicyOptions): Promise<void>;
|
|
375
|
+
/** Drop a row-level security policy. */
|
|
376
|
+
dropPolicy(name: string, table: string, options?: {
|
|
377
|
+
ifExists?: boolean;
|
|
378
|
+
}): Promise<void>;
|
|
379
|
+
/**
|
|
380
|
+
* Create a full-text index.
|
|
381
|
+
*
|
|
382
|
+
* Emits a GIN index over `to_tsvector` on PostgreSQL, a FULLTEXT index on
|
|
383
|
+
* MySQL/MariaDB, and an FTS5 virtual table on SQLite.
|
|
384
|
+
*/
|
|
385
|
+
createFullTextIndex(options: FullTextIndexOptions): Promise<void>;
|
|
386
|
+
/**
|
|
387
|
+
* Execute a raw query
|
|
388
|
+
* @param sql - The SQL query
|
|
389
|
+
* @param options - Query options
|
|
390
|
+
*/
|
|
391
|
+
query(sql: string, options?: QueryInterfaceOptions): Promise<any>;
|
|
392
|
+
/**
|
|
393
|
+
* Quote an identifier
|
|
394
|
+
* @param identifier - The identifier to quote
|
|
395
|
+
*/
|
|
396
|
+
quoteIdentifier(identifier: string): string;
|
|
397
|
+
/**
|
|
398
|
+
* Escape a value
|
|
399
|
+
* @param value - The value to escape
|
|
400
|
+
*/
|
|
401
|
+
escape(value: any): string;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Factory function to create a QueryInterface from a Prorm instance
|
|
405
|
+
*/
|
|
406
|
+
export declare function createQueryInterface(dialect: Dialect): CreateQueryInterface;
|
|
407
|
+
export type QueryInterface = CreateQueryInterface;
|
package/dist/query-interface.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.CreateQueryInterface = void 0;
|
|
8
8
|
exports.createQueryInterface = createQueryInterface;
|
|
9
|
+
const schema_objects_1 = require("./schema-objects");
|
|
9
10
|
/**
|
|
10
11
|
* CreateQueryInterface - Provides migration operations for all database dialects
|
|
11
12
|
*/
|
|
@@ -590,6 +591,89 @@ class CreateQueryInterface {
|
|
|
590
591
|
async showMaterializedViews() {
|
|
591
592
|
return this.dialect.showMaterializedViews();
|
|
592
593
|
}
|
|
594
|
+
// ==================== Sequences, triggers, RLS, full-text ====================
|
|
595
|
+
//
|
|
596
|
+
// These object types previously had no API at all, so the only way to create
|
|
597
|
+
// them was a hand-written `prorm.query()` call - which is what the README's
|
|
598
|
+
// own per-dialect examples did. Each method builds dialect-appropriate SQL and
|
|
599
|
+
// raises UnsupportedSchemaObjectError where the database has no equivalent.
|
|
600
|
+
get _quoteId() {
|
|
601
|
+
return (id) => this.dialect.quoteIdentifier(id);
|
|
602
|
+
}
|
|
603
|
+
get _quoteTable() {
|
|
604
|
+
return (t) => this.dialect.quoteTable(t);
|
|
605
|
+
}
|
|
606
|
+
get _dialectName() {
|
|
607
|
+
return this.dialect.name;
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Create a sequence.
|
|
611
|
+
*
|
|
612
|
+
* @example
|
|
613
|
+
* ```typescript
|
|
614
|
+
* await qi.createSequence('order_id_seq', { start: 1000, increment: 1 });
|
|
615
|
+
* ```
|
|
616
|
+
*/
|
|
617
|
+
async createSequence(name, options = {}) {
|
|
618
|
+
await this.dialect.query((0, schema_objects_1.buildCreateSequenceSQL)(name, options, this._dialectName, this._quoteId));
|
|
619
|
+
}
|
|
620
|
+
/** Drop a sequence. */
|
|
621
|
+
async dropSequence(name, options) {
|
|
622
|
+
await this.dialect.query((0, schema_objects_1.buildDropSequenceSQL)(name, this._dialectName, this._quoteId, options?.ifExists ?? true));
|
|
623
|
+
}
|
|
624
|
+
/**
|
|
625
|
+
* Create a trigger.
|
|
626
|
+
*
|
|
627
|
+
* On PostgreSQL this also creates the backing trigger function, which the
|
|
628
|
+
* database requires and which a hand-written `CREATE TRIGGER` easily forgets.
|
|
629
|
+
*/
|
|
630
|
+
async createTrigger(trigger) {
|
|
631
|
+
const statements = (0, schema_objects_1.buildCreateTriggerStatements)(trigger, this._dialectName, this._quoteId, this._quoteTable);
|
|
632
|
+
for (const sql of statements) {
|
|
633
|
+
await this.dialect.query(sql);
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
/** Drop a trigger. */
|
|
637
|
+
async dropTrigger(name, table, options) {
|
|
638
|
+
await this.dialect.query((0, schema_objects_1.buildDropTriggerSQL)(name, table, this._dialectName, this._quoteId, this._quoteTable, options?.ifExists ?? true));
|
|
639
|
+
}
|
|
640
|
+
/** Enable row-level security on a table (PostgreSQL family). */
|
|
641
|
+
async enableRowLevelSecurity(table) {
|
|
642
|
+
await this.dialect.query((0, schema_objects_1.buildEnableRowLevelSecuritySQL)(table, this._dialectName, this._quoteTable, true));
|
|
643
|
+
}
|
|
644
|
+
/** Disable row-level security on a table (PostgreSQL family). */
|
|
645
|
+
async disableRowLevelSecurity(table) {
|
|
646
|
+
await this.dialect.query((0, schema_objects_1.buildEnableRowLevelSecuritySQL)(table, this._dialectName, this._quoteTable, false));
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Create a row-level security policy.
|
|
650
|
+
*
|
|
651
|
+
* @example
|
|
652
|
+
* ```typescript
|
|
653
|
+
* await qi.createPolicy({
|
|
654
|
+
* name: 'users_own_rows',
|
|
655
|
+
* table: 'users',
|
|
656
|
+
* for: 'SELECT',
|
|
657
|
+
* using: 'user_id = current_user_id()',
|
|
658
|
+
* });
|
|
659
|
+
* ```
|
|
660
|
+
*/
|
|
661
|
+
async createPolicy(options) {
|
|
662
|
+
await this.dialect.query((0, schema_objects_1.buildCreatePolicySQL)(options, this._dialectName, this._quoteId, this._quoteTable));
|
|
663
|
+
}
|
|
664
|
+
/** Drop a row-level security policy. */
|
|
665
|
+
async dropPolicy(name, table, options) {
|
|
666
|
+
await this.dialect.query((0, schema_objects_1.buildDropPolicySQL)(name, table, this._dialectName, this._quoteId, this._quoteTable, options?.ifExists ?? true));
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Create a full-text index.
|
|
670
|
+
*
|
|
671
|
+
* Emits a GIN index over `to_tsvector` on PostgreSQL, a FULLTEXT index on
|
|
672
|
+
* MySQL/MariaDB, and an FTS5 virtual table on SQLite.
|
|
673
|
+
*/
|
|
674
|
+
async createFullTextIndex(options) {
|
|
675
|
+
await this.dialect.query((0, schema_objects_1.buildCreateFullTextIndexSQL)(options, this._dialectName, this._quoteId, this._quoteTable));
|
|
676
|
+
}
|
|
593
677
|
/**
|
|
594
678
|
* Execute a raw query
|
|
595
679
|
* @param sql - The SQL query
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query Batch/Bulk Optimization
|
|
3
|
+
* Provides functionality to optimize batch operations for better performance
|
|
4
|
+
*/
|
|
5
|
+
import { Dialect } from '../dialects/dialect';
|
|
6
|
+
/**
|
|
7
|
+
* Options for batch operations
|
|
8
|
+
*/
|
|
9
|
+
export interface BatchOptions {
|
|
10
|
+
/** Maximum number of records per batch/chunk */
|
|
11
|
+
chunkSize: number;
|
|
12
|
+
/** Whether to use transactions for batch operations */
|
|
13
|
+
useTransaction?: boolean;
|
|
14
|
+
/** Whether to validate records before insertion */
|
|
15
|
+
validate?: boolean;
|
|
16
|
+
/** Whether to skip duplicate key errors */
|
|
17
|
+
skipDuplicates?: boolean;
|
|
18
|
+
/** Logging function */
|
|
19
|
+
logging?: (message: string) => void;
|
|
20
|
+
/** Callback for progress updates */
|
|
21
|
+
onProgress?: (progress: BatchProgress) => void;
|
|
22
|
+
/** Throw on error or continue with other batches */
|
|
23
|
+
stopOnError?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Batch progress information
|
|
27
|
+
*/
|
|
28
|
+
export interface BatchProgress {
|
|
29
|
+
/** Total number of records */
|
|
30
|
+
total: number;
|
|
31
|
+
/** Number of processed records */
|
|
32
|
+
processed: number;
|
|
33
|
+
/** Number of successful operations */
|
|
34
|
+
success: number;
|
|
35
|
+
/** Number of failed operations */
|
|
36
|
+
failed: number;
|
|
37
|
+
/** Current batch index */
|
|
38
|
+
batchIndex: number;
|
|
39
|
+
/** Total number of batches */
|
|
40
|
+
totalBatches: number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Result of a batch operation
|
|
44
|
+
*/
|
|
45
|
+
export interface BatchResult<T = any> {
|
|
46
|
+
/** Array of successfully processed records */
|
|
47
|
+
success: T[];
|
|
48
|
+
/** Array of failed records with error info */
|
|
49
|
+
failed: Array<{
|
|
50
|
+
record: T;
|
|
51
|
+
error: Error;
|
|
52
|
+
}>;
|
|
53
|
+
/** Total number of records processed */
|
|
54
|
+
total: number;
|
|
55
|
+
/** Number of records per batch */
|
|
56
|
+
chunkSize: number;
|
|
57
|
+
/** Total number of batches */
|
|
58
|
+
batches: number;
|
|
59
|
+
/** Total duration in milliseconds */
|
|
60
|
+
duration: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Single query in a batch
|
|
64
|
+
*/
|
|
65
|
+
export interface QueryBatch {
|
|
66
|
+
sql: string;
|
|
67
|
+
params?: any[];
|
|
68
|
+
values?: Record<string, any>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Batch query optimizer
|
|
72
|
+
*/
|
|
73
|
+
export declare class BatchQueryOptimizer {
|
|
74
|
+
private dialect;
|
|
75
|
+
private defaultOptions;
|
|
76
|
+
constructor(dialect: Dialect, defaultOptions?: Partial<BatchOptions>);
|
|
77
|
+
/**
|
|
78
|
+
* Set default options for batch operations
|
|
79
|
+
*/
|
|
80
|
+
setDefaultOptions(options: Partial<BatchOptions>): void;
|
|
81
|
+
/**
|
|
82
|
+
* Optimize batch insert by combining multiple INSERT statements
|
|
83
|
+
* @param tableName - Name of the table to insert into
|
|
84
|
+
* @param records - Array of records to insert
|
|
85
|
+
* @param options - Batch options
|
|
86
|
+
*/
|
|
87
|
+
optimizeBatchInsert(tableName: string, records: Record<string, any>[], options?: Partial<BatchOptions>): Promise<BatchResult>;
|
|
88
|
+
/**
|
|
89
|
+
* Build the next placeholder token for a bound parameter, given the running
|
|
90
|
+
* 1-based parameter index. Matches the placeholder convention each dialect's
|
|
91
|
+
* own buildInsertQuery/buildUpdateQuery/buildDeleteQuery already uses:
|
|
92
|
+
* - postgres: $1, $2, ...
|
|
93
|
+
* - mssql: @p1, @p2, ...
|
|
94
|
+
* - oracle: :1, :2, ...
|
|
95
|
+
* - others (mysql/mariadb/sqlite): ?
|
|
96
|
+
*/
|
|
97
|
+
private nextPlaceholder;
|
|
98
|
+
/**
|
|
99
|
+
* Execute a batch insert using multi-value INSERT
|
|
100
|
+
* Uses bound parameters with dialect-correct placeholders ($1, $2, ... for
|
|
101
|
+
* PostgreSQL, `?` for the other dialects) instead of interpolating values.
|
|
102
|
+
*/
|
|
103
|
+
private executeBatchInsert;
|
|
104
|
+
/**
|
|
105
|
+
* Execute a single record insert
|
|
106
|
+
*/
|
|
107
|
+
private executeSingleInsert;
|
|
108
|
+
/**
|
|
109
|
+
* Optimize batch update
|
|
110
|
+
* @param tableName - Name of the table to update
|
|
111
|
+
* @param records - Records to update (must have primary key or unique identifier)
|
|
112
|
+
* @param identifierColumn - Column to use for identifying records
|
|
113
|
+
* @param options - Batch options
|
|
114
|
+
*/
|
|
115
|
+
optimizeBatchUpdate(tableName: string, records: Record<string, any>[], identifierColumn?: string, options?: Partial<BatchOptions>): Promise<BatchResult>;
|
|
116
|
+
/**
|
|
117
|
+
* Execute batch update using CASE expressions
|
|
118
|
+
* Uses bound parameters with dialect-correct placeholders instead of
|
|
119
|
+
* interpolating escaped literals directly into the SQL string.
|
|
120
|
+
*/
|
|
121
|
+
private executeBatchUpdate;
|
|
122
|
+
/**
|
|
123
|
+
* Execute a single record update
|
|
124
|
+
*/
|
|
125
|
+
private executeSingleUpdate;
|
|
126
|
+
/**
|
|
127
|
+
* Optimize batch delete
|
|
128
|
+
* @param tableName - Name of the table to delete from
|
|
129
|
+
* @param identifiers - Array of identifiers for records to delete
|
|
130
|
+
* @param identifierColumn - Column to use for identifying records
|
|
131
|
+
* @param options - Batch options
|
|
132
|
+
*/
|
|
133
|
+
optimizeBatchDelete(tableName: string, identifiers: any[], identifierColumn?: string, options?: Partial<BatchOptions>): Promise<BatchResult>;
|
|
134
|
+
/**
|
|
135
|
+
* Execute batch delete using IN clause
|
|
136
|
+
* Uses bound parameters with dialect-correct placeholders instead of
|
|
137
|
+
* interpolating escaped literals directly into the SQL string.
|
|
138
|
+
*/
|
|
139
|
+
private executeBatchDelete;
|
|
140
|
+
/**
|
|
141
|
+
* Execute a single record delete
|
|
142
|
+
*/
|
|
143
|
+
private executeSingleDelete;
|
|
144
|
+
/**
|
|
145
|
+
* Check if error is a duplicate key error
|
|
146
|
+
*/
|
|
147
|
+
private isDuplicateKeyError;
|
|
148
|
+
/**
|
|
149
|
+
* Chunk an array into smaller arrays
|
|
150
|
+
*/
|
|
151
|
+
private chunkArray;
|
|
152
|
+
/**
|
|
153
|
+
* Log progress
|
|
154
|
+
*/
|
|
155
|
+
private logProgress;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Optimize a batch insert operation
|
|
159
|
+
*/
|
|
160
|
+
export declare function optimizeBatchInsert(dialect: Dialect, tableName: string, records: Record<string, any>[], options?: Partial<BatchOptions>): Promise<BatchResult>;
|
|
161
|
+
/**
|
|
162
|
+
* Optimize a batch update operation
|
|
163
|
+
*/
|
|
164
|
+
export declare function optimizeBatchUpdate(dialect: Dialect, tableName: string, records: Record<string, any>[], identifierColumn?: string, options?: Partial<BatchOptions>): Promise<BatchResult>;
|
|
165
|
+
/**
|
|
166
|
+
* Optimize a batch delete operation
|
|
167
|
+
*/
|
|
168
|
+
export declare function optimizeBatchDelete(dialect: Dialect, tableName: string, identifiers: any[], identifierColumn?: string, options?: Partial<BatchOptions>): Promise<BatchResult>;
|
|
169
|
+
declare const _default: {
|
|
170
|
+
BatchQueryOptimizer: typeof BatchQueryOptimizer;
|
|
171
|
+
optimizeBatchInsert: typeof optimizeBatchInsert;
|
|
172
|
+
optimizeBatchUpdate: typeof optimizeBatchUpdate;
|
|
173
|
+
optimizeBatchDelete: typeof optimizeBatchDelete;
|
|
174
|
+
};
|
|
175
|
+
export default _default;
|