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.
Files changed (460) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +194 -72
  3. package/dist/audit/history-query.d.ts +35 -0
  4. package/dist/audit/index.d.ts +16 -0
  5. package/dist/audit/logger.d.ts +126 -0
  6. package/dist/cache/cache-manager.d.ts +341 -0
  7. package/dist/cache/index.d.ts +8 -0
  8. package/dist/cache/redis-cluster-cache.d.ts +164 -0
  9. package/dist/cache/redis-cluster-cache.js +19 -36
  10. package/dist/cli/cloud.d.ts +55 -0
  11. package/dist/cli/cloud.js +318 -0
  12. package/dist/cli/commands/auth.d.ts +2 -0
  13. package/dist/cli/commands/auth.js +345 -0
  14. package/dist/cli/commands/billing.d.ts +2 -0
  15. package/dist/cli/commands/billing.js +135 -0
  16. package/dist/cli/commands/code.d.ts +2 -0
  17. package/dist/cli/commands/code.js +168 -0
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +154 -0
  20. package/dist/cli/commands/db.d.ts +2 -0
  21. package/dist/cli/commands/db.js +189 -0
  22. package/dist/cli/commands/index.d.ts +1 -0
  23. package/dist/cli/commands/index.js +22 -0
  24. package/dist/cli/commands/keys.d.ts +2 -0
  25. package/dist/cli/commands/keys.js +100 -0
  26. package/dist/cli/commands/misc.d.ts +2 -0
  27. package/dist/cli/commands/misc.js +282 -0
  28. package/dist/cli/commands/pull.d.ts +2 -0
  29. package/dist/cli/commands/pull.js +306 -0
  30. package/dist/cli/commands/runners.d.ts +2 -0
  31. package/dist/cli/commands/runners.js +218 -0
  32. package/dist/cli/commands/scaffold.d.ts +2 -0
  33. package/dist/cli/commands/scaffold.js +383 -0
  34. package/dist/cli/commands/secrets.d.ts +2 -0
  35. package/dist/cli/commands/secrets.js +162 -0
  36. package/dist/cli/commands/store.d.ts +2 -0
  37. package/dist/cli/commands/store.js +274 -0
  38. package/dist/cli/commands/system.d.ts +10 -0
  39. package/dist/cli/commands/system.js +169 -0
  40. package/dist/cli/commands/teams.d.ts +2 -0
  41. package/dist/cli/commands/teams.js +189 -0
  42. package/dist/cli/commands/user.d.ts +2 -0
  43. package/dist/cli/commands/user.js +171 -0
  44. package/dist/cli/framework.d.ts +103 -0
  45. package/dist/cli/framework.js +436 -0
  46. package/dist/cli/io.d.ts +26 -0
  47. package/dist/cli/io.js +181 -0
  48. package/dist/cli/keychain.d.ts +10 -0
  49. package/dist/cli/keychain.js +101 -0
  50. package/dist/cli/prompt.d.ts +20 -0
  51. package/dist/cli/prompt.js +111 -0
  52. package/dist/cli.d.ts +214 -0
  53. package/dist/cli.js +72 -5
  54. package/dist/compliance/audit-trail.d.ts +66 -0
  55. package/dist/compliance/backup-verification.d.ts +279 -0
  56. package/dist/compliance/breach-detector.d.ts +197 -0
  57. package/dist/compliance/consent-record.d.ts +107 -0
  58. package/dist/compliance/consent-versioning.d.ts +169 -0
  59. package/dist/compliance/cross-border-log.d.ts +254 -0
  60. package/dist/compliance/data-classifier.d.ts +127 -0
  61. package/dist/compliance/data-lineage.d.ts +268 -0
  62. package/dist/compliance/data-masker.d.ts +110 -0
  63. package/dist/compliance/data-portability.d.ts +98 -0
  64. package/dist/compliance/data-retention.d.ts +108 -0
  65. package/dist/compliance/dsar-workflow.d.ts +175 -0
  66. package/dist/compliance/field-encryption.d.ts +84 -0
  67. package/dist/compliance/immutable-record.d.ts +84 -0
  68. package/dist/compliance/index.d.ts +93 -0
  69. package/dist/compliance/privacy-impact-assessment.d.ts +196 -0
  70. package/dist/compliance/pseudonymization.d.ts +96 -0
  71. package/dist/compliance/query-firewall.d.ts +661 -0
  72. package/dist/compliance/rate-limiter.d.ts +203 -0
  73. package/dist/compliance/right-to-erasure.d.ts +96 -0
  74. package/dist/compliance/row-level-security.d.ts +152 -0
  75. package/dist/compliance/security-decorator.d.ts +388 -0
  76. package/dist/compliance/security-monitor.d.ts +170 -0
  77. package/dist/compliance/sensitive-data-discovery.d.ts +151 -0
  78. package/dist/compliance/session-isolation.d.ts +286 -0
  79. package/dist/compliance/tls-enforcer.d.ts +51 -0
  80. package/dist/compliance/worm-storage.d.ts +225 -0
  81. package/dist/connection-manager.d.ts +130 -0
  82. package/dist/connection-pool.d.ts +311 -0
  83. package/dist/decorators/audit.d.ts +49 -0
  84. package/dist/decorators/check.d.ts +218 -0
  85. package/dist/decorators/collate.d.ts +346 -0
  86. package/dist/decorators/comment.d.ts +51 -0
  87. package/dist/decorators/database-settings.d.ts +193 -0
  88. package/dist/decorators/default.d.ts +148 -0
  89. package/dist/decorators/encryption.d.ts +175 -0
  90. package/dist/decorators/engine.d.ts +97 -0
  91. package/dist/decorators/fk-constraints.d.ts +387 -0
  92. package/dist/decorators/foreign-table.d.ts +57 -0
  93. package/dist/decorators/generated.d.ts +232 -0
  94. package/dist/decorators/hstore.d.ts +96 -0
  95. package/dist/decorators/index.d.ts +57 -0
  96. package/dist/decorators/index.js +14 -30
  97. package/dist/decorators/json-column.d.ts +47 -0
  98. package/dist/decorators/jsonb.d.ts +83 -0
  99. package/dist/decorators/orm-decorators.d.ts +274 -0
  100. package/dist/decorators/permissions.d.ts +192 -0
  101. package/dist/decorators/procedure.d.ts +168 -0
  102. package/dist/decorators/procedure.js +31 -7
  103. package/dist/decorators/query-options.d.ts +527 -0
  104. package/dist/decorators/range.d.ts +122 -0
  105. package/dist/decorators/set-column.d.ts +43 -0
  106. package/dist/decorators/spatial.d.ts +60 -0
  107. package/dist/decorators/storage.d.ts +561 -0
  108. package/dist/decorators/timezone.d.ts +319 -0
  109. package/dist/decorators/trigger.d.ts +50 -0
  110. package/dist/decorators/uuid.d.ts +102 -0
  111. package/dist/decorators/view.d.ts +213 -0
  112. package/dist/diagrams/chen-diagram.d.ts +70 -0
  113. package/dist/diagrams/chen-diagram.js +33 -31
  114. package/dist/diagrams/class-diagram.d.ts +78 -0
  115. package/dist/diagrams/class-diagram.js +23 -27
  116. package/dist/diagrams/dependency-diagram.d.ts +82 -0
  117. package/dist/diagrams/dependency-diagram.js +18 -9
  118. package/dist/diagrams/er-diagram.d.ts +82 -0
  119. package/dist/diagrams/er-diagram.js +174 -231
  120. package/dist/diagrams/flow-diagram.d.ts +70 -0
  121. package/dist/diagrams/flow-diagram.js +23 -18
  122. package/dist/diagrams/gantt-diagram.d.ts +67 -0
  123. package/dist/diagrams/gantt-diagram.js +20 -18
  124. package/dist/diagrams/index-diagram.d.ts +61 -0
  125. package/dist/diagrams/index-diagram.js +36 -31
  126. package/dist/diagrams/index.d.ts +155 -0
  127. package/dist/diagrams/index.js +7 -1
  128. package/dist/diagrams/migration-diagram.d.ts +67 -0
  129. package/dist/diagrams/migration-diagram.js +45 -57
  130. package/dist/diagrams/model-diagram.d.ts +85 -0
  131. package/dist/diagrams/model-diagram.js +225 -287
  132. package/dist/diagrams/package-diagram.d.ts +69 -0
  133. package/dist/diagrams/package-diagram.js +30 -32
  134. package/dist/diagrams/palette.d.ts +138 -0
  135. package/dist/diagrams/palette.js +134 -25
  136. package/dist/diagrams/relational-diagram.d.ts +82 -0
  137. package/dist/diagrams/relational-diagram.js +51 -59
  138. package/dist/diagrams/schemadoc-diagram.d.ts +57 -0
  139. package/dist/diagrams/schemadoc-diagram.js +36 -28
  140. package/dist/diagrams/sequence-diagram.d.ts +61 -0
  141. package/dist/diagrams/sequence-diagram.js +20 -11
  142. package/dist/diagrams/state-diagram.d.ts +85 -0
  143. package/dist/diagrams/state-diagram.js +21 -17
  144. package/dist/diagrams/svg-dom.d.ts +62 -0
  145. package/dist/diagrams/svg-dom.js +11 -0
  146. package/dist/diagrams/tree-diagram.d.ts +47 -0
  147. package/dist/diagrams/tree-diagram.js +19 -10
  148. package/dist/dialects/clickhouse/index.d.ts +660 -0
  149. package/dist/dialects/clickhouse/index.js +107 -2
  150. package/dist/dialects/cockroachdb/index.d.ts +1708 -0
  151. package/dist/dialects/cockroachdb/index.js +139 -10
  152. package/dist/dialects/cratedb/index.d.ts +262 -0
  153. package/dist/dialects/cratedb/index.js +148 -0
  154. package/dist/dialects/databricks/index.d.ts +397 -0
  155. package/dist/dialects/databricks/index.js +233 -11
  156. package/dist/dialects/db2/index.d.ts +729 -0
  157. package/dist/dialects/db2/index.js +152 -2
  158. package/dist/dialects/dialect.d.ts +1653 -0
  159. package/dist/dialects/duckdb/index.d.ts +440 -0
  160. package/dist/dialects/duckdb/index.js +21 -37
  161. package/dist/dialects/exasol/index.d.ts +197 -0
  162. package/dist/dialects/exasol/index.js +14 -0
  163. package/dist/dialects/firebird/index.d.ts +286 -0
  164. package/dist/dialects/firebird/index.js +135 -0
  165. package/dist/dialects/greenplum/index.d.ts +336 -0
  166. package/dist/dialects/greenplum/index.js +168 -0
  167. package/dist/dialects/hana/index.d.ts +512 -0
  168. package/dist/dialects/hana/index.js +17 -35
  169. package/dist/dialects/mariadb/index.d.ts +1241 -0
  170. package/dist/dialects/mariadb/index.js +181 -43
  171. package/dist/dialects/mssql/index.d.ts +729 -0
  172. package/dist/dialects/mssql/index.js +76 -7
  173. package/dist/dialects/mysql/index.d.ts +1233 -0
  174. package/dist/dialects/mysql/index.js +87 -19
  175. package/dist/dialects/oracle/index.d.ts +1222 -0
  176. package/dist/dialects/oracle/index.js +210 -9
  177. package/dist/dialects/postgres/index.d.ts +1598 -0
  178. package/dist/dialects/postgres/index.js +34 -13
  179. package/dist/dialects/query-stream-helper.d.ts +58 -0
  180. package/dist/dialects/questdb/index.d.ts +430 -0
  181. package/dist/dialects/questdb/index.js +292 -0
  182. package/dist/dialects/redshift/index.d.ts +933 -0
  183. package/dist/dialects/redshift/index.js +17 -5
  184. package/dist/dialects/singlestore/index.d.ts +233 -0
  185. package/dist/dialects/singlestore/index.js +53 -0
  186. package/dist/dialects/snowflake/index.d.ts +727 -0
  187. package/dist/dialects/snowflake/index.js +154 -5
  188. package/dist/dialects/spanner/index.d.ts +660 -0
  189. package/dist/dialects/spanner/index.js +43 -21
  190. package/dist/dialects/sqlite/index.d.ts +1133 -0
  191. package/dist/dialects/sqlite/index.js +168 -30
  192. package/dist/dialects/tidb/index.d.ts +226 -0
  193. package/dist/dialects/tidb/index.js +10 -0
  194. package/dist/dialects/timescaledb/index.d.ts +286 -0
  195. package/dist/dialects/timescaledb/index.js +179 -0
  196. package/dist/dialects/trino/index.d.ts +230 -0
  197. package/dist/dialects/trino/index.js +85 -10
  198. package/dist/dialects/turso/index.d.ts +98 -0
  199. package/dist/dialects/turso/index.js +10 -0
  200. package/dist/dialects/vertica/index.d.ts +321 -0
  201. package/dist/dialects/vertica/index.js +161 -0
  202. package/dist/dialects/yugabytedb/index.d.ts +276 -0
  203. package/dist/dialects/yugabytedb/index.js +121 -0
  204. package/dist/errors/index.d.ts +378 -0
  205. package/dist/errors/index.js +29 -1
  206. package/dist/errors/utils.d.ts +53 -0
  207. package/dist/errors.d.ts +5 -0
  208. package/dist/extensions/catalog/cloud-warehouse-features.d.ts +27 -0
  209. package/dist/extensions/catalog/mssql-features.d.ts +20 -0
  210. package/dist/extensions/catalog/mysql-mariadb-plugins.d.ts +18 -0
  211. package/dist/extensions/catalog/oracle-db2-features.d.ts +17 -0
  212. package/dist/extensions/catalog/postgres-extensions.d.ts +15 -0
  213. package/dist/extensions/index.d.ts +34 -0
  214. package/dist/extensions/types.d.ts +43 -0
  215. package/dist/external-fields/adapters.d.ts +50 -0
  216. package/dist/external-fields/adapters.js +227 -0
  217. package/dist/external-fields/decorator.d.ts +77 -0
  218. package/dist/external-fields/decorator.js +80 -0
  219. package/dist/external-fields/index.d.ts +10 -0
  220. package/dist/external-fields/index.js +19 -0
  221. package/dist/external-fields/runtime.d.ts +39 -0
  222. package/dist/external-fields/runtime.js +221 -0
  223. package/dist/foreign-data.d.ts +168 -0
  224. package/dist/graph/base-graph-dialect.d.ts +250 -0
  225. package/dist/graph/base-graph-dialect.js +539 -0
  226. package/dist/graph/dgraph/index.d.ts +65 -0
  227. package/dist/graph/dgraph/index.js +559 -0
  228. package/dist/graph/gremlin/index.d.ts +59 -0
  229. package/dist/graph/gremlin/index.js +378 -0
  230. package/dist/graph/index.d.ts +60 -0
  231. package/dist/graph/index.js +67 -0
  232. package/dist/graph/neo4j/index.d.ts +50 -0
  233. package/dist/graph/neo4j/index.js +462 -0
  234. package/dist/graph/types.d.ts +213 -0
  235. package/dist/graph/types.js +234 -0
  236. package/dist/hooks/hooks-manager.d.ts +189 -0
  237. package/dist/hooks/index.d.ts +8 -0
  238. package/dist/index.d.ts +713 -0
  239. package/dist/index.js +36 -4
  240. package/dist/logging.d.ts +183 -0
  241. package/dist/migrations/index.d.ts +9 -0
  242. package/dist/migrations/migration.d.ts +143 -0
  243. package/dist/migrations/migrator.d.ts +199 -0
  244. package/dist/migrations/prormmigration.d.ts +131 -0
  245. package/dist/migrations/query-interface.d.ts +335 -0
  246. package/dist/migrations/seeder.d.ts +167 -0
  247. package/dist/models/associations.d.ts +131 -0
  248. package/dist/models/associations.js +7 -2
  249. package/dist/models/constraints.d.ts +175 -0
  250. package/dist/models/data-types.d.ts +1656 -0
  251. package/dist/models/decorators.d.ts +328 -0
  252. package/dist/models/decorators.js +61 -82
  253. package/dist/models/eager-load.d.ts +86 -0
  254. package/dist/models/eager-load.js +369 -0
  255. package/dist/models/index.d.ts +13 -0
  256. package/dist/models/indexes.d.ts +325 -0
  257. package/dist/models/methods.d.ts +419 -0
  258. package/dist/models/model-manager.d.ts +76 -0
  259. package/dist/models/model.d.ts +820 -0
  260. package/dist/models/model.js +15 -101
  261. package/dist/models/operators.d.ts +29 -0
  262. package/dist/models/scopes.d.ts +71 -0
  263. package/dist/models/typescript-types.d.ts +177 -0
  264. package/dist/nosql/aerospike/index.d.ts +126 -0
  265. package/dist/nosql/allegrograph/index.d.ts +86 -0
  266. package/dist/nosql/arangodb/index.d.ts +285 -0
  267. package/dist/nosql/arangodb/index.js +274 -2
  268. package/dist/nosql/arangodb/where.d.ts +38 -0
  269. package/dist/nosql/arangodb/where.js +94 -0
  270. package/dist/nosql/azure-blob/index.d.ts +104 -0
  271. package/dist/nosql/beanstalkd/index.d.ts +88 -0
  272. package/dist/nosql/beequeue/index.d.ts +99 -0
  273. package/dist/nosql/bigchaindb/index.d.ts +113 -0
  274. package/dist/nosql/bigtable/index.d.ts +144 -0
  275. package/dist/nosql/blazegraph/index.d.ts +88 -0
  276. package/dist/nosql/bullmq/index.d.ts +83 -0
  277. package/dist/nosql/cassandra/index.d.ts +119 -0
  278. package/dist/nosql/chroma/index.d.ts +151 -0
  279. package/dist/nosql/cloudflare-kv/index.d.ts +120 -0
  280. package/dist/nosql/coherence/index.d.ts +91 -0
  281. package/dist/nosql/cosmosdb/index.d.ts +78 -0
  282. package/dist/nosql/couchbase/index.d.ts +103 -0
  283. package/dist/nosql/dax/index.d.ts +118 -0
  284. package/dist/nosql/deno-kv/index.d.ts +109 -0
  285. package/dist/nosql/dgraph/index.d.ts +80 -0
  286. package/dist/nosql/doris/index.d.ts +88 -0
  287. package/dist/nosql/druid/index.d.ts +95 -0
  288. package/dist/nosql/dynamodb/index.d.ts +643 -0
  289. package/dist/nosql/dynamodb/index.js +423 -0
  290. package/dist/nosql/elasticsearch/index.d.ts +239 -0
  291. package/dist/nosql/etcd/index.d.ts +243 -0
  292. package/dist/nosql/eventhubs/index.d.ts +89 -0
  293. package/dist/nosql/eventstore/index.d.ts +102 -0
  294. package/dist/nosql/faunadb/index.d.ts +141 -0
  295. package/dist/nosql/faunadb/index.js +329 -0
  296. package/dist/nosql/firestore/index.d.ts +67 -0
  297. package/dist/nosql/fluree/index.d.ts +88 -0
  298. package/dist/nosql/fuseki/index.d.ts +94 -0
  299. package/dist/nosql/gcs/index.d.ts +62 -0
  300. package/dist/nosql/gearman/index.d.ts +77 -0
  301. package/dist/nosql/geode/index.d.ts +93 -0
  302. package/dist/nosql/graphdb/index.d.ts +86 -0
  303. package/dist/nosql/graylog/index.d.ts +118 -0
  304. package/dist/nosql/gridgain/index.d.ts +78 -0
  305. package/dist/nosql/hazelcast/index.d.ts +73 -0
  306. package/dist/nosql/hbase/index.d.ts +123 -0
  307. package/dist/nosql/ignite/index.d.ts +80 -0
  308. package/dist/nosql/immudb/index.d.ts +131 -0
  309. package/dist/nosql/index.d.ts +215 -0
  310. package/dist/nosql/infinispan/index.d.ts +95 -0
  311. package/dist/nosql/influxdb/flux-compiler.d.ts +23 -0
  312. package/dist/nosql/influxdb/flux-compiler.js +170 -0
  313. package/dist/nosql/influxdb/index.d.ts +300 -0
  314. package/dist/nosql/influxdb/index.js +0 -0
  315. package/dist/nosql/kafka/index.d.ts +113 -0
  316. package/dist/nosql/keyspaces/index.d.ts +122 -0
  317. package/dist/nosql/kinesis/index.d.ts +121 -0
  318. package/dist/nosql/leveldb/index.d.ts +112 -0
  319. package/dist/nosql/leveldb/index.js +103 -1
  320. package/dist/nosql/lmdb/index.d.ts +76 -0
  321. package/dist/nosql/loki/index.d.ts +126 -0
  322. package/dist/nosql/marklogic/index.d.ts +76 -0
  323. package/dist/nosql/materialize/index.d.ts +91 -0
  324. package/dist/nosql/meilisearch/index.d.ts +76 -0
  325. package/dist/nosql/memcached/index.d.ts +138 -0
  326. package/dist/nosql/milvus/index.d.ts +167 -0
  327. package/dist/nosql/minio/index.d.ts +122 -0
  328. package/dist/nosql/momento/index.d.ts +99 -0
  329. package/dist/nosql/mongodb/index.d.ts +265 -0
  330. package/dist/nosql/mongodb/index.js +139 -0
  331. package/dist/nosql/mongodb/where.d.ts +8 -0
  332. package/dist/nosql/mongodb/where.js +181 -0
  333. package/dist/nosql/nats/index.d.ts +139 -0
  334. package/dist/nosql/nedb/index.d.ts +79 -0
  335. package/dist/nosql/neo4j/index.d.ts +217 -0
  336. package/dist/nosql/neo4j/index.js +26 -14
  337. package/dist/nosql/neptune/index.d.ts +234 -0
  338. package/dist/nosql/neptune/index.js +23 -9
  339. package/dist/nosql/nsq/index.d.ts +93 -0
  340. package/dist/nosql/opensearch/index.d.ts +97 -0
  341. package/dist/nosql/orientdb/index.d.ts +72 -0
  342. package/dist/nosql/papertrail/index.d.ts +120 -0
  343. package/dist/nosql/pinecone/index.d.ts +148 -0
  344. package/dist/nosql/pinot/index.d.ts +90 -0
  345. package/dist/nosql/pouchdb/index.d.ts +95 -0
  346. package/dist/nosql/prometheus/index.d.ts +112 -0
  347. package/dist/nosql/provendb/index.d.ts +143 -0
  348. package/dist/nosql/provendb/index.js +262 -0
  349. package/dist/nosql/pubsub/index.d.ts +83 -0
  350. package/dist/nosql/pulsar/index.d.ts +105 -0
  351. package/dist/nosql/qdrant/index.d.ts +231 -0
  352. package/dist/nosql/qldb/index.d.ts +182 -0
  353. package/dist/nosql/qldb/index.js +302 -1
  354. package/dist/nosql/r2/index.d.ts +160 -0
  355. package/dist/nosql/rabbitmq/index.d.ts +131 -0
  356. package/dist/nosql/ravendb/index.d.ts +138 -0
  357. package/dist/nosql/ravendb/index.js +323 -9
  358. package/dist/nosql/ravendb/where.d.ts +38 -0
  359. package/dist/nosql/ravendb/where.js +94 -0
  360. package/dist/nosql/redis/index.d.ts +267 -0
  361. package/dist/nosql/redis/index.js +19 -5
  362. package/dist/nosql/redpanda/index.d.ts +117 -0
  363. package/dist/nosql/resque/index.d.ts +91 -0
  364. package/dist/nosql/rethinkdb/index.d.ts +194 -0
  365. package/dist/nosql/rethinkdb/index.js +290 -0
  366. package/dist/nosql/rethinkdb/where.d.ts +38 -0
  367. package/dist/nosql/rethinkdb/where.js +94 -0
  368. package/dist/nosql/rocksdb/document-layer.d.ts +162 -0
  369. package/dist/nosql/rocksdb/document-layer.js +338 -0
  370. package/dist/nosql/rocksdb/index.d.ts +112 -0
  371. package/dist/nosql/rocksdb/index.js +103 -1
  372. package/dist/nosql/rocksdb/where-match.d.ts +21 -0
  373. package/dist/nosql/rocksdb/where-match.js +238 -0
  374. package/dist/nosql/rockset/index.d.ts +84 -0
  375. package/dist/nosql/s3/index.d.ts +170 -0
  376. package/dist/nosql/scylladb/index.d.ts +117 -0
  377. package/dist/nosql/signoz/index.d.ts +116 -0
  378. package/dist/nosql/sns/index.d.ts +99 -0
  379. package/dist/nosql/solr/index.d.ts +129 -0
  380. package/dist/nosql/splunk/index.d.ts +125 -0
  381. package/dist/nosql/sqs/index.d.ts +116 -0
  382. package/dist/nosql/stardog/index.d.ts +86 -0
  383. package/dist/nosql/starrocks/index.d.ts +89 -0
  384. package/dist/nosql/store.d.ts +23 -0
  385. package/dist/nosql/sumologic/index.d.ts +119 -0
  386. package/dist/nosql/surrealdb/index.d.ts +156 -0
  387. package/dist/nosql/surrealdb/index.js +174 -1
  388. package/dist/nosql/surrealdb/query-compiler.d.ts +26 -0
  389. package/dist/nosql/surrealdb/query-compiler.js +193 -0
  390. package/dist/nosql/terminusdb/index.d.ts +95 -0
  391. package/dist/nosql/tigergraph/index.d.ts +314 -0
  392. package/dist/nosql/typesense/index.d.ts +82 -0
  393. package/dist/nosql/unqlite/index.d.ts +68 -0
  394. package/dist/nosql/upstash/index.d.ts +80 -0
  395. package/dist/nosql/vercel-kv/index.d.ts +82 -0
  396. package/dist/nosql/victoriametrics/index.d.ts +129 -0
  397. package/dist/nosql/virtuoso/index.d.ts +87 -0
  398. package/dist/nosql/weaviate/index.d.ts +196 -0
  399. package/dist/operators/index.d.ts +7 -0
  400. package/dist/operators.d.ts +2947 -0
  401. package/dist/operators.js +46 -1
  402. package/dist/prisma-migrate/index.d.ts +28 -0
  403. package/dist/prisma-migrate/migration-generator.d.ts +21 -0
  404. package/dist/prisma-migrate/model-generator.d.ts +12 -0
  405. package/dist/prisma-migrate/relations.d.ts +28 -0
  406. package/dist/prisma-migrate/schema-parser.d.ts +42 -0
  407. package/dist/prisma-migrate/type-mapper.d.ts +20 -0
  408. package/dist/prorm.d.ts +2093 -0
  409. package/dist/prorm.js +721 -302
  410. package/dist/query-builders/cte-builder.d.ts +104 -0
  411. package/dist/query-builders/functions/aggregate.d.ts +199 -0
  412. package/dist/query-builders/functions/conditional.d.ts +195 -0
  413. package/dist/query-builders/functions/datetime.d.ts +202 -0
  414. package/dist/query-builders/functions/fulltext.d.ts +220 -0
  415. package/dist/query-builders/functions/index.d.ts +17 -0
  416. package/dist/query-builders/functions/json.d.ts +157 -0
  417. package/dist/query-builders/functions/math.d.ts +215 -0
  418. package/dist/query-builders/functions/string.d.ts +233 -0
  419. package/dist/query-builders/functions/window.d.ts +209 -0
  420. package/dist/query-builders/include-builder.d.ts +85 -0
  421. package/dist/query-builders/index-expression-builder.d.ts +153 -0
  422. package/dist/query-builders/index.d.ts +121 -0
  423. package/dist/query-builders/index.js +10 -0
  424. package/dist/query-builders/insert-builder.d.ts +62 -0
  425. package/dist/query-builders/model-helpers.d.ts +28 -0
  426. package/dist/query-builders/order-limit-builder.d.ts +84 -0
  427. package/dist/query-builders/sql-compiler.d.ts +562 -0
  428. package/dist/query-builders/subquery-builder.d.ts +133 -0
  429. package/dist/query-builders/update-builder.d.ts +71 -0
  430. package/dist/query-builders/view-builder.d.ts +189 -0
  431. package/dist/query-builders/where-builder.d.ts +124 -0
  432. package/dist/query-interface.d.ts +407 -0
  433. package/dist/query-interface.js +84 -0
  434. package/dist/query-optimizers/batch-optimizer.d.ts +175 -0
  435. package/dist/query-optimizers/explain-plans.d.ts +187 -0
  436. package/dist/query-optimizers/index.d.ts +27 -0
  437. package/dist/query-optimizers/prepared-statement-cache.d.ts +252 -0
  438. package/dist/query-optimizers/query-hints.d.ts +201 -0
  439. package/dist/query-optimizers/query-optimizer.d.ts +162 -0
  440. package/dist/query-optimizers/slow-query-logger.d.ts +186 -0
  441. package/dist/replica-manager.d.ts +235 -0
  442. package/dist/schema/index.d.ts +7 -0
  443. package/dist/schema/migration-generator.d.ts +74 -0
  444. package/dist/schema/schema-differ.d.ts +114 -0
  445. package/dist/schema/types.d.ts +246 -0
  446. package/dist/schema-objects.d.ts +78 -0
  447. package/dist/schema-objects.js +203 -0
  448. package/dist/sql-constants.d.ts +240 -0
  449. package/dist/sqlite-advanced.d.ts +572 -0
  450. package/dist/streams/index.d.ts +5 -0
  451. package/dist/streams/transforms.d.ts +120 -0
  452. package/dist/transaction.d.ts +221 -0
  453. package/dist/types/index.d.ts +3123 -0
  454. package/dist/user-management.d.ts +141 -0
  455. package/dist/utils/date.d.ts +149 -0
  456. package/dist/utils/index.d.ts +359 -0
  457. package/dist/utils/string.d.ts +88 -0
  458. package/dist/validators/index.d.ts +7 -0
  459. package/dist/validators/validator.d.ts +306 -0
  460. package/package.json +20 -5
