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,117 @@
1
+ import type { NoSqlStore } from '../store';
2
+ /**
3
+ * A single statement for `batch()`: a CQL string plus its bound parameters.
4
+ * Mirrors the `cassandra-driver` batch query shape.
5
+ */
6
+ export interface ScyllaBatchQuery {
7
+ query: string;
8
+ params?: unknown[];
9
+ }
10
+ /**
11
+ * Options for `execute()` / `batch()`. Forwarded straight through to the
12
+ * driver's query-options bag (consistency, fetchSize, pageState, timestamp,
13
+ * etc.). `prepare` defaults to `true` here (see `execute()`), overridable per
14
+ * call.
15
+ */
16
+ export interface ScyllaQueryOptions {
17
+ prepare?: boolean;
18
+ [key: string]: unknown;
19
+ }
20
+ /**
21
+ * The shape of a `cassandra-driver` result. Only `rows` is relied on here; the
22
+ * rest of the driver's result metadata is preserved via the index signature.
23
+ */
24
+ export interface ScyllaResult<T = Record<string, unknown>> {
25
+ rows?: T[];
26
+ [key: string]: unknown;
27
+ }
28
+ /**
29
+ * Minimal structural type for the pieces of a `cassandra-driver` `Client` this
30
+ * store uses. Kept local so this module type-checks without the optional
31
+ * driver installed.
32
+ */
33
+ export interface ScyllaClientLike {
34
+ connect(): Promise<void>;
35
+ execute(query: string, params?: unknown[], options?: Record<string, unknown>): Promise<ScyllaResult>;
36
+ batch(queries: ScyllaBatchQuery[], options?: Record<string, unknown>): Promise<ScyllaResult>;
37
+ shutdown(): Promise<void>;
38
+ }
39
+ /**
40
+ * Connection options for `ScyllaStore`. These map onto the `cassandra-driver`
41
+ * `Client` constructor options.
42
+ */
43
+ export interface ScyllaStoreOptions {
44
+ /** Seed node addresses, e.g. `['127.0.0.1']` or `['10.0.0.1:9042']`. */
45
+ contactPoints?: string[];
46
+ /** Local data center name (required by the driver's default load-balancing policy). */
47
+ localDataCenter?: string;
48
+ /** Default keyspace to bind the session to. */
49
+ keyspace?: string;
50
+ /** Plain-text auth credentials passed to the driver. */
51
+ credentials?: {
52
+ username: string;
53
+ password: string;
54
+ };
55
+ /**
56
+ * Escape hatch for any other `cassandra-driver` `Client` option (pooling,
57
+ * SSL, policies, socketOptions, ...). Merged into the options passed to the
58
+ * `Client` constructor.
59
+ */
60
+ clientOptions?: Record<string, unknown>;
61
+ /**
62
+ * A pre-built driver `Client` (or a compatible mock). When provided,
63
+ * `connect()` uses it directly and skips `require('cassandra-driver')`
64
+ * entirely — this is how tests inject a mock without the real driver
65
+ * installed.
66
+ */
67
+ client?: ScyllaClientLike;
68
+ }
69
+ /**
70
+ * `ScyllaStore` wraps a `cassandra-driver` `Client` and exposes CQL execution
71
+ * (`execute`), atomic multi-statement batches (`batch`), and a few
72
+ * parameterized convenience helpers (`insert`, `selectAll`).
73
+ *
74
+ * Statements are prepared by default (`prepare: true`) so the driver can cache
75
+ * query metadata, infer parameter types, and route requests to the shard/replica
76
+ * that owns the partition — the recommended default for anything run more than
77
+ * once, and especially valuable on ScyllaDB's shard-aware driver path.
78
+ */
79
+ export declare class ScyllaStore implements NoSqlStore {
80
+ readonly name = "scylladb";
81
+ readonly library = "cassandra-driver";
82
+ private readonly options;
83
+ private client;
84
+ private connected;
85
+ constructor(options?: ScyllaStoreOptions);
86
+ connect(): Promise<void>;
87
+ disconnect(): Promise<void>;
88
+ isConnected(): boolean;
89
+ /** Returns the underlying `cassandra-driver` `Client` for anything not wrapped here. */
90
+ getClient(): ScyllaClientLike;
91
+ private requireClient;
92
+ private wrapError;
93
+ /**
94
+ * Execute a single CQL statement with optional bound `params`. Statements
95
+ * are prepared by default (`prepare: true`); pass `opts.prepare = false` to
96
+ * run a one-off unprepared. Any other driver query options are forwarded via
97
+ * `opts`. Returns the full driver result (with `.rows`).
98
+ */
99
+ execute<T = Record<string, unknown>>(query: string, params?: unknown[], opts?: ScyllaQueryOptions): Promise<ScyllaResult<T>>;
100
+ /**
101
+ * Execute multiple statements as a single logged batch (atomic across the
102
+ * statements, though not isolated — CQL batches are not SQL transactions).
103
+ * Each entry is a `{ query, params }` pair. Prepared by default; forward
104
+ * other driver batch options via `opts`.
105
+ */
106
+ batch(queries: ScyllaBatchQuery[], opts?: ScyllaQueryOptions): Promise<ScyllaResult>;
107
+ /**
108
+ * Convenience `INSERT`: builds a parameterized
109
+ * `INSERT INTO table (cols...) VALUES (?, ?, ...)` from `obj`'s keys and
110
+ * executes it (prepared). For upserts with TTL, IF NOT EXISTS, or other
111
+ * clauses, write the CQL yourself and call `execute()`.
112
+ */
113
+ insert(table: string, obj: Record<string, unknown>, opts?: ScyllaQueryOptions): Promise<ScyllaResult>;
114
+ /** Convenience `SELECT * FROM table`. Returns the full driver result (with `.rows`). */
115
+ selectAll<T = Record<string, unknown>>(table: string, opts?: ScyllaQueryOptions): Promise<ScyllaResult<T>>;
116
+ }
117
+ export default ScyllaStore;
@@ -0,0 +1,116 @@
1
+ /**
2
+ * SigNoz store implementation.
3
+ *
4
+ * SigNoz is an open-source, ClickHouse-backed observability platform for
5
+ * logs, traces, and metrics. Logs are ingested over OTLP/HTTP (the
6
+ * OpenTelemetry logs protocol) and queried through SigNoz's query-range API
7
+ * (a builder-style JSON body over its ClickHouse store). There is no
8
+ * SQL-shaped query surface exposed to clients, no row-level UPDATE/DELETE,
9
+ * and no identifier escaping, so SigNoz does not fit the SQL `Dialect`
10
+ * interface (`src/dialects/dialect.ts`). This class implements the minimal
11
+ * `NoSqlStore` marker interface (`src/nosql/store.ts`) and exposes SigNoz's
12
+ * OTLP ingest + query API.
13
+ *
14
+ * ## No canonical driver - HTTP over `fetch`
15
+ *
16
+ * SigNoz has no single canonical npm client; ingest is OTLP/HTTP JSON and
17
+ * query is a REST/JSON API. This store talks to both with the global `fetch`
18
+ * (so `library` is `'fetch'`). For tests (and custom transports) an
19
+ * alternative HTTP client can be injected via `SigNozStoreOptions.client`.
20
+ *
21
+ * ## Endpoints wrapped
22
+ *
23
+ * - `push(resource, entries)` -> `POST /v1/logs` (OTLP/HTTP ingest)
24
+ * - `query(builder, opts?)` -> `POST /api/v4/query_range` (query-range)
25
+ * - `labels()` -> `GET /api/v1/logs/fields` (log field keys)
26
+ * - `streams()` -> `GET /api/v1/services` (services)
27
+ */
28
+ import { NoSqlStore } from '../store';
29
+ /** Default SigNoz base URL (query service). */
30
+ export declare const DEFAULT_SIGNOZ_BASE_URL = "http://localhost:8080";
31
+ /** Query-string parameter value(s). `undefined` values are dropped. */
32
+ export type QueryParams = Record<string, string | string[] | undefined>;
33
+ /**
34
+ * The subset of an HTTP client this store needs. The internal `fetch`-based
35
+ * client implements this; tests inject a mock with the same shape.
36
+ */
37
+ export interface SigNozHttpClient {
38
+ /** Issue a GET and return the parsed JSON response body. */
39
+ get(path: string, params?: QueryParams): Promise<any>;
40
+ /** Issue a POST with a text body and return the parsed JSON/text response. */
41
+ post(path: string, body: string, contentType?: string): Promise<any>;
42
+ }
43
+ /** Connection options for `SigNozStore`. */
44
+ export interface SigNozStoreOptions {
45
+ /** Base URL of the SigNoz query service. Defaults to `http://localhost:8080`. */
46
+ baseURL?: string;
47
+ /**
48
+ * Optional pre-built HTTP client. When provided it is used verbatim and
49
+ * `baseURL` is ignored; otherwise an internal `fetch`-based client is
50
+ * built against `baseURL` on `connect()`.
51
+ */
52
+ client?: SigNozHttpClient;
53
+ /** Extra HTTP headers (e.g. `SIGNOZ-API-KEY`) sent with every request. */
54
+ headers?: Record<string, string>;
55
+ }
56
+ /** A log record to ingest, in a simplified shape mapped onto OTLP. */
57
+ export interface SigNozLogEntry {
58
+ /** Unix-nanosecond timestamp. */
59
+ timeUnixNano?: string | number;
60
+ /** Severity text (e.g. `INFO`, `ERROR`). */
61
+ severity?: string;
62
+ /** The log body/message. */
63
+ body: string;
64
+ /** Structured attributes for this record. */
65
+ attributes?: Record<string, string | number | boolean>;
66
+ }
67
+ /** Options for a query-range request. */
68
+ export interface SigNozQueryOptions {
69
+ /** Start of the query window (epoch ms). */
70
+ start?: number;
71
+ /** End of the query window (epoch ms). */
72
+ end?: number;
73
+ /** Aggregation step in seconds. */
74
+ step?: number;
75
+ }
76
+ /** Build a `fetch`-backed client for the given base URL. */
77
+ export declare function createFetchClient(baseURL: string, headers?: Record<string, string>): SigNozHttpClient;
78
+ /**
79
+ * `SigNozStore` wraps SigNoz's OTLP/HTTP log ingest and its query-range API
80
+ * (plus log-field and service metadata) behind the `NoSqlStore` lifecycle.
81
+ */
82
+ export declare class SigNozStore implements NoSqlStore {
83
+ readonly name = "signoz";
84
+ readonly library = "fetch";
85
+ private readonly baseURL;
86
+ private readonly injectedClient?;
87
+ private readonly headers?;
88
+ private client;
89
+ private connected;
90
+ constructor(options?: SigNozStoreOptions);
91
+ connect(): Promise<void>;
92
+ disconnect(): Promise<void>;
93
+ isConnected(): boolean;
94
+ /** Returns the underlying (internal or injected) HTTP client. */
95
+ getClient(): SigNozHttpClient;
96
+ private requireClient;
97
+ private doGet;
98
+ /**
99
+ * Ingests log records over OTLP/HTTP via `POST /v1/logs`. The simplified
100
+ * `entries` are assembled into the OTLP `resourceLogs -> scopeLogs ->
101
+ * logRecords` envelope, tagged with the shared `resource` attributes.
102
+ */
103
+ push(resource: Record<string, string | number | boolean>, entries: SigNozLogEntry[]): Promise<any>;
104
+ /**
105
+ * Runs a query-range request via `POST /api/v4/query_range`. The
106
+ * `builder` is SigNoz's composite query payload (`compositeQuery` /
107
+ * builder queries); `start`/`end`/`step` fill the time window. Returns the
108
+ * parsed response.
109
+ */
110
+ query(builder: Record<string, unknown>, options?: SigNozQueryOptions): Promise<any>;
111
+ /** Lists the known log field/attribute keys via `GET /api/v1/logs/fields`. */
112
+ labels(): Promise<any>;
113
+ /** Lists the observed services via `GET /api/v1/services`. */
114
+ streams(): Promise<any>;
115
+ }
116
+ export default SigNozStore;
@@ -0,0 +1,99 @@
1
+ import type { NoSqlStore } from '../store';
2
+ /** A message accepted by `publish()`: raw string/Buffer or a JSON-serializable value. */
3
+ export type SnsMessage = string | Buffer | Record<string, unknown> | unknown[];
4
+ /**
5
+ * A loosely-typed handle to an AWS v3 `SNSClient` (or any object exposing a
6
+ * compatible `send(command)` method). Tests inject a mock matching this shape.
7
+ */
8
+ export interface SnsClientLike {
9
+ send(command: unknown): Promise<any>;
10
+ destroy?(): void;
11
+ }
12
+ /** Connection options for `SnsStore`. */
13
+ export interface SnsStoreOptions {
14
+ /** AWS region, e.g. 'us-east-1'. */
15
+ region?: string;
16
+ /** Static credentials. Omit to use the default AWS credential provider chain. */
17
+ credentials?: {
18
+ accessKeyId: string;
19
+ secretAccessKey: string;
20
+ sessionToken?: string;
21
+ };
22
+ /** Override the service endpoint (e.g. 'http://localhost:4566' for LocalStack). */
23
+ endpoint?: string;
24
+ /**
25
+ * A pre-built `SNSClient` (or compatible object). When provided, `connect()`
26
+ * uses it directly and does NOT require the SDK — this is how tests inject a
27
+ * mock client.
28
+ */
29
+ client?: SnsClientLike;
30
+ }
31
+ /** Options for `publish()` (`Publish`). */
32
+ export interface SnsPublishOptions {
33
+ /** Subject line (for email endpoints). */
34
+ subject?: string;
35
+ /** FIFO group id (required for FIFO topics). */
36
+ messageGroupId?: string;
37
+ /** FIFO dedupe id. */
38
+ messageDeduplicationId?: string;
39
+ /** Message attributes, passed straight through. */
40
+ messageAttributes?: Record<string, unknown>;
41
+ /** Set true when `message` is a JSON structure with per-protocol overrides. */
42
+ messageStructureJson?: boolean;
43
+ }
44
+ /** Result of `publish()`. */
45
+ export interface SnsPublishResult {
46
+ messageId?: string;
47
+ sequenceNumber?: string;
48
+ }
49
+ /** Options for `subscribe()` (`Subscribe`). */
50
+ export interface SnsSubscribeOptions {
51
+ /**
52
+ * Delivery protocol: 'sqs', 'lambda', 'https', 'http', 'email',
53
+ * 'email-json', 'sms', or 'application'. Defaults to 'https'.
54
+ */
55
+ protocol?: string;
56
+ /** Return the subscription ARN immediately without waiting for confirmation. */
57
+ returnSubscriptionArn?: boolean;
58
+ /** Subscription attributes (e.g. `FilterPolicy`, `RawMessageDelivery`). */
59
+ attributes?: Record<string, string>;
60
+ }
61
+ /**
62
+ * `SnsStore` wraps an AWS v3 `SNSClient` and exposes topic publishing,
63
+ * endpoint subscription registration, and topic administration.
64
+ */
65
+ export declare class SnsStore implements NoSqlStore {
66
+ readonly name = "sns";
67
+ readonly library = "@aws-sdk/client-sns";
68
+ private readonly options;
69
+ private client;
70
+ private aws;
71
+ private connected;
72
+ constructor(options?: SnsStoreOptions);
73
+ connect(): Promise<void>;
74
+ private tryLoadSdk;
75
+ disconnect(): Promise<void>;
76
+ isConnected(): boolean;
77
+ /** Returns the underlying `SNSClient` (loosely typed) for anything not wrapped here. */
78
+ getClient(): SnsClientLike;
79
+ private requireClient;
80
+ private command;
81
+ private wrapError;
82
+ /**
83
+ * `Publish` — publish one `message` to the topic at `topicArn`. The message
84
+ * is encoded to a string (string as-is, Buffer → UTF-8, else JSON). Returns
85
+ * the message id (and FIFO sequence number, if any).
86
+ */
87
+ publish(topicArn: string, message: SnsMessage, options?: SnsPublishOptions): Promise<SnsPublishResult>;
88
+ /** `CreateTopic` — create a topic by name. Returns its ARN. */
89
+ createTopic(name: string, attributes?: Record<string, string>): Promise<string | undefined>;
90
+ /**
91
+ * `Subscribe` — register a push `endpoint` on the topic at `topicArn`. Unlike
92
+ * poll-based engines, SNS pushes notifications to the endpoint, so this takes
93
+ * an endpoint (SQS/Lambda ARN, HTTPS URL, email, ...) and a protocol rather
94
+ * than a message handler. Returns the subscription ARN (or 'pending
95
+ * confirmation' for endpoints that require confirmation).
96
+ */
97
+ subscribe(topicArn: string, endpoint: string, options?: SnsSubscribeOptions): Promise<string | undefined>;
98
+ }
99
+ export default SnsStore;
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Apache Solr store implementation.
3
+ *
4
+ * Solr is a search engine built on Lucene: documents are schema-flexible
5
+ * JSON records indexed into a "core" (or "collection" in SolrCloud), and
6
+ * the primary operation is a Lucene/DisMax query (`q`, `fq`, `fl`, `sort`,
7
+ * `start`/`rows`, faceting) against that inverted index - not SQL, not
8
+ * joins, not a transaction log. Writes are buffered until an explicit
9
+ * `commit` makes them searchable. None of that fits the SQL-shaped
10
+ * `Dialect` interface used by the SQL dialects in this repo, so this class
11
+ * implements the minimal `NoSqlStore` marker interface (`src/nosql/store.ts`)
12
+ * and exposes Solr's real operations (add, search, delete, commit, optimize)
13
+ * directly.
14
+ *
15
+ * Uses the `solr-client` driver, lazy-loaded inside `connect()` via
16
+ * `require()` so the dependency is only needed when a Solr store is actually
17
+ * constructed (tests inject a pre-built mock `client` instead).
18
+ *
19
+ * ## Driver call shape (callback vs promise)
20
+ *
21
+ * The classic `solr-client` API is Node-style callbacks:
22
+ * `client.add(docs, (err, obj) => ...)`, `client.commit(cb)`,
23
+ * `client.search(query, cb)`, `client.deleteByID(id, cb)`,
24
+ * `client.deleteByQuery(q, cb)`, `client.optimize(cb)`. Some builds /
25
+ * forks instead return a Promise when no callback is passed. To work with
26
+ * either, every call goes through {@link invoke}, which passes a callback
27
+ * *and* inspects the return value: if the driver returned a thenable it is
28
+ * awaited directly (the callback is then ignored), otherwise the callback
29
+ * settles the Promise. `client.query()` (when present) builds a query
30
+ * object via a fluent builder; if the driver doesn't expose it, `search()`
31
+ * accepts a raw query object/string unchanged.
32
+ */
33
+ import { NoSqlStore } from '../store';
34
+ /**
35
+ * Connection options for `SolrStore`. Mirror the fields `solr-client`'s
36
+ * `createClient()` accepts; the whole object is forwarded to
37
+ * `solr.createClient(...)`, so any additional driver options (`path`,
38
+ * `protocol`, `secure`, `bigint`, etc.) pass straight through.
39
+ */
40
+ export interface SolrStoreOptions {
41
+ /** Solr host. Defaults to the driver's own default (`127.0.0.1`). */
42
+ host?: string;
43
+ /** Solr port. Defaults to the driver's own default (`8983`). */
44
+ port?: number | string;
45
+ /** The core (or SolrCloud collection) to target. */
46
+ core?: string;
47
+ /** Base path Solr is mounted under. Defaults to the driver's default (`/solr`). */
48
+ path?: string;
49
+ /** `http` or `https`. */
50
+ protocol?: string;
51
+ /** Use HTTPS. */
52
+ secure?: boolean;
53
+ /**
54
+ * A pre-built `solr-client` client. When provided, `connect()` skips the
55
+ * `require('solr-client')` / `createClient()` step and uses this instead -
56
+ * the injection point used by tests to supply a mock.
57
+ */
58
+ client?: SolrClientLike;
59
+ /** Any other option accepted by `solr.createClient(...)`. */
60
+ [key: string]: unknown;
61
+ }
62
+ /** The subset of the `solr-client` client surface this store uses. */
63
+ export interface SolrClientLike {
64
+ add(docs: unknown, callback?: SolrCallback): unknown;
65
+ commit(callback?: SolrCallback): unknown;
66
+ optimize?(options?: unknown, callback?: SolrCallback): unknown;
67
+ search(query: unknown, callback?: SolrCallback): unknown;
68
+ deleteByID(id: string | number, callback?: SolrCallback): unknown;
69
+ deleteByQuery(query: string, callback?: SolrCallback): unknown;
70
+ /** Fluent query builder (`client.query().q(...).start(...)...`), when the driver exposes it. */
71
+ query?(): unknown;
72
+ [key: string]: unknown;
73
+ }
74
+ type SolrCallback = (err: unknown, result?: unknown) => void;
75
+ /**
76
+ * `SolrStore` wraps a `solr-client` client and exposes Solr's document
77
+ * indexing, querying, deletion, and commit/optimize operations as a typed,
78
+ * promise-based API.
79
+ */
80
+ export declare class SolrStore implements NoSqlStore {
81
+ readonly name = "solr";
82
+ readonly library = "solr-client";
83
+ private readonly options;
84
+ private client;
85
+ private connected;
86
+ constructor(options?: SolrStoreOptions);
87
+ connect(): Promise<void>;
88
+ disconnect(): Promise<void>;
89
+ isConnected(): boolean;
90
+ /** Returns the underlying `solr-client` client for anything not wrapped here. */
91
+ getClient(): SolrClientLike;
92
+ private requireClient;
93
+ private exec;
94
+ /**
95
+ * Add (index) one or more documents, then `commit` so they become
96
+ * searchable. Solr buffers adds until a commit, so the two are done
97
+ * together here for the common "index and see it" case; call `add` via
98
+ * `getClient()` directly if you want to batch many adds before a single
99
+ * commit.
100
+ */
101
+ add(docs: Record<string, unknown> | Array<Record<string, unknown>>): Promise<unknown>;
102
+ /**
103
+ * Run a query. Pass either a raw query object/string (Solr query params,
104
+ * e.g. `'q=title:solr&rows=10'`) or a query built by
105
+ * {@link SolrStore.query}. Returns the driver's raw response object
106
+ * (`{ responseHeader, response: { numFound, docs, ... } }`).
107
+ */
108
+ search(query: unknown): Promise<unknown>;
109
+ /**
110
+ * Build a query with the driver's fluent builder (`.q(...)`, `.start(...)`,
111
+ * `.rows(...)`, `.sort(...)`, ...), when the driver exposes `client.query()`.
112
+ * Throws if this driver build doesn't provide a builder - construct a raw
113
+ * query object/string and pass it straight to {@link SolrStore.search} in
114
+ * that case.
115
+ */
116
+ query(): unknown;
117
+ /** Delete a single document by its unique-key value, then commit. */
118
+ deleteByID(id: string | number): Promise<unknown>;
119
+ /** Delete every document matching a Solr query (e.g. `'category:obsolete'`), then commit. */
120
+ deleteByQuery(query: string): Promise<unknown>;
121
+ /** Commit buffered writes so they become visible to search. */
122
+ commit(): Promise<unknown>;
123
+ /**
124
+ * Optimize the index (merge segments). Optional - not every `solr-client`
125
+ * build exposes `optimize`; throws a `DatabaseError` if this one doesn't.
126
+ */
127
+ optimize(): Promise<unknown>;
128
+ }
129
+ export default SolrStore;
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Splunk store implementation.
3
+ *
4
+ * Splunk is a log-ingestion and search platform. Data is ingested through
5
+ * the HTTP Event Collector (HEC) and searched with SPL (Search Processing
6
+ * Language) via the REST search API. There is no SQL-shaped query surface,
7
+ * no row-level UPDATE/DELETE, and no identifier escaping, so Splunk does not
8
+ * fit the SQL `Dialect` interface (`src/dialects/dialect.ts`). This class
9
+ * implements the minimal `NoSqlStore` marker interface
10
+ * (`src/nosql/store.ts`) and exposes Splunk's ingest/search API.
11
+ *
12
+ * ## Driver: `splunk-sdk` if present, else HTTP over `fetch`
13
+ *
14
+ * If the optional `splunk-sdk` package is installed it is lazily required at
15
+ * connect time and exposed via `getSdk()`; the ingest/search methods here
16
+ * always speak the REST/HEC HTTP API over the global `fetch` (so `library`
17
+ * is `'fetch'`). For tests (and custom transports) an alternative HTTP
18
+ * client can be injected via `SplunkStoreOptions.client`.
19
+ *
20
+ * ## Endpoints wrapped
21
+ *
22
+ * - `push(meta, events)` -> `POST /services/collector/event` (HEC ingest)
23
+ * - `query(spl, opts?)` -> `POST /services/search/jobs` (SPL search)
24
+ * - `labels()` -> `GET /services/data/sourcetypes` (sourcetypes)
25
+ * - `streams()` -> `GET /services/data/indexes` (indexes)
26
+ */
27
+ import { NoSqlStore } from '../store';
28
+ /** Default Splunk management/REST base URL. */
29
+ export declare const DEFAULT_SPLUNK_BASE_URL = "https://localhost:8088";
30
+ /** Query-string parameter value(s). `undefined` values are dropped. */
31
+ export type QueryParams = Record<string, string | string[] | undefined>;
32
+ /**
33
+ * The subset of an HTTP client this store needs. The internal `fetch`-based
34
+ * client implements this; tests inject a mock with the same shape.
35
+ */
36
+ export interface SplunkHttpClient {
37
+ /** Issue a GET and return the parsed JSON response body. */
38
+ get(path: string, params?: QueryParams): Promise<any>;
39
+ /** Issue a POST with a text body and return the parsed JSON/text response. */
40
+ post(path: string, body: string, contentType?: string): Promise<any>;
41
+ }
42
+ /** Connection options for `SplunkStore`. */
43
+ export interface SplunkStoreOptions {
44
+ /** Base URL of the Splunk HEC/REST endpoint. Defaults to `https://localhost:8088`. */
45
+ baseURL?: string;
46
+ /** HEC token used for ingest (`Authorization: Splunk <token>`). */
47
+ token?: string;
48
+ /**
49
+ * Optional pre-built HTTP client. When provided it is used verbatim and
50
+ * `baseURL` is ignored; otherwise an internal `fetch`-based client is
51
+ * built against `baseURL` on `connect()`.
52
+ */
53
+ client?: SplunkHttpClient;
54
+ /** Extra HTTP headers sent with every internal-client request. */
55
+ headers?: Record<string, string>;
56
+ }
57
+ /** Envelope metadata attached to each HEC event. */
58
+ export interface SplunkEventMeta {
59
+ /** Target index. */
60
+ index?: string;
61
+ /** Source type (e.g. `access_combined`). */
62
+ sourcetype?: string;
63
+ /** Event source. */
64
+ source?: string;
65
+ /** Reporting host. */
66
+ host?: string;
67
+ }
68
+ /** Options for an SPL search job. */
69
+ export interface SplunkSearchOptions {
70
+ /** Earliest time modifier (e.g. `-24h`, epoch). */
71
+ earliest?: string;
72
+ /** Latest time modifier (e.g. `now`, epoch). */
73
+ latest?: string;
74
+ /** Output mode; defaults to `json`. */
75
+ outputMode?: string;
76
+ /** Run the search synchronously (`exec_mode=oneshot`) rather than as a job. */
77
+ oneshot?: boolean;
78
+ }
79
+ /** Build a `fetch`-backed client for the given base URL. */
80
+ export declare function createFetchClient(baseURL: string, headers?: Record<string, string>): SplunkHttpClient;
81
+ /**
82
+ * `SplunkStore` wraps Splunk's HTTP Event Collector (ingest) and REST search
83
+ * API (SPL search jobs + index/sourcetype metadata) behind the `NoSqlStore`
84
+ * lifecycle.
85
+ */
86
+ export declare class SplunkStore implements NoSqlStore {
87
+ readonly name = "splunk";
88
+ readonly library = "fetch";
89
+ private readonly baseURL;
90
+ private readonly token?;
91
+ private readonly injectedClient?;
92
+ private readonly headers?;
93
+ private client;
94
+ private sdk;
95
+ private connected;
96
+ constructor(options?: SplunkStoreOptions);
97
+ connect(): Promise<void>;
98
+ disconnect(): Promise<void>;
99
+ isConnected(): boolean;
100
+ /** Returns the underlying (internal or injected) HTTP client. */
101
+ getClient(): SplunkHttpClient;
102
+ /** Returns the lazily-required `splunk-sdk` module, or `null` if not installed. */
103
+ getSdk(): any;
104
+ private requireClient;
105
+ private doGet;
106
+ /**
107
+ * Sends a batch of events to the HTTP Event Collector via
108
+ * `POST /services/collector/event`. Each event is wrapped in a HEC
109
+ * envelope carrying the shared `meta` (index/sourcetype/source/host); the
110
+ * envelopes are newline-concatenated as HEC expects.
111
+ */
112
+ push(meta: SplunkEventMeta, events: unknown[]): Promise<any>;
113
+ /**
114
+ * Dispatches an SPL search via `POST /services/search/jobs`. The `search`
115
+ * string is normalized to start with `search ` when it isn't already a
116
+ * generating command. Returns the parsed response (job SID or, for a
117
+ * oneshot search, the results).
118
+ */
119
+ query(spl: string, options?: SplunkSearchOptions): Promise<any>;
120
+ /** Lists the configured source types via `GET /services/data/sourcetypes`. */
121
+ labels(): Promise<any>;
122
+ /** Lists the configured indexes via `GET /services/data/indexes`. */
123
+ streams(): Promise<any>;
124
+ }
125
+ export default SplunkStore;