ts-prorm-orm 1.1.0 → 1.2.1
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 +95 -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 +713 -0
- package/dist/index.js +36 -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,387 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Foreign Key Constraints and Column Options Decorators for the ORM.
|
|
3
|
+
*
|
|
4
|
+
* Provides decorators for:
|
|
5
|
+
* - FK cascade options (ON DELETE, ON UPDATE)
|
|
6
|
+
* - FK references definition
|
|
7
|
+
* - Deferrable constraints
|
|
8
|
+
* - Unique constraints
|
|
9
|
+
* - Auto-increment / Identity configuration
|
|
10
|
+
* - Generated columns (PostgreSQL 12+)
|
|
11
|
+
* - Exclusion constraints
|
|
12
|
+
*
|
|
13
|
+
* Usage Examples:
|
|
14
|
+
*
|
|
15
|
+
* // Foreign Key cascade options
|
|
16
|
+
* @OnDelete('CASCADE')
|
|
17
|
+
* @OnUpdate('CASCADE')
|
|
18
|
+
* @References({ model: Role, key: 'id' })
|
|
19
|
+
* roleId: number;
|
|
20
|
+
*
|
|
21
|
+
* // Multiple FK options with deferrable
|
|
22
|
+
* @OnDelete('RESTRICT')
|
|
23
|
+
* @OnUpdate('SET NULL')
|
|
24
|
+
* @References({
|
|
25
|
+
* model: User,
|
|
26
|
+
* key: 'id',
|
|
27
|
+
* deferrable: 'INITIALLY DEFERRED'
|
|
28
|
+
* })
|
|
29
|
+
* assignedTo: number;
|
|
30
|
+
*
|
|
31
|
+
* // Deferrable constraint
|
|
32
|
+
* @Deferrable('INITIALLY DEFERRED')
|
|
33
|
+
* @Unique('user_email')
|
|
34
|
+
* email: string;
|
|
35
|
+
*
|
|
36
|
+
* // AutoIncrement with custom settings
|
|
37
|
+
* @AutoIncrement({
|
|
38
|
+
* start: 1000,
|
|
39
|
+
* increment: 1,
|
|
40
|
+
* cache: 1000,
|
|
41
|
+
* minValue: 1,
|
|
42
|
+
* maxValue: 999999,
|
|
43
|
+
* cycle: false,
|
|
44
|
+
* sequence: 'user_id_seq'
|
|
45
|
+
* })
|
|
46
|
+
* id: number;
|
|
47
|
+
*
|
|
48
|
+
* // Sequence-based identity (PostgreSQL)
|
|
49
|
+
* @Identity({
|
|
50
|
+
* type: 'ALWAYS',
|
|
51
|
+
* start: 1,
|
|
52
|
+
* increment: 1
|
|
53
|
+
* })
|
|
54
|
+
* id: number;
|
|
55
|
+
*
|
|
56
|
+
* // Generated column (PostgreSQL 12+)
|
|
57
|
+
* @GeneratedAlways({
|
|
58
|
+
* as: 'id + 1',
|
|
59
|
+
* stored: true
|
|
60
|
+
* })
|
|
61
|
+
* sequenceNumber: number;
|
|
62
|
+
*
|
|
63
|
+
* // Exclusion constraint (PostgreSQL)
|
|
64
|
+
* @Exclusion({
|
|
65
|
+
* using: 'daterange',
|
|
66
|
+
* elements: ['daterange WITH &&']
|
|
67
|
+
* })
|
|
68
|
+
* bookingRange: [Date, Date];
|
|
69
|
+
*/
|
|
70
|
+
import 'reflect-metadata';
|
|
71
|
+
/**
|
|
72
|
+
* Foreign key action types for ON DELETE / ON UPDATE
|
|
73
|
+
*/
|
|
74
|
+
export type ForeignKeyAction = 'CASCADE' | 'RESTRICT' | 'SET NULL' | 'SET DEFAULT' | 'NO ACTION';
|
|
75
|
+
/**
|
|
76
|
+
* Deferrable type for foreign key constraints
|
|
77
|
+
*/
|
|
78
|
+
export type DeferrableType = 'NOT DEFERRABLE' | 'INITIALLY IMMEDIATE' | 'INITIALLY DEFERRED';
|
|
79
|
+
/**
|
|
80
|
+
* Identity type for auto-increment columns
|
|
81
|
+
*/
|
|
82
|
+
export type IdentityType = 'ALWAYS' | 'BY DEFAULT';
|
|
83
|
+
/**
|
|
84
|
+
* Options for @References decorator
|
|
85
|
+
*/
|
|
86
|
+
export interface ReferencesOptions {
|
|
87
|
+
/** Referenced model (class or string model name) */
|
|
88
|
+
model: Function | string;
|
|
89
|
+
/** Referenced column key (default: 'id') */
|
|
90
|
+
key?: string;
|
|
91
|
+
/** FK constraint name (auto-generated if not provided) */
|
|
92
|
+
name?: string;
|
|
93
|
+
/** Make constraint deferrable */
|
|
94
|
+
deferrable?: DeferrableType;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Options for @Deferrable decorator
|
|
98
|
+
*/
|
|
99
|
+
export interface DeferrableOptions {
|
|
100
|
+
/** Deferrable type */
|
|
101
|
+
deferrable: DeferrableType;
|
|
102
|
+
/** Override for specific operation */
|
|
103
|
+
deferFor?: DeferrableType;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Options for @AutoIncrement decorator
|
|
107
|
+
*/
|
|
108
|
+
export interface AutoIncrementOptions {
|
|
109
|
+
/** Starting value for the sequence */
|
|
110
|
+
start?: number;
|
|
111
|
+
/** Increment value */
|
|
112
|
+
increment?: number;
|
|
113
|
+
/** Number of values to cache */
|
|
114
|
+
cache?: number;
|
|
115
|
+
/** Minimum value */
|
|
116
|
+
minValue?: number;
|
|
117
|
+
/** Maximum value */
|
|
118
|
+
maxValue?: number;
|
|
119
|
+
/** Whether to cycle when exhausted */
|
|
120
|
+
cycle?: boolean;
|
|
121
|
+
/** Custom sequence name (PostgreSQL) */
|
|
122
|
+
sequence?: string;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Options for @Identity decorator (PostgreSQL sequences)
|
|
126
|
+
*/
|
|
127
|
+
export interface IdentityOptions {
|
|
128
|
+
/** Identity type: ALWAYS or BY DEFAULT */
|
|
129
|
+
type?: IdentityType;
|
|
130
|
+
/** Starting value */
|
|
131
|
+
start?: number;
|
|
132
|
+
/** Increment value */
|
|
133
|
+
increment?: number;
|
|
134
|
+
/** Cache size */
|
|
135
|
+
cache?: number;
|
|
136
|
+
/** Minimum value */
|
|
137
|
+
min?: number;
|
|
138
|
+
/** Maximum value */
|
|
139
|
+
max?: number;
|
|
140
|
+
/** Whether to cycle */
|
|
141
|
+
cycle?: boolean;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Options for @GeneratedAlways decorator (PostgreSQL 12+)
|
|
145
|
+
*/
|
|
146
|
+
export interface GeneratedAlwaysOptions {
|
|
147
|
+
/** SQL expression for generated column */
|
|
148
|
+
as: string;
|
|
149
|
+
/** Whether column is stored (vs virtual) */
|
|
150
|
+
stored?: boolean;
|
|
151
|
+
/** Column type (required for stored generated columns) */
|
|
152
|
+
type?: string;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Options for @Exclusion decorator (PostgreSQL)
|
|
156
|
+
*/
|
|
157
|
+
export interface ExclusionOptions {
|
|
158
|
+
/** Index using method (gist, btree, etc.) */
|
|
159
|
+
using?: string;
|
|
160
|
+
/** Exclusion elements with operators */
|
|
161
|
+
elements: string[];
|
|
162
|
+
/** Constraint name */
|
|
163
|
+
name?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Metadata stored on property
|
|
167
|
+
*/
|
|
168
|
+
export interface ForeignKeyMetadata {
|
|
169
|
+
propertyName: string;
|
|
170
|
+
onDelete?: ForeignKeyAction;
|
|
171
|
+
onUpdate?: ForeignKeyAction;
|
|
172
|
+
references?: ReferencesOptions;
|
|
173
|
+
deferrable?: DeferrableOptions;
|
|
174
|
+
}
|
|
175
|
+
export interface UniqueMetadata {
|
|
176
|
+
propertyName: string;
|
|
177
|
+
constraintName?: string;
|
|
178
|
+
}
|
|
179
|
+
export interface AutoIncrementMetadata {
|
|
180
|
+
propertyName: string;
|
|
181
|
+
options: AutoIncrementOptions;
|
|
182
|
+
}
|
|
183
|
+
export interface IdentityMetadata {
|
|
184
|
+
propertyName: string;
|
|
185
|
+
options: IdentityOptions;
|
|
186
|
+
}
|
|
187
|
+
export interface GeneratedAlwaysMetadata {
|
|
188
|
+
propertyName: string;
|
|
189
|
+
options: GeneratedAlwaysOptions;
|
|
190
|
+
}
|
|
191
|
+
export interface ExclusionMetadata {
|
|
192
|
+
propertyName: string;
|
|
193
|
+
options: ExclusionOptions;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* @OnDelete - Specify foreign key ON DELETE action
|
|
197
|
+
*
|
|
198
|
+
* @OnDelete('CASCADE')
|
|
199
|
+
* roleId: number;
|
|
200
|
+
*
|
|
201
|
+
* @param action - The delete action (CASCADE, RESTRICT, SET NULL, SET DEFAULT, NO ACTION)
|
|
202
|
+
*/
|
|
203
|
+
export declare function OnDelete(action: ForeignKeyAction): PropertyDecorator;
|
|
204
|
+
/**
|
|
205
|
+
* @OnUpdate - Specify foreign key ON UPDATE action
|
|
206
|
+
*
|
|
207
|
+
* @OnUpdate('CASCADE')
|
|
208
|
+
* roleId: number;
|
|
209
|
+
*
|
|
210
|
+
* @param action - The update action (CASCADE, RESTRICT, SET NULL, SET DEFAULT, NO ACTION)
|
|
211
|
+
*/
|
|
212
|
+
export declare function OnUpdate(action: ForeignKeyAction): PropertyDecorator;
|
|
213
|
+
/**
|
|
214
|
+
* @References - Define foreign key references
|
|
215
|
+
*
|
|
216
|
+
* @References({ model: Role, key: 'id' })
|
|
217
|
+
* roleId: number;
|
|
218
|
+
*
|
|
219
|
+
* @References({
|
|
220
|
+
* model: User,
|
|
221
|
+
* key: 'id',
|
|
222
|
+
* deferrable: 'INITIALLY DEFERRED'
|
|
223
|
+
* })
|
|
224
|
+
* assignedTo: number;
|
|
225
|
+
*
|
|
226
|
+
* @param options - Reference configuration
|
|
227
|
+
*/
|
|
228
|
+
export declare function References(options: ReferencesOptions): PropertyDecorator;
|
|
229
|
+
/**
|
|
230
|
+
* @Deferrable - Make constraint deferrable
|
|
231
|
+
*
|
|
232
|
+
* @Deferrable('INITIALLY DEFERRED')
|
|
233
|
+
* email: string;
|
|
234
|
+
*
|
|
235
|
+
* // With operation override
|
|
236
|
+
* @Deferrable({
|
|
237
|
+
* deferrable: 'INITIALLY IMMEDIATE',
|
|
238
|
+
* deferFor: 'NOT DEFERRABLE'
|
|
239
|
+
* })
|
|
240
|
+
* departmentId: number;
|
|
241
|
+
*
|
|
242
|
+
* @param options - Deferrable configuration (string or object)
|
|
243
|
+
*/
|
|
244
|
+
export declare function Deferrable(options: DeferrableType | DeferrableOptions): PropertyDecorator;
|
|
245
|
+
/**
|
|
246
|
+
* @Unique - Add unique constraint to a column
|
|
247
|
+
*
|
|
248
|
+
* @Unique('user_email')
|
|
249
|
+
* email: string;
|
|
250
|
+
*
|
|
251
|
+
* @param name - Optional constraint name
|
|
252
|
+
*/
|
|
253
|
+
export declare function Unique(name?: string): PropertyDecorator;
|
|
254
|
+
/**
|
|
255
|
+
* @AutoIncrement - Configure auto-increment with custom settings
|
|
256
|
+
*
|
|
257
|
+
* @AutoIncrement({
|
|
258
|
+
* start: 1000,
|
|
259
|
+
* increment: 1,
|
|
260
|
+
* cache: 1000,
|
|
261
|
+
* minValue: 1,
|
|
262
|
+
* maxValue: 999999,
|
|
263
|
+
* cycle: false,
|
|
264
|
+
* sequence: 'user_id_seq'
|
|
265
|
+
* })
|
|
266
|
+
* id: number;
|
|
267
|
+
*
|
|
268
|
+
* @param options - Auto-increment configuration
|
|
269
|
+
*/
|
|
270
|
+
export declare function AutoIncrement(options: AutoIncrementOptions): PropertyDecorator;
|
|
271
|
+
/**
|
|
272
|
+
* @Identity - Configure sequence-based identity (PostgreSQL)
|
|
273
|
+
*
|
|
274
|
+
* @Identity({
|
|
275
|
+
* type: 'ALWAYS',
|
|
276
|
+
* start: 1,
|
|
277
|
+
* increment: 1
|
|
278
|
+
* })
|
|
279
|
+
* id: number;
|
|
280
|
+
*
|
|
281
|
+
* @param options - Identity configuration
|
|
282
|
+
*/
|
|
283
|
+
export declare function Identity(options: IdentityOptions): PropertyDecorator;
|
|
284
|
+
/**
|
|
285
|
+
* @GeneratedAlways - Define a generated column (PostgreSQL 12+)
|
|
286
|
+
*
|
|
287
|
+
* @GeneratedAlways({
|
|
288
|
+
* as: 'id + 1',
|
|
289
|
+
* stored: true
|
|
290
|
+
* })
|
|
291
|
+
* sequenceNumber: number;
|
|
292
|
+
*
|
|
293
|
+
* @param options - Generated column configuration
|
|
294
|
+
*/
|
|
295
|
+
export declare function GeneratedAlways(options: GeneratedAlwaysOptions): PropertyDecorator;
|
|
296
|
+
/**
|
|
297
|
+
* @Exclusion - Define exclusion constraint (PostgreSQL)
|
|
298
|
+
*
|
|
299
|
+
* @Exclusion({
|
|
300
|
+
* using: 'daterange',
|
|
301
|
+
* elements: ['daterange WITH &&']
|
|
302
|
+
* })
|
|
303
|
+
* bookingRange: [Date, Date];
|
|
304
|
+
*
|
|
305
|
+
* @param options - Exclusion constraint configuration
|
|
306
|
+
*/
|
|
307
|
+
export declare function Exclusion(options: ExclusionOptions): PropertyDecorator;
|
|
308
|
+
/**
|
|
309
|
+
* Get foreign key metadata for a property.
|
|
310
|
+
*/
|
|
311
|
+
export declare function getForeignKeyMetadata(target: object, propertyKey: string): ForeignKeyMetadata | undefined;
|
|
312
|
+
/**
|
|
313
|
+
* Get all foreign key metadata for a class.
|
|
314
|
+
*/
|
|
315
|
+
export declare function getAllForeignKeyMetadata(target: object): Map<string, ForeignKeyMetadata>;
|
|
316
|
+
/**
|
|
317
|
+
* Get unique metadata for a property.
|
|
318
|
+
*/
|
|
319
|
+
export declare function getUniqueMetadata(target: object, propertyKey: string): UniqueMetadata | undefined;
|
|
320
|
+
/**
|
|
321
|
+
* Get all unique metadata for a class.
|
|
322
|
+
*/
|
|
323
|
+
export declare function getAllUniqueMetadata(target: object): Map<string, UniqueMetadata>;
|
|
324
|
+
/**
|
|
325
|
+
* Get auto-increment metadata for a property.
|
|
326
|
+
*/
|
|
327
|
+
export declare function getAutoIncrementMetadata(target: object, propertyKey: string): AutoIncrementMetadata | undefined;
|
|
328
|
+
/**
|
|
329
|
+
* Get all auto-increment metadata for a class.
|
|
330
|
+
*/
|
|
331
|
+
export declare function getAllAutoIncrementMetadata(target: object): Map<string, AutoIncrementMetadata>;
|
|
332
|
+
/**
|
|
333
|
+
* Get identity metadata for a property.
|
|
334
|
+
*/
|
|
335
|
+
export declare function getIdentityMetadata(target: object, propertyKey: string): IdentityMetadata | undefined;
|
|
336
|
+
/**
|
|
337
|
+
* Get all identity metadata for a class.
|
|
338
|
+
*/
|
|
339
|
+
export declare function getAllIdentityMetadata(target: object): Map<string, IdentityMetadata>;
|
|
340
|
+
/**
|
|
341
|
+
* Get generated always metadata for a property.
|
|
342
|
+
*/
|
|
343
|
+
export declare function getGeneratedAlwaysMetadata(target: object, propertyKey: string): GeneratedAlwaysMetadata | undefined;
|
|
344
|
+
/**
|
|
345
|
+
* Get all generated always metadata for a class.
|
|
346
|
+
*/
|
|
347
|
+
export declare function getAllGeneratedAlwaysMetadata(target: object): Map<string, GeneratedAlwaysMetadata>;
|
|
348
|
+
/**
|
|
349
|
+
* Get exclusion metadata for a property.
|
|
350
|
+
*/
|
|
351
|
+
export declare function getExclusionMetadata(target: object, propertyKey: string): ExclusionMetadata | undefined;
|
|
352
|
+
/**
|
|
353
|
+
* Get all exclusion metadata for a class.
|
|
354
|
+
*/
|
|
355
|
+
export declare function getAllExclusionMetadata(target: object): Map<string, ExclusionMetadata>;
|
|
356
|
+
/**
|
|
357
|
+
* Build ON DELETE SQL clause.
|
|
358
|
+
*/
|
|
359
|
+
export declare function buildOnDeleteSQL(action: ForeignKeyAction): string;
|
|
360
|
+
/**
|
|
361
|
+
* Build ON UPDATE SQL clause.
|
|
362
|
+
*/
|
|
363
|
+
export declare function buildOnUpdateSQL(action: ForeignKeyAction): string;
|
|
364
|
+
/**
|
|
365
|
+
* Build REFERENCES SQL clause.
|
|
366
|
+
*/
|
|
367
|
+
export declare function buildReferencesSQL(options: ReferencesOptions): string;
|
|
368
|
+
/**
|
|
369
|
+
* Build DEFERRABLE SQL clause.
|
|
370
|
+
*/
|
|
371
|
+
export declare function buildDeferrableSQL(options: DeferrableOptions): string;
|
|
372
|
+
/**
|
|
373
|
+
* Build AUTO_INCREMENT / IDENTITY SQL.
|
|
374
|
+
*/
|
|
375
|
+
export declare function buildAutoIncrementSQL(options: AutoIncrementOptions): string;
|
|
376
|
+
/**
|
|
377
|
+
* Build IDENTITY SQL (PostgreSQL).
|
|
378
|
+
*/
|
|
379
|
+
export declare function buildIdentitySQL(options: IdentityOptions): string;
|
|
380
|
+
/**
|
|
381
|
+
* Build GENERATED ALWAYS SQL (PostgreSQL 12+).
|
|
382
|
+
*/
|
|
383
|
+
export declare function buildGeneratedAlwaysSQL(options: GeneratedAlwaysOptions): string;
|
|
384
|
+
/**
|
|
385
|
+
* Build EXCLUSION constraint SQL (PostgreSQL).
|
|
386
|
+
*/
|
|
387
|
+
export declare function buildExclusionSQL(tableName: string, options: ExclusionOptions): string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @ForeignTable class decorator
|
|
3
|
+
* for PostgreSQL FOREIGN TABLE with Redis caching
|
|
4
|
+
*/
|
|
5
|
+
import type { Prorm } from '../prorm';
|
|
6
|
+
export interface RedisClient {
|
|
7
|
+
set(key: string, value: string, mode?: string, ttl?: number): Promise<string>;
|
|
8
|
+
get(key: string): Promise<string | null>;
|
|
9
|
+
del(key: string): Promise<number>;
|
|
10
|
+
exists(key: string): Promise<number>;
|
|
11
|
+
expire(key: string, seconds: number): Promise<number>;
|
|
12
|
+
ttl(key: string): Promise<number>;
|
|
13
|
+
multi(): RedisMulti;
|
|
14
|
+
}
|
|
15
|
+
export interface RedisMulti {
|
|
16
|
+
set(key: string, value: string, mode?: string, ttl?: number): RedisMulti;
|
|
17
|
+
get(key: string): RedisMulti;
|
|
18
|
+
del(key: string): RedisMulti;
|
|
19
|
+
expire(key: string, seconds: number): RedisMulti;
|
|
20
|
+
exec(): Promise<Array<[Error | null, any]>>;
|
|
21
|
+
}
|
|
22
|
+
export interface ForeignTableCacheOptions {
|
|
23
|
+
redis?: boolean;
|
|
24
|
+
ttl?: number;
|
|
25
|
+
keyPrefix?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ForeignTableUserMapping {
|
|
28
|
+
user: string;
|
|
29
|
+
options?: Record<string, string>;
|
|
30
|
+
}
|
|
31
|
+
export interface ForeignTableOptions {
|
|
32
|
+
server: string;
|
|
33
|
+
foreignSchema?: string;
|
|
34
|
+
options?: Record<string, string>;
|
|
35
|
+
userMappings?: ForeignTableUserMapping[];
|
|
36
|
+
columns?: Record<string, {
|
|
37
|
+
type: string;
|
|
38
|
+
options?: string;
|
|
39
|
+
}>;
|
|
40
|
+
cache?: ForeignTableCacheOptions;
|
|
41
|
+
ifNotExists?: boolean;
|
|
42
|
+
schema?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function setForeignTableRedisClient(client: RedisClient): void;
|
|
45
|
+
export declare function getForeignTableRedisClient(): RedisClient | null;
|
|
46
|
+
export declare function ForeignTable(options: ForeignTableOptions): (target: Function) => void;
|
|
47
|
+
export declare function getForeignTableOptions(target: Function): ForeignTableOptions | undefined;
|
|
48
|
+
export declare function isForeignTable(target: Function): boolean;
|
|
49
|
+
export declare function cacheForeignTableOptions(target: Function, options?: ForeignTableOptions): Promise<void>;
|
|
50
|
+
export declare function getCachedForeignTableOptions(target: Function): Promise<ForeignTableOptions | null>;
|
|
51
|
+
export declare function invalidateForeignTableCache(target: Function): Promise<void>;
|
|
52
|
+
export declare function warmupForeignTableCache(target: Function, prorm: Prorm): Promise<void>;
|
|
53
|
+
export declare const ForeignTableRegistry: {
|
|
54
|
+
getOptions(target: Function): ForeignTableOptions | undefined;
|
|
55
|
+
isForeignTable(target: Function): boolean;
|
|
56
|
+
getSQL(target: Function): string;
|
|
57
|
+
};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated Column decorators for the ORM.
|
|
3
|
+
*
|
|
4
|
+
* Supports database-level computed columns:
|
|
5
|
+
* - VIRTUAL: Computed on read, not stored in DB
|
|
6
|
+
* - STORED: Computed on write, physically stored in DB
|
|
7
|
+
* - IDENTITY: Auto-increment primary key configuration
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
*
|
|
11
|
+
* // Virtual computed column (default)
|
|
12
|
+
* @Generated()
|
|
13
|
+
* get fullName() {
|
|
14
|
+
* return `${this.firstName} ${this.lastName}`;
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* // Stored computed column
|
|
18
|
+
* @Generated('stored')
|
|
19
|
+
* get total() {
|
|
20
|
+
* return this.price * this.quantity;
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* // With custom expression
|
|
24
|
+
* @Generated({
|
|
25
|
+
* as: 'CONCAT(first_name, " ", last_name)',
|
|
26
|
+
* type: 'varchar(255)',
|
|
27
|
+
* stored: true
|
|
28
|
+
* })
|
|
29
|
+
* fullName: string;
|
|
30
|
+
*
|
|
31
|
+
* // Identity/Auto-increment configuration
|
|
32
|
+
* @Generated({
|
|
33
|
+
* identity: true,
|
|
34
|
+
* start: 1,
|
|
35
|
+
* increment: 1,
|
|
36
|
+
* cache: 1000
|
|
37
|
+
* })
|
|
38
|
+
* id: number;
|
|
39
|
+
*/
|
|
40
|
+
import 'reflect-metadata';
|
|
41
|
+
/**
|
|
42
|
+
* Generated column type - how the column value is computed
|
|
43
|
+
*/
|
|
44
|
+
export type GeneratedType = 'virtual' | 'stored';
|
|
45
|
+
/**
|
|
46
|
+
* Supported SQL dialect identifiers used throughout the ORM
|
|
47
|
+
*/
|
|
48
|
+
export type GeneratedDialect = 'mysql' | 'mariadb' | 'postgres' | 'mssql' | 'oracle' | 'sqlite';
|
|
49
|
+
/**
|
|
50
|
+
* Options for @Generated decorator
|
|
51
|
+
*/
|
|
52
|
+
export interface GeneratedOptions {
|
|
53
|
+
/**
|
|
54
|
+
* Column type (required for stored/generated columns)
|
|
55
|
+
* Example: 'varchar(255)', 'integer', 'decimal(10,2)'
|
|
56
|
+
*/
|
|
57
|
+
type?: string;
|
|
58
|
+
/**
|
|
59
|
+
* SQL expression for the generated column
|
|
60
|
+
* Example: 'CONCAT(first_name, " ", last_name)', 'price * quantity'
|
|
61
|
+
*/
|
|
62
|
+
as?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Whether the column is stored or virtual
|
|
65
|
+
* - 'virtual' (default): Computed on read, not stored in DB
|
|
66
|
+
* - 'stored': Computed on write, physically stored in DB
|
|
67
|
+
*/
|
|
68
|
+
stored?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Enable identity/auto-increment for the column
|
|
71
|
+
* PostgreSQL: IDENTITY, MySQL: AUTO_INCREMENT
|
|
72
|
+
*/
|
|
73
|
+
identity?: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Starting value for identity sequence
|
|
76
|
+
* PostgreSQL: START WITH, MySQL: auto_increment
|
|
77
|
+
*/
|
|
78
|
+
start?: number;
|
|
79
|
+
/**
|
|
80
|
+
* Increment value for identity sequence
|
|
81
|
+
* PostgreSQL: INCREMENT BY, MySQL: auto_increment_increment
|
|
82
|
+
*/
|
|
83
|
+
increment?: number;
|
|
84
|
+
/**
|
|
85
|
+
* Number of sequence values to cache
|
|
86
|
+
* PostgreSQL: CACHE, MySQL: auto_increment_cache_size
|
|
87
|
+
*/
|
|
88
|
+
cache?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Minimum value for the sequence
|
|
91
|
+
*/
|
|
92
|
+
min?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Maximum value for the sequence
|
|
95
|
+
*/
|
|
96
|
+
max?: number;
|
|
97
|
+
/**
|
|
98
|
+
* Whether the sequence cycles when exhausted
|
|
99
|
+
*/
|
|
100
|
+
cycle?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Custom sequence name (PostgreSQL specific)
|
|
103
|
+
*/
|
|
104
|
+
sequence?: string;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Metadata stored on the target (class or property)
|
|
108
|
+
*/
|
|
109
|
+
export interface GeneratedMetadata {
|
|
110
|
+
/**
|
|
111
|
+
* The property name this decorator is applied to
|
|
112
|
+
*/
|
|
113
|
+
propertyName?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Whether it's a getter (for class property getters)
|
|
116
|
+
*/
|
|
117
|
+
isGetter?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* Generated column options
|
|
120
|
+
*/
|
|
121
|
+
options: GeneratedOptions;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Decorator for generated/computed columns.
|
|
125
|
+
*
|
|
126
|
+
* Usage with getter (for computed properties):
|
|
127
|
+
*
|
|
128
|
+
* class User extends Model {
|
|
129
|
+
* @Generated()
|
|
130
|
+
* get fullName() {
|
|
131
|
+
* return `${this.firstName} ${this.lastName}`;
|
|
132
|
+
* }
|
|
133
|
+
* }
|
|
134
|
+
*
|
|
135
|
+
* Usage with options:
|
|
136
|
+
*
|
|
137
|
+
* @Generated({
|
|
138
|
+
* as: 'CONCAT(first_name, " ", last_name)',
|
|
139
|
+
* type: 'varchar(255)',
|
|
140
|
+
* stored: true
|
|
141
|
+
* })
|
|
142
|
+
* fullName: string;
|
|
143
|
+
*
|
|
144
|
+
* @param options - Generated column options or just storage type
|
|
145
|
+
*/
|
|
146
|
+
export declare function Generated(options?: GeneratedOptions | GeneratedType): PropertyDecorator;
|
|
147
|
+
/**
|
|
148
|
+
* Decorator specifically for identity/auto-increment columns.
|
|
149
|
+
*
|
|
150
|
+
* Usage:
|
|
151
|
+
*
|
|
152
|
+
* @Generated({
|
|
153
|
+
* identity: true,
|
|
154
|
+
* start: 1,
|
|
155
|
+
* increment: 1,
|
|
156
|
+
* cache: 1000
|
|
157
|
+
* })
|
|
158
|
+
* id: number;
|
|
159
|
+
*
|
|
160
|
+
* @param options - Identity configuration options
|
|
161
|
+
*/
|
|
162
|
+
export declare function Identity(options: GeneratedOptions): PropertyDecorator;
|
|
163
|
+
/**
|
|
164
|
+
* Get generated column metadata for a property.
|
|
165
|
+
*
|
|
166
|
+
* @param target - The target class or prototype
|
|
167
|
+
* @param propertyKey - The property name
|
|
168
|
+
* @returns The generated metadata or undefined
|
|
169
|
+
*/
|
|
170
|
+
export declare function getGeneratedMetadata(target: object, propertyKey: string): GeneratedMetadata | undefined;
|
|
171
|
+
/**
|
|
172
|
+
* Get identity metadata for a property.
|
|
173
|
+
*
|
|
174
|
+
* @param target - The target class or prototype
|
|
175
|
+
* @param propertyKey - The property name
|
|
176
|
+
* @returns The identity metadata or undefined
|
|
177
|
+
*/
|
|
178
|
+
export declare function getIdentityMetadata(target: object, propertyKey: string): GeneratedMetadata | undefined;
|
|
179
|
+
/**
|
|
180
|
+
* Get all generated column metadata for a class.
|
|
181
|
+
*
|
|
182
|
+
* @param target - The target class or prototype
|
|
183
|
+
* @returns Map of property names to their generated metadata
|
|
184
|
+
*/
|
|
185
|
+
export declare function getAllGeneratedMetadata(target: object): Map<string, GeneratedMetadata>;
|
|
186
|
+
/**
|
|
187
|
+
* Get all identity metadata for a class.
|
|
188
|
+
*
|
|
189
|
+
* @param target - The target class or prototype
|
|
190
|
+
* @returns Map of property names to their identity metadata
|
|
191
|
+
*/
|
|
192
|
+
export declare function getAllIdentityMetadata(target: object): Map<string, GeneratedMetadata>;
|
|
193
|
+
/**
|
|
194
|
+
* Check if a property is a generated column.
|
|
195
|
+
*
|
|
196
|
+
* @param target - The target class or prototype
|
|
197
|
+
* @param propertyKey - The property name
|
|
198
|
+
* @returns True if the property is generated
|
|
199
|
+
*/
|
|
200
|
+
export declare function isGeneratedColumn(target: object, propertyKey: string): boolean;
|
|
201
|
+
/**
|
|
202
|
+
* Check if a property is an identity/auto-increment column.
|
|
203
|
+
*
|
|
204
|
+
* @param target - The target class or prototype
|
|
205
|
+
* @param propertyKey - The property name
|
|
206
|
+
* @returns True if the property is an identity column
|
|
207
|
+
*/
|
|
208
|
+
export declare function isIdentityColumn(target: object, propertyKey: string): boolean;
|
|
209
|
+
/**
|
|
210
|
+
* Build the SQL expression for a generated column.
|
|
211
|
+
*
|
|
212
|
+
* @param options - The generated column options
|
|
213
|
+
* @returns The SQL expression string
|
|
214
|
+
*/
|
|
215
|
+
export declare function buildGeneratedSQL(options: GeneratedOptions): string;
|
|
216
|
+
/**
|
|
217
|
+
* Check if generated column is stored (persisted) or virtual.
|
|
218
|
+
*
|
|
219
|
+
* When `options.stored` is explicitly set, that value is used as-is.
|
|
220
|
+
* When it is left unspecified, the default depends on the target dialect:
|
|
221
|
+
* - PostgreSQL (before v18) only supports `STORED` generated columns —
|
|
222
|
+
* `VIRTUAL` is not a valid option, so it defaults to `true` (stored).
|
|
223
|
+
* - MySQL/MariaDB support both `VIRTUAL` and `STORED`, and default to
|
|
224
|
+
* `VIRTUAL` (the lighter-weight option), so this defaults to `false`.
|
|
225
|
+
* - Other dialects (sqlite, mssql, oracle) also default to `false`
|
|
226
|
+
* (virtual/computed, not persisted), matching their typical defaults.
|
|
227
|
+
*
|
|
228
|
+
* @param options - The generated column options
|
|
229
|
+
* @param dialect - The target SQL dialect (defaults to 'mysql' for backwards compatibility)
|
|
230
|
+
* @returns True if stored, false if virtual
|
|
231
|
+
*/
|
|
232
|
+
export declare function isStored(options: GeneratedOptions, dialect?: GeneratedDialect): boolean;
|