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,341 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Manager - Abstract CacheBackend interface
|
|
3
|
+
*
|
|
4
|
+
* Defines the contract for cache backends used in query result caching.
|
|
5
|
+
* Supports L1 (in-memory) and L2 (distributed) caching layers.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Redis cluster node configuration
|
|
9
|
+
*/
|
|
10
|
+
export interface RedisClusterNodeConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Host of the Redis node
|
|
13
|
+
*/
|
|
14
|
+
host: string;
|
|
15
|
+
/**
|
|
16
|
+
* Port of the Redis node
|
|
17
|
+
*/
|
|
18
|
+
port: number;
|
|
19
|
+
/**
|
|
20
|
+
* Password for the Redis node (optional)
|
|
21
|
+
*/
|
|
22
|
+
password?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Enable TLS for this node
|
|
25
|
+
*/
|
|
26
|
+
tls?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Redis cluster options
|
|
30
|
+
*/
|
|
31
|
+
export interface RedisClusterOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Array of Redis cluster node addresses
|
|
34
|
+
*/
|
|
35
|
+
nodes?: RedisClusterNodeConfig[];
|
|
36
|
+
/**
|
|
37
|
+
* Array of read replica nodes (for read scaling)
|
|
38
|
+
*/
|
|
39
|
+
replicaNodes?: RedisClusterNodeConfig[];
|
|
40
|
+
/**
|
|
41
|
+
* Cluster password (used for all nodes)
|
|
42
|
+
*/
|
|
43
|
+
password?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Enable reading from replicas
|
|
46
|
+
*/
|
|
47
|
+
enableReadFromReplicas?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Maximum number of redirects
|
|
50
|
+
*/
|
|
51
|
+
maxRedirections?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Enable Redis keyspace notifications
|
|
54
|
+
*/
|
|
55
|
+
enableKeyspaceNotifications?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Redis database number (0-15)
|
|
58
|
+
*/
|
|
59
|
+
db?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Connection timeout in milliseconds
|
|
62
|
+
*/
|
|
63
|
+
connectTimeout?: number;
|
|
64
|
+
/**
|
|
65
|
+
* Command timeout in milliseconds
|
|
66
|
+
*/
|
|
67
|
+
commandTimeout?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Enable TLS for all connections
|
|
70
|
+
*/
|
|
71
|
+
tls?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Abstract interface for cache backend implementations
|
|
75
|
+
*/
|
|
76
|
+
export interface CacheBackend {
|
|
77
|
+
/**
|
|
78
|
+
* Get a value from cache
|
|
79
|
+
* @param key - Cache key
|
|
80
|
+
* @returns Cached value or null if not found
|
|
81
|
+
*/
|
|
82
|
+
get(key: string): Promise<string | null>;
|
|
83
|
+
/**
|
|
84
|
+
* Set a value in cache
|
|
85
|
+
* @param key - Cache key
|
|
86
|
+
* @param value - Value to cache
|
|
87
|
+
* @param ttl - Time to live in seconds (optional)
|
|
88
|
+
* @returns True if successful
|
|
89
|
+
*/
|
|
90
|
+
set(key: string, value: string, ttl?: number): Promise<boolean>;
|
|
91
|
+
/**
|
|
92
|
+
* Delete a key from cache
|
|
93
|
+
* @param key - Cache key
|
|
94
|
+
* @returns True if key was deleted
|
|
95
|
+
*/
|
|
96
|
+
del(key: string): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Check if a key exists in cache
|
|
99
|
+
* @param key - Cache key
|
|
100
|
+
* @returns True if key exists
|
|
101
|
+
*/
|
|
102
|
+
exists(key: string): Promise<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* Invalidate all keys matching a pattern
|
|
105
|
+
* @param pattern - Key pattern (supports glob patterns like user:*)
|
|
106
|
+
* @returns Number of keys invalidated
|
|
107
|
+
*/
|
|
108
|
+
invalidatePattern(pattern: string): Promise<number>;
|
|
109
|
+
/**
|
|
110
|
+
* Clear all cache entries (use with caution)
|
|
111
|
+
* @returns True if successful
|
|
112
|
+
*/
|
|
113
|
+
clear(): Promise<boolean>;
|
|
114
|
+
/**
|
|
115
|
+
* Get multiple keys at once
|
|
116
|
+
* @param keys - Array of cache keys
|
|
117
|
+
* @returns Array of values (null for missing keys)
|
|
118
|
+
*/
|
|
119
|
+
mget(keys: string[]): Promise<(string | null)[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Set multiple keys at once
|
|
122
|
+
* @param entries - Array of {key, value, ttl?} objects
|
|
123
|
+
* @returns True if successful
|
|
124
|
+
*/
|
|
125
|
+
mset(entries: Array<{
|
|
126
|
+
key: string;
|
|
127
|
+
value: string;
|
|
128
|
+
ttl?: number;
|
|
129
|
+
}>): Promise<boolean>;
|
|
130
|
+
/**
|
|
131
|
+
* Close the cache backend connection
|
|
132
|
+
* @returns Promise that resolves when connection is closed
|
|
133
|
+
*/
|
|
134
|
+
disconnect(): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Check if cache backend is connected
|
|
137
|
+
* @returns True if connected
|
|
138
|
+
*/
|
|
139
|
+
isConnected(): boolean;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* L1 Cache options for in-memory cache layer
|
|
143
|
+
*/
|
|
144
|
+
export interface L1CacheOptions {
|
|
145
|
+
/**
|
|
146
|
+
* Enable L1 (in-memory) cache
|
|
147
|
+
* @default true
|
|
148
|
+
*/
|
|
149
|
+
enabled?: boolean;
|
|
150
|
+
/**
|
|
151
|
+
* Maximum number of entries in L1 cache
|
|
152
|
+
* @default 1000
|
|
153
|
+
*/
|
|
154
|
+
maxEntries?: number;
|
|
155
|
+
/**
|
|
156
|
+
* L1 cache TTL in seconds (for LRU eviction)
|
|
157
|
+
* @default 60
|
|
158
|
+
*/
|
|
159
|
+
ttl?: number;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* L2 Cache options for distributed cache layer
|
|
163
|
+
*/
|
|
164
|
+
export interface L2CacheOptions {
|
|
165
|
+
/**
|
|
166
|
+
* Enable L2 (Redis) cache
|
|
167
|
+
* @default true
|
|
168
|
+
*/
|
|
169
|
+
enabled?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Default TTL for L2 cache entries in seconds
|
|
172
|
+
* @default 3600 (1 hour)
|
|
173
|
+
*/
|
|
174
|
+
defaultTtl?: number;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Cache key prefix configuration
|
|
178
|
+
*/
|
|
179
|
+
export interface CacheKeyOptions {
|
|
180
|
+
/**
|
|
181
|
+
* Prefix for all cache keys
|
|
182
|
+
* @default 'orm:cache:'
|
|
183
|
+
*/
|
|
184
|
+
prefix?: string;
|
|
185
|
+
/**
|
|
186
|
+
* Separator between prefix and key
|
|
187
|
+
* @default ':'
|
|
188
|
+
*/
|
|
189
|
+
separator?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Combined cache manager options
|
|
193
|
+
*/
|
|
194
|
+
export interface CacheManagerOptions {
|
|
195
|
+
/**
|
|
196
|
+
* L1 (in-memory) cache options
|
|
197
|
+
*/
|
|
198
|
+
l1?: L1CacheOptions;
|
|
199
|
+
/**
|
|
200
|
+
* L2 (Redis cluster) cache options
|
|
201
|
+
*/
|
|
202
|
+
l2?: L2CacheOptions;
|
|
203
|
+
/**
|
|
204
|
+
* Cache key prefix options
|
|
205
|
+
*/
|
|
206
|
+
key?: CacheKeyOptions;
|
|
207
|
+
/**
|
|
208
|
+
* Enable read-from-replicas for Redis cluster
|
|
209
|
+
* @default false
|
|
210
|
+
*/
|
|
211
|
+
readFromReplicas?: boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Redis cluster nodes configuration
|
|
214
|
+
*/
|
|
215
|
+
clusterNodes?: RedisClusterNodeConfig[];
|
|
216
|
+
/**
|
|
217
|
+
* Additional Redis cluster options
|
|
218
|
+
*/
|
|
219
|
+
clusterOptions?: Omit<RedisClusterOptions, 'nodes'>;
|
|
220
|
+
/**
|
|
221
|
+
* Maximum number of connections in the connection pool
|
|
222
|
+
* @default 10
|
|
223
|
+
*/
|
|
224
|
+
maxConnections?: number;
|
|
225
|
+
/**
|
|
226
|
+
* Connect timeout in milliseconds
|
|
227
|
+
* @default 10000
|
|
228
|
+
*/
|
|
229
|
+
connectTimeout?: number;
|
|
230
|
+
/**
|
|
231
|
+
* Command timeout in milliseconds
|
|
232
|
+
* @default 5000
|
|
233
|
+
*/
|
|
234
|
+
commandTimeout?: number;
|
|
235
|
+
/**
|
|
236
|
+
* Retry strategy configuration
|
|
237
|
+
*/
|
|
238
|
+
retryStrategy?: (times: number) => number | Error | null;
|
|
239
|
+
/**
|
|
240
|
+
* Database number (0-15)
|
|
241
|
+
* @default 0
|
|
242
|
+
*/
|
|
243
|
+
db?: number;
|
|
244
|
+
/**
|
|
245
|
+
* Enable keyspace notifications for cache invalidation
|
|
246
|
+
* @default false
|
|
247
|
+
*/
|
|
248
|
+
enableKeyspaceNotifications?: boolean;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Cache entry metadata
|
|
252
|
+
*/
|
|
253
|
+
export interface CacheEntry<T = any> {
|
|
254
|
+
/**
|
|
255
|
+
* The cached value
|
|
256
|
+
*/
|
|
257
|
+
value: T;
|
|
258
|
+
/**
|
|
259
|
+
* Timestamp when entry was created
|
|
260
|
+
*/
|
|
261
|
+
createdAt: number;
|
|
262
|
+
/**
|
|
263
|
+
* Timestamp when entry was last accessed
|
|
264
|
+
*/
|
|
265
|
+
accessedAt: number;
|
|
266
|
+
/**
|
|
267
|
+
* Time to live in seconds
|
|
268
|
+
*/
|
|
269
|
+
ttl?: number;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Cache statistics
|
|
273
|
+
*/
|
|
274
|
+
export interface CacheStats {
|
|
275
|
+
/**
|
|
276
|
+
* Number of hits
|
|
277
|
+
*/
|
|
278
|
+
hits: number;
|
|
279
|
+
/**
|
|
280
|
+
* Number of misses
|
|
281
|
+
*/
|
|
282
|
+
misses: number;
|
|
283
|
+
/**
|
|
284
|
+
* Number of L1 hits
|
|
285
|
+
*/
|
|
286
|
+
l1Hits: number;
|
|
287
|
+
/**
|
|
288
|
+
* Number of L2 hits
|
|
289
|
+
*/
|
|
290
|
+
l2Hits: number;
|
|
291
|
+
/**
|
|
292
|
+
* Number of keys stored
|
|
293
|
+
*/
|
|
294
|
+
keys: number;
|
|
295
|
+
/**
|
|
296
|
+
* Hit rate (0-1)
|
|
297
|
+
*/
|
|
298
|
+
hitRate: number;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Abstract cache manager with L1/L2 support
|
|
302
|
+
*/
|
|
303
|
+
export declare abstract class AbstractCacheManager implements CacheBackend {
|
|
304
|
+
protected options: Required<CacheManagerOptions>;
|
|
305
|
+
protected stats: CacheStats;
|
|
306
|
+
constructor(options?: CacheManagerOptions);
|
|
307
|
+
/**
|
|
308
|
+
* Normalize and set default options
|
|
309
|
+
*/
|
|
310
|
+
protected normalizeOptions(options: CacheManagerOptions): Required<CacheManagerOptions>;
|
|
311
|
+
/**
|
|
312
|
+
* Build a full cache key with prefix
|
|
313
|
+
*/
|
|
314
|
+
protected buildKey(key: string): string;
|
|
315
|
+
/**
|
|
316
|
+
* Get cache statistics
|
|
317
|
+
*/
|
|
318
|
+
getStats(): CacheStats;
|
|
319
|
+
/**
|
|
320
|
+
* Reset cache statistics
|
|
321
|
+
*/
|
|
322
|
+
resetStats(): void;
|
|
323
|
+
abstract get(key: string): Promise<string | null>;
|
|
324
|
+
abstract set(key: string, value: string, ttl?: number): Promise<boolean>;
|
|
325
|
+
abstract del(key: string): Promise<boolean>;
|
|
326
|
+
abstract exists(key: string): Promise<boolean>;
|
|
327
|
+
abstract invalidatePattern(pattern: string): Promise<number>;
|
|
328
|
+
abstract clear(): Promise<boolean>;
|
|
329
|
+
abstract mget(keys: string[]): Promise<(string | null)[]>;
|
|
330
|
+
abstract mset(entries: Array<{
|
|
331
|
+
key: string;
|
|
332
|
+
value: string;
|
|
333
|
+
ttl?: number;
|
|
334
|
+
}>): Promise<boolean>;
|
|
335
|
+
abstract disconnect(): Promise<void>;
|
|
336
|
+
abstract isConnected(): boolean;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Factory function type for creating cache backends
|
|
340
|
+
*/
|
|
341
|
+
export type CacheBackendFactory = (options: CacheManagerOptions) => CacheBackend;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache Module
|
|
3
|
+
*
|
|
4
|
+
* Provides caching functionality for query results using Redis Cluster
|
|
5
|
+
* with L1 (in-memory) and L2 (distributed Redis) cache layers.
|
|
6
|
+
*/
|
|
7
|
+
export { CacheBackend, AbstractCacheManager, type CacheManagerOptions, type L1CacheOptions, type L2CacheOptions, type CacheKeyOptions, type CacheEntry, type CacheStats, type CacheBackendFactory, type RedisClusterOptions, type RedisClusterNodeConfig, } from './cache-manager';
|
|
8
|
+
export { RedisClusterCache, createRedisClusterCache, type RedisClusterCacheOptions, type RedisClusterNode, } from './redis-cluster-cache';
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redis Cluster Cache Backend
|
|
3
|
+
*
|
|
4
|
+
* Implements CacheBackend using ioredis cluster with L1 (in-memory) and L2 (Redis cluster) caching.
|
|
5
|
+
*/
|
|
6
|
+
import type Redis from 'ioredis';
|
|
7
|
+
import type { Cluster } from 'ioredis';
|
|
8
|
+
import { AbstractCacheManager, type CacheManagerOptions, type CacheStats } from './cache-manager';
|
|
9
|
+
/**
|
|
10
|
+
* Redis cluster node configuration
|
|
11
|
+
*/
|
|
12
|
+
export interface RedisClusterNode {
|
|
13
|
+
/**
|
|
14
|
+
* Host of the Redis node
|
|
15
|
+
*/
|
|
16
|
+
host: string;
|
|
17
|
+
/**
|
|
18
|
+
* Port of the Redis node
|
|
19
|
+
*/
|
|
20
|
+
port: number;
|
|
21
|
+
/**
|
|
22
|
+
* Password for the Redis node (optional)
|
|
23
|
+
*/
|
|
24
|
+
password?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Enable TLS for this node
|
|
27
|
+
*/
|
|
28
|
+
tls?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Extended options for Redis cluster cache
|
|
32
|
+
*/
|
|
33
|
+
export interface RedisClusterCacheOptions extends CacheManagerOptions {
|
|
34
|
+
/**
|
|
35
|
+
* Redis cluster nodes configuration
|
|
36
|
+
*/
|
|
37
|
+
clusterNodes?: RedisClusterNode[];
|
|
38
|
+
/**
|
|
39
|
+
* Maximum number of connections in the connection pool
|
|
40
|
+
* @default 10
|
|
41
|
+
*/
|
|
42
|
+
maxConnections?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Enable read-from-replicas for Redis cluster
|
|
45
|
+
* @default false
|
|
46
|
+
*/
|
|
47
|
+
readFromReplicas?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Connect timeout in milliseconds
|
|
50
|
+
* @default 10000
|
|
51
|
+
*/
|
|
52
|
+
connectTimeout?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Command timeout in milliseconds
|
|
55
|
+
* @default 5000
|
|
56
|
+
*/
|
|
57
|
+
commandTimeout?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Retry strategy configuration
|
|
60
|
+
*/
|
|
61
|
+
retryStrategy?: (times: number) => number | Error | null;
|
|
62
|
+
/**
|
|
63
|
+
* Enable keyspace notifications for cache invalidation
|
|
64
|
+
* @default false
|
|
65
|
+
*/
|
|
66
|
+
enableKeyspaceNotifications?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Database number (0-15)
|
|
69
|
+
* @default 0
|
|
70
|
+
*/
|
|
71
|
+
db?: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Redis Cluster Cache implementation with L1/L2 support
|
|
75
|
+
*/
|
|
76
|
+
export declare class RedisClusterCache extends AbstractCacheManager {
|
|
77
|
+
private redisCluster;
|
|
78
|
+
private redisReplicas;
|
|
79
|
+
private l1Cache;
|
|
80
|
+
private connected;
|
|
81
|
+
protected get clusterOptions(): RedisClusterCacheOptions;
|
|
82
|
+
constructor(options?: RedisClusterCacheOptions);
|
|
83
|
+
/**
|
|
84
|
+
* Initialize Redis cluster connection
|
|
85
|
+
*/
|
|
86
|
+
private initializeCluster;
|
|
87
|
+
/**
|
|
88
|
+
* Initialize read replicas for read-from-replicas functionality
|
|
89
|
+
*/
|
|
90
|
+
private initializeReplicas;
|
|
91
|
+
/**
|
|
92
|
+
* Get a value from cache, checking L1 first then L2
|
|
93
|
+
*/
|
|
94
|
+
get(key: string): Promise<string | null>;
|
|
95
|
+
/**
|
|
96
|
+
* Set a value in cache (both L1 and L2)
|
|
97
|
+
*/
|
|
98
|
+
set(key: string, value: string, ttl?: number): Promise<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* Delete a key from cache (both L1 and L2)
|
|
101
|
+
*/
|
|
102
|
+
del(key: string): Promise<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* Check if a key exists in cache
|
|
105
|
+
*/
|
|
106
|
+
exists(key: string): Promise<boolean>;
|
|
107
|
+
/**
|
|
108
|
+
* Invalidate all keys matching a pattern
|
|
109
|
+
*/
|
|
110
|
+
invalidatePattern(pattern: string): Promise<number>;
|
|
111
|
+
/**
|
|
112
|
+
* Clear all cache entries
|
|
113
|
+
*/
|
|
114
|
+
clear(): Promise<boolean>;
|
|
115
|
+
/**
|
|
116
|
+
* Get multiple keys at once
|
|
117
|
+
*/
|
|
118
|
+
mget(keys: string[]): Promise<(string | null)[]>;
|
|
119
|
+
/**
|
|
120
|
+
* Set multiple keys at once
|
|
121
|
+
*/
|
|
122
|
+
mset(entries: Array<{
|
|
123
|
+
key: string;
|
|
124
|
+
value: string;
|
|
125
|
+
ttl?: number;
|
|
126
|
+
}>): Promise<boolean>;
|
|
127
|
+
/**
|
|
128
|
+
* Get the appropriate Redis client (master or replica)
|
|
129
|
+
*/
|
|
130
|
+
private getRedisClient;
|
|
131
|
+
/**
|
|
132
|
+
* Get cache statistics
|
|
133
|
+
*/
|
|
134
|
+
getStats(): CacheStats;
|
|
135
|
+
/**
|
|
136
|
+
* Close all Redis connections
|
|
137
|
+
*/
|
|
138
|
+
disconnect(): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Check if cache backend is connected
|
|
141
|
+
*/
|
|
142
|
+
isConnected(): boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Get the underlying Redis cluster instance
|
|
145
|
+
*/
|
|
146
|
+
getRedisCluster(): Cluster | null;
|
|
147
|
+
/**
|
|
148
|
+
* Get all replica connections
|
|
149
|
+
*/
|
|
150
|
+
getReplicas(): Redis[];
|
|
151
|
+
/**
|
|
152
|
+
* Manually invalidate L1 cache (useful for testing)
|
|
153
|
+
*/
|
|
154
|
+
clearL1(): void;
|
|
155
|
+
/**
|
|
156
|
+
* Convert glob pattern to regex
|
|
157
|
+
*/
|
|
158
|
+
private patternToRegex;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Create a RedisClusterCache instance with simplified options
|
|
162
|
+
*/
|
|
163
|
+
export declare function createRedisClusterCache(nodes: RedisClusterNode[], options?: Partial<RedisClusterCacheOptions>): RedisClusterCache;
|
|
164
|
+
export default RedisClusterCache;
|
|
@@ -4,43 +4,25 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Implements CacheBackend using ioredis cluster with L1 (in-memory) and L2 (Redis cluster) caching.
|
|
6
6
|
*/
|
|
7
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
-
if (k2 === undefined) k2 = k;
|
|
9
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
-
}
|
|
13
|
-
Object.defineProperty(o, k2, desc);
|
|
14
|
-
}) : (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
o[k2] = m[k];
|
|
17
|
-
}));
|
|
18
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
-
}) : function(o, v) {
|
|
21
|
-
o["default"] = v;
|
|
22
|
-
});
|
|
23
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
-
var ownKeys = function(o) {
|
|
25
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
-
var ar = [];
|
|
27
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
-
return ar;
|
|
29
|
-
};
|
|
30
|
-
return ownKeys(o);
|
|
31
|
-
};
|
|
32
|
-
return function (mod) {
|
|
33
|
-
if (mod && mod.__esModule) return mod;
|
|
34
|
-
var result = {};
|
|
35
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
-
__setModuleDefault(result, mod);
|
|
37
|
-
return result;
|
|
38
|
-
};
|
|
39
|
-
})();
|
|
40
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
8
|
exports.RedisClusterCache = void 0;
|
|
42
9
|
exports.createRedisClusterCache = createRedisClusterCache;
|
|
43
|
-
|
|
10
|
+
// Lazily-loaded `ioredis` driver. Required only when a cluster connection is
|
|
11
|
+
// initialized, so importing this ORM never loads the ioredis driver.
|
|
12
|
+
let ioredisModule = null;
|
|
13
|
+
function loadIoRedis() {
|
|
14
|
+
if (!ioredisModule) {
|
|
15
|
+
try {
|
|
16
|
+
ioredisModule = require('ioredis');
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
throw new Error("The 'ioredis' package is required to use the Redis cluster cache but could not be loaded. " +
|
|
20
|
+
'Install it with `npm install ioredis`. Original error: ' +
|
|
21
|
+
(err instanceof Error ? err.message : String(err)));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return ioredisModule;
|
|
25
|
+
}
|
|
44
26
|
const cache_manager_1 = require("./cache-manager");
|
|
45
27
|
/**
|
|
46
28
|
* LRU Map implementation for L1 cache
|
|
@@ -151,7 +133,7 @@ class RedisClusterCache extends cache_manager_1.AbstractCacheManager {
|
|
|
151
133
|
return Math.min(times * 200, 3000); // Max 3 seconds
|
|
152
134
|
};
|
|
153
135
|
}
|
|
154
|
-
this.redisCluster = new
|
|
136
|
+
this.redisCluster = new (loadIoRedis().Cluster)(clusterNodes, clusterOptions);
|
|
155
137
|
this.redisCluster.on('connect', () => {
|
|
156
138
|
this.connected = true;
|
|
157
139
|
console.log('RedisClusterCache: Connected to cluster');
|
|
@@ -176,7 +158,8 @@ class RedisClusterCache extends cache_manager_1.AbstractCacheManager {
|
|
|
176
158
|
return;
|
|
177
159
|
}
|
|
178
160
|
for (const node of this.options.clusterOptions.replicaNodes) {
|
|
179
|
-
const
|
|
161
|
+
const RedisCtor = loadIoRedis().default ?? loadIoRedis();
|
|
162
|
+
const redis = new RedisCtor({
|
|
180
163
|
host: node.host,
|
|
181
164
|
port: node.port,
|
|
182
165
|
password: node.password,
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface CliConfig {
|
|
2
|
+
apiUrl: string;
|
|
3
|
+
token?: string;
|
|
4
|
+
/** Set when the access token is held in the OS keychain, not in this file. */
|
|
5
|
+
tokenInKeychain?: boolean;
|
|
6
|
+
/** Optional refresh token for re-minting an expired access token. */
|
|
7
|
+
refreshToken?: string;
|
|
8
|
+
/** Currently-selected user or team context. */
|
|
9
|
+
user?: {
|
|
10
|
+
id: string;
|
|
11
|
+
email: string;
|
|
12
|
+
name?: string;
|
|
13
|
+
};
|
|
14
|
+
teamId?: string;
|
|
15
|
+
teamSlug?: string;
|
|
16
|
+
defaultDb?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function configPath(): string;
|
|
19
|
+
export declare function loadConfig(): CliConfig;
|
|
20
|
+
export declare function saveConfig(cfg: CliConfig): void;
|
|
21
|
+
export declare function updateConfig(patch: Partial<CliConfig>): CliConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Store the access token, preferring the OS keychain. Returns whether the
|
|
24
|
+
* keychain was used (false = written to the config file as a fallback).
|
|
25
|
+
*/
|
|
26
|
+
export declare function storeToken(token: string, extra?: Partial<CliConfig>): boolean;
|
|
27
|
+
export declare function clearAuth(): void;
|
|
28
|
+
export declare function requireAuth(): CliConfig & {
|
|
29
|
+
token: string;
|
|
30
|
+
};
|
|
31
|
+
export declare class ApiError extends Error {
|
|
32
|
+
status: number;
|
|
33
|
+
/** Field-level validation details from the API response, if any. */
|
|
34
|
+
details?: unknown;
|
|
35
|
+
constructor(message: string, status: number, details?: unknown);
|
|
36
|
+
}
|
|
37
|
+
export declare class AuthError extends ApiError {
|
|
38
|
+
constructor(message: string);
|
|
39
|
+
}
|
|
40
|
+
export declare class NetworkError extends Error {
|
|
41
|
+
code: string;
|
|
42
|
+
}
|
|
43
|
+
export interface ApiOptions {
|
|
44
|
+
method?: string;
|
|
45
|
+
body?: unknown;
|
|
46
|
+
query?: Record<string, string | number | boolean | undefined>;
|
|
47
|
+
auth?: boolean;
|
|
48
|
+
token?: string;
|
|
49
|
+
/** Per-call timeout in ms (default: --timeout or 30s). */
|
|
50
|
+
timeoutMs?: number;
|
|
51
|
+
/** Max retry attempts on transient failures (default 3). */
|
|
52
|
+
retries?: number;
|
|
53
|
+
}
|
|
54
|
+
/** Call the dashboard API with timeout, retry/backoff, and typed errors. */
|
|
55
|
+
export declare function api<T = unknown>(pathname: string, opts?: ApiOptions): Promise<T>;
|