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,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database Collate and Locale Decorators / Annotations for ts-prorm-orm
|
|
3
|
+
*
|
|
4
|
+
* Provides decorators and enums for managing database collation, locale settings,
|
|
5
|
+
* and encoding options at the column, table, and database levels.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
*
|
|
9
|
+
* // Column-level collation
|
|
10
|
+
* class User extends Model {
|
|
11
|
+
* @SetCollate(CollateEnum.UTF8MB4_UNICODE_CI)
|
|
12
|
+
* @Column
|
|
13
|
+
* name: string;
|
|
14
|
+
*
|
|
15
|
+
* @SetCollate(CollateEnum.UTF8MB4_BIN)
|
|
16
|
+
* @Column
|
|
17
|
+
* password: string;
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // Table-level collation
|
|
21
|
+
* @TableCollate({ collate: CollateEnum.UTF8MB4_SPANISH_CI })
|
|
22
|
+
* class User extends Model {}
|
|
23
|
+
*
|
|
24
|
+
* // Database-level locale settings
|
|
25
|
+
* @Database({
|
|
26
|
+
* name: 'miapp',
|
|
27
|
+
* encoding: 'UTF8',
|
|
28
|
+
* lcCollate: LocaleEnum.ES_ES,
|
|
29
|
+
* lcCtype: LocaleEnum.ES_ES,
|
|
30
|
+
* })
|
|
31
|
+
* class Config extends Model {}
|
|
32
|
+
*
|
|
33
|
+
* // Create database with locale
|
|
34
|
+
* await prorm.createDatabase({
|
|
35
|
+
* name: 'miapp',
|
|
36
|
+
* encoding: 'UTF8',
|
|
37
|
+
* lcCollate: 'es_ES.UTF-8',
|
|
38
|
+
* lcCtype: 'es_ES.UTF-8',
|
|
39
|
+
* template: 'template0',
|
|
40
|
+
* });
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* MySQL/MariaDB collation constants
|
|
44
|
+
*/
|
|
45
|
+
export declare const CollateEnum: {
|
|
46
|
+
readonly UTF8_GENERAL_CI: "utf8_general_ci";
|
|
47
|
+
readonly UTF8_UNICODE_CI: "utf8_unicode_ci";
|
|
48
|
+
readonly UTF8MB4_GENERAL_CI: "utf8mb4_general_ci";
|
|
49
|
+
readonly UTF8MB4_UNICODE_CI: "utf8mb4_unicode_ci";
|
|
50
|
+
readonly UTF8MB4_BIN: "utf8mb4_bin";
|
|
51
|
+
readonly UTF8MB4_SPANISH_CI: "utf8mb4_spanish_ci";
|
|
52
|
+
readonly UTF8MB4_SPANISH2_CI: "utf8mb4_spanish2_ci";
|
|
53
|
+
readonly UTF8MB4_GERMAN_CI: "utf8mb4_german_ci";
|
|
54
|
+
readonly UTF8MB4_SWEDISH_CI: "utf8mb4_swedish_ci";
|
|
55
|
+
readonly UTF8MB4_NOPAD: "utf8mb4_nopad";
|
|
56
|
+
readonly UTF8_NOPAD: "utf8_nopad";
|
|
57
|
+
readonly BINARY: "binary";
|
|
58
|
+
readonly ASCII_GENERAL_CI: "ascii_general_ci";
|
|
59
|
+
readonly ASCII_BIN: "ascii_bin";
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Type representing a collation value
|
|
63
|
+
*/
|
|
64
|
+
export type CollateType = (typeof CollateEnum)[keyof typeof CollateEnum];
|
|
65
|
+
/**
|
|
66
|
+
* @deprecated Use CollateEnum instead
|
|
67
|
+
*/
|
|
68
|
+
export declare const Collate: {
|
|
69
|
+
readonly UTF8_GENERAL_CI: "utf8_general_ci";
|
|
70
|
+
readonly UTF8_UNICODE_CI: "utf8_unicode_ci";
|
|
71
|
+
readonly UTF8MB4_GENERAL_CI: "utf8mb4_general_ci";
|
|
72
|
+
readonly UTF8MB4_UNICODE_CI: "utf8mb4_unicode_ci";
|
|
73
|
+
readonly UTF8MB4_BIN: "utf8mb4_bin";
|
|
74
|
+
readonly UTF8MB4_SPANISH_CI: "utf8mb4_spanish_ci";
|
|
75
|
+
readonly UTF8MB4_SPANISH2_CI: "utf8mb4_spanish2_ci";
|
|
76
|
+
readonly UTF8MB4_GERMAN_CI: "utf8mb4_german_ci";
|
|
77
|
+
readonly UTF8MB4_SWEDISH_CI: "utf8mb4_swedish_ci";
|
|
78
|
+
readonly UTF8MB4_NOPAD: "utf8mb4_nopad";
|
|
79
|
+
readonly UTF8_NOPAD: "utf8_nopad";
|
|
80
|
+
readonly BINARY: "binary";
|
|
81
|
+
readonly ASCII_GENERAL_CI: "ascii_general_ci";
|
|
82
|
+
readonly ASCII_BIN: "ascii_bin";
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Common database locales for POSIX locale strings
|
|
86
|
+
*/
|
|
87
|
+
export declare const LocaleEnum: {
|
|
88
|
+
readonly ES_ES: "es_ES.UTF-8";
|
|
89
|
+
readonly ES_MX: "es_MX.UTF-8";
|
|
90
|
+
readonly ES_AR: "es_AR.UTF-8";
|
|
91
|
+
readonly ES_CO: "es_CO.UTF-8";
|
|
92
|
+
readonly ES_CL: "es_CL.UTF-8";
|
|
93
|
+
readonly EN_US: "en_US.UTF-8";
|
|
94
|
+
readonly EN_GB: "en_GB.UTF-8";
|
|
95
|
+
readonly EN_AU: "en_AU.UTF-8";
|
|
96
|
+
readonly EN_CA: "en_CA.UTF-8";
|
|
97
|
+
readonly DE_DE: "de_DE.UTF-8";
|
|
98
|
+
readonly DE_AT: "de_AT.UTF-8";
|
|
99
|
+
readonly DE_CH: "de_CH.UTF-8";
|
|
100
|
+
readonly FR_FR: "fr_FR.UTF-8";
|
|
101
|
+
readonly FR_CA: "fr_CA.UTF-8";
|
|
102
|
+
readonly PT_BR: "pt_BR.UTF-8";
|
|
103
|
+
readonly PT_PT: "pt_PT.UTF-8";
|
|
104
|
+
readonly IT_IT: "it_IT.UTF-8";
|
|
105
|
+
readonly NL_NL: "nl_NL.UTF-8";
|
|
106
|
+
readonly NL_BE: "nl_BE.UTF-8";
|
|
107
|
+
readonly SV_SE: "sv_SE.UTF-8";
|
|
108
|
+
readonly NB_NO: "nb_NO.UTF-8";
|
|
109
|
+
readonly NN_NO: "nn_NO.UTF-8";
|
|
110
|
+
readonly DA_DK: "da_DK.UTF-8";
|
|
111
|
+
readonly FI_FI: "fi_FI.UTF-8";
|
|
112
|
+
readonly PL_PL: "pl_PL.UTF-8";
|
|
113
|
+
readonly RU_RU: "ru_RU.UTF-8";
|
|
114
|
+
readonly JA_JP: "ja_JP.UTF-8";
|
|
115
|
+
readonly ZH_CN: "zh_CN.UTF-8";
|
|
116
|
+
readonly ZH_TW: "zh_TW.UTF-8";
|
|
117
|
+
readonly ZH_HK: "zh_HK.UTF-8";
|
|
118
|
+
readonly KO_KR: "ko_KR.UTF-8";
|
|
119
|
+
readonly AR_SA: "ar_SA.UTF-8";
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Type representing a locale value
|
|
123
|
+
*/
|
|
124
|
+
export type LocaleType = (typeof LocaleEnum)[keyof typeof LocaleEnum];
|
|
125
|
+
/**
|
|
126
|
+
* @deprecated Use LocaleEnum instead
|
|
127
|
+
*/
|
|
128
|
+
export declare const Locale: {
|
|
129
|
+
readonly ES_ES: "es_ES.UTF-8";
|
|
130
|
+
readonly ES_MX: "es_MX.UTF-8";
|
|
131
|
+
readonly ES_AR: "es_AR.UTF-8";
|
|
132
|
+
readonly ES_CO: "es_CO.UTF-8";
|
|
133
|
+
readonly ES_CL: "es_CL.UTF-8";
|
|
134
|
+
readonly EN_US: "en_US.UTF-8";
|
|
135
|
+
readonly EN_GB: "en_GB.UTF-8";
|
|
136
|
+
readonly EN_AU: "en_AU.UTF-8";
|
|
137
|
+
readonly EN_CA: "en_CA.UTF-8";
|
|
138
|
+
readonly DE_DE: "de_DE.UTF-8";
|
|
139
|
+
readonly DE_AT: "de_AT.UTF-8";
|
|
140
|
+
readonly DE_CH: "de_CH.UTF-8";
|
|
141
|
+
readonly FR_FR: "fr_FR.UTF-8";
|
|
142
|
+
readonly FR_CA: "fr_CA.UTF-8";
|
|
143
|
+
readonly PT_BR: "pt_BR.UTF-8";
|
|
144
|
+
readonly PT_PT: "pt_PT.UTF-8";
|
|
145
|
+
readonly IT_IT: "it_IT.UTF-8";
|
|
146
|
+
readonly NL_NL: "nl_NL.UTF-8";
|
|
147
|
+
readonly NL_BE: "nl_BE.UTF-8";
|
|
148
|
+
readonly SV_SE: "sv_SE.UTF-8";
|
|
149
|
+
readonly NB_NO: "nb_NO.UTF-8";
|
|
150
|
+
readonly NN_NO: "nn_NO.UTF-8";
|
|
151
|
+
readonly DA_DK: "da_DK.UTF-8";
|
|
152
|
+
readonly FI_FI: "fi_FI.UTF-8";
|
|
153
|
+
readonly PL_PL: "pl_PL.UTF-8";
|
|
154
|
+
readonly RU_RU: "ru_RU.UTF-8";
|
|
155
|
+
readonly JA_JP: "ja_JP.UTF-8";
|
|
156
|
+
readonly ZH_CN: "zh_CN.UTF-8";
|
|
157
|
+
readonly ZH_TW: "zh_TW.UTF-8";
|
|
158
|
+
readonly ZH_HK: "zh_HK.UTF-8";
|
|
159
|
+
readonly KO_KR: "ko_KR.UTF-8";
|
|
160
|
+
readonly AR_SA: "ar_SA.UTF-8";
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Options for database creation/configuration
|
|
164
|
+
*/
|
|
165
|
+
export interface DatabaseOptions {
|
|
166
|
+
/**
|
|
167
|
+
* Database name
|
|
168
|
+
*/
|
|
169
|
+
name: string;
|
|
170
|
+
/**
|
|
171
|
+
* Character encoding (e.g., 'UTF8', 'LATIN1')
|
|
172
|
+
*/
|
|
173
|
+
encoding?: string;
|
|
174
|
+
/**
|
|
175
|
+
* LC_COLLATE setting for string sort order
|
|
176
|
+
*/
|
|
177
|
+
lcCollate?: string;
|
|
178
|
+
/**
|
|
179
|
+
* LC_CTYPE setting for character classification
|
|
180
|
+
*/
|
|
181
|
+
lcCtype?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Template database to use (PostgreSQL)
|
|
184
|
+
*/
|
|
185
|
+
template?: string;
|
|
186
|
+
/**
|
|
187
|
+
* Tablespace for the database (PostgreSQL)
|
|
188
|
+
*/
|
|
189
|
+
tablespace?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Connection pool limit
|
|
192
|
+
*/
|
|
193
|
+
connectionLimit?: number;
|
|
194
|
+
/**
|
|
195
|
+
* If true, database is a template (PostgreSQL)
|
|
196
|
+
*/
|
|
197
|
+
isTemplate?: boolean;
|
|
198
|
+
/**
|
|
199
|
+
* Database collation (MySQL/MariaDB)
|
|
200
|
+
*/
|
|
201
|
+
collate?: string;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Options for column-level collation
|
|
205
|
+
*/
|
|
206
|
+
export interface CollateOptions {
|
|
207
|
+
/**
|
|
208
|
+
* The collation to apply to the column
|
|
209
|
+
*/
|
|
210
|
+
collate?: string;
|
|
211
|
+
/**
|
|
212
|
+
* Whether this is a primary key column
|
|
213
|
+
*/
|
|
214
|
+
primaryKey?: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Whether this column should be unique
|
|
217
|
+
*/
|
|
218
|
+
unique?: boolean;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Options for table-level collation
|
|
222
|
+
*/
|
|
223
|
+
export interface TableCollateOptions {
|
|
224
|
+
/**
|
|
225
|
+
* Table collation
|
|
226
|
+
*/
|
|
227
|
+
collate?: string;
|
|
228
|
+
/**
|
|
229
|
+
* Table engine (MySQL)
|
|
230
|
+
*/
|
|
231
|
+
engine?: string;
|
|
232
|
+
/**
|
|
233
|
+
* Table comment
|
|
234
|
+
*/
|
|
235
|
+
comment?: string;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* OrderBy options with locale support
|
|
239
|
+
*/
|
|
240
|
+
export interface OrderByOptions {
|
|
241
|
+
/**
|
|
242
|
+
* Column name to order by
|
|
243
|
+
*/
|
|
244
|
+
column: string;
|
|
245
|
+
/**
|
|
246
|
+
* Sort direction
|
|
247
|
+
*/
|
|
248
|
+
direction?: 'ASC' | 'DESC';
|
|
249
|
+
/**
|
|
250
|
+
* Collation to use for sorting
|
|
251
|
+
*/
|
|
252
|
+
collate?: string;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Decorator to set column-level collation
|
|
256
|
+
*
|
|
257
|
+
* Usage:
|
|
258
|
+
* @Collate(Collate.UTF8MB4_UNICODE_CI)
|
|
259
|
+
* @Column
|
|
260
|
+
* name: string;
|
|
261
|
+
*
|
|
262
|
+
* Or with options:
|
|
263
|
+
* @Collate({ collate: Collate.UTF8MB4_BIN, unique: true })
|
|
264
|
+
* @Column
|
|
265
|
+
* email: string;
|
|
266
|
+
*/
|
|
267
|
+
/**
|
|
268
|
+
* Decorator to set column-level collation
|
|
269
|
+
*
|
|
270
|
+
* Usage:
|
|
271
|
+
* @SetCollate(CollateEnum.UTF8MB4_UNICODE_CI)
|
|
272
|
+
* @Column
|
|
273
|
+
* name: string;
|
|
274
|
+
*
|
|
275
|
+
* Or with options:
|
|
276
|
+
* @SetCollate({ collate: CollateEnum.UTF8MB4_BIN, unique: true })
|
|
277
|
+
* @Column
|
|
278
|
+
* email: string;
|
|
279
|
+
*/
|
|
280
|
+
export declare function SetCollate(collation: string | CollateOptions): ClassDecorator & PropertyDecorator;
|
|
281
|
+
/**
|
|
282
|
+
* Decorator to set database-level options
|
|
283
|
+
*
|
|
284
|
+
* Usage:
|
|
285
|
+
* @Database({
|
|
286
|
+
* name: 'miapp',
|
|
287
|
+
* encoding: 'UTF8',
|
|
288
|
+
* lcCollate: 'es_ES.UTF-8',
|
|
289
|
+
* lcCtype: 'es_ES.UTF-8',
|
|
290
|
+
* connectionLimit: 25,
|
|
291
|
+
* })
|
|
292
|
+
* class Config extends Model {}
|
|
293
|
+
*/
|
|
294
|
+
export declare function Database(options: DatabaseOptions): ClassDecorator;
|
|
295
|
+
/**
|
|
296
|
+
* Decorator to set table-level collation and options
|
|
297
|
+
*
|
|
298
|
+
* Usage:
|
|
299
|
+
* @TableCollate({ collate: 'utf8mb4_spanish_ci', engine: 'InnoDB' })
|
|
300
|
+
* class User extends Model {}
|
|
301
|
+
*/
|
|
302
|
+
export declare function TableCollate(options: TableCollateOptions): ClassDecorator;
|
|
303
|
+
/**
|
|
304
|
+
* Decorator to specify order by with collation
|
|
305
|
+
*
|
|
306
|
+
* Usage:
|
|
307
|
+
* @OrderBy('name', 'ASC', Collate.UTF8MB4_SPANISH_CI)
|
|
308
|
+
* class User extends Model {}
|
|
309
|
+
*/
|
|
310
|
+
export declare function OrderBy(column: string, direction?: 'ASC' | 'DESC', collate?: string): ClassDecorator;
|
|
311
|
+
/**
|
|
312
|
+
* Get collation metadata for a model class
|
|
313
|
+
*/
|
|
314
|
+
export declare function getCollateMetadata(target: any): Map<string, string>;
|
|
315
|
+
/**
|
|
316
|
+
* Get column collation from a model class and property
|
|
317
|
+
*/
|
|
318
|
+
export declare function getColumnCollate(target: any, propertyKey: string): string | undefined;
|
|
319
|
+
/**
|
|
320
|
+
* Get database options for a model class
|
|
321
|
+
*/
|
|
322
|
+
export declare function getDatabaseOptions(target: any): DatabaseOptions | undefined;
|
|
323
|
+
/**
|
|
324
|
+
* Get table collation options for a model class
|
|
325
|
+
*/
|
|
326
|
+
export declare function getTableCollateOptions(target: any): TableCollateOptions | undefined;
|
|
327
|
+
/**
|
|
328
|
+
* Get order by options for a model class
|
|
329
|
+
*/
|
|
330
|
+
export declare function getOrderByOptions(target: any): OrderByOptions[];
|
|
331
|
+
/**
|
|
332
|
+
* Clear all collate metadata (useful for testing)
|
|
333
|
+
*/
|
|
334
|
+
export declare function clearCollateMetadata(): void;
|
|
335
|
+
/**
|
|
336
|
+
* Generate SQL for creating a database with locale settings
|
|
337
|
+
*/
|
|
338
|
+
export declare function generateCreateDatabaseSQL(options: DatabaseOptions): string;
|
|
339
|
+
/**
|
|
340
|
+
* Generate SQL for altering table collation
|
|
341
|
+
*/
|
|
342
|
+
export declare function generateAlterTableCollateSQL(tableName: string, collate: string): string;
|
|
343
|
+
/**
|
|
344
|
+
* Generate SQL for column collation
|
|
345
|
+
*/
|
|
346
|
+
export declare function generateColumnCollateSQL(columnName: string, collate: string): string;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @Comment decorator for database schema annotations
|
|
3
|
+
*
|
|
4
|
+
* Provides the ability to add comments to various database objects:
|
|
5
|
+
* - Table-level comments (on model classes)
|
|
6
|
+
* - Column-level comments (on model fields)
|
|
7
|
+
* - Index comments
|
|
8
|
+
* - Constraint comments
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
*
|
|
12
|
+
* @Comment('This table stores user information')
|
|
13
|
+
* class User extends Model { ... }
|
|
14
|
+
*
|
|
15
|
+
* @Column
|
|
16
|
+
* @Comment('User unique identifier')
|
|
17
|
+
* id: number;
|
|
18
|
+
*
|
|
19
|
+
* @Column
|
|
20
|
+
* @Comment('User email address')
|
|
21
|
+
* email: string;
|
|
22
|
+
*/
|
|
23
|
+
export interface CommentOptions {
|
|
24
|
+
value: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function Comment(value: string): ClassDecorator & PropertyDecorator;
|
|
27
|
+
export declare function getTableComment(target: Function): string | undefined;
|
|
28
|
+
export declare function getFieldComment(target: Function, fieldName: string): string | undefined;
|
|
29
|
+
export declare function getAllFieldComments(target: Function): Record<string, string>;
|
|
30
|
+
export declare function setIndexComment(target: Function, indexName: string, comment: string): void;
|
|
31
|
+
export declare function getIndexComment(target: Function, indexName: string): string | undefined;
|
|
32
|
+
export declare function getAllIndexComments(target: Function): Record<string, string>;
|
|
33
|
+
export declare function setConstraintComment(target: Function, constraintName: string, comment: string): void;
|
|
34
|
+
export declare function getConstraintComment(target: Function, constraintName: string): string | undefined;
|
|
35
|
+
export declare function getAllConstraintComments(target: Function): Record<string, string>;
|
|
36
|
+
export declare const CommentRegistry: {
|
|
37
|
+
getTableComment: typeof getTableComment;
|
|
38
|
+
getFieldComment: typeof getFieldComment;
|
|
39
|
+
getAllFieldComments: typeof getAllFieldComments;
|
|
40
|
+
setIndexComment: typeof setIndexComment;
|
|
41
|
+
getIndexComment: typeof getIndexComment;
|
|
42
|
+
getAllIndexComments: typeof getAllIndexComments;
|
|
43
|
+
setConstraintComment: typeof setConstraintComment;
|
|
44
|
+
getConstraintComment: typeof getConstraintComment;
|
|
45
|
+
getAllConstraintComments: typeof getAllConstraintComments;
|
|
46
|
+
clearComments(target: Function): void;
|
|
47
|
+
};
|
|
48
|
+
export type CommentDialect = 'mysql' | 'mariadb' | 'postgres' | 'mssql' | 'oracle' | 'sqlite';
|
|
49
|
+
export declare function generateCommentSQL(target: Function, tableName?: string, dialect?: CommentDialect): string[];
|
|
50
|
+
export declare function generateIndexCommentSQL(target: Function, tableName: string, dialect?: CommentDialect): string[];
|
|
51
|
+
export declare function generateConstraintCommentSQL(target: Function, tableName: string, dialect?: CommentDialect): string[];
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database-level settings decorators for the ORM.
|
|
3
|
+
*
|
|
4
|
+
* Allows controlling database-level settings for models:
|
|
5
|
+
* - Foreign key checks (MySQL/MariaDB)
|
|
6
|
+
* - Unique checks
|
|
7
|
+
* - Autocommit
|
|
8
|
+
* - SQL mode
|
|
9
|
+
* - Other session-level settings
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
*
|
|
13
|
+
* // Disable FK checks for entire model
|
|
14
|
+
* @ForeignKeyChecks({ enabled: false })
|
|
15
|
+
* class ImportData extends Model {}
|
|
16
|
+
*
|
|
17
|
+
* // Disable FK checks at table level
|
|
18
|
+
* @Table({ foreignKeyChecks: false })
|
|
19
|
+
* class TempData extends Model {}
|
|
20
|
+
*
|
|
21
|
+
* // Set database-level settings
|
|
22
|
+
* @DatabaseSetting('unique_checks', false)
|
|
23
|
+
* @DatabaseSetting('autocommit', false)
|
|
24
|
+
* @DatabaseSetting('sql_mode', 'STRICT_TRANS_TABLES')
|
|
25
|
+
* class ImportData extends Model {}
|
|
26
|
+
*
|
|
27
|
+
* // In transaction
|
|
28
|
+
* await prorm.transaction(async () => {
|
|
29
|
+
* await prorm.setForeignKeyChecks(false);
|
|
30
|
+
* // Bulk import without FK validation
|
|
31
|
+
* await prorm.setForeignKeyChecks(true);
|
|
32
|
+
* });
|
|
33
|
+
*/
|
|
34
|
+
import 'reflect-metadata';
|
|
35
|
+
/**
|
|
36
|
+
* Database setting value types
|
|
37
|
+
*/
|
|
38
|
+
export type DatabaseSettingValue = string | number | boolean | null;
|
|
39
|
+
/**
|
|
40
|
+
* Options for @ForeignKeyChecks decorator
|
|
41
|
+
*/
|
|
42
|
+
export interface ForeignKeyChecksOptions {
|
|
43
|
+
/**
|
|
44
|
+
* Whether to enable or disable foreign key checks
|
|
45
|
+
* Default: true (enabled)
|
|
46
|
+
*/
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Optional description for documentation
|
|
50
|
+
*/
|
|
51
|
+
description?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Options for @DatabaseSetting decorator
|
|
55
|
+
*/
|
|
56
|
+
export interface DatabaseSettingOptions {
|
|
57
|
+
/**
|
|
58
|
+
* The setting name
|
|
59
|
+
* Examples: 'unique_checks', 'autocommit', 'sql_mode', 'foreign_key_checks'
|
|
60
|
+
*/
|
|
61
|
+
name: string;
|
|
62
|
+
/**
|
|
63
|
+
* The value to set
|
|
64
|
+
*/
|
|
65
|
+
value: DatabaseSettingValue;
|
|
66
|
+
/**
|
|
67
|
+
* Whether this setting should be applied per-session or globally
|
|
68
|
+
* Default: 'session'
|
|
69
|
+
*/
|
|
70
|
+
scope?: 'session' | 'global';
|
|
71
|
+
/**
|
|
72
|
+
* Optional description for documentation
|
|
73
|
+
*/
|
|
74
|
+
description?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Model-level database settings collected from decorators
|
|
78
|
+
*/
|
|
79
|
+
export interface ModelDatabaseSettings {
|
|
80
|
+
/**
|
|
81
|
+
* Foreign key checks setting
|
|
82
|
+
*/
|
|
83
|
+
foreignKeyChecks?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Unique checks setting
|
|
86
|
+
*/
|
|
87
|
+
uniqueChecks?: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Autocommit setting
|
|
90
|
+
*/
|
|
91
|
+
autocommit?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* SQL mode setting
|
|
94
|
+
*/
|
|
95
|
+
sqlMode?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Additional settings
|
|
98
|
+
*/
|
|
99
|
+
additionalSettings?: Record<string, DatabaseSettingValue>;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Decorator to control foreign key checks for a model.
|
|
103
|
+
*
|
|
104
|
+
* Useful for bulk imports or data migrations where you need to
|
|
105
|
+
* temporarily disable FK validation.
|
|
106
|
+
*
|
|
107
|
+
* Usage:
|
|
108
|
+
*
|
|
109
|
+
* @ForeignKeyChecks({ enabled: false })
|
|
110
|
+
* class ImportData extends Model {
|
|
111
|
+
* // fields...
|
|
112
|
+
* }
|
|
113
|
+
*
|
|
114
|
+
* @param options - Foreign key check options
|
|
115
|
+
*/
|
|
116
|
+
export declare function ForeignKeyChecks(options?: ForeignKeyChecksOptions): ClassDecorator;
|
|
117
|
+
/**
|
|
118
|
+
* Decorator to set database-level settings for a model.
|
|
119
|
+
*
|
|
120
|
+
* These settings are applied when the model is used and can control
|
|
121
|
+
* session-level database behavior.
|
|
122
|
+
*
|
|
123
|
+
* Usage:
|
|
124
|
+
*
|
|
125
|
+
* @DatabaseSetting('unique_checks', false)
|
|
126
|
+
* @DatabaseSetting('autocommit', false)
|
|
127
|
+
* @DatabaseSetting('sql_mode', 'STRICT_TRANS_TABLES')
|
|
128
|
+
* class ImportData extends Model {
|
|
129
|
+
* // fields...
|
|
130
|
+
* }
|
|
131
|
+
*
|
|
132
|
+
* @param name - The setting name
|
|
133
|
+
* @param value - The value to set
|
|
134
|
+
*/
|
|
135
|
+
export declare function DatabaseSetting(name: string, value: DatabaseSettingValue): ClassDecorator;
|
|
136
|
+
/**
|
|
137
|
+
* Get foreign key checks setting for a model.
|
|
138
|
+
*
|
|
139
|
+
* @param target - The target class or prototype
|
|
140
|
+
* @returns The foreign key checks setting or undefined
|
|
141
|
+
*/
|
|
142
|
+
export declare function getForeignKeyChecksSetting(target: object): boolean | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* Get all database settings for a model.
|
|
145
|
+
*
|
|
146
|
+
* @param target - The target class or prototype
|
|
147
|
+
* @returns The database settings object
|
|
148
|
+
*/
|
|
149
|
+
export declare function getDatabaseSettings(target: object): ModelDatabaseSettings | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Check if foreign key checks are disabled for a model.
|
|
152
|
+
*
|
|
153
|
+
* @param target - The target class or prototype
|
|
154
|
+
* @returns True if FK checks are disabled
|
|
155
|
+
*/
|
|
156
|
+
export declare function isForeignKeyChecksDisabled(target: object): boolean;
|
|
157
|
+
/**
|
|
158
|
+
* Get all model database settings including inherited settings.
|
|
159
|
+
*
|
|
160
|
+
* Walks the prototype chain to collect all settings from parent classes.
|
|
161
|
+
*
|
|
162
|
+
* @param target - The target class or prototype
|
|
163
|
+
* @returns Combined database settings from all levels
|
|
164
|
+
*/
|
|
165
|
+
export declare function getAllDatabaseSettings(target: object): ModelDatabaseSettings;
|
|
166
|
+
/**
|
|
167
|
+
* Generate SQL to apply database settings.
|
|
168
|
+
*
|
|
169
|
+
* @param settings - The database settings
|
|
170
|
+
* @returns Array of SQL statements to execute
|
|
171
|
+
*/
|
|
172
|
+
export declare function generateSettingsSQL(settings: ModelDatabaseSettings): string[];
|
|
173
|
+
/**
|
|
174
|
+
* Create a context manager for temporarily changing database settings.
|
|
175
|
+
*
|
|
176
|
+
* Usage:
|
|
177
|
+
*
|
|
178
|
+
* const settingsManager = createSettingsContext({
|
|
179
|
+
* foreignKeyChecks: false,
|
|
180
|
+
* uniqueChecks: false
|
|
181
|
+
* });
|
|
182
|
+
*
|
|
183
|
+
* await settingsManager.execute(async () => {
|
|
184
|
+
* // Bulk insert without FK checks
|
|
185
|
+
* await Model.bulkCreate(data);
|
|
186
|
+
* });
|
|
187
|
+
*
|
|
188
|
+
* @param settings - Settings to apply during execution
|
|
189
|
+
* @returns Context manager with execute method
|
|
190
|
+
*/
|
|
191
|
+
export declare function createSettingsContext(settings: Partial<ModelDatabaseSettings>): {
|
|
192
|
+
execute: <T>(fn: () => Promise<T>) => Promise<T>;
|
|
193
|
+
};
|