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,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Papertrail store implementation.
|
|
3
|
+
*
|
|
4
|
+
* Papertrail (by SolarWinds) is a hosted log-management service. Logs are
|
|
5
|
+
* ingested over syslog or an HTTP log destination, and searched via the REST
|
|
6
|
+
* events API. There is no SQL-shaped query surface, no row-level
|
|
7
|
+
* UPDATE/DELETE, and no identifier escaping, so Papertrail does not fit the
|
|
8
|
+
* SQL `Dialect` interface (`src/dialects/dialect.ts`). This class implements
|
|
9
|
+
* the minimal `NoSqlStore` marker interface (`src/nosql/store.ts`) and
|
|
10
|
+
* exposes Papertrail's ingest/search API.
|
|
11
|
+
*
|
|
12
|
+
* ## No canonical driver - HTTP over `fetch`
|
|
13
|
+
*
|
|
14
|
+
* Papertrail has no single canonical npm client; it is an HTTP/JSON API
|
|
15
|
+
* (`X-Papertrail-Token` auth). This store talks to it with the global
|
|
16
|
+
* `fetch` (so `library` is `'fetch'`). For tests (and custom transports) an
|
|
17
|
+
* alternative HTTP client can be injected via `PapertrailStoreOptions.client`.
|
|
18
|
+
*
|
|
19
|
+
* Search targets the REST API (`apiURL`); ingest targets the configured HTTP
|
|
20
|
+
* log destination (`ingestURL`). The internal client resolves absolute URLs
|
|
21
|
+
* verbatim, so `push()` posts to the full ingest URL while search/metadata
|
|
22
|
+
* methods use relative API paths.
|
|
23
|
+
*
|
|
24
|
+
* ## Endpoints wrapped
|
|
25
|
+
*
|
|
26
|
+
* - `push(lines)` -> `POST <ingestURL>` (HTTP/syslog ingest)
|
|
27
|
+
* - `query(q, opts?)` -> `GET /api/v1/events/search` (search events)
|
|
28
|
+
* - `labels()` -> `GET /api/v1/groups` (log groups)
|
|
29
|
+
* - `streams()` -> `GET /api/v1/systems` (systems/senders)
|
|
30
|
+
*/
|
|
31
|
+
import { NoSqlStore } from '../store';
|
|
32
|
+
/** Default Papertrail REST API base URL. */
|
|
33
|
+
export declare const DEFAULT_PAPERTRAIL_API_URL = "https://papertrailapp.com";
|
|
34
|
+
/** Query-string parameter value(s). `undefined` values are dropped. */
|
|
35
|
+
export type QueryParams = Record<string, string | string[] | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* The subset of an HTTP client this store needs. The internal `fetch`-based
|
|
38
|
+
* client implements this; tests inject a mock with the same shape.
|
|
39
|
+
*/
|
|
40
|
+
export interface PapertrailHttpClient {
|
|
41
|
+
/** Issue a GET and return the parsed JSON response body. */
|
|
42
|
+
get(path: string, params?: QueryParams): Promise<any>;
|
|
43
|
+
/** Issue a POST with a text body and return the parsed JSON/text response. */
|
|
44
|
+
post(path: string, body: string, contentType?: string): Promise<any>;
|
|
45
|
+
}
|
|
46
|
+
/** Connection options for `PapertrailStore`. */
|
|
47
|
+
export interface PapertrailStoreOptions {
|
|
48
|
+
/** Base URL of the Papertrail REST API. Defaults to `https://papertrailapp.com`. */
|
|
49
|
+
apiURL?: string;
|
|
50
|
+
/** Full HTTP log-destination URL that `push()` ingests to. */
|
|
51
|
+
ingestURL?: string;
|
|
52
|
+
/** Papertrail API token, sent as `X-Papertrail-Token`. */
|
|
53
|
+
token?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Optional pre-built HTTP client. When provided it is used verbatim and
|
|
56
|
+
* `apiURL` is ignored; otherwise an internal `fetch`-based client is
|
|
57
|
+
* built against `apiURL` on `connect()`.
|
|
58
|
+
*/
|
|
59
|
+
client?: PapertrailHttpClient;
|
|
60
|
+
/** Extra HTTP headers sent with every request. */
|
|
61
|
+
headers?: Record<string, string>;
|
|
62
|
+
}
|
|
63
|
+
/** Options for an events search. */
|
|
64
|
+
export interface PapertrailQueryOptions {
|
|
65
|
+
/** Restrict the search to a single system ID. */
|
|
66
|
+
systemId?: string | number;
|
|
67
|
+
/** Restrict the search to a single group ID. */
|
|
68
|
+
groupId?: string | number;
|
|
69
|
+
/** Return events with IDs greater than this (pagination forward). */
|
|
70
|
+
minId?: string;
|
|
71
|
+
/** Return events with IDs less than this (pagination backward). */
|
|
72
|
+
maxId?: string;
|
|
73
|
+
/** Return events at or after this Unix time. */
|
|
74
|
+
minTime?: string | number;
|
|
75
|
+
/** Return events at or before this Unix time. */
|
|
76
|
+
maxTime?: string | number;
|
|
77
|
+
/** Number of events to return. */
|
|
78
|
+
limit?: number;
|
|
79
|
+
}
|
|
80
|
+
/** Build a `fetch`-backed client for the given base URL. */
|
|
81
|
+
export declare function createFetchClient(baseURL: string, headers?: Record<string, string>): PapertrailHttpClient;
|
|
82
|
+
/**
|
|
83
|
+
* `PapertrailStore` wraps Papertrail's HTTP log-destination ingest and its
|
|
84
|
+
* REST events-search API (plus group/system metadata) behind the
|
|
85
|
+
* `NoSqlStore` lifecycle.
|
|
86
|
+
*/
|
|
87
|
+
export declare class PapertrailStore implements NoSqlStore {
|
|
88
|
+
readonly name = "papertrail";
|
|
89
|
+
readonly library = "fetch";
|
|
90
|
+
private readonly apiURL;
|
|
91
|
+
private readonly ingestURL?;
|
|
92
|
+
private readonly injectedClient?;
|
|
93
|
+
private readonly headers?;
|
|
94
|
+
private client;
|
|
95
|
+
private connected;
|
|
96
|
+
constructor(options?: PapertrailStoreOptions);
|
|
97
|
+
connect(): Promise<void>;
|
|
98
|
+
disconnect(): Promise<void>;
|
|
99
|
+
isConnected(): boolean;
|
|
100
|
+
/** Returns the underlying (internal or injected) HTTP client. */
|
|
101
|
+
getClient(): PapertrailHttpClient;
|
|
102
|
+
private requireClient;
|
|
103
|
+
private doGet;
|
|
104
|
+
/**
|
|
105
|
+
* Ingests raw log lines by POSTing them (newline-delimited) to the
|
|
106
|
+
* configured HTTP log-destination `ingestURL`. Accepts a single string or
|
|
107
|
+
* an array of lines (joined with newlines).
|
|
108
|
+
*/
|
|
109
|
+
push(lines: string | string[]): Promise<any>;
|
|
110
|
+
/**
|
|
111
|
+
* Searches log events via `GET /api/v1/events/search`. Returns the parsed
|
|
112
|
+
* response (`{ events, min_id, max_id, reached_beginning, ... }`).
|
|
113
|
+
*/
|
|
114
|
+
query(q: string, options?: PapertrailQueryOptions): Promise<any>;
|
|
115
|
+
/** Lists the configured log groups via `GET /api/v1/groups`. */
|
|
116
|
+
labels(): Promise<any>;
|
|
117
|
+
/** Lists the configured systems (log senders) via `GET /api/v1/systems`. */
|
|
118
|
+
streams(): Promise<any>;
|
|
119
|
+
}
|
|
120
|
+
export default PapertrailStore;
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pinecone vector-database store.
|
|
3
|
+
*
|
|
4
|
+
* Pinecone is a managed vector database: records are `{ id, values, metadata }`
|
|
5
|
+
* tuples (an embedding vector plus optional JSON-ish metadata), and the core
|
|
6
|
+
* operation is an approximate-nearest-neighbor similarity `query`, not a
|
|
7
|
+
* `WHERE`-filtered row scan. There is no SQL, no joins, no transactions, and
|
|
8
|
+
* metadata filters only ever narrow a similarity search rather than stand
|
|
9
|
+
* alone as a general query language. None of that fits the SQL-shaped
|
|
10
|
+
* `Dialect` interface (`src/dialects/dialect.ts`), so this class instead
|
|
11
|
+
* implements the minimal `NoSqlStore` marker interface
|
|
12
|
+
* (`src/nosql/store.ts`) and exposes Pinecone's real operations (index
|
|
13
|
+
* admin, upsert/query/fetch/update/delete, namespaces) directly.
|
|
14
|
+
*
|
|
15
|
+
* Uses the official `@pinecone-database/pinecone` driver. Unlike Redis or
|
|
16
|
+
* MongoDB, Pinecone's client is a stateless HTTPS client - there is no
|
|
17
|
+
* socket handshake to perform up front, so `connect()`/`disconnect()` here
|
|
18
|
+
* construct/discard the client object rather than opening a real
|
|
19
|
+
* connection; connectivity is only proven the first time a request is
|
|
20
|
+
* actually made.
|
|
21
|
+
*/
|
|
22
|
+
import { Pinecone, type PineconeConfiguration, type IndexModel, type IndexList, type CreateIndexOptions as PineconeCreateIndexOptions, type PineconeRecord, type RecordMetadata, type QueryOptions as PineconeQueryOptions, type QueryResponse, type FetchResponse, type IndexStatsDescription, Errors as PineconeErrors } from '@pinecone-database/pinecone';
|
|
23
|
+
import type { NoSqlStore } from '../store';
|
|
24
|
+
/**
|
|
25
|
+
* Connection options for `PineconeStore`. Mirrors the real client's
|
|
26
|
+
* `PineconeConfiguration` (`apiKey` plus a handful of optional transport
|
|
27
|
+
* settings) - all fields are passed straight through to `new Pinecone(...)`.
|
|
28
|
+
*/
|
|
29
|
+
export type PineconeStoreOptions = PineconeConfiguration;
|
|
30
|
+
/** How an index should be deployed - re-exported so callers don't need a direct dependency on the driver's types. */
|
|
31
|
+
export type CreateIndexOptions = PineconeCreateIndexOptions;
|
|
32
|
+
/** A vector record: an id, its embedding values, and optional metadata. */
|
|
33
|
+
export type VectorRecord<T extends RecordMetadata = RecordMetadata> = PineconeRecord<T>;
|
|
34
|
+
/** Options accepted by `upsert()`. */
|
|
35
|
+
export interface UpsertVectorsOptions {
|
|
36
|
+
/** Namespace to upsert into. Defaults to the default namespace (`''`) when omitted. */
|
|
37
|
+
namespace?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Options accepted by `query()`, matching the real SDK's query-by-vector or query-by-id union. */
|
|
40
|
+
export type QueryVectorsOptions = PineconeQueryOptions;
|
|
41
|
+
/** Options accepted by `fetch()`. */
|
|
42
|
+
export interface FetchVectorsOptions {
|
|
43
|
+
namespace?: string;
|
|
44
|
+
}
|
|
45
|
+
/** Options accepted by `deleteByIds()`. */
|
|
46
|
+
export interface DeleteByIdsOptions {
|
|
47
|
+
namespace?: string;
|
|
48
|
+
}
|
|
49
|
+
/** Options accepted by `deleteByFilter()`. */
|
|
50
|
+
export interface DeleteByFilterOptions {
|
|
51
|
+
namespace?: string;
|
|
52
|
+
}
|
|
53
|
+
/** Options accepted by `deleteAll()`. */
|
|
54
|
+
export interface DeleteAllVectorsOptions {
|
|
55
|
+
namespace?: string;
|
|
56
|
+
}
|
|
57
|
+
/** Options accepted by `update()`. Either `values` or `metadata` (or both) may be provided. */
|
|
58
|
+
export interface UpdateVectorOptions<T extends RecordMetadata = RecordMetadata> {
|
|
59
|
+
id: string;
|
|
60
|
+
values?: number[];
|
|
61
|
+
metadata?: Partial<T>;
|
|
62
|
+
namespace?: string;
|
|
63
|
+
}
|
|
64
|
+
/** Options accepted by `describeIndexStats()`. */
|
|
65
|
+
export interface DescribeIndexStatsOptions {
|
|
66
|
+
/** Only return statistics for vectors that satisfy this metadata filter. */
|
|
67
|
+
filter?: object;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* `PineconeStore` wraps the `@pinecone-database/pinecone` client and
|
|
71
|
+
* exposes index administration plus the vector data-plane operations
|
|
72
|
+
* (upsert/query/fetch/update/delete) as a typed, promise-based API.
|
|
73
|
+
*
|
|
74
|
+
* Every data-plane method (`upsert`, `query`, `fetch`, `update`,
|
|
75
|
+
* `deleteByIds`, `deleteByFilter`, `deleteAll`, `describeIndexStats`)
|
|
76
|
+
* targets a specific index by name and accepts an optional `namespace` to
|
|
77
|
+
* scope the operation, mirroring the real SDK's `index.namespace(ns)`
|
|
78
|
+
* pattern - Pinecone partitions the vectors within a single index into
|
|
79
|
+
* namespaces, and most operations are namespace-scoped rather than
|
|
80
|
+
* index-wide.
|
|
81
|
+
*/
|
|
82
|
+
export declare class PineconeStore implements NoSqlStore {
|
|
83
|
+
readonly name = "pinecone";
|
|
84
|
+
readonly library = "@pinecone-database/pinecone";
|
|
85
|
+
private readonly options;
|
|
86
|
+
private client;
|
|
87
|
+
private connected;
|
|
88
|
+
/** One `Index` handle per (indexName, namespace) pair, reused across calls. */
|
|
89
|
+
private readonly indexCache;
|
|
90
|
+
constructor(options: PineconeStoreOptions);
|
|
91
|
+
connect(): Promise<void>;
|
|
92
|
+
disconnect(): Promise<void>;
|
|
93
|
+
isConnected(): boolean;
|
|
94
|
+
/** Returns the underlying `Pinecone` client for anything not wrapped here (e.g. collections, assistants, inference). */
|
|
95
|
+
getClient(): Pinecone;
|
|
96
|
+
private requireClient;
|
|
97
|
+
/** Resolve (and cache) an `Index` handle targeting `indexName`, optionally scoped to `namespace`. */
|
|
98
|
+
private resolveIndex;
|
|
99
|
+
private exec;
|
|
100
|
+
/** List all indexes in the project. */
|
|
101
|
+
listIndexes(): Promise<IndexList>;
|
|
102
|
+
/** Describe a single index (dimension, metric, host, spec, ready status). */
|
|
103
|
+
describeIndex(indexName: string): Promise<IndexModel>;
|
|
104
|
+
/**
|
|
105
|
+
* Create a new index. `options.spec` selects the deployment shape -
|
|
106
|
+
* `{ serverless: { cloud, region } }` for a serverless index or
|
|
107
|
+
* `{ pod: { environment, podType, ... } }` for a pod-based index - and is
|
|
108
|
+
* required by the underlying SDK, matching Pinecone's actual index
|
|
109
|
+
* lifecycle (there is no dimension-less/spec-less index).
|
|
110
|
+
*/
|
|
111
|
+
createIndex(options: CreateIndexOptions): Promise<IndexModel | void>;
|
|
112
|
+
/** Delete an index by name. Irreversible - all vectors in every namespace are destroyed with it. */
|
|
113
|
+
deleteIndex(indexName: string): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Upsert one or more vector records into `indexName`. If a record's `id`
|
|
116
|
+
* already exists, its `values`/`metadata` are overwritten in full (not
|
|
117
|
+
* merged) - this is the same "insert or fully replace" semantics as the
|
|
118
|
+
* real Pinecone `upsert` API.
|
|
119
|
+
*/
|
|
120
|
+
upsert<T extends RecordMetadata = RecordMetadata>(indexName: string, records: VectorRecord<T> | Array<VectorRecord<T>>, options?: UpsertVectorsOptions): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Find the `topK` records most similar to a query vector (`options.vector`)
|
|
123
|
+
* or to an existing record's vector (`options.id`). See
|
|
124
|
+
* {@link QueryVectorsOptions}/the real SDK's `QueryOptions` for
|
|
125
|
+
* `filter`/`includeMetadata`/`includeValues`.
|
|
126
|
+
*/
|
|
127
|
+
query<T extends RecordMetadata = RecordMetadata>(indexName: string, options: QueryVectorsOptions, namespace?: string): Promise<QueryResponse<T>>;
|
|
128
|
+
/** Fetch one or more records by id. Ids that don't exist are simply absent from `records` in the response. */
|
|
129
|
+
fetch<T extends RecordMetadata = RecordMetadata>(indexName: string, ids: string[], options?: FetchVectorsOptions): Promise<FetchResponse<T>>;
|
|
130
|
+
/**
|
|
131
|
+
* Update an existing record by id. A provided `values` array overwrites
|
|
132
|
+
* the stored vector; a provided `metadata` object is merged into the
|
|
133
|
+
* existing metadata (only the given fields are added/changed, matching
|
|
134
|
+
* the real SDK's partial-update semantics).
|
|
135
|
+
*/
|
|
136
|
+
update<T extends RecordMetadata = RecordMetadata>(indexName: string, options: UpdateVectorOptions<T>): Promise<void>;
|
|
137
|
+
/** Delete records by id. */
|
|
138
|
+
deleteByIds(indexName: string, ids: string[], options?: DeleteByIdsOptions): Promise<void>;
|
|
139
|
+
/** Delete every record matching a metadata filter (e.g. `{ genre: { $eq: 'classical' } }`). */
|
|
140
|
+
deleteByFilter(indexName: string, filter: object, options?: DeleteByFilterOptions): Promise<void>;
|
|
141
|
+
/** Delete every record in a namespace (or the default namespace, if none is given). */
|
|
142
|
+
deleteAll(indexName: string, options?: DeleteAllVectorsOptions): Promise<void>;
|
|
143
|
+
/** Record counts per namespace, the index's configured dimension, and (for pod-based indexes) fullness. */
|
|
144
|
+
describeIndexStats(indexName: string, options?: DescribeIndexStatsOptions): Promise<IndexStatsDescription>;
|
|
145
|
+
}
|
|
146
|
+
/** Re-export of the driver's error namespace, for callers that want to `instanceof`-check a caught `DatabaseError.parent`. */
|
|
147
|
+
export { PineconeErrors };
|
|
148
|
+
export default PineconeStore;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apache Pinot store.
|
|
3
|
+
*
|
|
4
|
+
* Pinot is a real-time distributed OLAP datastore built for low-latency
|
|
5
|
+
* analytics on both streaming and batch data. Queries are issued against a
|
|
6
|
+
* *broker* over an HTTP/JSON API using Pinot SQL; results come back in a
|
|
7
|
+
* columnar `resultTable` envelope (a `dataSchema` plus positional `rows`).
|
|
8
|
+
* Pinot has no client-side row `INSERT` path (real-time ingestion is driven
|
|
9
|
+
* by Kafka/stream connectors configured server-side), so it does not fit the
|
|
10
|
+
* SQL-shaped `Dialect` interface (`src/dialects/dialect.ts`). This class
|
|
11
|
+
* implements the minimal `NoSqlStore` marker interface (`src/nosql/store.ts`)
|
|
12
|
+
* and exposes Pinot's read-only broker query API directly.
|
|
13
|
+
*
|
|
14
|
+
* ## No canonical driver - HTTP over `fetch`
|
|
15
|
+
*
|
|
16
|
+
* Pinot has no single canonical npm client; the broker is just an HTTP/JSON
|
|
17
|
+
* API. This store uses the global `fetch`. Tests (and callers wanting their
|
|
18
|
+
* own transport) inject an alternative client via `PinotStoreOptions.client`;
|
|
19
|
+
* when omitted a tiny `fetch`-based client is built against `endpoint` on
|
|
20
|
+
* `connect()`.
|
|
21
|
+
*/
|
|
22
|
+
import { NoSqlStore } from '../store';
|
|
23
|
+
/** Default Pinot broker HTTP endpoint. */
|
|
24
|
+
export declare const DEFAULT_PINOT_ENDPOINT = "http://localhost:8000";
|
|
25
|
+
/**
|
|
26
|
+
* The subset of an HTTP client this store needs. The internal `fetch`-based
|
|
27
|
+
* client implements this; tests inject a mock with the same shape.
|
|
28
|
+
*/
|
|
29
|
+
export interface PinotHttpClient {
|
|
30
|
+
/** Issue a POST with a JSON body and return the parsed JSON response. */
|
|
31
|
+
post(path: string, body: unknown): Promise<any>;
|
|
32
|
+
}
|
|
33
|
+
/** Connection options for `PinotStore`. */
|
|
34
|
+
export interface PinotStoreOptions {
|
|
35
|
+
/** Base HTTP endpoint of the Pinot broker. Defaults to `http://localhost:8000`. */
|
|
36
|
+
endpoint?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Optional pre-built HTTP client. When provided it is used verbatim and
|
|
39
|
+
* `endpoint` is ignored; otherwise an internal `fetch`-based client is built
|
|
40
|
+
* against `endpoint` on `connect()`. Tests inject a mock here.
|
|
41
|
+
*/
|
|
42
|
+
client?: PinotHttpClient;
|
|
43
|
+
/** Extra HTTP headers sent with every internal-client request. */
|
|
44
|
+
headers?: Record<string, string>;
|
|
45
|
+
}
|
|
46
|
+
/** Pinot's columnar result envelope. */
|
|
47
|
+
export interface PinotResultTable {
|
|
48
|
+
dataSchema?: {
|
|
49
|
+
columnNames?: string[];
|
|
50
|
+
columnDataTypes?: string[];
|
|
51
|
+
};
|
|
52
|
+
rows?: unknown[][];
|
|
53
|
+
}
|
|
54
|
+
/** Build a `fetch`-backed client for the given endpoint. */
|
|
55
|
+
export declare function createFetchClient(endpoint: string, headers?: Record<string, string>): PinotHttpClient;
|
|
56
|
+
/**
|
|
57
|
+
* `PinotStore` wraps Pinot's broker query API (`POST /query/sql`) behind the
|
|
58
|
+
* `NoSqlStore` lifecycle. `query()` maps the columnar `resultTable` into an
|
|
59
|
+
* array of row objects; `queryTable()` returns the raw `resultTable` envelope
|
|
60
|
+
* for callers who need the schema or the positional rows.
|
|
61
|
+
*/
|
|
62
|
+
export declare class PinotStore implements NoSqlStore {
|
|
63
|
+
readonly name = "pinot";
|
|
64
|
+
readonly library = "fetch";
|
|
65
|
+
private readonly endpoint;
|
|
66
|
+
private readonly injectedClient?;
|
|
67
|
+
private readonly headers?;
|
|
68
|
+
private client;
|
|
69
|
+
private connected;
|
|
70
|
+
constructor(options?: PinotStoreOptions);
|
|
71
|
+
connect(): Promise<void>;
|
|
72
|
+
disconnect(): Promise<void>;
|
|
73
|
+
isConnected(): boolean;
|
|
74
|
+
/** Returns the underlying (internal or injected) HTTP client. */
|
|
75
|
+
getClient(): PinotHttpClient;
|
|
76
|
+
private requireClient;
|
|
77
|
+
private runSql;
|
|
78
|
+
/**
|
|
79
|
+
* Run a Pinot SQL query via `POST /query/sql` and return the rows as an
|
|
80
|
+
* array of objects keyed by the result column names. For the raw columnar
|
|
81
|
+
* envelope (schema + positional rows), use `queryTable()`.
|
|
82
|
+
*/
|
|
83
|
+
query<T = Record<string, unknown>>(sql: string): Promise<T[]>;
|
|
84
|
+
/**
|
|
85
|
+
* Run a Pinot SQL query and return the raw `resultTable` envelope
|
|
86
|
+
* (`dataSchema` + positional `rows`), exactly as the broker returns it.
|
|
87
|
+
*/
|
|
88
|
+
queryTable(sql: string): Promise<PinotResultTable>;
|
|
89
|
+
}
|
|
90
|
+
export default PinotStore;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { NoSqlStore } from '../store';
|
|
2
|
+
/** A PouchDB document: an arbitrary record that carries an `_id` (and, once stored, a `_rev`). */
|
|
3
|
+
export type PouchDoc = Record<string, unknown> & {
|
|
4
|
+
_id?: string;
|
|
5
|
+
_rev?: string;
|
|
6
|
+
};
|
|
7
|
+
/** A single entry in a `batch()` write: a `put` (with document value) or a `del`. */
|
|
8
|
+
export type PouchBatchOp = {
|
|
9
|
+
type: 'put';
|
|
10
|
+
key: string;
|
|
11
|
+
value: Record<string, unknown>;
|
|
12
|
+
} | {
|
|
13
|
+
type: 'del';
|
|
14
|
+
key: string;
|
|
15
|
+
};
|
|
16
|
+
/** Result of a mutating call (`put`/`remove`): the affected id/rev and an `ok` flag. */
|
|
17
|
+
export interface PouchWriteResult {
|
|
18
|
+
ok: boolean;
|
|
19
|
+
id: string;
|
|
20
|
+
rev: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Minimal structural type for the pieces of a `pouchdb` database this store
|
|
24
|
+
* uses. Kept local (rather than importing from `pouchdb`) so this module
|
|
25
|
+
* type-checks without the optional driver installed.
|
|
26
|
+
*/
|
|
27
|
+
export interface PouchClientLike {
|
|
28
|
+
put(doc: PouchDoc): Promise<PouchWriteResult>;
|
|
29
|
+
get(id: string): Promise<PouchDoc>;
|
|
30
|
+
remove(doc: PouchDoc): Promise<PouchWriteResult>;
|
|
31
|
+
bulkDocs(docs: PouchDoc[]): Promise<PouchWriteResult[]>;
|
|
32
|
+
allDocs(options?: Record<string, unknown>): Promise<{
|
|
33
|
+
rows: {
|
|
34
|
+
id: string;
|
|
35
|
+
key: string;
|
|
36
|
+
}[];
|
|
37
|
+
}>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
/** Connection options for `PouchdbStore`. */
|
|
41
|
+
export interface PouchdbStoreOptions {
|
|
42
|
+
/** Database name / path passed to `new PouchDB(name)`. Defaults to `'./data/pouchdb'`. */
|
|
43
|
+
name?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Escape hatch for any other `PouchDB` constructor option (adapter, auth,
|
|
46
|
+
* ...). Passed as the second argument to `new PouchDB(name, config)`.
|
|
47
|
+
*/
|
|
48
|
+
config?: Record<string, unknown>;
|
|
49
|
+
/**
|
|
50
|
+
* A pre-built `pouchdb` database (or a compatible mock). When provided,
|
|
51
|
+
* `connect()` uses it directly and skips `require('pouchdb')` entirely —
|
|
52
|
+
* this is how tests inject a mock without the real driver installed.
|
|
53
|
+
*/
|
|
54
|
+
client?: PouchClientLike;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* `PouchdbStore` wraps a `pouchdb` database and exposes both a common KV
|
|
58
|
+
* surface — `put`/`get`/`del` keyed on `_id`, `batch`, `list` — and PouchDB's
|
|
59
|
+
* native `insert`/`allDocs` operations.
|
|
60
|
+
*/
|
|
61
|
+
export declare class PouchdbStore implements NoSqlStore {
|
|
62
|
+
readonly name = "pouchdb";
|
|
63
|
+
readonly library = "pouchdb";
|
|
64
|
+
private readonly options;
|
|
65
|
+
private readonly dbName;
|
|
66
|
+
private client;
|
|
67
|
+
private connected;
|
|
68
|
+
constructor(options?: PouchdbStoreOptions);
|
|
69
|
+
connect(): Promise<void>;
|
|
70
|
+
disconnect(): Promise<void>;
|
|
71
|
+
isConnected(): boolean;
|
|
72
|
+
/** Returns the underlying `pouchdb` database for anything not wrapped here. */
|
|
73
|
+
getClient(): PouchClientLike;
|
|
74
|
+
private requireClient;
|
|
75
|
+
private wrapError;
|
|
76
|
+
/** Writes a document keyed by `_id = key` (PouchDB `put`), merging `key` in as its `_id`. */
|
|
77
|
+
put(key: string, value: Record<string, unknown>): Promise<PouchWriteResult>;
|
|
78
|
+
/** Native `insert`: stores a document as-is (must carry its own `_id`). */
|
|
79
|
+
insert(doc: PouchDoc): Promise<PouchWriteResult>;
|
|
80
|
+
/** Reads a document by `_id` (PouchDB `get`). */
|
|
81
|
+
get(key: string): Promise<PouchDoc>;
|
|
82
|
+
/**
|
|
83
|
+
* Deletes a document by `_id`. PouchDB needs the current `_rev` to delete, so
|
|
84
|
+
* this first `get`s the document, then `remove`s it.
|
|
85
|
+
*/
|
|
86
|
+
del(key: string): Promise<PouchWriteResult>;
|
|
87
|
+
/** Applies a list of `put`/`del` operations. Puts go through `bulkDocs`; deletes are resolved individually. */
|
|
88
|
+
batch(ops: PouchBatchOp[]): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Lists document ids via `allDocs`. With `prefix`, restricts to ids
|
|
91
|
+
* `>= prefix` and `<= prefix + ''` (PouchDB's startkey/endkey range).
|
|
92
|
+
*/
|
|
93
|
+
list(prefix?: string): Promise<string[]>;
|
|
94
|
+
}
|
|
95
|
+
export default PouchdbStore;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prometheus store implementation.
|
|
3
|
+
*
|
|
4
|
+
* Prometheus is a pull-based time-series monitoring system. It is queried
|
|
5
|
+
* over its HTTP API using PromQL (Prometheus Query Language). There is no
|
|
6
|
+
* SQL-shaped query surface, no row-level UPDATE/DELETE, and no client-side
|
|
7
|
+
* ingestion path (Prometheus scrapes targets itself), so it does not fit
|
|
8
|
+
* the SQL `Dialect` interface (`src/dialects/dialect.ts`). This class
|
|
9
|
+
* implements the minimal `NoSqlStore` marker interface (`src/nosql/store.ts`)
|
|
10
|
+
* and exposes Prometheus's read-only HTTP query API directly.
|
|
11
|
+
*
|
|
12
|
+
* ## No canonical driver - HTTP over `fetch`
|
|
13
|
+
*
|
|
14
|
+
* Prometheus has no single canonical npm client library; it is just an
|
|
15
|
+
* HTTP/JSON API. Rather than depend on any package, this store talks to
|
|
16
|
+
* the server with the global `fetch`. For tests (and for callers who want
|
|
17
|
+
* to route requests through their own transport), an alternative HTTP
|
|
18
|
+
* client can be injected via `PrometheusStoreOptions.client`; when omitted,
|
|
19
|
+
* a tiny internal client over `fetch` + `baseURL` is built at connect time.
|
|
20
|
+
*
|
|
21
|
+
* ## Endpoints wrapped (all read-only, all under `/api/v1`)
|
|
22
|
+
*
|
|
23
|
+
* - `instantQuery(promql, time?)` -> `GET /api/v1/query`
|
|
24
|
+
* - `rangeQuery(promql, {start,end,step})` -> `GET /api/v1/query_range`
|
|
25
|
+
* - `series(match)` -> `GET /api/v1/series`
|
|
26
|
+
* - `labelValues(label)` -> `GET /api/v1/label/<label>/values`
|
|
27
|
+
*
|
|
28
|
+
* Each method returns the parsed `data` field of the Prometheus response
|
|
29
|
+
* envelope (`{ status: 'success', data: ... }`).
|
|
30
|
+
*/
|
|
31
|
+
import { NoSqlStore } from '../store';
|
|
32
|
+
/** Default Prometheus HTTP API base URL. */
|
|
33
|
+
export declare const DEFAULT_PROMETHEUS_BASE_URL = "http://localhost:9090";
|
|
34
|
+
/** Query-string parameter value(s). `undefined` values are dropped. */
|
|
35
|
+
export type QueryParams = Record<string, string | string[] | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* The subset of an HTTP client this store needs. The internal `fetch`-based
|
|
38
|
+
* client implements this; tests inject a mock with the same shape.
|
|
39
|
+
*/
|
|
40
|
+
export interface PrometheusHttpClient {
|
|
41
|
+
/** Issue a GET and return the parsed JSON response body. */
|
|
42
|
+
get(path: string, params?: QueryParams): Promise<any>;
|
|
43
|
+
/** Issue a POST with a text body and return the parsed/text response (optional). */
|
|
44
|
+
post?(path: string, body: string, contentType?: string): Promise<any>;
|
|
45
|
+
}
|
|
46
|
+
/** Connection options for `PrometheusStore`. */
|
|
47
|
+
export interface PrometheusStoreOptions {
|
|
48
|
+
/** Base URL of the Prometheus server. Defaults to `http://localhost:9090`. */
|
|
49
|
+
baseURL?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Optional pre-built HTTP client. When provided it is used verbatim and
|
|
52
|
+
* `baseURL` is ignored; otherwise an internal `fetch`-based client is
|
|
53
|
+
* built against `baseURL` on `connect()`.
|
|
54
|
+
*/
|
|
55
|
+
client?: PrometheusHttpClient;
|
|
56
|
+
/** Extra HTTP headers sent with every internal-client request. */
|
|
57
|
+
headers?: Record<string, string>;
|
|
58
|
+
}
|
|
59
|
+
/** Time bounds + resolution for a PromQL range query. */
|
|
60
|
+
export interface RangeQueryOptions {
|
|
61
|
+
/** Start timestamp (RFC3339 or Unix seconds). */
|
|
62
|
+
start: string | number;
|
|
63
|
+
/** End timestamp (RFC3339 or Unix seconds). */
|
|
64
|
+
end: string | number;
|
|
65
|
+
/** Query resolution step (duration string like `15s` or seconds). */
|
|
66
|
+
step: string | number;
|
|
67
|
+
}
|
|
68
|
+
/** Build a `fetch`-backed client for the given base URL. */
|
|
69
|
+
export declare function createFetchClient(baseURL: string, headers?: Record<string, string>): PrometheusHttpClient;
|
|
70
|
+
/**
|
|
71
|
+
* `PrometheusStore` wraps Prometheus's read-only HTTP query API (PromQL
|
|
72
|
+
* instant/range queries plus series/label metadata lookups) behind the
|
|
73
|
+
* `NoSqlStore` lifecycle. It performs no writes - Prometheus ingests data
|
|
74
|
+
* by scraping targets, not by client-side pushes.
|
|
75
|
+
*/
|
|
76
|
+
export declare class PrometheusStore implements NoSqlStore {
|
|
77
|
+
readonly name = "prometheus";
|
|
78
|
+
readonly library = "fetch";
|
|
79
|
+
private readonly baseURL;
|
|
80
|
+
private readonly injectedClient?;
|
|
81
|
+
private readonly headers?;
|
|
82
|
+
private client;
|
|
83
|
+
private connected;
|
|
84
|
+
constructor(options?: PrometheusStoreOptions);
|
|
85
|
+
connect(): Promise<void>;
|
|
86
|
+
disconnect(): Promise<void>;
|
|
87
|
+
isConnected(): boolean;
|
|
88
|
+
/** Returns the underlying (internal or injected) HTTP client. */
|
|
89
|
+
getClient(): PrometheusHttpClient;
|
|
90
|
+
private requireClient;
|
|
91
|
+
private get;
|
|
92
|
+
/**
|
|
93
|
+
* Runs a PromQL instant query at a single point in time via
|
|
94
|
+
* `GET /api/v1/query`. Returns the `data` payload (result type + result).
|
|
95
|
+
*/
|
|
96
|
+
instantQuery(promql: string, time?: string | number): Promise<any>;
|
|
97
|
+
/**
|
|
98
|
+
* Runs a PromQL range query over `[start, end]` at `step` resolution via
|
|
99
|
+
* `GET /api/v1/query_range`. Returns the `data` payload (matrix result).
|
|
100
|
+
*/
|
|
101
|
+
rangeQuery(promql: string, options: RangeQueryOptions): Promise<any>;
|
|
102
|
+
/**
|
|
103
|
+
* Finds series matching one or more PromQL series selectors via
|
|
104
|
+
* `GET /api/v1/series`. Returns the array of matching label sets.
|
|
105
|
+
*/
|
|
106
|
+
series(match: string | string[]): Promise<any>;
|
|
107
|
+
/**
|
|
108
|
+
* Lists the distinct values of a label via
|
|
109
|
+
* `GET /api/v1/label/<label>/values`. Returns the array of values.
|
|
110
|
+
*/
|
|
111
|
+
labelValues(label: string): Promise<any>;
|
|
112
|
+
}
|