ts-prorm-orm 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/README.md +194 -72
- package/dist/audit/history-query.d.ts +35 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/logger.d.ts +126 -0
- package/dist/cache/cache-manager.d.ts +341 -0
- package/dist/cache/index.d.ts +8 -0
- package/dist/cache/redis-cluster-cache.d.ts +164 -0
- package/dist/cache/redis-cluster-cache.js +19 -36
- package/dist/cli/cloud.d.ts +55 -0
- package/dist/cli/cloud.js +318 -0
- package/dist/cli/commands/auth.d.ts +2 -0
- package/dist/cli/commands/auth.js +345 -0
- package/dist/cli/commands/billing.d.ts +2 -0
- package/dist/cli/commands/billing.js +135 -0
- package/dist/cli/commands/code.d.ts +2 -0
- package/dist/cli/commands/code.js +168 -0
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.js +154 -0
- package/dist/cli/commands/db.d.ts +2 -0
- package/dist/cli/commands/db.js +189 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +22 -0
- package/dist/cli/commands/keys.d.ts +2 -0
- package/dist/cli/commands/keys.js +100 -0
- package/dist/cli/commands/misc.d.ts +2 -0
- package/dist/cli/commands/misc.js +282 -0
- package/dist/cli/commands/pull.d.ts +2 -0
- package/dist/cli/commands/pull.js +306 -0
- package/dist/cli/commands/runners.d.ts +2 -0
- package/dist/cli/commands/runners.js +218 -0
- package/dist/cli/commands/scaffold.d.ts +2 -0
- package/dist/cli/commands/scaffold.js +383 -0
- package/dist/cli/commands/secrets.d.ts +2 -0
- package/dist/cli/commands/secrets.js +162 -0
- package/dist/cli/commands/store.d.ts +2 -0
- package/dist/cli/commands/store.js +274 -0
- package/dist/cli/commands/system.d.ts +10 -0
- package/dist/cli/commands/system.js +169 -0
- package/dist/cli/commands/teams.d.ts +2 -0
- package/dist/cli/commands/teams.js +189 -0
- package/dist/cli/commands/user.d.ts +2 -0
- package/dist/cli/commands/user.js +171 -0
- package/dist/cli/framework.d.ts +103 -0
- package/dist/cli/framework.js +436 -0
- package/dist/cli/io.d.ts +26 -0
- package/dist/cli/io.js +181 -0
- package/dist/cli/keychain.d.ts +10 -0
- package/dist/cli/keychain.js +101 -0
- package/dist/cli/prompt.d.ts +20 -0
- package/dist/cli/prompt.js +111 -0
- package/dist/cli.d.ts +214 -0
- package/dist/cli.js +72 -5
- package/dist/compliance/audit-trail.d.ts +66 -0
- package/dist/compliance/backup-verification.d.ts +279 -0
- package/dist/compliance/breach-detector.d.ts +197 -0
- package/dist/compliance/consent-record.d.ts +107 -0
- package/dist/compliance/consent-versioning.d.ts +169 -0
- package/dist/compliance/cross-border-log.d.ts +254 -0
- package/dist/compliance/data-classifier.d.ts +127 -0
- package/dist/compliance/data-lineage.d.ts +268 -0
- package/dist/compliance/data-masker.d.ts +110 -0
- package/dist/compliance/data-portability.d.ts +98 -0
- package/dist/compliance/data-retention.d.ts +108 -0
- package/dist/compliance/dsar-workflow.d.ts +175 -0
- package/dist/compliance/field-encryption.d.ts +84 -0
- package/dist/compliance/immutable-record.d.ts +84 -0
- package/dist/compliance/index.d.ts +93 -0
- package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
- package/dist/compliance/pseudonymization.d.ts +96 -0
- package/dist/compliance/query-firewall.d.ts +661 -0
- package/dist/compliance/rate-limiter.d.ts +203 -0
- package/dist/compliance/right-to-erasure.d.ts +96 -0
- package/dist/compliance/row-level-security.d.ts +152 -0
- package/dist/compliance/security-decorator.d.ts +388 -0
- package/dist/compliance/security-monitor.d.ts +170 -0
- package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
- package/dist/compliance/session-isolation.d.ts +286 -0
- package/dist/compliance/tls-enforcer.d.ts +51 -0
- package/dist/compliance/worm-storage.d.ts +225 -0
- package/dist/connection-manager.d.ts +130 -0
- package/dist/connection-pool.d.ts +311 -0
- package/dist/decorators/audit.d.ts +49 -0
- package/dist/decorators/check.d.ts +218 -0
- package/dist/decorators/collate.d.ts +346 -0
- package/dist/decorators/comment.d.ts +51 -0
- package/dist/decorators/database-settings.d.ts +193 -0
- package/dist/decorators/default.d.ts +148 -0
- package/dist/decorators/encryption.d.ts +175 -0
- package/dist/decorators/engine.d.ts +97 -0
- package/dist/decorators/fk-constraints.d.ts +387 -0
- package/dist/decorators/foreign-table.d.ts +57 -0
- package/dist/decorators/generated.d.ts +232 -0
- package/dist/decorators/hstore.d.ts +96 -0
- package/dist/decorators/index.d.ts +57 -0
- package/dist/decorators/index.js +14 -30
- package/dist/decorators/json-column.d.ts +47 -0
- package/dist/decorators/jsonb.d.ts +83 -0
- package/dist/decorators/orm-decorators.d.ts +274 -0
- package/dist/decorators/permissions.d.ts +192 -0
- package/dist/decorators/procedure.d.ts +168 -0
- package/dist/decorators/procedure.js +31 -7
- package/dist/decorators/query-options.d.ts +527 -0
- package/dist/decorators/range.d.ts +122 -0
- package/dist/decorators/set-column.d.ts +43 -0
- package/dist/decorators/spatial.d.ts +60 -0
- package/dist/decorators/storage.d.ts +561 -0
- package/dist/decorators/timezone.d.ts +319 -0
- package/dist/decorators/trigger.d.ts +50 -0
- package/dist/decorators/uuid.d.ts +102 -0
- package/dist/decorators/view.d.ts +213 -0
- package/dist/diagrams/chen-diagram.d.ts +70 -0
- package/dist/diagrams/chen-diagram.js +33 -31
- package/dist/diagrams/class-diagram.d.ts +78 -0
- package/dist/diagrams/class-diagram.js +23 -27
- package/dist/diagrams/dependency-diagram.d.ts +82 -0
- package/dist/diagrams/dependency-diagram.js +18 -9
- package/dist/diagrams/er-diagram.d.ts +82 -0
- package/dist/diagrams/er-diagram.js +174 -231
- package/dist/diagrams/flow-diagram.d.ts +70 -0
- package/dist/diagrams/flow-diagram.js +23 -18
- package/dist/diagrams/gantt-diagram.d.ts +67 -0
- package/dist/diagrams/gantt-diagram.js +20 -18
- package/dist/diagrams/index-diagram.d.ts +61 -0
- package/dist/diagrams/index-diagram.js +36 -31
- package/dist/diagrams/index.d.ts +155 -0
- package/dist/diagrams/index.js +7 -1
- package/dist/diagrams/migration-diagram.d.ts +67 -0
- package/dist/diagrams/migration-diagram.js +45 -57
- package/dist/diagrams/model-diagram.d.ts +85 -0
- package/dist/diagrams/model-diagram.js +225 -287
- package/dist/diagrams/package-diagram.d.ts +69 -0
- package/dist/diagrams/package-diagram.js +30 -32
- package/dist/diagrams/palette.d.ts +138 -0
- package/dist/diagrams/palette.js +134 -25
- package/dist/diagrams/relational-diagram.d.ts +82 -0
- package/dist/diagrams/relational-diagram.js +51 -59
- package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
- package/dist/diagrams/schemadoc-diagram.js +36 -28
- package/dist/diagrams/sequence-diagram.d.ts +61 -0
- package/dist/diagrams/sequence-diagram.js +20 -11
- package/dist/diagrams/state-diagram.d.ts +85 -0
- package/dist/diagrams/state-diagram.js +21 -17
- package/dist/diagrams/svg-dom.d.ts +62 -0
- package/dist/diagrams/svg-dom.js +11 -0
- package/dist/diagrams/tree-diagram.d.ts +47 -0
- package/dist/diagrams/tree-diagram.js +19 -10
- package/dist/dialects/clickhouse/index.d.ts +660 -0
- package/dist/dialects/clickhouse/index.js +107 -2
- package/dist/dialects/cockroachdb/index.d.ts +1708 -0
- package/dist/dialects/cockroachdb/index.js +139 -10
- package/dist/dialects/cratedb/index.d.ts +262 -0
- package/dist/dialects/cratedb/index.js +148 -0
- package/dist/dialects/databricks/index.d.ts +397 -0
- package/dist/dialects/databricks/index.js +233 -11
- package/dist/dialects/db2/index.d.ts +729 -0
- package/dist/dialects/db2/index.js +152 -2
- package/dist/dialects/dialect.d.ts +1653 -0
- package/dist/dialects/duckdb/index.d.ts +440 -0
- package/dist/dialects/duckdb/index.js +21 -37
- package/dist/dialects/exasol/index.d.ts +197 -0
- package/dist/dialects/exasol/index.js +14 -0
- package/dist/dialects/firebird/index.d.ts +286 -0
- package/dist/dialects/firebird/index.js +135 -0
- package/dist/dialects/greenplum/index.d.ts +336 -0
- package/dist/dialects/greenplum/index.js +168 -0
- package/dist/dialects/hana/index.d.ts +512 -0
- package/dist/dialects/hana/index.js +17 -35
- package/dist/dialects/mariadb/index.d.ts +1241 -0
- package/dist/dialects/mariadb/index.js +181 -43
- package/dist/dialects/mssql/index.d.ts +729 -0
- package/dist/dialects/mssql/index.js +76 -7
- package/dist/dialects/mysql/index.d.ts +1233 -0
- package/dist/dialects/mysql/index.js +87 -19
- package/dist/dialects/oracle/index.d.ts +1222 -0
- package/dist/dialects/oracle/index.js +210 -9
- package/dist/dialects/postgres/index.d.ts +1598 -0
- package/dist/dialects/postgres/index.js +34 -13
- package/dist/dialects/query-stream-helper.d.ts +58 -0
- package/dist/dialects/questdb/index.d.ts +430 -0
- package/dist/dialects/questdb/index.js +292 -0
- package/dist/dialects/redshift/index.d.ts +933 -0
- package/dist/dialects/redshift/index.js +17 -5
- package/dist/dialects/singlestore/index.d.ts +233 -0
- package/dist/dialects/singlestore/index.js +53 -0
- package/dist/dialects/snowflake/index.d.ts +727 -0
- package/dist/dialects/snowflake/index.js +154 -5
- package/dist/dialects/spanner/index.d.ts +660 -0
- package/dist/dialects/spanner/index.js +43 -21
- package/dist/dialects/sqlite/index.d.ts +1133 -0
- package/dist/dialects/sqlite/index.js +168 -30
- package/dist/dialects/tidb/index.d.ts +226 -0
- package/dist/dialects/tidb/index.js +10 -0
- package/dist/dialects/timescaledb/index.d.ts +286 -0
- package/dist/dialects/timescaledb/index.js +179 -0
- package/dist/dialects/trino/index.d.ts +230 -0
- package/dist/dialects/trino/index.js +85 -10
- package/dist/dialects/turso/index.d.ts +98 -0
- package/dist/dialects/turso/index.js +10 -0
- package/dist/dialects/vertica/index.d.ts +321 -0
- package/dist/dialects/vertica/index.js +161 -0
- package/dist/dialects/yugabytedb/index.d.ts +276 -0
- package/dist/dialects/yugabytedb/index.js +121 -0
- package/dist/errors/index.d.ts +378 -0
- package/dist/errors/index.js +29 -1
- package/dist/errors/utils.d.ts +53 -0
- package/dist/errors.d.ts +5 -0
- package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
- package/dist/extensions/catalog/mssql-features.d.ts +20 -0
- package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
- package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
- package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
- package/dist/extensions/index.d.ts +34 -0
- package/dist/extensions/types.d.ts +43 -0
- package/dist/external-fields/adapters.d.ts +50 -0
- package/dist/external-fields/adapters.js +227 -0
- package/dist/external-fields/decorator.d.ts +77 -0
- package/dist/external-fields/decorator.js +80 -0
- package/dist/external-fields/index.d.ts +10 -0
- package/dist/external-fields/index.js +19 -0
- package/dist/external-fields/runtime.d.ts +39 -0
- package/dist/external-fields/runtime.js +221 -0
- package/dist/foreign-data.d.ts +168 -0
- package/dist/graph/base-graph-dialect.d.ts +250 -0
- package/dist/graph/base-graph-dialect.js +539 -0
- package/dist/graph/dgraph/index.d.ts +65 -0
- package/dist/graph/dgraph/index.js +559 -0
- package/dist/graph/gremlin/index.d.ts +59 -0
- package/dist/graph/gremlin/index.js +378 -0
- package/dist/graph/index.d.ts +60 -0
- package/dist/graph/index.js +67 -0
- package/dist/graph/neo4j/index.d.ts +50 -0
- package/dist/graph/neo4j/index.js +462 -0
- package/dist/graph/types.d.ts +213 -0
- package/dist/graph/types.js +234 -0
- package/dist/hooks/hooks-manager.d.ts +189 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/index.d.ts +711 -0
- package/dist/index.js +19 -4
- package/dist/logging.d.ts +183 -0
- package/dist/migrations/index.d.ts +9 -0
- package/dist/migrations/migration.d.ts +143 -0
- package/dist/migrations/migrator.d.ts +199 -0
- package/dist/migrations/prormmigration.d.ts +131 -0
- package/dist/migrations/query-interface.d.ts +335 -0
- package/dist/migrations/seeder.d.ts +167 -0
- package/dist/models/associations.d.ts +131 -0
- package/dist/models/associations.js +7 -2
- package/dist/models/constraints.d.ts +175 -0
- package/dist/models/data-types.d.ts +1656 -0
- package/dist/models/decorators.d.ts +328 -0
- package/dist/models/decorators.js +61 -82
- package/dist/models/eager-load.d.ts +86 -0
- package/dist/models/eager-load.js +369 -0
- package/dist/models/index.d.ts +13 -0
- package/dist/models/indexes.d.ts +325 -0
- package/dist/models/methods.d.ts +419 -0
- package/dist/models/model-manager.d.ts +76 -0
- package/dist/models/model.d.ts +820 -0
- package/dist/models/model.js +15 -101
- package/dist/models/operators.d.ts +29 -0
- package/dist/models/scopes.d.ts +71 -0
- package/dist/models/typescript-types.d.ts +177 -0
- package/dist/nosql/aerospike/index.d.ts +126 -0
- package/dist/nosql/allegrograph/index.d.ts +86 -0
- package/dist/nosql/arangodb/index.d.ts +285 -0
- package/dist/nosql/arangodb/index.js +274 -2
- package/dist/nosql/arangodb/where.d.ts +38 -0
- package/dist/nosql/arangodb/where.js +94 -0
- package/dist/nosql/azure-blob/index.d.ts +104 -0
- package/dist/nosql/beanstalkd/index.d.ts +88 -0
- package/dist/nosql/beequeue/index.d.ts +99 -0
- package/dist/nosql/bigchaindb/index.d.ts +113 -0
- package/dist/nosql/bigtable/index.d.ts +144 -0
- package/dist/nosql/blazegraph/index.d.ts +88 -0
- package/dist/nosql/bullmq/index.d.ts +83 -0
- package/dist/nosql/cassandra/index.d.ts +119 -0
- package/dist/nosql/chroma/index.d.ts +151 -0
- package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
- package/dist/nosql/coherence/index.d.ts +91 -0
- package/dist/nosql/cosmosdb/index.d.ts +78 -0
- package/dist/nosql/couchbase/index.d.ts +103 -0
- package/dist/nosql/dax/index.d.ts +118 -0
- package/dist/nosql/deno-kv/index.d.ts +109 -0
- package/dist/nosql/dgraph/index.d.ts +80 -0
- package/dist/nosql/doris/index.d.ts +88 -0
- package/dist/nosql/druid/index.d.ts +95 -0
- package/dist/nosql/dynamodb/index.d.ts +643 -0
- package/dist/nosql/dynamodb/index.js +423 -0
- package/dist/nosql/elasticsearch/index.d.ts +239 -0
- package/dist/nosql/etcd/index.d.ts +243 -0
- package/dist/nosql/eventhubs/index.d.ts +89 -0
- package/dist/nosql/eventstore/index.d.ts +102 -0
- package/dist/nosql/faunadb/index.d.ts +141 -0
- package/dist/nosql/faunadb/index.js +329 -0
- package/dist/nosql/firestore/index.d.ts +67 -0
- package/dist/nosql/fluree/index.d.ts +88 -0
- package/dist/nosql/fuseki/index.d.ts +94 -0
- package/dist/nosql/gcs/index.d.ts +62 -0
- package/dist/nosql/gearman/index.d.ts +77 -0
- package/dist/nosql/geode/index.d.ts +93 -0
- package/dist/nosql/graphdb/index.d.ts +86 -0
- package/dist/nosql/graylog/index.d.ts +118 -0
- package/dist/nosql/gridgain/index.d.ts +78 -0
- package/dist/nosql/hazelcast/index.d.ts +73 -0
- package/dist/nosql/hbase/index.d.ts +123 -0
- package/dist/nosql/ignite/index.d.ts +80 -0
- package/dist/nosql/immudb/index.d.ts +131 -0
- package/dist/nosql/index.d.ts +215 -0
- package/dist/nosql/infinispan/index.d.ts +95 -0
- package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
- package/dist/nosql/influxdb/flux-compiler.js +170 -0
- package/dist/nosql/influxdb/index.d.ts +300 -0
- package/dist/nosql/influxdb/index.js +0 -0
- package/dist/nosql/kafka/index.d.ts +113 -0
- package/dist/nosql/keyspaces/index.d.ts +122 -0
- package/dist/nosql/kinesis/index.d.ts +121 -0
- package/dist/nosql/leveldb/index.d.ts +112 -0
- package/dist/nosql/leveldb/index.js +103 -1
- package/dist/nosql/lmdb/index.d.ts +76 -0
- package/dist/nosql/loki/index.d.ts +126 -0
- package/dist/nosql/marklogic/index.d.ts +76 -0
- package/dist/nosql/materialize/index.d.ts +91 -0
- package/dist/nosql/meilisearch/index.d.ts +76 -0
- package/dist/nosql/memcached/index.d.ts +138 -0
- package/dist/nosql/milvus/index.d.ts +167 -0
- package/dist/nosql/minio/index.d.ts +122 -0
- package/dist/nosql/momento/index.d.ts +99 -0
- package/dist/nosql/mongodb/index.d.ts +265 -0
- package/dist/nosql/mongodb/index.js +139 -0
- package/dist/nosql/mongodb/where.d.ts +8 -0
- package/dist/nosql/mongodb/where.js +181 -0
- package/dist/nosql/nats/index.d.ts +139 -0
- package/dist/nosql/nedb/index.d.ts +79 -0
- package/dist/nosql/neo4j/index.d.ts +217 -0
- package/dist/nosql/neo4j/index.js +26 -14
- package/dist/nosql/neptune/index.d.ts +234 -0
- package/dist/nosql/neptune/index.js +23 -9
- package/dist/nosql/nsq/index.d.ts +93 -0
- package/dist/nosql/opensearch/index.d.ts +97 -0
- package/dist/nosql/orientdb/index.d.ts +72 -0
- package/dist/nosql/papertrail/index.d.ts +120 -0
- package/dist/nosql/pinecone/index.d.ts +148 -0
- package/dist/nosql/pinot/index.d.ts +90 -0
- package/dist/nosql/pouchdb/index.d.ts +95 -0
- package/dist/nosql/prometheus/index.d.ts +112 -0
- package/dist/nosql/provendb/index.d.ts +143 -0
- package/dist/nosql/provendb/index.js +262 -0
- package/dist/nosql/pubsub/index.d.ts +83 -0
- package/dist/nosql/pulsar/index.d.ts +105 -0
- package/dist/nosql/qdrant/index.d.ts +231 -0
- package/dist/nosql/qldb/index.d.ts +182 -0
- package/dist/nosql/qldb/index.js +302 -1
- package/dist/nosql/r2/index.d.ts +160 -0
- package/dist/nosql/rabbitmq/index.d.ts +131 -0
- package/dist/nosql/ravendb/index.d.ts +138 -0
- package/dist/nosql/ravendb/index.js +323 -9
- package/dist/nosql/ravendb/where.d.ts +38 -0
- package/dist/nosql/ravendb/where.js +94 -0
- package/dist/nosql/redis/index.d.ts +267 -0
- package/dist/nosql/redis/index.js +19 -5
- package/dist/nosql/redpanda/index.d.ts +117 -0
- package/dist/nosql/resque/index.d.ts +91 -0
- package/dist/nosql/rethinkdb/index.d.ts +194 -0
- package/dist/nosql/rethinkdb/index.js +290 -0
- package/dist/nosql/rethinkdb/where.d.ts +38 -0
- package/dist/nosql/rethinkdb/where.js +94 -0
- package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
- package/dist/nosql/rocksdb/document-layer.js +338 -0
- package/dist/nosql/rocksdb/index.d.ts +112 -0
- package/dist/nosql/rocksdb/index.js +103 -1
- package/dist/nosql/rocksdb/where-match.d.ts +21 -0
- package/dist/nosql/rocksdb/where-match.js +238 -0
- package/dist/nosql/rockset/index.d.ts +84 -0
- package/dist/nosql/s3/index.d.ts +170 -0
- package/dist/nosql/scylladb/index.d.ts +117 -0
- package/dist/nosql/signoz/index.d.ts +116 -0
- package/dist/nosql/sns/index.d.ts +99 -0
- package/dist/nosql/solr/index.d.ts +129 -0
- package/dist/nosql/splunk/index.d.ts +125 -0
- package/dist/nosql/sqs/index.d.ts +116 -0
- package/dist/nosql/stardog/index.d.ts +86 -0
- package/dist/nosql/starrocks/index.d.ts +89 -0
- package/dist/nosql/store.d.ts +23 -0
- package/dist/nosql/sumologic/index.d.ts +119 -0
- package/dist/nosql/surrealdb/index.d.ts +156 -0
- package/dist/nosql/surrealdb/index.js +174 -1
- package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
- package/dist/nosql/surrealdb/query-compiler.js +193 -0
- package/dist/nosql/terminusdb/index.d.ts +95 -0
- package/dist/nosql/tigergraph/index.d.ts +314 -0
- package/dist/nosql/typesense/index.d.ts +82 -0
- package/dist/nosql/unqlite/index.d.ts +68 -0
- package/dist/nosql/upstash/index.d.ts +80 -0
- package/dist/nosql/vercel-kv/index.d.ts +82 -0
- package/dist/nosql/victoriametrics/index.d.ts +129 -0
- package/dist/nosql/virtuoso/index.d.ts +87 -0
- package/dist/nosql/weaviate/index.d.ts +196 -0
- package/dist/operators/index.d.ts +7 -0
- package/dist/operators.d.ts +2947 -0
- package/dist/operators.js +46 -1
- package/dist/prisma-migrate/index.d.ts +28 -0
- package/dist/prisma-migrate/migration-generator.d.ts +21 -0
- package/dist/prisma-migrate/model-generator.d.ts +12 -0
- package/dist/prisma-migrate/relations.d.ts +28 -0
- package/dist/prisma-migrate/schema-parser.d.ts +42 -0
- package/dist/prisma-migrate/type-mapper.d.ts +20 -0
- package/dist/prorm.d.ts +2093 -0
- package/dist/prorm.js +721 -302
- package/dist/query-builders/cte-builder.d.ts +104 -0
- package/dist/query-builders/functions/aggregate.d.ts +199 -0
- package/dist/query-builders/functions/conditional.d.ts +195 -0
- package/dist/query-builders/functions/datetime.d.ts +202 -0
- package/dist/query-builders/functions/fulltext.d.ts +220 -0
- package/dist/query-builders/functions/index.d.ts +17 -0
- package/dist/query-builders/functions/json.d.ts +157 -0
- package/dist/query-builders/functions/math.d.ts +215 -0
- package/dist/query-builders/functions/string.d.ts +233 -0
- package/dist/query-builders/functions/window.d.ts +209 -0
- package/dist/query-builders/include-builder.d.ts +85 -0
- package/dist/query-builders/index-expression-builder.d.ts +153 -0
- package/dist/query-builders/index.d.ts +121 -0
- package/dist/query-builders/index.js +10 -0
- package/dist/query-builders/insert-builder.d.ts +62 -0
- package/dist/query-builders/model-helpers.d.ts +28 -0
- package/dist/query-builders/order-limit-builder.d.ts +84 -0
- package/dist/query-builders/sql-compiler.d.ts +562 -0
- package/dist/query-builders/subquery-builder.d.ts +133 -0
- package/dist/query-builders/update-builder.d.ts +71 -0
- package/dist/query-builders/view-builder.d.ts +189 -0
- package/dist/query-builders/where-builder.d.ts +124 -0
- package/dist/query-interface.d.ts +407 -0
- package/dist/query-interface.js +84 -0
- package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
- package/dist/query-optimizers/explain-plans.d.ts +187 -0
- package/dist/query-optimizers/index.d.ts +27 -0
- package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
- package/dist/query-optimizers/query-hints.d.ts +201 -0
- package/dist/query-optimizers/query-optimizer.d.ts +162 -0
- package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
- package/dist/replica-manager.d.ts +235 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/migration-generator.d.ts +74 -0
- package/dist/schema/schema-differ.d.ts +114 -0
- package/dist/schema/types.d.ts +246 -0
- package/dist/schema-objects.d.ts +78 -0
- package/dist/schema-objects.js +203 -0
- package/dist/sql-constants.d.ts +240 -0
- package/dist/sqlite-advanced.d.ts +572 -0
- package/dist/streams/index.d.ts +5 -0
- package/dist/streams/transforms.d.ts +120 -0
- package/dist/transaction.d.ts +221 -0
- package/dist/types/index.d.ts +3123 -0
- package/dist/user-management.d.ts +141 -0
- package/dist/utils/date.d.ts +149 -0
- package/dist/utils/index.d.ts +359 -0
- package/dist/utils/string.d.ts +88 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/validator.d.ts +306 -0
- package/package.json +20 -5
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Value Decorator for the ORM
|
|
3
|
+
*
|
|
4
|
+
* Provides a type-safe way to set column defaults without raw SQL.
|
|
5
|
+
* Supports static values, functions, sequences, and database functions.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
*
|
|
9
|
+
* // Static values
|
|
10
|
+
* @Default(18)
|
|
11
|
+
* age: number;
|
|
12
|
+
*
|
|
13
|
+
* @Default(true)
|
|
14
|
+
* isActive: boolean;
|
|
15
|
+
*
|
|
16
|
+
* @Default('pending')
|
|
17
|
+
* status: string;
|
|
18
|
+
*
|
|
19
|
+
* // Function for dynamic default
|
|
20
|
+
* @Default(() => new Date())
|
|
21
|
+
* createdAt: Date;
|
|
22
|
+
*
|
|
23
|
+
* // Auto-generate UUID
|
|
24
|
+
* @Default(() => uuidv4())
|
|
25
|
+
* id: string;
|
|
26
|
+
*
|
|
27
|
+
* // For JSON columns
|
|
28
|
+
* @Default({ role: 'user', verified: false })
|
|
29
|
+
* preferences: object;
|
|
30
|
+
*
|
|
31
|
+
* // For array columns
|
|
32
|
+
* @Default(['admin'])
|
|
33
|
+
* roles: string[];
|
|
34
|
+
*
|
|
35
|
+
* // Auto-sequences (PostgreSQL)
|
|
36
|
+
* @Default({ sequence: 'user_id_seq' })
|
|
37
|
+
* id: number;
|
|
38
|
+
*
|
|
39
|
+
* // Database functions
|
|
40
|
+
* @Default({ fn: 'now' })
|
|
41
|
+
* createdAt: Date;
|
|
42
|
+
*
|
|
43
|
+
* @Default({ fn: 'upper', args: ['username'] })
|
|
44
|
+
* username: string;
|
|
45
|
+
*
|
|
46
|
+
* // Raw SQL only when needed
|
|
47
|
+
* @Default({ literal: "CURRENT_TIMESTAMP" })
|
|
48
|
+
* updatedAt: Date;
|
|
49
|
+
*/
|
|
50
|
+
/**
|
|
51
|
+
* Options for default value configuration.
|
|
52
|
+
* Supports multiple ways to specify defaults.
|
|
53
|
+
*/
|
|
54
|
+
export type DefaultValueOptions = DefaultStaticValue | DefaultFunction | DefaultSequence | DefaultDatabaseFn | DefaultLiteral;
|
|
55
|
+
/**
|
|
56
|
+
* Static value (primitive, object, array).
|
|
57
|
+
*/
|
|
58
|
+
export type DefaultStaticValue = any;
|
|
59
|
+
/**
|
|
60
|
+
* Function that returns the default value.
|
|
61
|
+
* Called at runtime when creating new instances.
|
|
62
|
+
*/
|
|
63
|
+
export interface DefaultFunction {
|
|
64
|
+
fn: (instance?: any) => any;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Database sequence for auto-increment (PostgreSQL).
|
|
68
|
+
*/
|
|
69
|
+
export interface DefaultSequence {
|
|
70
|
+
sequence: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Database function call (e.g., NOW(), UPPER(), etc.)
|
|
74
|
+
*/
|
|
75
|
+
export interface DefaultDatabaseFn {
|
|
76
|
+
fn: string;
|
|
77
|
+
args?: any[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Raw SQL literal (use sparingly).
|
|
81
|
+
*/
|
|
82
|
+
export interface DefaultLiteral {
|
|
83
|
+
literal: string;
|
|
84
|
+
}
|
|
85
|
+
export interface DefaultFieldMeta {
|
|
86
|
+
field: string;
|
|
87
|
+
options: DefaultValueOptions;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Get all default field metadata from a model class.
|
|
91
|
+
*/
|
|
92
|
+
export declare function getDefaultFields(target: Function): DefaultFieldMeta[];
|
|
93
|
+
/**
|
|
94
|
+
* Get default value for a specific field.
|
|
95
|
+
*/
|
|
96
|
+
export declare function getDefaultForField(target: Function, field: string): DefaultValueOptions | undefined;
|
|
97
|
+
/**
|
|
98
|
+
* Convert @Default options to prorm column definition format.
|
|
99
|
+
* This is used when initializing the model.
|
|
100
|
+
*/
|
|
101
|
+
export declare function toPrormDefault(options: DefaultValueOptions): any;
|
|
102
|
+
/**
|
|
103
|
+
* Apply default values to a model instance.
|
|
104
|
+
* Call this in beforeCreate/beforeUpdate hooks.
|
|
105
|
+
*
|
|
106
|
+
* @param instance - The model instance
|
|
107
|
+
*/
|
|
108
|
+
export declare function applyDefaultValues(instance: any): void;
|
|
109
|
+
/**
|
|
110
|
+
* Register beforeCreate hook to automatically apply default values.
|
|
111
|
+
* Call once per model after Model.init().
|
|
112
|
+
*
|
|
113
|
+
* @param ModelClass - The model class
|
|
114
|
+
*/
|
|
115
|
+
export declare function applyDefaultHooks(ModelClass: any): void;
|
|
116
|
+
/**
|
|
117
|
+
* Set a default value for a model field.
|
|
118
|
+
*
|
|
119
|
+
* Can be used as:
|
|
120
|
+
* - @Default(18) - static value
|
|
121
|
+
* - @Default(() => new Date()) - function for dynamic defaults
|
|
122
|
+
* - @Default({ sequence: 'user_id_seq' }) - database sequence
|
|
123
|
+
* - @Default({ fn: 'now' }) - database function
|
|
124
|
+
* - @Default({ literal: "CURRENT_TIMESTAMP" }) - raw SQL
|
|
125
|
+
*
|
|
126
|
+
* @param options - The default value or configuration
|
|
127
|
+
*/
|
|
128
|
+
export declare function Default(options: DefaultValueOptions): (target: any, propertyKey: string) => void;
|
|
129
|
+
/**
|
|
130
|
+
* Helper to create a UUID default.
|
|
131
|
+
* Usage: @Default(() => uuidv4())
|
|
132
|
+
*/
|
|
133
|
+
export declare function uuidDefault(): string;
|
|
134
|
+
/**
|
|
135
|
+
* Helper to create a current timestamp default.
|
|
136
|
+
* Usage: @Default(() => new Date())
|
|
137
|
+
*/
|
|
138
|
+
export declare function nowDefault(): Date;
|
|
139
|
+
/**
|
|
140
|
+
* Helper to create a random integer default.
|
|
141
|
+
* Usage: @Default(() => Math.floor(Math.random() * 100))
|
|
142
|
+
*/
|
|
143
|
+
export declare function randomIntDefault(min?: number, max?: number): number;
|
|
144
|
+
/**
|
|
145
|
+
* Helper to create a default based on another field.
|
|
146
|
+
* Usage: @Default((instance) => instance.username?.toLowerCase())
|
|
147
|
+
*/
|
|
148
|
+
export declare function computedDefault(computeFn: (instance: any) => any): DefaultFunction;
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encryption decorators and adapter system for the ORM.
|
|
3
|
+
*
|
|
4
|
+
* Allows fields to be annotated with @Secure so values are automatically
|
|
5
|
+
* hashed before being saved. The encryption algorithm is fully swappable
|
|
6
|
+
* via EncryptionAdapter — default recommendation is bcrypt, but you can
|
|
7
|
+
* plug in argon2, scrypt, or any custom implementation.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
*
|
|
11
|
+
* // 1. Install your preferred package, e.g. npm install bcrypt
|
|
12
|
+
* // 2. Wire up the adapter once at boot time:
|
|
13
|
+
* import bcrypt from 'bcrypt';
|
|
14
|
+
* setEncryptionAdapter({
|
|
15
|
+
* hash: (value) => bcrypt.hash(value, 12),
|
|
16
|
+
* verify: (plain, hashed) => bcrypt.compare(plain, hashed),
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // 3. Annotate fields on your model class:
|
|
20
|
+
* class User extends Model { ... }
|
|
21
|
+
* User.init({
|
|
22
|
+
* password: { type: DataTypes.STRING, allowNull: false }
|
|
23
|
+
* }, { prorm });
|
|
24
|
+
* Secure('password')(User); // field decorator style
|
|
25
|
+
*
|
|
26
|
+
* // Or use the decorator on the class definition (requires experimentalDecorators):
|
|
27
|
+
* @SecureField('password')
|
|
28
|
+
* class User extends Model { ... }
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Pluggable encryption adapter.
|
|
32
|
+
* Implement this interface to use any hashing library.
|
|
33
|
+
*/
|
|
34
|
+
export interface EncryptionAdapter {
|
|
35
|
+
/**
|
|
36
|
+
* Hash a plain-text value.
|
|
37
|
+
* @param value - The plain-text string to hash
|
|
38
|
+
* @returns A promise that resolves to the hashed string
|
|
39
|
+
*/
|
|
40
|
+
hash(value: string): Promise<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Verify a plain-text value against a previously computed hash.
|
|
43
|
+
* @param plain - The plain-text candidate
|
|
44
|
+
* @param hashed - The stored hash to compare against
|
|
45
|
+
* @returns A promise resolving to true if they match
|
|
46
|
+
*/
|
|
47
|
+
verify(plain: string, hashed: string): Promise<boolean>;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Options for the @Secure / SecureField decorator.
|
|
51
|
+
*/
|
|
52
|
+
export interface SecureOptions {
|
|
53
|
+
/**
|
|
54
|
+
* The adapter to use for this specific field.
|
|
55
|
+
* Overrides the global adapter set via setEncryptionAdapter().
|
|
56
|
+
*/
|
|
57
|
+
adapter?: EncryptionAdapter;
|
|
58
|
+
/**
|
|
59
|
+
* If true, the field will only be hashed when the value has changed
|
|
60
|
+
* (i.e. it does not look like a hash already). Default: true.
|
|
61
|
+
*/
|
|
62
|
+
skipIfHashed?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Optional algorithm label for documentation / metadata purposes.
|
|
65
|
+
* Has no functional effect — it just marks the intended algorithm.
|
|
66
|
+
* Example: 'bcrypt', 'argon2id', 'scrypt'
|
|
67
|
+
*/
|
|
68
|
+
algorithm?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Set the global encryption adapter used by all @Secure fields that
|
|
72
|
+
* do not specify their own adapter.
|
|
73
|
+
*
|
|
74
|
+
* Call this once during application bootstrap, e.g.:
|
|
75
|
+
*
|
|
76
|
+
* import bcrypt from 'bcrypt';
|
|
77
|
+
* setEncryptionAdapter({
|
|
78
|
+
* hash: (v) => bcrypt.hash(v, 12),
|
|
79
|
+
* verify: (plain, hash) => bcrypt.compare(plain, hash),
|
|
80
|
+
* });
|
|
81
|
+
*/
|
|
82
|
+
export declare function setEncryptionAdapter(adapter: EncryptionAdapter): void;
|
|
83
|
+
/**
|
|
84
|
+
* Return the currently registered global adapter, or null if none has
|
|
85
|
+
* been configured.
|
|
86
|
+
*/
|
|
87
|
+
export declare function getEncryptionAdapter(): EncryptionAdapter | null;
|
|
88
|
+
export interface SecureFieldMeta {
|
|
89
|
+
field: string;
|
|
90
|
+
options: SecureOptions;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Read the list of secure-field annotations attached to a model constructor.
|
|
94
|
+
*/
|
|
95
|
+
export declare function getSecureFields(target: Function): SecureFieldMeta[];
|
|
96
|
+
/**
|
|
97
|
+
* Mark a model field so its value is automatically hashed before INSERT/UPDATE.
|
|
98
|
+
*
|
|
99
|
+
* This is a class decorator factory — pass the field name(s):
|
|
100
|
+
*
|
|
101
|
+
* @SecureField('password')
|
|
102
|
+
* @SecureField('pin', { algorithm: 'bcrypt', adapter: myAdapter })
|
|
103
|
+
* class User extends Model { ... }
|
|
104
|
+
*
|
|
105
|
+
* The ORM will call hashSecureFields(instance) in a beforeCreate /
|
|
106
|
+
* beforeUpdate hook to encrypt the field before it reaches the database.
|
|
107
|
+
*/
|
|
108
|
+
export declare function SecureField(field: string, options?: SecureOptions): (target: Function) => void;
|
|
109
|
+
/**
|
|
110
|
+
* Alias for SecureField — preferred shorthand.
|
|
111
|
+
*
|
|
112
|
+
* @Secure('password')
|
|
113
|
+
* class User extends Model { ... }
|
|
114
|
+
*/
|
|
115
|
+
export declare const Secure: typeof SecureField;
|
|
116
|
+
/**
|
|
117
|
+
* Hash all @Secure-annotated fields on a model instance.
|
|
118
|
+
*
|
|
119
|
+
* Call this inside a beforeCreate / beforeUpdate hook, or let the ORM
|
|
120
|
+
* do it automatically when you use applySecureHooks().
|
|
121
|
+
*
|
|
122
|
+
* @param instance - The model instance whose fields should be hashed
|
|
123
|
+
*/
|
|
124
|
+
export declare function hashSecureFields(instance: any): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Verify a plain-text value against the stored hash of a @Secure field.
|
|
127
|
+
*
|
|
128
|
+
* @param instance - The model instance containing the stored hash
|
|
129
|
+
* @param field - The field name
|
|
130
|
+
* @param plainText - The candidate value to check
|
|
131
|
+
* @returns true if the plain-text matches the stored hash
|
|
132
|
+
*/
|
|
133
|
+
export declare function verifySecureField(instance: any, field: string, plainText: string): Promise<boolean>;
|
|
134
|
+
/**
|
|
135
|
+
* Register beforeCreate and beforeUpdate hooks on a model so that
|
|
136
|
+
* @Secure fields are automatically hashed whenever an instance is saved.
|
|
137
|
+
*
|
|
138
|
+
* Call once per model after Model.init():
|
|
139
|
+
*
|
|
140
|
+
* applySecureHooks(User);
|
|
141
|
+
*
|
|
142
|
+
* @param ModelClass - The model class (result of prorm.define or Model.init)
|
|
143
|
+
*/
|
|
144
|
+
export declare function applySecureHooks(ModelClass: any): void;
|
|
145
|
+
/**
|
|
146
|
+
* Create a bcrypt adapter.
|
|
147
|
+
*
|
|
148
|
+
* Requires `bcrypt` or `bcryptjs` to be installed:
|
|
149
|
+
* npm install bcrypt (native, faster)
|
|
150
|
+
* npm install bcryptjs (pure JS, no native build)
|
|
151
|
+
*
|
|
152
|
+
* @param saltRounds - bcrypt cost factor (default: 12)
|
|
153
|
+
*
|
|
154
|
+
* Usage:
|
|
155
|
+
* import bcrypt from 'bcrypt';
|
|
156
|
+
* setEncryptionAdapter(createBcryptAdapter(bcrypt, 12));
|
|
157
|
+
*/
|
|
158
|
+
export declare function createBcryptAdapter(bcryptLib: {
|
|
159
|
+
hash(data: string, saltOrRounds: number): Promise<string>;
|
|
160
|
+
compare(data: string, encrypted: string): Promise<boolean>;
|
|
161
|
+
}, saltRounds?: number): EncryptionAdapter;
|
|
162
|
+
/**
|
|
163
|
+
* Create an argon2 adapter.
|
|
164
|
+
*
|
|
165
|
+
* Requires `argon2` to be installed:
|
|
166
|
+
* npm install argon2
|
|
167
|
+
*
|
|
168
|
+
* Usage:
|
|
169
|
+
* import argon2 from 'argon2';
|
|
170
|
+
* setEncryptionAdapter(createArgon2Adapter(argon2));
|
|
171
|
+
*/
|
|
172
|
+
export declare function createArgon2Adapter(argon2Lib: {
|
|
173
|
+
hash(plain: string): Promise<string>;
|
|
174
|
+
verify(hash: string, plain: string): Promise<boolean>;
|
|
175
|
+
}): EncryptionAdapter;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@Engine` — class decorator for annotating a Model with dialect-specific
|
|
3
|
+
* per-table storage-engine configuration, mirroring the `@View`/
|
|
4
|
+
* `@MaterializedView` pattern (`src/decorators/view.ts`): stores metadata on
|
|
5
|
+
* the class, exposed via a registry, rather than being silently read by
|
|
6
|
+
* `Prorm.sync()` - keeping engine selection an explicit, visible step.
|
|
7
|
+
*
|
|
8
|
+
* Built for ClickHouse's MergeTree-family engine configuration first (the
|
|
9
|
+
* dialect that most needs per-table engine choice - `mergeTreeEngine`/
|
|
10
|
+
* `orderBy`/`ttl`/`partitionBy`/`projections` are all read as loosely-typed
|
|
11
|
+
* extensions off `TableOptions` in `src/dialects/clickhouse/index.ts` since
|
|
12
|
+
* the base `Dialect` interface has no notion of storage engines), but the
|
|
13
|
+
* shape is generic enough for any dialect with similar per-table engine/
|
|
14
|
+
* storage options (e.g. MySQL's `ENGINE=InnoDB`).
|
|
15
|
+
*
|
|
16
|
+
* Example:
|
|
17
|
+
*
|
|
18
|
+
* @Engine({
|
|
19
|
+
* mergeTreeEngine: { type: 'ReplacingMergeTree', version: 'updatedAt' },
|
|
20
|
+
* orderBy: ['id', 'createdAt'],
|
|
21
|
+
* ttl: 'createdAt + INTERVAL 90 DAY',
|
|
22
|
+
* })
|
|
23
|
+
* class Event extends Model {
|
|
24
|
+
* declare id: number;
|
|
25
|
+
* declare createdAt: Date;
|
|
26
|
+
* declare updatedAt: Date;
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* // At table-creation time:
|
|
30
|
+
* const dialect = prorm.getDialectInstance() as ClickHouseDialect;
|
|
31
|
+
* await dialect.createTable('events', columns, {
|
|
32
|
+
* ...EngineRegistry.getTableOptions(Event),
|
|
33
|
+
* });
|
|
34
|
+
*/
|
|
35
|
+
import type { MergeTreeEngineConfig, ProjectionDefinition } from '../dialects/clickhouse';
|
|
36
|
+
export interface EngineOptions {
|
|
37
|
+
/**
|
|
38
|
+
* MySQL/MariaDB-style raw engine name, e.g. 'InnoDB', 'MyISAM'.
|
|
39
|
+
* Ignored by dialects that use `mergeTreeEngine` instead (ClickHouse).
|
|
40
|
+
*/
|
|
41
|
+
engine?: string;
|
|
42
|
+
/**
|
|
43
|
+
* ClickHouse MergeTree-family engine configuration (see
|
|
44
|
+
* `MergeTreeEngineConfig` in `src/dialects/clickhouse/index.ts`). Takes
|
|
45
|
+
* precedence over `engine` when both are supplied, since it gets the
|
|
46
|
+
* engine's required-column validation (e.g. CollapsingMergeTree's
|
|
47
|
+
* `Sign Int8` column) a raw engine string cannot.
|
|
48
|
+
*/
|
|
49
|
+
mergeTreeEngine?: MergeTreeEngineConfig;
|
|
50
|
+
/**
|
|
51
|
+
* ClickHouse ORDER BY clause (mandatory for MergeTree-family engines -
|
|
52
|
+
* ClickHouse's stand-in for a traditional primary key, controlling
|
|
53
|
+
* physical sort/merge order). Either a raw SQL fragment or a column list.
|
|
54
|
+
*/
|
|
55
|
+
orderBy?: string | string[];
|
|
56
|
+
/** ClickHouse PARTITION BY clause. */
|
|
57
|
+
partitionBy?: string;
|
|
58
|
+
/**
|
|
59
|
+
* ClickHouse table-level TTL expression, e.g.
|
|
60
|
+
* `'createdAt + INTERVAL 30 DAY'` or
|
|
61
|
+
* `"createdAt + INTERVAL 30 DAY TO VOLUME 'cold'"`.
|
|
62
|
+
*/
|
|
63
|
+
ttl?: string;
|
|
64
|
+
/**
|
|
65
|
+
* ClickHouse MergeTree projections to create inline at CREATE TABLE time,
|
|
66
|
+
* keyed by projection name.
|
|
67
|
+
*/
|
|
68
|
+
projections?: Record<string, ProjectionDefinition>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Read the @Engine options attached to a class.
|
|
72
|
+
* Returns undefined if the class has no @Engine decorator.
|
|
73
|
+
*/
|
|
74
|
+
export declare function getEngineOptions(target: Function): EngineOptions | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Annotate a Model subclass with dialect-specific storage-engine
|
|
77
|
+
* configuration.
|
|
78
|
+
*
|
|
79
|
+
* @Engine({ mergeTreeEngine: { type: 'AggregatingMergeTree' }, orderBy: ['id'] })
|
|
80
|
+
* class Metrics extends Model { ... }
|
|
81
|
+
*/
|
|
82
|
+
export declare function Engine(options: EngineOptions): (target: Function) => void;
|
|
83
|
+
export declare const EngineRegistry: {
|
|
84
|
+
/**
|
|
85
|
+
* Read the raw @Engine options attached to a class.
|
|
86
|
+
*/
|
|
87
|
+
getOptions(target: Function): EngineOptions | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Returns the @Engine options in the shape `createTable()` expects to be
|
|
90
|
+
* spread into its `options` argument (ClickHouse reads `mergeTreeEngine`/
|
|
91
|
+
* `orderBy`/`ttl`/`partitionBy`/`projections` as loosely-typed extensions;
|
|
92
|
+
* MySQL/MariaDB read `engine` directly off `TableOptions`). Returns an
|
|
93
|
+
* empty object (not undefined) when the class has no @Engine decorator,
|
|
94
|
+
* so callers can always safely spread the result.
|
|
95
|
+
*/
|
|
96
|
+
getTableOptions(target: Function): Record<string, unknown>;
|
|
97
|
+
};
|