ts-prorm-orm 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -0
- package/README.md +194 -72
- package/dist/audit/history-query.d.ts +35 -0
- package/dist/audit/index.d.ts +16 -0
- package/dist/audit/logger.d.ts +126 -0
- package/dist/cache/cache-manager.d.ts +341 -0
- package/dist/cache/index.d.ts +8 -0
- package/dist/cache/redis-cluster-cache.d.ts +164 -0
- package/dist/cache/redis-cluster-cache.js +19 -36
- package/dist/cli/cloud.d.ts +55 -0
- package/dist/cli/cloud.js +318 -0
- package/dist/cli/commands/auth.d.ts +2 -0
- package/dist/cli/commands/auth.js +345 -0
- package/dist/cli/commands/billing.d.ts +2 -0
- package/dist/cli/commands/billing.js +135 -0
- package/dist/cli/commands/code.d.ts +2 -0
- package/dist/cli/commands/code.js +168 -0
- package/dist/cli/commands/config.d.ts +2 -0
- package/dist/cli/commands/config.js +154 -0
- package/dist/cli/commands/db.d.ts +2 -0
- package/dist/cli/commands/db.js +189 -0
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +22 -0
- package/dist/cli/commands/keys.d.ts +2 -0
- package/dist/cli/commands/keys.js +100 -0
- package/dist/cli/commands/misc.d.ts +2 -0
- package/dist/cli/commands/misc.js +282 -0
- package/dist/cli/commands/pull.d.ts +2 -0
- package/dist/cli/commands/pull.js +306 -0
- package/dist/cli/commands/runners.d.ts +2 -0
- package/dist/cli/commands/runners.js +218 -0
- package/dist/cli/commands/scaffold.d.ts +2 -0
- package/dist/cli/commands/scaffold.js +383 -0
- package/dist/cli/commands/secrets.d.ts +2 -0
- package/dist/cli/commands/secrets.js +162 -0
- package/dist/cli/commands/store.d.ts +2 -0
- package/dist/cli/commands/store.js +274 -0
- package/dist/cli/commands/system.d.ts +10 -0
- package/dist/cli/commands/system.js +169 -0
- package/dist/cli/commands/teams.d.ts +2 -0
- package/dist/cli/commands/teams.js +189 -0
- package/dist/cli/commands/user.d.ts +2 -0
- package/dist/cli/commands/user.js +171 -0
- package/dist/cli/framework.d.ts +103 -0
- package/dist/cli/framework.js +436 -0
- package/dist/cli/io.d.ts +26 -0
- package/dist/cli/io.js +181 -0
- package/dist/cli/keychain.d.ts +10 -0
- package/dist/cli/keychain.js +101 -0
- package/dist/cli/prompt.d.ts +20 -0
- package/dist/cli/prompt.js +111 -0
- package/dist/cli.d.ts +214 -0
- package/dist/cli.js +72 -5
- package/dist/compliance/audit-trail.d.ts +66 -0
- package/dist/compliance/backup-verification.d.ts +279 -0
- package/dist/compliance/breach-detector.d.ts +197 -0
- package/dist/compliance/consent-record.d.ts +107 -0
- package/dist/compliance/consent-versioning.d.ts +169 -0
- package/dist/compliance/cross-border-log.d.ts +254 -0
- package/dist/compliance/data-classifier.d.ts +127 -0
- package/dist/compliance/data-lineage.d.ts +268 -0
- package/dist/compliance/data-masker.d.ts +110 -0
- package/dist/compliance/data-portability.d.ts +98 -0
- package/dist/compliance/data-retention.d.ts +108 -0
- package/dist/compliance/dsar-workflow.d.ts +175 -0
- package/dist/compliance/field-encryption.d.ts +84 -0
- package/dist/compliance/immutable-record.d.ts +84 -0
- package/dist/compliance/index.d.ts +93 -0
- package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
- package/dist/compliance/pseudonymization.d.ts +96 -0
- package/dist/compliance/query-firewall.d.ts +661 -0
- package/dist/compliance/rate-limiter.d.ts +203 -0
- package/dist/compliance/right-to-erasure.d.ts +96 -0
- package/dist/compliance/row-level-security.d.ts +152 -0
- package/dist/compliance/security-decorator.d.ts +388 -0
- package/dist/compliance/security-monitor.d.ts +170 -0
- package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
- package/dist/compliance/session-isolation.d.ts +286 -0
- package/dist/compliance/tls-enforcer.d.ts +51 -0
- package/dist/compliance/worm-storage.d.ts +225 -0
- package/dist/connection-manager.d.ts +130 -0
- package/dist/connection-pool.d.ts +311 -0
- package/dist/decorators/audit.d.ts +49 -0
- package/dist/decorators/check.d.ts +218 -0
- package/dist/decorators/collate.d.ts +346 -0
- package/dist/decorators/comment.d.ts +51 -0
- package/dist/decorators/database-settings.d.ts +193 -0
- package/dist/decorators/default.d.ts +148 -0
- package/dist/decorators/encryption.d.ts +175 -0
- package/dist/decorators/engine.d.ts +97 -0
- package/dist/decorators/fk-constraints.d.ts +387 -0
- package/dist/decorators/foreign-table.d.ts +57 -0
- package/dist/decorators/generated.d.ts +232 -0
- package/dist/decorators/hstore.d.ts +96 -0
- package/dist/decorators/index.d.ts +57 -0
- package/dist/decorators/index.js +14 -30
- package/dist/decorators/json-column.d.ts +47 -0
- package/dist/decorators/jsonb.d.ts +83 -0
- package/dist/decorators/orm-decorators.d.ts +274 -0
- package/dist/decorators/permissions.d.ts +192 -0
- package/dist/decorators/procedure.d.ts +168 -0
- package/dist/decorators/procedure.js +31 -7
- package/dist/decorators/query-options.d.ts +527 -0
- package/dist/decorators/range.d.ts +122 -0
- package/dist/decorators/set-column.d.ts +43 -0
- package/dist/decorators/spatial.d.ts +60 -0
- package/dist/decorators/storage.d.ts +561 -0
- package/dist/decorators/timezone.d.ts +319 -0
- package/dist/decorators/trigger.d.ts +50 -0
- package/dist/decorators/uuid.d.ts +102 -0
- package/dist/decorators/view.d.ts +213 -0
- package/dist/diagrams/chen-diagram.d.ts +70 -0
- package/dist/diagrams/chen-diagram.js +33 -31
- package/dist/diagrams/class-diagram.d.ts +78 -0
- package/dist/diagrams/class-diagram.js +23 -27
- package/dist/diagrams/dependency-diagram.d.ts +82 -0
- package/dist/diagrams/dependency-diagram.js +18 -9
- package/dist/diagrams/er-diagram.d.ts +82 -0
- package/dist/diagrams/er-diagram.js +174 -231
- package/dist/diagrams/flow-diagram.d.ts +70 -0
- package/dist/diagrams/flow-diagram.js +23 -18
- package/dist/diagrams/gantt-diagram.d.ts +67 -0
- package/dist/diagrams/gantt-diagram.js +20 -18
- package/dist/diagrams/index-diagram.d.ts +61 -0
- package/dist/diagrams/index-diagram.js +36 -31
- package/dist/diagrams/index.d.ts +155 -0
- package/dist/diagrams/index.js +7 -1
- package/dist/diagrams/migration-diagram.d.ts +67 -0
- package/dist/diagrams/migration-diagram.js +45 -57
- package/dist/diagrams/model-diagram.d.ts +85 -0
- package/dist/diagrams/model-diagram.js +225 -287
- package/dist/diagrams/package-diagram.d.ts +69 -0
- package/dist/diagrams/package-diagram.js +30 -32
- package/dist/diagrams/palette.d.ts +138 -0
- package/dist/diagrams/palette.js +134 -25
- package/dist/diagrams/relational-diagram.d.ts +82 -0
- package/dist/diagrams/relational-diagram.js +51 -59
- package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
- package/dist/diagrams/schemadoc-diagram.js +36 -28
- package/dist/diagrams/sequence-diagram.d.ts +61 -0
- package/dist/diagrams/sequence-diagram.js +20 -11
- package/dist/diagrams/state-diagram.d.ts +85 -0
- package/dist/diagrams/state-diagram.js +21 -17
- package/dist/diagrams/svg-dom.d.ts +62 -0
- package/dist/diagrams/svg-dom.js +11 -0
- package/dist/diagrams/tree-diagram.d.ts +47 -0
- package/dist/diagrams/tree-diagram.js +19 -10
- package/dist/dialects/clickhouse/index.d.ts +660 -0
- package/dist/dialects/clickhouse/index.js +107 -2
- package/dist/dialects/cockroachdb/index.d.ts +1708 -0
- package/dist/dialects/cockroachdb/index.js +139 -10
- package/dist/dialects/cratedb/index.d.ts +262 -0
- package/dist/dialects/cratedb/index.js +148 -0
- package/dist/dialects/databricks/index.d.ts +397 -0
- package/dist/dialects/databricks/index.js +233 -11
- package/dist/dialects/db2/index.d.ts +729 -0
- package/dist/dialects/db2/index.js +152 -2
- package/dist/dialects/dialect.d.ts +1653 -0
- package/dist/dialects/duckdb/index.d.ts +440 -0
- package/dist/dialects/duckdb/index.js +21 -37
- package/dist/dialects/exasol/index.d.ts +197 -0
- package/dist/dialects/exasol/index.js +14 -0
- package/dist/dialects/firebird/index.d.ts +286 -0
- package/dist/dialects/firebird/index.js +135 -0
- package/dist/dialects/greenplum/index.d.ts +336 -0
- package/dist/dialects/greenplum/index.js +168 -0
- package/dist/dialects/hana/index.d.ts +512 -0
- package/dist/dialects/hana/index.js +17 -35
- package/dist/dialects/mariadb/index.d.ts +1241 -0
- package/dist/dialects/mariadb/index.js +181 -43
- package/dist/dialects/mssql/index.d.ts +729 -0
- package/dist/dialects/mssql/index.js +76 -7
- package/dist/dialects/mysql/index.d.ts +1233 -0
- package/dist/dialects/mysql/index.js +87 -19
- package/dist/dialects/oracle/index.d.ts +1222 -0
- package/dist/dialects/oracle/index.js +210 -9
- package/dist/dialects/postgres/index.d.ts +1598 -0
- package/dist/dialects/postgres/index.js +34 -13
- package/dist/dialects/query-stream-helper.d.ts +58 -0
- package/dist/dialects/questdb/index.d.ts +430 -0
- package/dist/dialects/questdb/index.js +292 -0
- package/dist/dialects/redshift/index.d.ts +933 -0
- package/dist/dialects/redshift/index.js +17 -5
- package/dist/dialects/singlestore/index.d.ts +233 -0
- package/dist/dialects/singlestore/index.js +53 -0
- package/dist/dialects/snowflake/index.d.ts +727 -0
- package/dist/dialects/snowflake/index.js +154 -5
- package/dist/dialects/spanner/index.d.ts +660 -0
- package/dist/dialects/spanner/index.js +43 -21
- package/dist/dialects/sqlite/index.d.ts +1133 -0
- package/dist/dialects/sqlite/index.js +168 -30
- package/dist/dialects/tidb/index.d.ts +226 -0
- package/dist/dialects/tidb/index.js +10 -0
- package/dist/dialects/timescaledb/index.d.ts +286 -0
- package/dist/dialects/timescaledb/index.js +179 -0
- package/dist/dialects/trino/index.d.ts +230 -0
- package/dist/dialects/trino/index.js +85 -10
- package/dist/dialects/turso/index.d.ts +98 -0
- package/dist/dialects/turso/index.js +10 -0
- package/dist/dialects/vertica/index.d.ts +321 -0
- package/dist/dialects/vertica/index.js +161 -0
- package/dist/dialects/yugabytedb/index.d.ts +276 -0
- package/dist/dialects/yugabytedb/index.js +121 -0
- package/dist/errors/index.d.ts +378 -0
- package/dist/errors/index.js +29 -1
- package/dist/errors/utils.d.ts +53 -0
- package/dist/errors.d.ts +5 -0
- package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
- package/dist/extensions/catalog/mssql-features.d.ts +20 -0
- package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
- package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
- package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
- package/dist/extensions/index.d.ts +34 -0
- package/dist/extensions/types.d.ts +43 -0
- package/dist/external-fields/adapters.d.ts +50 -0
- package/dist/external-fields/adapters.js +227 -0
- package/dist/external-fields/decorator.d.ts +77 -0
- package/dist/external-fields/decorator.js +80 -0
- package/dist/external-fields/index.d.ts +10 -0
- package/dist/external-fields/index.js +19 -0
- package/dist/external-fields/runtime.d.ts +39 -0
- package/dist/external-fields/runtime.js +221 -0
- package/dist/foreign-data.d.ts +168 -0
- package/dist/graph/base-graph-dialect.d.ts +250 -0
- package/dist/graph/base-graph-dialect.js +539 -0
- package/dist/graph/dgraph/index.d.ts +65 -0
- package/dist/graph/dgraph/index.js +559 -0
- package/dist/graph/gremlin/index.d.ts +59 -0
- package/dist/graph/gremlin/index.js +378 -0
- package/dist/graph/index.d.ts +60 -0
- package/dist/graph/index.js +67 -0
- package/dist/graph/neo4j/index.d.ts +50 -0
- package/dist/graph/neo4j/index.js +462 -0
- package/dist/graph/types.d.ts +213 -0
- package/dist/graph/types.js +234 -0
- package/dist/hooks/hooks-manager.d.ts +189 -0
- package/dist/hooks/index.d.ts +8 -0
- package/dist/index.d.ts +713 -0
- package/dist/index.js +36 -4
- package/dist/logging.d.ts +183 -0
- package/dist/migrations/index.d.ts +9 -0
- package/dist/migrations/migration.d.ts +143 -0
- package/dist/migrations/migrator.d.ts +199 -0
- package/dist/migrations/prormmigration.d.ts +131 -0
- package/dist/migrations/query-interface.d.ts +335 -0
- package/dist/migrations/seeder.d.ts +167 -0
- package/dist/models/associations.d.ts +131 -0
- package/dist/models/associations.js +7 -2
- package/dist/models/constraints.d.ts +175 -0
- package/dist/models/data-types.d.ts +1656 -0
- package/dist/models/decorators.d.ts +328 -0
- package/dist/models/decorators.js +61 -82
- package/dist/models/eager-load.d.ts +86 -0
- package/dist/models/eager-load.js +369 -0
- package/dist/models/index.d.ts +13 -0
- package/dist/models/indexes.d.ts +325 -0
- package/dist/models/methods.d.ts +419 -0
- package/dist/models/model-manager.d.ts +76 -0
- package/dist/models/model.d.ts +820 -0
- package/dist/models/model.js +15 -101
- package/dist/models/operators.d.ts +29 -0
- package/dist/models/scopes.d.ts +71 -0
- package/dist/models/typescript-types.d.ts +177 -0
- package/dist/nosql/aerospike/index.d.ts +126 -0
- package/dist/nosql/allegrograph/index.d.ts +86 -0
- package/dist/nosql/arangodb/index.d.ts +285 -0
- package/dist/nosql/arangodb/index.js +274 -2
- package/dist/nosql/arangodb/where.d.ts +38 -0
- package/dist/nosql/arangodb/where.js +94 -0
- package/dist/nosql/azure-blob/index.d.ts +104 -0
- package/dist/nosql/beanstalkd/index.d.ts +88 -0
- package/dist/nosql/beequeue/index.d.ts +99 -0
- package/dist/nosql/bigchaindb/index.d.ts +113 -0
- package/dist/nosql/bigtable/index.d.ts +144 -0
- package/dist/nosql/blazegraph/index.d.ts +88 -0
- package/dist/nosql/bullmq/index.d.ts +83 -0
- package/dist/nosql/cassandra/index.d.ts +119 -0
- package/dist/nosql/chroma/index.d.ts +151 -0
- package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
- package/dist/nosql/coherence/index.d.ts +91 -0
- package/dist/nosql/cosmosdb/index.d.ts +78 -0
- package/dist/nosql/couchbase/index.d.ts +103 -0
- package/dist/nosql/dax/index.d.ts +118 -0
- package/dist/nosql/deno-kv/index.d.ts +109 -0
- package/dist/nosql/dgraph/index.d.ts +80 -0
- package/dist/nosql/doris/index.d.ts +88 -0
- package/dist/nosql/druid/index.d.ts +95 -0
- package/dist/nosql/dynamodb/index.d.ts +643 -0
- package/dist/nosql/dynamodb/index.js +423 -0
- package/dist/nosql/elasticsearch/index.d.ts +239 -0
- package/dist/nosql/etcd/index.d.ts +243 -0
- package/dist/nosql/eventhubs/index.d.ts +89 -0
- package/dist/nosql/eventstore/index.d.ts +102 -0
- package/dist/nosql/faunadb/index.d.ts +141 -0
- package/dist/nosql/faunadb/index.js +329 -0
- package/dist/nosql/firestore/index.d.ts +67 -0
- package/dist/nosql/fluree/index.d.ts +88 -0
- package/dist/nosql/fuseki/index.d.ts +94 -0
- package/dist/nosql/gcs/index.d.ts +62 -0
- package/dist/nosql/gearman/index.d.ts +77 -0
- package/dist/nosql/geode/index.d.ts +93 -0
- package/dist/nosql/graphdb/index.d.ts +86 -0
- package/dist/nosql/graylog/index.d.ts +118 -0
- package/dist/nosql/gridgain/index.d.ts +78 -0
- package/dist/nosql/hazelcast/index.d.ts +73 -0
- package/dist/nosql/hbase/index.d.ts +123 -0
- package/dist/nosql/ignite/index.d.ts +80 -0
- package/dist/nosql/immudb/index.d.ts +131 -0
- package/dist/nosql/index.d.ts +215 -0
- package/dist/nosql/infinispan/index.d.ts +95 -0
- package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
- package/dist/nosql/influxdb/flux-compiler.js +170 -0
- package/dist/nosql/influxdb/index.d.ts +300 -0
- package/dist/nosql/influxdb/index.js +0 -0
- package/dist/nosql/kafka/index.d.ts +113 -0
- package/dist/nosql/keyspaces/index.d.ts +122 -0
- package/dist/nosql/kinesis/index.d.ts +121 -0
- package/dist/nosql/leveldb/index.d.ts +112 -0
- package/dist/nosql/leveldb/index.js +103 -1
- package/dist/nosql/lmdb/index.d.ts +76 -0
- package/dist/nosql/loki/index.d.ts +126 -0
- package/dist/nosql/marklogic/index.d.ts +76 -0
- package/dist/nosql/materialize/index.d.ts +91 -0
- package/dist/nosql/meilisearch/index.d.ts +76 -0
- package/dist/nosql/memcached/index.d.ts +138 -0
- package/dist/nosql/milvus/index.d.ts +167 -0
- package/dist/nosql/minio/index.d.ts +122 -0
- package/dist/nosql/momento/index.d.ts +99 -0
- package/dist/nosql/mongodb/index.d.ts +265 -0
- package/dist/nosql/mongodb/index.js +139 -0
- package/dist/nosql/mongodb/where.d.ts +8 -0
- package/dist/nosql/mongodb/where.js +181 -0
- package/dist/nosql/nats/index.d.ts +139 -0
- package/dist/nosql/nedb/index.d.ts +79 -0
- package/dist/nosql/neo4j/index.d.ts +217 -0
- package/dist/nosql/neo4j/index.js +26 -14
- package/dist/nosql/neptune/index.d.ts +234 -0
- package/dist/nosql/neptune/index.js +23 -9
- package/dist/nosql/nsq/index.d.ts +93 -0
- package/dist/nosql/opensearch/index.d.ts +97 -0
- package/dist/nosql/orientdb/index.d.ts +72 -0
- package/dist/nosql/papertrail/index.d.ts +120 -0
- package/dist/nosql/pinecone/index.d.ts +148 -0
- package/dist/nosql/pinot/index.d.ts +90 -0
- package/dist/nosql/pouchdb/index.d.ts +95 -0
- package/dist/nosql/prometheus/index.d.ts +112 -0
- package/dist/nosql/provendb/index.d.ts +143 -0
- package/dist/nosql/provendb/index.js +262 -0
- package/dist/nosql/pubsub/index.d.ts +83 -0
- package/dist/nosql/pulsar/index.d.ts +105 -0
- package/dist/nosql/qdrant/index.d.ts +231 -0
- package/dist/nosql/qldb/index.d.ts +182 -0
- package/dist/nosql/qldb/index.js +302 -1
- package/dist/nosql/r2/index.d.ts +160 -0
- package/dist/nosql/rabbitmq/index.d.ts +131 -0
- package/dist/nosql/ravendb/index.d.ts +138 -0
- package/dist/nosql/ravendb/index.js +323 -9
- package/dist/nosql/ravendb/where.d.ts +38 -0
- package/dist/nosql/ravendb/where.js +94 -0
- package/dist/nosql/redis/index.d.ts +267 -0
- package/dist/nosql/redis/index.js +19 -5
- package/dist/nosql/redpanda/index.d.ts +117 -0
- package/dist/nosql/resque/index.d.ts +91 -0
- package/dist/nosql/rethinkdb/index.d.ts +194 -0
- package/dist/nosql/rethinkdb/index.js +290 -0
- package/dist/nosql/rethinkdb/where.d.ts +38 -0
- package/dist/nosql/rethinkdb/where.js +94 -0
- package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
- package/dist/nosql/rocksdb/document-layer.js +338 -0
- package/dist/nosql/rocksdb/index.d.ts +112 -0
- package/dist/nosql/rocksdb/index.js +103 -1
- package/dist/nosql/rocksdb/where-match.d.ts +21 -0
- package/dist/nosql/rocksdb/where-match.js +238 -0
- package/dist/nosql/rockset/index.d.ts +84 -0
- package/dist/nosql/s3/index.d.ts +170 -0
- package/dist/nosql/scylladb/index.d.ts +117 -0
- package/dist/nosql/signoz/index.d.ts +116 -0
- package/dist/nosql/sns/index.d.ts +99 -0
- package/dist/nosql/solr/index.d.ts +129 -0
- package/dist/nosql/splunk/index.d.ts +125 -0
- package/dist/nosql/sqs/index.d.ts +116 -0
- package/dist/nosql/stardog/index.d.ts +86 -0
- package/dist/nosql/starrocks/index.d.ts +89 -0
- package/dist/nosql/store.d.ts +23 -0
- package/dist/nosql/sumologic/index.d.ts +119 -0
- package/dist/nosql/surrealdb/index.d.ts +156 -0
- package/dist/nosql/surrealdb/index.js +174 -1
- package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
- package/dist/nosql/surrealdb/query-compiler.js +193 -0
- package/dist/nosql/terminusdb/index.d.ts +95 -0
- package/dist/nosql/tigergraph/index.d.ts +314 -0
- package/dist/nosql/typesense/index.d.ts +82 -0
- package/dist/nosql/unqlite/index.d.ts +68 -0
- package/dist/nosql/upstash/index.d.ts +80 -0
- package/dist/nosql/vercel-kv/index.d.ts +82 -0
- package/dist/nosql/victoriametrics/index.d.ts +129 -0
- package/dist/nosql/virtuoso/index.d.ts +87 -0
- package/dist/nosql/weaviate/index.d.ts +196 -0
- package/dist/operators/index.d.ts +7 -0
- package/dist/operators.d.ts +2947 -0
- package/dist/operators.js +46 -1
- package/dist/prisma-migrate/index.d.ts +28 -0
- package/dist/prisma-migrate/migration-generator.d.ts +21 -0
- package/dist/prisma-migrate/model-generator.d.ts +12 -0
- package/dist/prisma-migrate/relations.d.ts +28 -0
- package/dist/prisma-migrate/schema-parser.d.ts +42 -0
- package/dist/prisma-migrate/type-mapper.d.ts +20 -0
- package/dist/prorm.d.ts +2093 -0
- package/dist/prorm.js +721 -302
- package/dist/query-builders/cte-builder.d.ts +104 -0
- package/dist/query-builders/functions/aggregate.d.ts +199 -0
- package/dist/query-builders/functions/conditional.d.ts +195 -0
- package/dist/query-builders/functions/datetime.d.ts +202 -0
- package/dist/query-builders/functions/fulltext.d.ts +220 -0
- package/dist/query-builders/functions/index.d.ts +17 -0
- package/dist/query-builders/functions/json.d.ts +157 -0
- package/dist/query-builders/functions/math.d.ts +215 -0
- package/dist/query-builders/functions/string.d.ts +233 -0
- package/dist/query-builders/functions/window.d.ts +209 -0
- package/dist/query-builders/include-builder.d.ts +85 -0
- package/dist/query-builders/index-expression-builder.d.ts +153 -0
- package/dist/query-builders/index.d.ts +121 -0
- package/dist/query-builders/index.js +10 -0
- package/dist/query-builders/insert-builder.d.ts +62 -0
- package/dist/query-builders/model-helpers.d.ts +28 -0
- package/dist/query-builders/order-limit-builder.d.ts +84 -0
- package/dist/query-builders/sql-compiler.d.ts +562 -0
- package/dist/query-builders/subquery-builder.d.ts +133 -0
- package/dist/query-builders/update-builder.d.ts +71 -0
- package/dist/query-builders/view-builder.d.ts +189 -0
- package/dist/query-builders/where-builder.d.ts +124 -0
- package/dist/query-interface.d.ts +407 -0
- package/dist/query-interface.js +84 -0
- package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
- package/dist/query-optimizers/explain-plans.d.ts +187 -0
- package/dist/query-optimizers/index.d.ts +27 -0
- package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
- package/dist/query-optimizers/query-hints.d.ts +201 -0
- package/dist/query-optimizers/query-optimizer.d.ts +162 -0
- package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
- package/dist/replica-manager.d.ts +235 -0
- package/dist/schema/index.d.ts +7 -0
- package/dist/schema/migration-generator.d.ts +74 -0
- package/dist/schema/schema-differ.d.ts +114 -0
- package/dist/schema/types.d.ts +246 -0
- package/dist/schema-objects.d.ts +78 -0
- package/dist/schema-objects.js +203 -0
- package/dist/sql-constants.d.ts +240 -0
- package/dist/sqlite-advanced.d.ts +572 -0
- package/dist/streams/index.d.ts +5 -0
- package/dist/streams/transforms.d.ts +120 -0
- package/dist/transaction.d.ts +221 -0
- package/dist/types/index.d.ts +3123 -0
- package/dist/user-management.d.ts +141 -0
- package/dist/utils/date.d.ts +149 -0
- package/dist/utils/index.d.ts +359 -0
- package/dist/utils/string.d.ts +88 -0
- package/dist/validators/index.d.ts +7 -0
- package/dist/validators/validator.d.ts +306 -0
- package/package.json +20 -5
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
// Aggregates every cloud/account command module and registers it. Each module
|
|
4
|
+
// under this directory exports `commands: Command[]`; add a module here when you
|
|
5
|
+
// add a new command group.
|
|
6
|
+
const framework_1 = require("../framework");
|
|
7
|
+
const auth_1 = require("./auth");
|
|
8
|
+
const billing_1 = require("./billing");
|
|
9
|
+
const pull_1 = require("./pull");
|
|
10
|
+
const db_1 = require("./db");
|
|
11
|
+
const store_1 = require("./store");
|
|
12
|
+
const teams_1 = require("./teams");
|
|
13
|
+
const keys_1 = require("./keys");
|
|
14
|
+
const code_1 = require("./code");
|
|
15
|
+
const runners_1 = require("./runners");
|
|
16
|
+
const scaffold_1 = require("./scaffold");
|
|
17
|
+
const config_1 = require("./config");
|
|
18
|
+
const user_1 = require("./user");
|
|
19
|
+
const secrets_1 = require("./secrets");
|
|
20
|
+
const misc_1 = require("./misc");
|
|
21
|
+
const system_1 = require("./system");
|
|
22
|
+
(0, framework_1.register)(...auth_1.commands, ...billing_1.commands, ...pull_1.commands, ...db_1.commands, ...store_1.commands, ...teams_1.commands, ...keys_1.commands, ...code_1.commands, ...runners_1.commands, ...scaffold_1.commands, ...config_1.commands, ...user_1.commands, ...secrets_1.commands, ...misc_1.commands, ...system_1.commands);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.commands = void 0;
|
|
4
|
+
// API Keys command module for the prorm CLI. Manages team-scoped API keys
|
|
5
|
+
// (create, list, revoke) against the dashboard API. Keys are always scoped to a
|
|
6
|
+
// team, resolved from --team or the stored default team slug.
|
|
7
|
+
const framework_1 = require("../framework");
|
|
8
|
+
const cloud_1 = require("../cloud");
|
|
9
|
+
/** Resolve the team slug from --team or the stored default. */
|
|
10
|
+
function resolveTeam(ctx) {
|
|
11
|
+
return ctx.flags.team || (0, cloud_1.loadConfig)().teamSlug;
|
|
12
|
+
}
|
|
13
|
+
const create = (0, framework_1.defineCommand)({
|
|
14
|
+
name: 'key create',
|
|
15
|
+
description: 'Create a team-scoped API key (the full key is shown only once).',
|
|
16
|
+
group: 'API Keys',
|
|
17
|
+
flags: [
|
|
18
|
+
{ name: 'name', type: 'string', description: 'Human-readable name for the key.', required: true },
|
|
19
|
+
{ name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' },
|
|
20
|
+
{ name: 'expires', type: 'string', description: "Expiry, e.g. '30d' or an ISO date." },
|
|
21
|
+
{ name: 'scopes', type: 'string', description: 'Comma-separated list of scopes.' },
|
|
22
|
+
],
|
|
23
|
+
examples: [
|
|
24
|
+
'orm-cli key create --name ci-deploy',
|
|
25
|
+
'orm-cli key create --name ci-deploy --team acme --expires 30d',
|
|
26
|
+
'orm-cli key create --name reader --scopes read:db,read:storage',
|
|
27
|
+
],
|
|
28
|
+
run: async (ctx) => {
|
|
29
|
+
(0, cloud_1.requireAuth)();
|
|
30
|
+
const team = resolveTeam(ctx);
|
|
31
|
+
if (!team) {
|
|
32
|
+
framework_1.out.error('No team selected (use --team).');
|
|
33
|
+
return 1;
|
|
34
|
+
}
|
|
35
|
+
const name = ctx.flags.name;
|
|
36
|
+
const expires = ctx.flags.expires;
|
|
37
|
+
const scopes = ctx.flags.scopes;
|
|
38
|
+
const data = await (0, cloud_1.api)('/api/dashboard/teams/' + team + '/keys', {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
body: { name, expires, scopes: scopes ? scopes.split(',') : undefined },
|
|
41
|
+
});
|
|
42
|
+
framework_1.out.success('API key created — copy it now, it will not be shown again:');
|
|
43
|
+
framework_1.out.info(data.key);
|
|
44
|
+
framework_1.out.dim(`id ${data.id}, prefix ${data.prefix}`);
|
|
45
|
+
return 0;
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
const list = (0, framework_1.defineCommand)({
|
|
49
|
+
name: 'key list',
|
|
50
|
+
description: 'List the team-scoped API keys (full keys are never shown).',
|
|
51
|
+
group: 'API Keys',
|
|
52
|
+
flags: [
|
|
53
|
+
{ name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' },
|
|
54
|
+
{ name: 'json', type: 'boolean', description: 'Output raw JSON.' },
|
|
55
|
+
],
|
|
56
|
+
examples: ['orm-cli key list', 'orm-cli key list --team acme', 'orm-cli key list --json'],
|
|
57
|
+
run: async (ctx) => {
|
|
58
|
+
(0, cloud_1.requireAuth)();
|
|
59
|
+
const team = resolveTeam(ctx);
|
|
60
|
+
if (!team) {
|
|
61
|
+
framework_1.out.error('No team selected (use --team).');
|
|
62
|
+
return 1;
|
|
63
|
+
}
|
|
64
|
+
const data = await (0, cloud_1.api)('/api/dashboard/teams/' + team + '/keys');
|
|
65
|
+
if (ctx.flags.json) {
|
|
66
|
+
framework_1.out.json(data);
|
|
67
|
+
return 0;
|
|
68
|
+
}
|
|
69
|
+
framework_1.out.table(data.keys.map((k) => ({
|
|
70
|
+
id: k.id,
|
|
71
|
+
name: k.name,
|
|
72
|
+
prefix: k.prefix,
|
|
73
|
+
lastUsedAt: k.lastUsedAt,
|
|
74
|
+
expiresAt: k.expiresAt,
|
|
75
|
+
revoked: k.revoked,
|
|
76
|
+
})));
|
|
77
|
+
return 0;
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
const revoke = (0, framework_1.defineCommand)({
|
|
81
|
+
name: 'key revoke',
|
|
82
|
+
description: 'Revoke a team-scoped API key by id.',
|
|
83
|
+
group: 'API Keys',
|
|
84
|
+
positionals: [{ name: 'id', description: 'The API key id to revoke.', required: true }],
|
|
85
|
+
flags: [{ name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' }],
|
|
86
|
+
examples: ['orm-cli key revoke key_123', 'orm-cli key revoke key_123 --team acme'],
|
|
87
|
+
run: async (ctx) => {
|
|
88
|
+
(0, cloud_1.requireAuth)();
|
|
89
|
+
const team = resolveTeam(ctx);
|
|
90
|
+
if (!team) {
|
|
91
|
+
framework_1.out.error('No team selected (use --team).');
|
|
92
|
+
return 1;
|
|
93
|
+
}
|
|
94
|
+
const id = ctx.positionals[0];
|
|
95
|
+
await (0, cloud_1.api)('/api/dashboard/teams/' + team + '/keys/' + id + '/revoke', { method: 'POST' });
|
|
96
|
+
framework_1.out.success(`Revoked key ${id}`);
|
|
97
|
+
return 0;
|
|
98
|
+
},
|
|
99
|
+
});
|
|
100
|
+
exports.commands = [create, list, revoke];
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.commands = void 0;
|
|
37
|
+
// Miscellaneous top-level commands for the prorm CLI: docs search (backed by
|
|
38
|
+
// AWS OpenSearch), a dashboard status summary, a browser opener, the CLI
|
|
39
|
+
// version, and a connectivity ping. These sit outside the auth/db/storage
|
|
40
|
+
// groups and are collected under the "Misc" group.
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const child_process_1 = require("child_process");
|
|
44
|
+
const framework_1 = require("../framework");
|
|
45
|
+
const cloud_1 = require("../cloud");
|
|
46
|
+
const system_1 = require("./system");
|
|
47
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
48
|
+
/** Heuristic: did an API error come from an unauthenticated (401) response? */
|
|
49
|
+
function isUnauthorized(err) {
|
|
50
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
51
|
+
return /\b401\b/.test(msg) || /unauthori[sz]ed/i.test(msg);
|
|
52
|
+
}
|
|
53
|
+
/** Human-readable byte count. */
|
|
54
|
+
function formatBytes(bytes) {
|
|
55
|
+
if (!Number.isFinite(bytes) || bytes <= 0)
|
|
56
|
+
return '0 B';
|
|
57
|
+
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
|
|
58
|
+
const i = Math.min(units.length - 1, Math.floor(Math.log(bytes) / Math.log(1024)));
|
|
59
|
+
const value = bytes / 1024 ** i;
|
|
60
|
+
return `${i === 0 ? value : value.toFixed(1)} ${units[i]}`;
|
|
61
|
+
}
|
|
62
|
+
/** Platform command + args to open a URL in the default browser. */
|
|
63
|
+
function browserOpener(url) {
|
|
64
|
+
switch (process.platform) {
|
|
65
|
+
case 'darwin':
|
|
66
|
+
return { cmd: 'open', args: [url] };
|
|
67
|
+
case 'win32':
|
|
68
|
+
// `start` is a cmd builtin; the empty "" is the window title arg.
|
|
69
|
+
return { cmd: 'cmd', args: ['/c', 'start', '', url] };
|
|
70
|
+
default:
|
|
71
|
+
return { cmd: 'xdg-open', args: [url] };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** Read the CLI/library version from the nearest package.json. */
|
|
75
|
+
function readVersion() {
|
|
76
|
+
for (const rel of ['../package.json', '../../package.json']) {
|
|
77
|
+
try {
|
|
78
|
+
const raw = fs.readFileSync(path.join(__dirname, rel), 'utf8');
|
|
79
|
+
const pkg = JSON.parse(raw);
|
|
80
|
+
if (pkg.version)
|
|
81
|
+
return pkg.version;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Try the next candidate.
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
// ─── Commands ─────────────────────────────────────────────────────────────────
|
|
90
|
+
const search = (0, framework_1.defineCommand)({
|
|
91
|
+
name: 'search',
|
|
92
|
+
description: 'Search the prorm docs (backed by AWS OpenSearch).',
|
|
93
|
+
group: 'Misc',
|
|
94
|
+
positionals: [
|
|
95
|
+
{ name: 'query', description: 'Words to search for.', required: true, variadic: true },
|
|
96
|
+
],
|
|
97
|
+
flags: [
|
|
98
|
+
{ name: 'limit', type: 'number', description: 'Max number of results.', default: 8 },
|
|
99
|
+
{ name: 'json', type: 'boolean', description: 'Output raw JSON.' },
|
|
100
|
+
],
|
|
101
|
+
examples: [
|
|
102
|
+
'orm-cli search connection pooling',
|
|
103
|
+
'orm-cli search "custom dialect" --limit 3',
|
|
104
|
+
'orm-cli search migrations --json',
|
|
105
|
+
],
|
|
106
|
+
run: async (ctx) => {
|
|
107
|
+
const query = ctx.positionals.join(' ').trim();
|
|
108
|
+
if (!query) {
|
|
109
|
+
framework_1.out.error('A search query is required.');
|
|
110
|
+
return 1;
|
|
111
|
+
}
|
|
112
|
+
const limit = typeof ctx.flags.limit === 'number' ? ctx.flags.limit : 8;
|
|
113
|
+
const { results } = await (0, cloud_1.api)('/api/search', {
|
|
114
|
+
method: 'POST',
|
|
115
|
+
body: { query, limit },
|
|
116
|
+
auth: false,
|
|
117
|
+
});
|
|
118
|
+
if (ctx.flags.json) {
|
|
119
|
+
framework_1.out.json(results);
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
if (!results.length) {
|
|
123
|
+
framework_1.out.info(`No results for "${query}".`);
|
|
124
|
+
return 0;
|
|
125
|
+
}
|
|
126
|
+
framework_1.out.table(results.map((r) => ({ title: r.title, href: r.href })));
|
|
127
|
+
return 0;
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
const status = (0, framework_1.defineCommand)({
|
|
131
|
+
name: 'status',
|
|
132
|
+
description: 'Show a summary of your prorm account, team, and resource usage.',
|
|
133
|
+
group: 'Misc',
|
|
134
|
+
flags: [{ name: 'json', type: 'boolean', description: 'Output raw JSON.' }],
|
|
135
|
+
examples: ['orm-cli status', 'orm-cli status --json'],
|
|
136
|
+
run: async (ctx) => {
|
|
137
|
+
let data;
|
|
138
|
+
try {
|
|
139
|
+
data = await (0, cloud_1.api)('/api/dashboard/status');
|
|
140
|
+
}
|
|
141
|
+
catch (err) {
|
|
142
|
+
if (isUnauthorized(err)) {
|
|
143
|
+
framework_1.out.warn('Not logged in');
|
|
144
|
+
framework_1.out.dim(`API: ${(0, cloud_1.loadConfig)().apiUrl}`);
|
|
145
|
+
framework_1.out.info('Run `orm-cli auth login` to sign in.');
|
|
146
|
+
return 1;
|
|
147
|
+
}
|
|
148
|
+
throw err;
|
|
149
|
+
}
|
|
150
|
+
if (ctx.flags.json) {
|
|
151
|
+
framework_1.out.json(data);
|
|
152
|
+
return 0;
|
|
153
|
+
}
|
|
154
|
+
if (data.user) {
|
|
155
|
+
framework_1.out.info(`User: ${data.user.name ?? data.user.email ?? data.user.id ?? '(unknown)'}`);
|
|
156
|
+
}
|
|
157
|
+
if (data.team) {
|
|
158
|
+
framework_1.out.info(`Team: ${data.team.name ?? data.team.slug ?? data.team.id}`);
|
|
159
|
+
}
|
|
160
|
+
if (data.plan)
|
|
161
|
+
framework_1.out.info(`Plan: ${data.plan}`);
|
|
162
|
+
const counts = data.counts;
|
|
163
|
+
framework_1.out.info(`Code: ${counts.code}`);
|
|
164
|
+
framework_1.out.info(`Runners: ${counts.runners}`);
|
|
165
|
+
framework_1.out.info(`Databases: ${counts.databases}`);
|
|
166
|
+
framework_1.out.info(`Storage: ${formatBytes(counts.storageBytes)}`);
|
|
167
|
+
return 0;
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
const OPEN_PATHS = {
|
|
171
|
+
dashboard: '/dashboard',
|
|
172
|
+
teams: '/dashboard/teams',
|
|
173
|
+
databases: '/dashboard/databases',
|
|
174
|
+
storage: '/dashboard/storage',
|
|
175
|
+
docs: '/docs',
|
|
176
|
+
};
|
|
177
|
+
const open = (0, framework_1.defineCommand)({
|
|
178
|
+
name: 'open',
|
|
179
|
+
description: 'Open a prorm dashboard or docs page in your browser.',
|
|
180
|
+
group: 'Misc',
|
|
181
|
+
positionals: [
|
|
182
|
+
{
|
|
183
|
+
name: 'target',
|
|
184
|
+
description: 'What to open.',
|
|
185
|
+
choices: Object.keys(OPEN_PATHS),
|
|
186
|
+
},
|
|
187
|
+
],
|
|
188
|
+
examples: ['orm-cli open', 'orm-cli open databases', 'orm-cli open docs'],
|
|
189
|
+
run: (ctx) => {
|
|
190
|
+
const target = ctx.positionals[0] ?? 'dashboard';
|
|
191
|
+
const routePath = OPEN_PATHS[target] ?? OPEN_PATHS.dashboard;
|
|
192
|
+
const base = (0, cloud_1.loadConfig)().apiUrl.replace(/\/?$/, '');
|
|
193
|
+
const url = `${base.replace(/\/$/, '')}${routePath}`;
|
|
194
|
+
framework_1.out.info(`Opening ${url}`);
|
|
195
|
+
try {
|
|
196
|
+
const { cmd, args } = browserOpener(url);
|
|
197
|
+
const child = (0, child_process_1.spawn)(cmd, args, { detached: true, stdio: 'ignore' });
|
|
198
|
+
child.on('error', () => framework_1.out.dim(url));
|
|
199
|
+
child.unref();
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// Couldn't spawn an opener — the URL is already printed above.
|
|
203
|
+
framework_1.out.dim(url);
|
|
204
|
+
}
|
|
205
|
+
return 0;
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
const version = (0, framework_1.defineCommand)({
|
|
209
|
+
name: 'version',
|
|
210
|
+
description: 'Print the prorm CLI version.',
|
|
211
|
+
group: 'Misc',
|
|
212
|
+
examples: ['orm-cli version'],
|
|
213
|
+
flags: [{ name: 'check-update', type: 'boolean', description: 'Also check the npm registry for a newer version.' }],
|
|
214
|
+
run: async (ctx) => {
|
|
215
|
+
const v = readVersion();
|
|
216
|
+
if (!v) {
|
|
217
|
+
framework_1.out.error('Could not determine version (package.json not found).');
|
|
218
|
+
return 1;
|
|
219
|
+
}
|
|
220
|
+
framework_1.out.info(v);
|
|
221
|
+
if (ctx.flags['check-update']) {
|
|
222
|
+
const info = await (0, system_1.fetchLatestVersion)(v);
|
|
223
|
+
if (info.updateAvailable) {
|
|
224
|
+
framework_1.out.warn(`A newer version is available: v${info.latest} (run \`orm-cli upgrade\`).`);
|
|
225
|
+
}
|
|
226
|
+
else if (info.latest) {
|
|
227
|
+
framework_1.out.dim('You are on the latest version.');
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return 0;
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
const ping = (0, framework_1.defineCommand)({
|
|
234
|
+
name: 'ping',
|
|
235
|
+
description: 'Check whether the prorm API is reachable and measure latency.',
|
|
236
|
+
group: 'Misc',
|
|
237
|
+
flags: [{ name: 'json', type: 'boolean', description: 'Output raw JSON.' }],
|
|
238
|
+
examples: ['orm-cli ping', 'orm-cli ping --json'],
|
|
239
|
+
run: async (ctx) => {
|
|
240
|
+
const apiUrl = (0, cloud_1.loadConfig)().apiUrl;
|
|
241
|
+
const start = Date.now();
|
|
242
|
+
let reachable = true;
|
|
243
|
+
let degraded = false;
|
|
244
|
+
let error;
|
|
245
|
+
try {
|
|
246
|
+
// Unauthenticated: any completed HTTP response (even 401/5xx) proves the
|
|
247
|
+
// host is reachable. Only a NetworkError (DNS/timeout/refused) is "down".
|
|
248
|
+
await (0, cloud_1.api)('/api/dashboard/status', { auth: false, retries: 0 });
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
if (err instanceof cloud_1.NetworkError) {
|
|
252
|
+
reachable = false;
|
|
253
|
+
error = err.message;
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
// Reachable but the server returned an error (e.g. a 500) — reachable,
|
|
257
|
+
// but flag it as degraded rather than pretending everything is fine.
|
|
258
|
+
const status = err.status;
|
|
259
|
+
if (typeof status === 'number' && status >= 500) {
|
|
260
|
+
degraded = true;
|
|
261
|
+
error = err instanceof Error ? err.message : String(err);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
const latencyMs = Date.now() - start;
|
|
266
|
+
if (ctx.flags.json) {
|
|
267
|
+
framework_1.out.json({ apiUrl, reachable, degraded, latencyMs, error });
|
|
268
|
+
return reachable ? 0 : 1;
|
|
269
|
+
}
|
|
270
|
+
if (reachable && degraded) {
|
|
271
|
+
framework_1.out.warn(`${apiUrl} reachable in ${latencyMs}ms but returned a server error${error ? `: ${error}` : ''}`);
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
274
|
+
if (reachable) {
|
|
275
|
+
framework_1.out.success(`${apiUrl} reachable in ${latencyMs}ms`);
|
|
276
|
+
return 0;
|
|
277
|
+
}
|
|
278
|
+
framework_1.out.error(`${apiUrl} unreachable${error ? `: ${error}` : ''}`);
|
|
279
|
+
return 1;
|
|
280
|
+
},
|
|
281
|
+
});
|
|
282
|
+
exports.commands = [search, status, open, version, ping];
|