@@ -0,0 +1,383 @@
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
+ // Scaffold command module for the prorm CLI. Generates local project files —
38
+ // new projects, models, migrations, seeders, and connection blocks — directly
39
+ // on the filesystem. These commands never touch the cloud/dashboard API; they
40
+ // only read and write files in the current working tree via Node fs/path.
41
+ const fs = __importStar(require("node:fs"));
42
+ const path = __importStar(require("node:path"));
43
+ const framework_1 = require("../framework");
44
+ const DIALECTS = ['sqlite', 'postgres', 'mysql', 'mariadb'];
45
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
46
+ /** Capitalize the first letter, e.g. "user" -> "User". */
47
+ function capitalize(name) {
48
+ return name.charAt(0).toUpperCase() + name.slice(1);
49
+ }
50
+ /** Compact UTC timestamp for migration/seeder filenames, e.g. 20260707T120000. */
51
+ function timestamp() {
52
+ return new Date().toISOString().replace(/[-:]/g, '').replace(/\.\d+Z$/, '').replace('T', 'T');
53
+ }
54
+ /** Slugify an arbitrary name into a filename-safe token. */
55
+ function slug(name) {
56
+ return name
57
+ .trim()
58
+ .replace(/[^a-zA-Z0-9]+/g, '-')
59
+ .replace(/^-+|-+$/g, '')
60
+ .toLowerCase();
61
+ }
62
+ /** Write a file, creating parent directories as needed. */
63
+ function writeFile(filePath, contents) {
64
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
65
+ fs.writeFileSync(filePath, contents, 'utf8');
66
+ }
67
+ /** Build a default connection block for a dialect. */
68
+ function defaultConnection(dialect, name = 'app') {
69
+ if (dialect === 'sqlite') {
70
+ return { dialect, storage: `./${name}.sqlite` };
71
+ }
72
+ const port = dialect === 'postgres' ? 5432 : 3306;
73
+ return {
74
+ dialect,
75
+ host: 'localhost',
76
+ port,
77
+ database: name,
78
+ username: dialect === 'postgres' ? 'postgres' : 'root',
79
+ password: '',
80
+ };
81
+ }
82
+ /** Build the DATABASE_URL / storage line for an .env file. */
83
+ function envLine(dialect, name) {
84
+ switch (dialect) {
85
+ case 'sqlite':
86
+ return `# SQLite stores data in a local file.\nDATABASE_STORAGE=./${name}.sqlite`;
87
+ case 'postgres':
88
+ return `DATABASE_URL=postgres://postgres:password@localhost:5432/${name}`;
89
+ case 'mysql':
90
+ return `DATABASE_URL=mysql://root:password@localhost:3306/${name}`;
91
+ case 'mariadb':
92
+ return `DATABASE_URL=mariadb://root:password@localhost:3306/${name}`;
93
+ }
94
+ }
95
+ // ─── Templates ────────────────────────────────────────────────────────────────
96
+ function packageJsonTemplate(name) {
97
+ return (JSON.stringify({
98
+ name: slug(name) || name,
99
+ version: '0.1.0',
100
+ private: true,
101
+ type: 'module',
102
+ scripts: {
103
+ build: 'tsc',
104
+ migrate: 'prorm migrate',
105
+ seed: 'prorm seed',
106
+ start: 'node dist/index.js',
107
+ },
108
+ dependencies: {
109
+ 'ts-prorm-orm': '^1.0.0',
110
+ },
111
+ devDependencies: {
112
+ prorm: '^1.0.0',
113
+ typescript: '^5.4.0',
114
+ },
115
+ }, null, 2) + '\n');
116
+ }
117
+ function configTemplate(dialect, name) {
118
+ const config = {
119
+ dialect,
120
+ connection: defaultConnection(dialect, name),
121
+ };
122
+ return JSON.stringify(config, null, 2) + '\n';
123
+ }
124
+ function modelTemplate(Name) {
125
+ return `import { Prorm, DataTypes } from 'ts-prorm-orm';
126
+
127
+ // The ${Name} model. Fields are declared with DataTypes; Prorm.define wires the
128
+ // model to the active connection resolved from prorm.config.json.
129
+ export const ${Name} = Prorm.define('${Name}', {
130
+ id: {
131
+ type: DataTypes.INTEGER,
132
+ primaryKey: true,
133
+ autoIncrement: true,
134
+ },
135
+ name: {
136
+ type: DataTypes.STRING,
137
+ allowNull: false,
138
+ },
139
+ email: {
140
+ type: DataTypes.STRING,
141
+ allowNull: false,
142
+ unique: true,
143
+ },
144
+ createdAt: {
145
+ type: DataTypes.DATE,
146
+ defaultValue: DataTypes.NOW,
147
+ },
148
+ });
149
+
150
+ export type ${Name}Attributes = {
151
+ id: number;
152
+ name: string;
153
+ email: string;
154
+ createdAt: Date;
155
+ };
156
+
157
+ // Example:
158
+ // const row = await ${Name}.create({ name: 'Ada', email: 'ada@example.com' });
159
+ // const all = await ${Name}.findAll();
160
+ export default ${Name};
161
+ `;
162
+ }
163
+ function envExampleTemplate(dialect, name) {
164
+ return `# Environment configuration for ${name}.
165
+ # Copy this file to .env and fill in real credentials.
166
+ ${envLine(dialect, name)}
167
+ `;
168
+ }
169
+ function readmeTemplate(name, dialect) {
170
+ return `# ${name}
171
+
172
+ A prorm project scaffolded with the prorm CLI (dialect: **${dialect}**).
173
+
174
+ ## Getting started
175
+
176
+ \`\`\`sh
177
+ npm install
178
+ cp .env.example .env # then edit credentials
179
+ npm run migrate # apply migrations
180
+ npm start
181
+ \`\`\`
182
+
183
+ ## Layout
184
+
185
+ - \`prorm.config.json\` — connection + dialect configuration.
186
+ - \`src/models/\` — prorm model definitions.
187
+ - \`migrations/\` — schema migrations (see \`prorm add migration --name <name>\`).
188
+ - \`seeders/\` — data seeders (see \`prorm add seeder --name <name>\`).
189
+
190
+ ## Adding resources
191
+
192
+ \`\`\`sh
193
+ prorm add model --name Post
194
+ prorm add migration --name create-posts
195
+ prorm add seeder --name demo-users
196
+ prorm add connection --dialect postgres
197
+ \`\`\`
198
+ `;
199
+ }
200
+ function migrationTemplate(name) {
201
+ return `import type { Prorm } from 'ts-prorm-orm';
202
+
203
+ // Migration: ${name}
204
+ // Runs inside a transaction. Implement the forward change in up() and the
205
+ // inverse in down() so the migration is reversible.
206
+ export async function up(prorm: Prorm): Promise<void> {
207
+ await prorm.schema.createTable('examples', (table) => {
208
+ table.increments('id').primaryKey();
209
+ table.string('title').notNullable();
210
+ table.timestamps();
211
+ });
212
+ }
213
+
214
+ export async function down(prorm: Prorm): Promise<void> {
215
+ await prorm.schema.dropTable('examples');
216
+ }
217
+ `;
218
+ }
219
+ function seederTemplate(name) {
220
+ return `import type { Prorm } from 'ts-prorm-orm';
221
+
222
+ // Seeder: ${name}
223
+ // Inserts baseline/demo data. Keep seeders idempotent where possible.
224
+ export async function seed(prorm: Prorm): Promise<void> {
225
+ await prorm.table('examples').insert([
226
+ { title: 'First example' },
227
+ { title: 'Second example' },
228
+ ]);
229
+ }
230
+ `;
231
+ }
232
+ // ─── Commands ─────────────────────────────────────────────────────────────────
233
+ const newProject = (0, framework_1.defineCommand)({
234
+ name: 'new',
235
+ description: 'Scaffold a new prorm project directory with starter files.',
236
+ group: 'Scaffold',
237
+ positionals: [{ name: 'name', description: 'Project name.', required: true }],
238
+ flags: [
239
+ {
240
+ name: 'dialect',
241
+ type: 'string',
242
+ description: 'Database dialect.',
243
+ choices: DIALECTS,
244
+ default: 'sqlite',
245
+ },
246
+ { name: 'dir', type: 'string', description: 'Target directory (defaults to the project name).' },
247
+ { name: 'force', type: 'boolean', description: 'Overwrite an existing directory.' },
248
+ ],
249
+ examples: [
250
+ 'orm-cli new blog',
251
+ 'orm-cli new blog --dialect postgres',
252
+ 'orm-cli new blog --dir ./apps/blog --force',
253
+ ],
254
+ run: (ctx) => {
255
+ const name = ctx.positionals[0];
256
+ if (!name) {
257
+ framework_1.out.error('A project <name> is required.');
258
+ return 1;
259
+ }
260
+ const dialect = ctx.flags.dialect;
261
+ const dir = ctx.flags.dir || name;
262
+ const force = ctx.flags.force === true;
263
+ const target = path.resolve(process.cwd(), dir);
264
+ if (fs.existsSync(target)) {
265
+ if (!force) {
266
+ framework_1.out.error(`Directory already exists: ${target} (use --force to overwrite).`);
267
+ return 1;
268
+ }
269
+ framework_1.out.warn(`Overwriting existing directory: ${target}`);
270
+ }
271
+ fs.mkdirSync(target, { recursive: true });
272
+ const files = [
273
+ ['package.json', packageJsonTemplate(name)],
274
+ ['prorm.config.json', configTemplate(dialect, slug(name) || name)],
275
+ [path.join('src', 'models', 'User.ts'), modelTemplate('User')],
276
+ ['.env.example', envExampleTemplate(dialect, slug(name) || name)],
277
+ ['README.md', readmeTemplate(name, dialect)],
278
+ ];
279
+ for (const [rel, contents] of files) {
280
+ writeFile(path.join(target, rel), contents);
281
+ framework_1.out.dim(` created ${path.join(dir, rel)}`);
282
+ }
283
+ framework_1.out.success(`Scaffolded ${name}`);
284
+ framework_1.out.info('');
285
+ framework_1.out.info('Next steps:');
286
+ framework_1.out.info(` cd ${dir}`);
287
+ framework_1.out.info(' npm install');
288
+ framework_1.out.info(' cp .env.example .env');
289
+ return 0;
290
+ },
291
+ });
292
+ const add = (0, framework_1.defineCommand)({
293
+ name: 'add',
294
+ description: 'Add a local resource: model, migration, seeder, or connection.',
295
+ group: 'Scaffold',
296
+ positionals: [
297
+ {
298
+ name: 'resource',
299
+ description: 'What to add.',
300
+ required: true,
301
+ choices: ['model', 'migration', 'seeder', 'connection'],
302
+ },
303
+ ],
304
+ flags: [
305
+ { name: 'name', type: 'string', description: 'Name (required for model/migration/seeder).' },
306
+ {
307
+ name: 'dialect',
308
+ type: 'string',
309
+ description: 'Dialect for a new connection.',
310
+ choices: DIALECTS,
311
+ default: 'sqlite',
312
+ },
313
+ ],
314
+ examples: [
315
+ 'orm-cli add model --name Post',
316
+ 'orm-cli add migration --name create-posts',
317
+ 'orm-cli add seeder --name demo-users',
318
+ 'orm-cli add connection --dialect postgres',
319
+ ],
320
+ run: (ctx) => {
321
+ const resource = ctx.positionals[0];
322
+ if (!resource) {
323
+ framework_1.out.error('A <resource> is required (model, migration, seeder, or connection).');
324
+ return 1;
325
+ }
326
+ const rawName = ctx.flags.name;
327
+ const cwd = process.cwd();
328
+ if (resource === 'model') {
329
+ if (!rawName) {
330
+ framework_1.out.error('--name is required for a model.');
331
+ return 1;
332
+ }
333
+ const Name = capitalize(rawName);
334
+ const filePath = path.join(cwd, 'src', 'models', `${Name}.ts`);
335
+ writeFile(filePath, modelTemplate(Name));
336
+ framework_1.out.success(`Created model ${path.relative(cwd, filePath)}`);
337
+ return 0;
338
+ }
339
+ if (resource === 'migration') {
340
+ if (!rawName) {
341
+ framework_1.out.error('--name is required for a migration.');
342
+ return 1;
343
+ }
344
+ const filePath = path.join(cwd, 'migrations', `${timestamp()}-${slug(rawName)}.ts`);
345
+ writeFile(filePath, migrationTemplate(rawName));
346
+ framework_1.out.success(`Created migration ${path.relative(cwd, filePath)}`);
347
+ return 0;
348
+ }
349
+ if (resource === 'seeder') {
350
+ if (!rawName) {
351
+ framework_1.out.error('--name is required for a seeder.');
352
+ return 1;
353
+ }
354
+ const filePath = path.join(cwd, 'seeders', `${timestamp()}-${slug(rawName)}.ts`);
355
+ writeFile(filePath, seederTemplate(rawName));
356
+ framework_1.out.success(`Created seeder ${path.relative(cwd, filePath)}`);
357
+ return 0;
358
+ }
359
+ // resource === 'connection'
360
+ const dialect = ctx.flags.dialect;
361
+ const connName = rawName ? slug(rawName) : dialect;
362
+ const configPath = path.join(cwd, 'prorm.config.json');
363
+ let config;
364
+ if (fs.existsSync(configPath)) {
365
+ try {
366
+ config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
367
+ }
368
+ catch {
369
+ framework_1.out.error(`Could not parse existing ${path.relative(cwd, configPath)} (invalid JSON).`);
370
+ return 1;
371
+ }
372
+ }
373
+ else {
374
+ config = { dialect, connection: defaultConnection(dialect) };
375
+ }
376
+ config.connections = config.connections ?? {};
377
+ config.connections[connName] = defaultConnection(dialect, connName);
378
+ writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
379
+ framework_1.out.success(`Added connection "${connName}" (${dialect}) to ${path.relative(cwd, configPath)}`);
380
+ return 0;
381
+ },
382
+ });
383
+ exports.commands = [newProject, add];
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../framework';
2
+ export declare const commands: Command[];
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.commands = void 0;
4
+ // Secrets command module for the prorm CLI. Manages secrets held in the AWS
5
+ // Secrets Manager vault, brokered by the dashboard API. Secrets may be scoped to
6
+ // a team via --team (defaulting to the selected team) or left at personal scope.
7
+ const framework_1 = require("../framework");
8
+ const cloud_1 = require("../cloud");
9
+ const prompt_1 = require("../prompt");
10
+ /** Resolve the team slug from --team or the stored default (undefined = personal scope). */
11
+ function resolveTeam(ctx) {
12
+ return ctx.flags.team || (0, cloud_1.loadConfig)().teamSlug;
13
+ }
14
+ /** Read process.stdin to completion as a UTF-8 string. */
15
+ async function readStdin() {
16
+ const chunks = [];
17
+ for await (const chunk of process.stdin) {
18
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
19
+ }
20
+ return Buffer.concat(chunks).toString('utf8');
21
+ }
22
+ const list = (0, framework_1.defineCommand)({
23
+ name: 'secrets list',
24
+ description: 'List secrets in the vault (values are never shown).',
25
+ group: 'Secrets',
26
+ flags: [
27
+ { name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' },
28
+ { name: 'limit', type: 'number', description: 'Max secrets to return.', default: 50 },
29
+ { name: 'offset', type: 'number', description: 'Skip this many secrets.' },
30
+ { name: 'json', type: 'boolean', description: 'Output raw JSON.' },
31
+ ],
32
+ examples: [
33
+ 'orm-cli secrets list',
34
+ 'orm-cli secrets list --team acme --limit 100 --offset 100',
35
+ 'orm-cli secrets list --json',
36
+ ],
37
+ run: async (ctx) => {
38
+ (0, cloud_1.requireAuth)();
39
+ const team = resolveTeam(ctx);
40
+ const data = await (0, cloud_1.api)('/api/dashboard/secrets', {
41
+ query: {
42
+ team,
43
+ limit: typeof ctx.flags.limit === 'number' ? ctx.flags.limit : undefined,
44
+ offset: typeof ctx.flags.offset === 'number' ? ctx.flags.offset : undefined,
45
+ },
46
+ });
47
+ if (ctx.flags.json) {
48
+ framework_1.out.json(data);
49
+ return 0;
50
+ }
51
+ framework_1.out.table(data.secrets.map((s) => ({ name: s.name, updatedAt: s.updatedAt })));
52
+ return 0;
53
+ },
54
+ });
55
+ const get = (0, framework_1.defineCommand)({
56
+ name: 'secrets get',
57
+ description: 'Fetch a secret. The value is masked unless --reveal or --json is given.',
58
+ group: 'Secrets',
59
+ positionals: [{ name: 'name', description: 'The secret name.', required: true }],
60
+ flags: [
61
+ { name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' },
62
+ { name: 'json', type: 'boolean', description: 'Output raw JSON (includes the value).' },
63
+ { name: 'reveal', type: 'boolean', description: 'Print the raw secret value.' },
64
+ ],
65
+ examples: [
66
+ 'orm-cli secrets get DATABASE_URL',
67
+ 'orm-cli secrets get DATABASE_URL --reveal',
68
+ 'orm-cli secrets get DATABASE_URL --team acme --json',
69
+ ],
70
+ run: async (ctx) => {
71
+ (0, cloud_1.requireAuth)();
72
+ const team = resolveTeam(ctx);
73
+ const name = ctx.positionals[0];
74
+ const data = await (0, cloud_1.api)('/api/dashboard/secrets/' + encodeURIComponent(name), {
75
+ query: { team },
76
+ });
77
+ if (ctx.flags.json) {
78
+ framework_1.out.json(data);
79
+ return 0;
80
+ }
81
+ if (ctx.flags.reveal) {
82
+ framework_1.out.warn(`Revealing secret value for ${data.name}.`);
83
+ framework_1.out.info(data.value);
84
+ return 0;
85
+ }
86
+ framework_1.out.info(`${data.name}: ${'*'.repeat(data.value.length)} (${data.value.length} chars, hidden — use --reveal)`);
87
+ return 0;
88
+ },
89
+ });
90
+ const set = (0, framework_1.defineCommand)({
91
+ name: 'secrets set',
92
+ description: 'Set (create or update) a secret value in the vault.',
93
+ group: 'Secrets',
94
+ positionals: [
95
+ { name: 'name', description: 'The secret name.', required: true },
96
+ { name: 'value', description: "The secret value (use '-' for stdin; omit to be prompted hidden)." },
97
+ ],
98
+ flags: [{ name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' }],
99
+ examples: [
100
+ 'orm-cli secrets set DATABASE_URL postgres://…',
101
+ 'orm-cli secrets set DATABASE_URL - < secret.txt',
102
+ 'orm-cli secrets set API_TOKEN # prompts for the value with no echo',
103
+ ],
104
+ run: async (ctx) => {
105
+ (0, cloud_1.requireAuth)();
106
+ const team = resolveTeam(ctx);
107
+ const name = ctx.positionals[0];
108
+ let value = ctx.positionals[1];
109
+ if (value === '-') {
110
+ // Reading from stdin: don't try to prompt.
111
+ value = await readStdin();
112
+ }
113
+ else if (value === undefined) {
114
+ // No value on the command line — prompt hidden so it never hits shell history.
115
+ value = await (0, prompt_1.promptHidden)(`Value for ${name}: `);
116
+ if (!value) {
117
+ framework_1.out.error('No value provided.');
118
+ return 1;
119
+ }
120
+ }
121
+ await (0, cloud_1.api)('/api/dashboard/secrets/' + encodeURIComponent(name), {
122
+ method: 'PUT',
123
+ body: { value },
124
+ query: { team },
125
+ });
126
+ framework_1.out.success(`Set secret ${name}`);
127
+ return 0;
128
+ },
129
+ });
130
+ const rm = (0, framework_1.defineCommand)({
131
+ name: 'secrets rm',
132
+ description: 'Remove a secret from the vault.',
133
+ group: 'Secrets',
134
+ positionals: [{ name: 'name', description: 'The secret name.', required: true }],
135
+ flags: [
136
+ { name: 'team', type: 'string', description: 'Team slug (defaults to the selected team).' },
137
+ { name: 'yes', alias: 'y', type: 'boolean', description: 'Skip confirmation.' },
138
+ ],
139
+ examples: [
140
+ 'orm-cli secrets rm OLD_TOKEN',
141
+ 'orm-cli secrets rm OLD_TOKEN --yes',
142
+ 'orm-cli secrets rm OLD_TOKEN --team acme -y',
143
+ ],
144
+ run: async (ctx) => {
145
+ (0, cloud_1.requireAuth)();
146
+ const team = resolveTeam(ctx);
147
+ const name = ctx.positionals[0];
148
+ const assumeYes = ctx.flags.yes === true || (0, framework_1.getGlobalOptions)().assumeYes;
149
+ framework_1.out.warn(`This will permanently delete secret ${name}.`);
150
+ if (!(await (0, prompt_1.confirm)(`Delete secret ${name}?`, { assumeYes, default: false }))) {
151
+ framework_1.out.info('Aborted (pass --yes to skip this prompt in a non-interactive session).');
152
+ return 1;
153
+ }
154
+ await (0, cloud_1.api)('/api/dashboard/secrets/' + encodeURIComponent(name), {
155
+ method: 'DELETE',
156
+ query: { team },
157
+ });
158
+ framework_1.out.success(`Removed secret ${name}`);
159
+ return 0;
160
+ },
161
+ });
162
+ exports.commands = [list, get, set, rm];
@@ -0,0 +1,2 @@
1
+ import type { Command } from '../framework';
2
+ export declare const commands: Command[];