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.
Files changed (460) hide show
  1. package/CHANGELOG.md +83 -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 +711 -0
  239. package/dist/index.js +19 -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,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
+ }