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
|
@@ -3,13 +3,26 @@
|
|
|
3
3
|
* Oracle dialect implementation for the TypeScript ORM
|
|
4
4
|
* Uses the oracledb driver for database connectivity
|
|
5
5
|
*/
|
|
6
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
-
};
|
|
9
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
7
|
exports.OracleDialect = void 0;
|
|
11
8
|
exports.createOracleDialect = createOracleDialect;
|
|
12
|
-
|
|
9
|
+
// Lazily-loaded `oracledb` driver. The native Oracle client is only loaded the
|
|
10
|
+
// first time a connection is opened, so importing this ORM never dlopens the
|
|
11
|
+
// oracledb native addon.
|
|
12
|
+
let oracledbModule = null;
|
|
13
|
+
function loadOracleDb() {
|
|
14
|
+
if (!oracledbModule) {
|
|
15
|
+
try {
|
|
16
|
+
oracledbModule = require('oracledb');
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
throw new Error("The 'oracledb' package is required to use the Oracle dialect but could not be loaded. " +
|
|
20
|
+
'Install it with `npm install oracledb`. Original error: ' +
|
|
21
|
+
(err instanceof Error ? err.message : String(err)));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return oracledbModule;
|
|
25
|
+
}
|
|
13
26
|
const query_stream_helper_1 = require("../query-stream-helper");
|
|
14
27
|
const errors_1 = require("../../errors");
|
|
15
28
|
const crypto_1 = require("crypto");
|
|
@@ -120,7 +133,7 @@ class OracleDialect {
|
|
|
120
133
|
// when the client isn't initialized) instead of unconditionally
|
|
121
134
|
// switching to thick mode.
|
|
122
135
|
if (!this.config.thinMode) {
|
|
123
|
-
await
|
|
136
|
+
await loadOracleDb().initOracleClient();
|
|
124
137
|
}
|
|
125
138
|
const poolOptions = {
|
|
126
139
|
...DEFAULT_POOL_OPTIONS,
|
|
@@ -129,7 +142,7 @@ class OracleDialect {
|
|
|
129
142
|
password: this.config.password,
|
|
130
143
|
connectString: `${this.config.host}:${this.config.port}/${this.config.database}`,
|
|
131
144
|
};
|
|
132
|
-
this.pool = await
|
|
145
|
+
this.pool = await loadOracleDb().createPool(poolOptions);
|
|
133
146
|
this._isConnected = true;
|
|
134
147
|
}
|
|
135
148
|
catch (error) {
|
|
@@ -184,7 +197,7 @@ class OracleDialect {
|
|
|
184
197
|
try {
|
|
185
198
|
const queryOptions = {
|
|
186
199
|
autoCommit: true,
|
|
187
|
-
outFormat:
|
|
200
|
+
outFormat: loadOracleDb().OUT_FORMAT_OBJECT,
|
|
188
201
|
};
|
|
189
202
|
// Callers pass bind values under different option keys (`replacements`,
|
|
190
203
|
// `bindings`, or `bind`); oracledb accepts either a positional array
|
|
@@ -1742,8 +1755,8 @@ class OracleDialect {
|
|
|
1742
1755
|
// recognize a positional bind as an OUT bind rather than an IN value;
|
|
1743
1756
|
// a bare `null` would be sent as an IN bind of unknown type.
|
|
1744
1757
|
const outBind = () => ({
|
|
1745
|
-
type:
|
|
1746
|
-
dir:
|
|
1758
|
+
type: loadOracleDb().STRING,
|
|
1759
|
+
dir: loadOracleDb().BIND_OUT,
|
|
1747
1760
|
maxSize: 4000,
|
|
1748
1761
|
});
|
|
1749
1762
|
if (options.returning === true) {
|
|
@@ -2961,6 +2974,194 @@ END;
|
|
|
2961
2974
|
const alias = options.alias ? ` ${this.quoteIdentifier(options.alias)}` : '';
|
|
2962
2975
|
return `${options.sourceQuery} UNPIVOT ${includeNulls}(${this.quoteIdentifier(options.valueColumn)} FOR ${this.quoteIdentifier(options.forColumn)} IN (${inColumns}))${alias}`;
|
|
2963
2976
|
}
|
|
2977
|
+
// ==================== JSON query surface (Oracle 12c+/21c) ====================
|
|
2978
|
+
/**
|
|
2979
|
+
* Convert a dot/bracket JSON path (e.g. `address.city` or `items[0].sku`) into
|
|
2980
|
+
* an Oracle JSON path expression rooted at `$` (`$.address.city`,
|
|
2981
|
+
* `$.items[0].sku`). A path already starting with `$` is passed through.
|
|
2982
|
+
*/
|
|
2983
|
+
toOracleJsonPath(path) {
|
|
2984
|
+
if (path.startsWith('$')) {
|
|
2985
|
+
return path;
|
|
2986
|
+
}
|
|
2987
|
+
// Turn `a.b[0].c` into `$.a.b[0].c`
|
|
2988
|
+
const normalized = path.replace(/^\./, '');
|
|
2989
|
+
return `$.${normalized}`;
|
|
2990
|
+
}
|
|
2991
|
+
/**
|
|
2992
|
+
* Build a scalar `JSON_VALUE(column, '$.path' RETURNING type)` accessor
|
|
2993
|
+
* (Oracle 12c+), the standard way to extract a scalar out of a JSON column.
|
|
2994
|
+
*/
|
|
2995
|
+
buildJsonValue(column, path, options) {
|
|
2996
|
+
const ref = this.quoteIdentifier(column);
|
|
2997
|
+
const returning = options?.returning ? ` RETURNING ${options.returning}` : '';
|
|
2998
|
+
const onError = options?.onError ? ` ${options.onError} ON ERROR` : '';
|
|
2999
|
+
return `JSON_VALUE(${ref}, '${this.toOracleJsonPath(path)}'${returning}${onError})`;
|
|
3000
|
+
}
|
|
3001
|
+
/**
|
|
3002
|
+
* Build a `JSON_QUERY(column, '$.path')` accessor (Oracle 12c+) for extracting
|
|
3003
|
+
* a JSON object/array fragment (rather than a scalar) out of a JSON column.
|
|
3004
|
+
*/
|
|
3005
|
+
buildJsonQuery(column, path, options) {
|
|
3006
|
+
const ref = this.quoteIdentifier(column);
|
|
3007
|
+
const wrapper = options?.wrapper ? ` ${options.wrapper}` : '';
|
|
3008
|
+
return `JSON_QUERY(${ref}, '${this.toOracleJsonPath(path)}'${wrapper})`;
|
|
3009
|
+
}
|
|
3010
|
+
/**
|
|
3011
|
+
* Build a `JSON_EXISTS(column, '$.path')` predicate (Oracle 12c+) for use in a
|
|
3012
|
+
* WHERE clause to test for the presence of a JSON path.
|
|
3013
|
+
*/
|
|
3014
|
+
buildJsonExists(column, path) {
|
|
3015
|
+
return `JSON_EXISTS(${this.quoteIdentifier(column)}, '${this.toOracleJsonPath(path)}')`;
|
|
3016
|
+
}
|
|
3017
|
+
// ==================== PL/SQL packages ====================
|
|
3018
|
+
/**
|
|
3019
|
+
* Create an Oracle PL/SQL package specification and/or body. Emits
|
|
3020
|
+
* `CREATE [OR REPLACE] PACKAGE name AS <spec> END;` and, when `body` is given,
|
|
3021
|
+
* a following `CREATE [OR REPLACE] PACKAGE BODY name AS <body> END;`.
|
|
3022
|
+
* At least one of `spec`/`body` must be provided.
|
|
3023
|
+
*/
|
|
3024
|
+
async createPackage(options) {
|
|
3025
|
+
const schema = options.schema || this.config?.schema;
|
|
3026
|
+
const qualified = schema
|
|
3027
|
+
? `${this.escapeId(schema)}.${this.escapeId(options.name)}`
|
|
3028
|
+
: this.escapeId(options.name);
|
|
3029
|
+
const orReplace = options.replace === false ? '' : 'OR REPLACE ';
|
|
3030
|
+
if (!options.spec && !options.body) {
|
|
3031
|
+
throw new Error('createPackage requires at least one of `spec` or `body`');
|
|
3032
|
+
}
|
|
3033
|
+
if (options.spec) {
|
|
3034
|
+
await this.query(`CREATE ${orReplace}PACKAGE ${qualified} AS\n${options.spec}\nEND ${this.escapeId(options.name)};`);
|
|
3035
|
+
}
|
|
3036
|
+
if (options.body) {
|
|
3037
|
+
await this.query(`CREATE ${orReplace}PACKAGE BODY ${qualified} AS\n${options.body}\nEND ${this.escapeId(options.name)};`);
|
|
3038
|
+
}
|
|
3039
|
+
}
|
|
3040
|
+
/**
|
|
3041
|
+
* Drop an Oracle PL/SQL package. Pass `bodyOnly` to drop just the body and
|
|
3042
|
+
* keep the specification.
|
|
3043
|
+
*/
|
|
3044
|
+
async dropPackage(packageName, options) {
|
|
3045
|
+
const schema = options?.schema || this.config?.schema;
|
|
3046
|
+
const qualified = schema
|
|
3047
|
+
? `${this.escapeId(schema)}.${this.escapeId(packageName)}`
|
|
3048
|
+
: this.escapeId(packageName);
|
|
3049
|
+
const kind = options?.bodyOnly ? 'PACKAGE BODY' : 'PACKAGE';
|
|
3050
|
+
await this.query(`DROP ${kind} ${qualified}`);
|
|
3051
|
+
}
|
|
3052
|
+
// ==================== Flashback query / recovery ====================
|
|
3053
|
+
/**
|
|
3054
|
+
* Build an Oracle flashback `AS OF` clause (`AS OF TIMESTAMP ...` or
|
|
3055
|
+
* `AS OF SCN ...`) to append to a table reference for a point-in-time read.
|
|
3056
|
+
* Returns an empty string when neither timestamp nor SCN is given.
|
|
3057
|
+
*/
|
|
3058
|
+
buildFlashbackClause(options) {
|
|
3059
|
+
if (options.scn !== undefined) {
|
|
3060
|
+
return `AS OF SCN ${options.scn}`;
|
|
3061
|
+
}
|
|
3062
|
+
if (options.timestamp !== undefined) {
|
|
3063
|
+
const ts = options.timestamp instanceof Date
|
|
3064
|
+
? options.timestamp.toISOString().replace('T', ' ').replace('Z', '')
|
|
3065
|
+
: options.timestamp;
|
|
3066
|
+
return `AS OF TIMESTAMP TO_TIMESTAMP('${String(ts).replace(/'/g, "''")}', 'YYYY-MM-DD HH24:MI:SS.FF')`;
|
|
3067
|
+
}
|
|
3068
|
+
return '';
|
|
3069
|
+
}
|
|
3070
|
+
/**
|
|
3071
|
+
* Build a flashback SELECT: `SELECT ... FROM table AS OF ... [WHERE ...]`,
|
|
3072
|
+
* reading the table's rows as they existed at a past timestamp or SCN.
|
|
3073
|
+
*/
|
|
3074
|
+
buildFlashbackQuery(tableName, flashback, options) {
|
|
3075
|
+
const cols = options?.attributes && options.attributes.length > 0
|
|
3076
|
+
? options.attributes.map((c) => this.escapeId(c)).join(', ')
|
|
3077
|
+
: '*';
|
|
3078
|
+
const asOf = this.buildFlashbackClause(flashback);
|
|
3079
|
+
let sql = `SELECT ${cols} FROM ${this.quoteTable(tableName, options?.schema)} ${asOf}`;
|
|
3080
|
+
let values = [];
|
|
3081
|
+
if (options?.where) {
|
|
3082
|
+
const { sql: whereSql, values: whereValues } = this.buildWhereClause(options.where);
|
|
3083
|
+
if (whereSql) {
|
|
3084
|
+
sql += ` WHERE ${whereSql}`;
|
|
3085
|
+
values = whereValues;
|
|
3086
|
+
}
|
|
3087
|
+
}
|
|
3088
|
+
return { sql: sql.trim(), values };
|
|
3089
|
+
}
|
|
3090
|
+
/**
|
|
3091
|
+
* Flashback a table to a past point in time (`FLASHBACK TABLE t TO TIMESTAMP/SCN ...`).
|
|
3092
|
+
* Requires row movement enabled on the table.
|
|
3093
|
+
*/
|
|
3094
|
+
async flashbackTable(tableName, flashback) {
|
|
3095
|
+
let target;
|
|
3096
|
+
if (flashback.scn !== undefined) {
|
|
3097
|
+
target = `SCN ${flashback.scn}`;
|
|
3098
|
+
}
|
|
3099
|
+
else if (flashback.timestamp !== undefined) {
|
|
3100
|
+
const ts = flashback.timestamp instanceof Date
|
|
3101
|
+
? flashback.timestamp.toISOString().replace('T', ' ').replace('Z', '')
|
|
3102
|
+
: flashback.timestamp;
|
|
3103
|
+
target = `TIMESTAMP TO_TIMESTAMP('${String(ts).replace(/'/g, "''")}', 'YYYY-MM-DD HH24:MI:SS.FF')`;
|
|
3104
|
+
}
|
|
3105
|
+
else {
|
|
3106
|
+
throw new Error('flashbackTable requires a `timestamp` or `scn`');
|
|
3107
|
+
}
|
|
3108
|
+
await this.query(`FLASHBACK TABLE ${this.quoteTable(tableName)} TO ${target}`);
|
|
3109
|
+
}
|
|
3110
|
+
/**
|
|
3111
|
+
* Restore a dropped table from the recycle bin
|
|
3112
|
+
* (`FLASHBACK TABLE t TO BEFORE DROP [RENAME TO newName]`).
|
|
3113
|
+
*/
|
|
3114
|
+
async flashbackTableBeforeDrop(tableName, renameTo) {
|
|
3115
|
+
let sql = `FLASHBACK TABLE ${this.quoteTable(tableName)} TO BEFORE DROP`;
|
|
3116
|
+
if (renameTo) {
|
|
3117
|
+
sql += ` RENAME TO ${this.escapeId(renameTo)}`;
|
|
3118
|
+
}
|
|
3119
|
+
await this.query(sql);
|
|
3120
|
+
}
|
|
3121
|
+
// ==================== External tables (FDW replacement) ====================
|
|
3122
|
+
/**
|
|
3123
|
+
* Create an Oracle external table (`ORGANIZATION EXTERNAL`) — the native
|
|
3124
|
+
* Oracle mechanism for reading flat files / Data Pump dumps as a table, and
|
|
3125
|
+
* the recommended replacement for the PostgreSQL-only foreign-table API that
|
|
3126
|
+
* this dialect rejects.
|
|
3127
|
+
*/
|
|
3128
|
+
async createExternalTable(tableName, options) {
|
|
3129
|
+
const columnDefs = Object.entries(options.columns)
|
|
3130
|
+
.map(([name, type]) => `${this.escapeId(name)} ${type}`)
|
|
3131
|
+
.join(', ');
|
|
3132
|
+
const driver = options.type || 'ORACLE_LOADER';
|
|
3133
|
+
const locations = (Array.isArray(options.location) ? options.location : [options.location])
|
|
3134
|
+
.map((l) => `'${String(l).replace(/'/g, "''")}'`)
|
|
3135
|
+
.join(', ');
|
|
3136
|
+
const accessParams = options.accessParameters
|
|
3137
|
+
? `\n ACCESS PARAMETERS (\n${options.accessParameters}\n )`
|
|
3138
|
+
: '';
|
|
3139
|
+
const rejectLimit = options.rejectLimit ?? 'UNLIMITED';
|
|
3140
|
+
const sql = `CREATE TABLE ${this.quoteTable(tableName)} (${columnDefs})\n` +
|
|
3141
|
+
`ORGANIZATION EXTERNAL (\n` +
|
|
3142
|
+
` TYPE ${driver}\n` +
|
|
3143
|
+
` DEFAULT DIRECTORY ${this.escapeId(options.directory)}${accessParams}\n` +
|
|
3144
|
+
` LOCATION (${locations})\n` +
|
|
3145
|
+
`)\n` +
|
|
3146
|
+
`REJECT LIMIT ${rejectLimit}`;
|
|
3147
|
+
await this.query(sql);
|
|
3148
|
+
}
|
|
3149
|
+
// ==================== Oracle Text (full-text search) ====================
|
|
3150
|
+
/**
|
|
3151
|
+
* Build an Oracle Text `CONTAINS(column, 'query') > 0` predicate for use in a
|
|
3152
|
+
* WHERE clause against a `CTXSYS.CONTEXT` index (see `createFulltextIndex`).
|
|
3153
|
+
* `label` ties the predicate to a `SCORE(label)` projection.
|
|
3154
|
+
*/
|
|
3155
|
+
buildContains(column, query, label = 1) {
|
|
3156
|
+
return `CONTAINS(${this.quoteIdentifier(column)}, '${String(query).replace(/'/g, "''")}', ${label}) > 0`;
|
|
3157
|
+
}
|
|
3158
|
+
/**
|
|
3159
|
+
* Build an Oracle Text `SCORE(label)` projection expression that reports the
|
|
3160
|
+
* relevance score computed by a matching `CONTAINS(..., label)` predicate.
|
|
3161
|
+
*/
|
|
3162
|
+
buildScore(label = 1) {
|
|
3163
|
+
return `SCORE(${label})`;
|
|
3164
|
+
}
|
|
2964
3165
|
}
|
|
2965
3166
|
exports.OracleDialect = OracleDialect;
|
|
2966
3167
|
/** ORA-00955: name is already used by an existing object. */
|