mongo.do 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (706) hide show
  1. package/dist/cli/index.d.ts +1 -15
  2. package/dist/cli/index.js +4083 -196
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/index.d.ts +2740 -20
  5. package/dist/index.js +9375 -27
  6. package/dist/index.js.map +1 -1
  7. package/dist/worker-entrypoint-BEW23Gmp.d.ts +1331 -0
  8. package/dist/worker.d.ts +6 -5
  9. package/dist/worker.js +5477 -18
  10. package/dist/worker.js.map +1 -1
  11. package/package.json +3 -2
  12. package/dist/agentfs/adapters/anthropic.d.ts +0 -176
  13. package/dist/agentfs/adapters/anthropic.d.ts.map +0 -1
  14. package/dist/agentfs/adapters/anthropic.js +0 -629
  15. package/dist/agentfs/adapters/anthropic.js.map +0 -1
  16. package/dist/agentfs/adapters/index.d.ts +0 -21
  17. package/dist/agentfs/adapters/index.d.ts.map +0 -1
  18. package/dist/agentfs/adapters/index.js +0 -23
  19. package/dist/agentfs/adapters/index.js.map +0 -1
  20. package/dist/agentfs/adapters/vercel.d.ts +0 -260
  21. package/dist/agentfs/adapters/vercel.d.ts.map +0 -1
  22. package/dist/agentfs/adapters/vercel.js +0 -288
  23. package/dist/agentfs/adapters/vercel.js.map +0 -1
  24. package/dist/agentfs/glob.d.ts +0 -116
  25. package/dist/agentfs/glob.d.ts.map +0 -1
  26. package/dist/agentfs/glob.js +0 -270
  27. package/dist/agentfs/glob.js.map +0 -1
  28. package/dist/agentfs/grep.d.ts +0 -83
  29. package/dist/agentfs/grep.d.ts.map +0 -1
  30. package/dist/agentfs/grep.js +0 -193
  31. package/dist/agentfs/grep.js.map +0 -1
  32. package/dist/agentfs/index.d.ts +0 -22
  33. package/dist/agentfs/index.d.ts.map +0 -1
  34. package/dist/agentfs/index.js +0 -18
  35. package/dist/agentfs/index.js.map +0 -1
  36. package/dist/agentfs/kv-store.d.ts +0 -128
  37. package/dist/agentfs/kv-store.d.ts.map +0 -1
  38. package/dist/agentfs/kv-store.js +0 -227
  39. package/dist/agentfs/kv-store.js.map +0 -1
  40. package/dist/agentfs/mondo-agent.d.ts +0 -255
  41. package/dist/agentfs/mondo-agent.d.ts.map +0 -1
  42. package/dist/agentfs/mondo-agent.js +0 -879
  43. package/dist/agentfs/mondo-agent.js.map +0 -1
  44. package/dist/agentfs/toolcalls.d.ts +0 -130
  45. package/dist/agentfs/toolcalls.d.ts.map +0 -1
  46. package/dist/agentfs/toolcalls.js +0 -178
  47. package/dist/agentfs/toolcalls.js.map +0 -1
  48. package/dist/agentfs/types.d.ts +0 -171
  49. package/dist/agentfs/types.d.ts.map +0 -1
  50. package/dist/agentfs/types.js +0 -7
  51. package/dist/agentfs/types.js.map +0 -1
  52. package/dist/agentfs/vfs.d.ts +0 -249
  53. package/dist/agentfs/vfs.d.ts.map +0 -1
  54. package/dist/agentfs/vfs.js +0 -469
  55. package/dist/agentfs/vfs.js.map +0 -1
  56. package/dist/cli/index.d.ts.map +0 -1
  57. package/dist/cli/mcp.d.ts +0 -119
  58. package/dist/cli/mcp.d.ts.map +0 -1
  59. package/dist/cli/mcp.js +0 -418
  60. package/dist/cli/mcp.js.map +0 -1
  61. package/dist/cli/server.d.ts +0 -179
  62. package/dist/cli/server.d.ts.map +0 -1
  63. package/dist/cli/server.js +0 -441
  64. package/dist/cli/server.js.map +0 -1
  65. package/dist/client/Collection.d.ts +0 -199
  66. package/dist/client/Collection.d.ts.map +0 -1
  67. package/dist/client/Collection.js +0 -256
  68. package/dist/client/Collection.js.map +0 -1
  69. package/dist/client/Database.d.ts +0 -68
  70. package/dist/client/Database.d.ts.map +0 -1
  71. package/dist/client/Database.js +0 -105
  72. package/dist/client/Database.js.map +0 -1
  73. package/dist/client/MongoClient.d.ts +0 -165
  74. package/dist/client/MongoClient.d.ts.map +0 -1
  75. package/dist/client/MongoClient.js +0 -307
  76. package/dist/client/MongoClient.js.map +0 -1
  77. package/dist/client/aggregation-cursor.d.ts +0 -210
  78. package/dist/client/aggregation-cursor.d.ts.map +0 -1
  79. package/dist/client/aggregation-cursor.js +0 -509
  80. package/dist/client/aggregation-cursor.js.map +0 -1
  81. package/dist/client/bulk-write.d.ts +0 -216
  82. package/dist/client/bulk-write.d.ts.map +0 -1
  83. package/dist/client/bulk-write.js +0 -63
  84. package/dist/client/bulk-write.js.map +0 -1
  85. package/dist/client/change-stream.d.ts +0 -245
  86. package/dist/client/change-stream.d.ts.map +0 -1
  87. package/dist/client/change-stream.js +0 -429
  88. package/dist/client/change-stream.js.map +0 -1
  89. package/dist/client/cursor.d.ts +0 -85
  90. package/dist/client/cursor.d.ts.map +0 -1
  91. package/dist/client/cursor.js +0 -156
  92. package/dist/client/cursor.js.map +0 -1
  93. package/dist/client/http-cursor.d.ts +0 -233
  94. package/dist/client/http-cursor.d.ts.map +0 -1
  95. package/dist/client/http-cursor.js +0 -496
  96. package/dist/client/http-cursor.js.map +0 -1
  97. package/dist/client/index.d.ts +0 -18
  98. package/dist/client/index.d.ts.map +0 -1
  99. package/dist/client/index.js +0 -24
  100. package/dist/client/index.js.map +0 -1
  101. package/dist/client/mongo-client.d.ts +0 -60
  102. package/dist/client/mongo-client.d.ts.map +0 -1
  103. package/dist/client/mongo-client.js +0 -190
  104. package/dist/client/mongo-client.js.map +0 -1
  105. package/dist/client/mongo-collection.d.ts +0 -359
  106. package/dist/client/mongo-collection.d.ts.map +0 -1
  107. package/dist/client/mongo-collection.js +0 -1641
  108. package/dist/client/mongo-collection.js.map +0 -1
  109. package/dist/client/mongo-cursor.d.ts +0 -257
  110. package/dist/client/mongo-cursor.d.ts.map +0 -1
  111. package/dist/client/mongo-cursor.js +0 -621
  112. package/dist/client/mongo-cursor.js.map +0 -1
  113. package/dist/client/mongo-database.d.ts +0 -88
  114. package/dist/client/mongo-database.d.ts.map +0 -1
  115. package/dist/client/mongo-database.js +0 -139
  116. package/dist/client/mongo-database.js.map +0 -1
  117. package/dist/client/session.d.ts +0 -210
  118. package/dist/client/session.d.ts.map +0 -1
  119. package/dist/client/session.js +0 -326
  120. package/dist/client/session.js.map +0 -1
  121. package/dist/durable-object/index-manager.d.ts +0 -173
  122. package/dist/durable-object/index-manager.d.ts.map +0 -1
  123. package/dist/durable-object/index-manager.js +0 -764
  124. package/dist/durable-object/index-manager.js.map +0 -1
  125. package/dist/durable-object/index.d.ts +0 -12
  126. package/dist/durable-object/index.d.ts.map +0 -1
  127. package/dist/durable-object/index.js +0 -8
  128. package/dist/durable-object/index.js.map +0 -1
  129. package/dist/durable-object/mcp-handler.d.ts +0 -52
  130. package/dist/durable-object/mcp-handler.d.ts.map +0 -1
  131. package/dist/durable-object/mcp-handler.js +0 -186
  132. package/dist/durable-object/mcp-handler.js.map +0 -1
  133. package/dist/durable-object/migrations.d.ts +0 -40
  134. package/dist/durable-object/migrations.d.ts.map +0 -1
  135. package/dist/durable-object/migrations.js +0 -121
  136. package/dist/durable-object/migrations.js.map +0 -1
  137. package/dist/durable-object/mondo-database.d.ts +0 -148
  138. package/dist/durable-object/mondo-database.d.ts.map +0 -1
  139. package/dist/durable-object/mondo-database.js +0 -621
  140. package/dist/durable-object/mondo-database.js.map +0 -1
  141. package/dist/durable-object/schema.d.ts +0 -192
  142. package/dist/durable-object/schema.d.ts.map +0 -1
  143. package/dist/durable-object/schema.js +0 -186
  144. package/dist/durable-object/schema.js.map +0 -1
  145. package/dist/embedding/document-serializer.d.ts +0 -118
  146. package/dist/embedding/document-serializer.d.ts.map +0 -1
  147. package/dist/embedding/document-serializer.js +0 -339
  148. package/dist/embedding/document-serializer.js.map +0 -1
  149. package/dist/embedding/embedding-manager.d.ts +0 -136
  150. package/dist/embedding/embedding-manager.d.ts.map +0 -1
  151. package/dist/embedding/embedding-manager.js +0 -176
  152. package/dist/embedding/embedding-manager.js.map +0 -1
  153. package/dist/embedding/index.d.ts +0 -9
  154. package/dist/embedding/index.d.ts.map +0 -1
  155. package/dist/embedding/index.js +0 -9
  156. package/dist/embedding/index.js.map +0 -1
  157. package/dist/executor/aggregation-executor.d.ts +0 -93
  158. package/dist/executor/aggregation-executor.d.ts.map +0 -1
  159. package/dist/executor/aggregation-executor.js +0 -275
  160. package/dist/executor/aggregation-executor.js.map +0 -1
  161. package/dist/executor/function-executor.d.ts +0 -39
  162. package/dist/executor/function-executor.d.ts.map +0 -1
  163. package/dist/executor/function-executor.js +0 -168
  164. package/dist/executor/function-executor.js.map +0 -1
  165. package/dist/executor/index.d.ts +0 -4
  166. package/dist/executor/index.d.ts.map +0 -1
  167. package/dist/executor/index.js +0 -4
  168. package/dist/executor/index.js.map +0 -1
  169. package/dist/executor/vector-search-executor.d.ts +0 -71
  170. package/dist/executor/vector-search-executor.d.ts.map +0 -1
  171. package/dist/executor/vector-search-executor.js +0 -113
  172. package/dist/executor/vector-search-executor.js.map +0 -1
  173. package/dist/index.d.ts.map +0 -1
  174. package/dist/mcp/adapters/anthropic-adapter.d.ts +0 -256
  175. package/dist/mcp/adapters/anthropic-adapter.d.ts.map +0 -1
  176. package/dist/mcp/adapters/anthropic-adapter.js +0 -409
  177. package/dist/mcp/adapters/anthropic-adapter.js.map +0 -1
  178. package/dist/mcp/adapters/base-adapter.d.ts +0 -164
  179. package/dist/mcp/adapters/base-adapter.d.ts.map +0 -1
  180. package/dist/mcp/adapters/base-adapter.js +0 -277
  181. package/dist/mcp/adapters/base-adapter.js.map +0 -1
  182. package/dist/mcp/adapters/errors.d.ts +0 -173
  183. package/dist/mcp/adapters/errors.d.ts.map +0 -1
  184. package/dist/mcp/adapters/errors.js +0 -305
  185. package/dist/mcp/adapters/errors.js.map +0 -1
  186. package/dist/mcp/adapters/index.d.ts +0 -65
  187. package/dist/mcp/adapters/index.d.ts.map +0 -1
  188. package/dist/mcp/adapters/index.js +0 -92
  189. package/dist/mcp/adapters/index.js.map +0 -1
  190. package/dist/mcp/adapters/streaming.d.ts +0 -200
  191. package/dist/mcp/adapters/streaming.d.ts.map +0 -1
  192. package/dist/mcp/adapters/streaming.js +0 -381
  193. package/dist/mcp/adapters/streaming.js.map +0 -1
  194. package/dist/mcp/adapters/vercel-adapter.d.ts +0 -321
  195. package/dist/mcp/adapters/vercel-adapter.d.ts.map +0 -1
  196. package/dist/mcp/adapters/vercel-adapter.js +0 -487
  197. package/dist/mcp/adapters/vercel-adapter.js.map +0 -1
  198. package/dist/mcp/agent.d.ts +0 -192
  199. package/dist/mcp/agent.d.ts.map +0 -1
  200. package/dist/mcp/agent.js +0 -338
  201. package/dist/mcp/agent.js.map +0 -1
  202. package/dist/mcp/cli.d.ts +0 -71
  203. package/dist/mcp/cli.d.ts.map +0 -1
  204. package/dist/mcp/cli.js +0 -218
  205. package/dist/mcp/cli.js.map +0 -1
  206. package/dist/mcp/index.d.ts +0 -15
  207. package/dist/mcp/index.d.ts.map +0 -1
  208. package/dist/mcp/index.js +0 -20
  209. package/dist/mcp/index.js.map +0 -1
  210. package/dist/mcp/sandbox/database-proxy.d.ts +0 -118
  211. package/dist/mcp/sandbox/database-proxy.d.ts.map +0 -1
  212. package/dist/mcp/sandbox/database-proxy.js +0 -154
  213. package/dist/mcp/sandbox/database-proxy.js.map +0 -1
  214. package/dist/mcp/sandbox/index.d.ts +0 -8
  215. package/dist/mcp/sandbox/index.d.ts.map +0 -1
  216. package/dist/mcp/sandbox/index.js +0 -7
  217. package/dist/mcp/sandbox/index.js.map +0 -1
  218. package/dist/mcp/sandbox/miniflare-evaluator.d.ts +0 -72
  219. package/dist/mcp/sandbox/miniflare-evaluator.d.ts.map +0 -1
  220. package/dist/mcp/sandbox/miniflare-evaluator.js +0 -379
  221. package/dist/mcp/sandbox/miniflare-evaluator.js.map +0 -1
  222. package/dist/mcp/sandbox/template.d.ts +0 -48
  223. package/dist/mcp/sandbox/template.d.ts.map +0 -1
  224. package/dist/mcp/sandbox/template.js +0 -147
  225. package/dist/mcp/sandbox/template.js.map +0 -1
  226. package/dist/mcp/sandbox/worker-evaluator.d.ts +0 -160
  227. package/dist/mcp/sandbox/worker-evaluator.d.ts.map +0 -1
  228. package/dist/mcp/sandbox/worker-evaluator.js +0 -217
  229. package/dist/mcp/sandbox/worker-evaluator.js.map +0 -1
  230. package/dist/mcp/server.d.ts +0 -75
  231. package/dist/mcp/server.d.ts.map +0 -1
  232. package/dist/mcp/server.js +0 -278
  233. package/dist/mcp/server.js.map +0 -1
  234. package/dist/mcp/tool-call-auditor.d.ts +0 -188
  235. package/dist/mcp/tool-call-auditor.d.ts.map +0 -1
  236. package/dist/mcp/tool-call-auditor.js +0 -198
  237. package/dist/mcp/tool-call-auditor.js.map +0 -1
  238. package/dist/mcp/tools/do.d.ts +0 -51
  239. package/dist/mcp/tools/do.d.ts.map +0 -1
  240. package/dist/mcp/tools/do.js +0 -113
  241. package/dist/mcp/tools/do.js.map +0 -1
  242. package/dist/mcp/tools/fetch.d.ts +0 -43
  243. package/dist/mcp/tools/fetch.d.ts.map +0 -1
  244. package/dist/mcp/tools/fetch.js +0 -127
  245. package/dist/mcp/tools/fetch.js.map +0 -1
  246. package/dist/mcp/tools/index.d.ts +0 -9
  247. package/dist/mcp/tools/index.d.ts.map +0 -1
  248. package/dist/mcp/tools/index.js +0 -9
  249. package/dist/mcp/tools/index.js.map +0 -1
  250. package/dist/mcp/tools/search.d.ts +0 -60
  251. package/dist/mcp/tools/search.d.ts.map +0 -1
  252. package/dist/mcp/tools/search.js +0 -278
  253. package/dist/mcp/tools/search.js.map +0 -1
  254. package/dist/mcp/transport/http.d.ts +0 -144
  255. package/dist/mcp/transport/http.d.ts.map +0 -1
  256. package/dist/mcp/transport/http.js +0 -545
  257. package/dist/mcp/transport/http.js.map +0 -1
  258. package/dist/mcp/transport/index.d.ts +0 -10
  259. package/dist/mcp/transport/index.d.ts.map +0 -1
  260. package/dist/mcp/transport/index.js +0 -12
  261. package/dist/mcp/transport/index.js.map +0 -1
  262. package/dist/mcp/transport/stdio.d.ts +0 -132
  263. package/dist/mcp/transport/stdio.d.ts.map +0 -1
  264. package/dist/mcp/transport/stdio.js +0 -466
  265. package/dist/mcp/transport/stdio.js.map +0 -1
  266. package/dist/mcp/types.d.ts +0 -476
  267. package/dist/mcp/types.d.ts.map +0 -1
  268. package/dist/mcp/types.js +0 -178
  269. package/dist/mcp/types.js.map +0 -1
  270. package/dist/olap/cdc/cdc-buffer.d.ts +0 -92
  271. package/dist/olap/cdc/cdc-buffer.d.ts.map +0 -1
  272. package/dist/olap/cdc/cdc-buffer.js +0 -146
  273. package/dist/olap/cdc/cdc-buffer.js.map +0 -1
  274. package/dist/olap/cdc/cdc-emitter.d.ts +0 -118
  275. package/dist/olap/cdc/cdc-emitter.d.ts.map +0 -1
  276. package/dist/olap/cdc/cdc-emitter.js +0 -217
  277. package/dist/olap/cdc/cdc-emitter.js.map +0 -1
  278. package/dist/olap/cdc/cdc-schema.d.ts +0 -119
  279. package/dist/olap/cdc/cdc-schema.d.ts.map +0 -1
  280. package/dist/olap/cdc/cdc-schema.js +0 -253
  281. package/dist/olap/cdc/cdc-schema.js.map +0 -1
  282. package/dist/olap/cdc/index.d.ts +0 -10
  283. package/dist/olap/cdc/index.d.ts.map +0 -1
  284. package/dist/olap/cdc/index.js +0 -10
  285. package/dist/olap/cdc/index.js.map +0 -1
  286. package/dist/olap/clickhouse/iceberg.d.ts +0 -164
  287. package/dist/olap/clickhouse/iceberg.d.ts.map +0 -1
  288. package/dist/olap/clickhouse/iceberg.js +0 -138
  289. package/dist/olap/clickhouse/iceberg.js.map +0 -1
  290. package/dist/olap/clickhouse/index.d.ts +0 -14
  291. package/dist/olap/clickhouse/index.d.ts.map +0 -1
  292. package/dist/olap/clickhouse/index.js +0 -14
  293. package/dist/olap/clickhouse/index.js.map +0 -1
  294. package/dist/olap/clickhouse/mapper.d.ts +0 -170
  295. package/dist/olap/clickhouse/mapper.d.ts.map +0 -1
  296. package/dist/olap/clickhouse/mapper.js +0 -654
  297. package/dist/olap/clickhouse/mapper.js.map +0 -1
  298. package/dist/olap/clickhouse/olap-backend.d.ts +0 -181
  299. package/dist/olap/clickhouse/olap-backend.d.ts.map +0 -1
  300. package/dist/olap/clickhouse/olap-backend.js +0 -1083
  301. package/dist/olap/clickhouse/olap-backend.js.map +0 -1
  302. package/dist/olap/clickhouse/query-executor.d.ts +0 -163
  303. package/dist/olap/clickhouse/query-executor.d.ts.map +0 -1
  304. package/dist/olap/clickhouse/query-executor.js +0 -560
  305. package/dist/olap/clickhouse/query-executor.js.map +0 -1
  306. package/dist/olap/clickhouse/query.d.ts +0 -134
  307. package/dist/olap/clickhouse/query.d.ts.map +0 -1
  308. package/dist/olap/clickhouse/query.js +0 -512
  309. package/dist/olap/clickhouse/query.js.map +0 -1
  310. package/dist/olap/stage/index.d.ts +0 -6
  311. package/dist/olap/stage/index.d.ts.map +0 -1
  312. package/dist/olap/stage/index.js +0 -6
  313. package/dist/olap/stage/index.js.map +0 -1
  314. package/dist/olap/stage/parser.d.ts +0 -68
  315. package/dist/olap/stage/parser.d.ts.map +0 -1
  316. package/dist/olap/stage/parser.js +0 -293
  317. package/dist/olap/stage/parser.js.map +0 -1
  318. package/dist/olap/stage/router.d.ts +0 -94
  319. package/dist/olap/stage/router.d.ts.map +0 -1
  320. package/dist/olap/stage/router.js +0 -390
  321. package/dist/olap/stage/router.js.map +0 -1
  322. package/dist/rpc/endpoint.d.ts +0 -52
  323. package/dist/rpc/endpoint.d.ts.map +0 -1
  324. package/dist/rpc/endpoint.js +0 -734
  325. package/dist/rpc/endpoint.js.map +0 -1
  326. package/dist/rpc/index.d.ts +0 -34
  327. package/dist/rpc/index.d.ts.map +0 -1
  328. package/dist/rpc/index.js +0 -45
  329. package/dist/rpc/index.js.map +0 -1
  330. package/dist/rpc/rpc-client.d.ts +0 -275
  331. package/dist/rpc/rpc-client.d.ts.map +0 -1
  332. package/dist/rpc/rpc-client.js +0 -735
  333. package/dist/rpc/rpc-client.js.map +0 -1
  334. package/dist/rpc/rpc-target.d.ts +0 -220
  335. package/dist/rpc/rpc-target.d.ts.map +0 -1
  336. package/dist/rpc/rpc-target.js +0 -500
  337. package/dist/rpc/rpc-target.js.map +0 -1
  338. package/dist/rpc/worker-entrypoint.d.ts +0 -159
  339. package/dist/rpc/worker-entrypoint.d.ts.map +0 -1
  340. package/dist/rpc/worker-entrypoint.js +0 -212
  341. package/dist/rpc/worker-entrypoint.js.map +0 -1
  342. package/dist/server.d.ts +0 -18
  343. package/dist/server.d.ts.map +0 -1
  344. package/dist/server.js +0 -129
  345. package/dist/server.js.map +0 -1
  346. package/dist/studio/components/browser/CollectionItem.d.ts +0 -26
  347. package/dist/studio/components/browser/CollectionItem.d.ts.map +0 -1
  348. package/dist/studio/components/browser/CollectionItem.js +0 -143
  349. package/dist/studio/components/browser/CollectionItem.js.map +0 -1
  350. package/dist/studio/components/browser/CollectionTree.d.ts +0 -45
  351. package/dist/studio/components/browser/CollectionTree.d.ts.map +0 -1
  352. package/dist/studio/components/browser/CollectionTree.js +0 -207
  353. package/dist/studio/components/browser/CollectionTree.js.map +0 -1
  354. package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts +0 -51
  355. package/dist/studio/components/browser/ConnectedDatabaseBrowser.d.ts.map +0 -1
  356. package/dist/studio/components/browser/ConnectedDatabaseBrowser.js +0 -185
  357. package/dist/studio/components/browser/ConnectedDatabaseBrowser.js.map +0 -1
  358. package/dist/studio/components/browser/DatabaseBrowser.d.ts +0 -46
  359. package/dist/studio/components/browser/DatabaseBrowser.d.ts.map +0 -1
  360. package/dist/studio/components/browser/DatabaseBrowser.js +0 -304
  361. package/dist/studio/components/browser/DatabaseBrowser.js.map +0 -1
  362. package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts +0 -5
  363. package/dist/studio/components/browser/__tests__/CollectionItem.test.d.ts.map +0 -1
  364. package/dist/studio/components/browser/__tests__/CollectionItem.test.js +0 -169
  365. package/dist/studio/components/browser/__tests__/CollectionItem.test.js.map +0 -1
  366. package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts +0 -5
  367. package/dist/studio/components/browser/__tests__/CollectionTree.test.d.ts.map +0 -1
  368. package/dist/studio/components/browser/__tests__/CollectionTree.test.js +0 -203
  369. package/dist/studio/components/browser/__tests__/CollectionTree.test.js.map +0 -1
  370. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts +0 -8
  371. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.d.ts.map +0 -1
  372. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js +0 -522
  373. package/dist/studio/components/browser/__tests__/DatabaseBrowser.e2e.test.js.map +0 -1
  374. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts +0 -5
  375. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.d.ts.map +0 -1
  376. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js +0 -518
  377. package/dist/studio/components/browser/__tests__/DatabaseBrowser.test.js.map +0 -1
  378. package/dist/studio/components/browser/__tests__/setup.d.ts +0 -5
  379. package/dist/studio/components/browser/__tests__/setup.d.ts.map +0 -1
  380. package/dist/studio/components/browser/__tests__/setup.js +0 -22
  381. package/dist/studio/components/browser/__tests__/setup.js.map +0 -1
  382. package/dist/studio/components/browser/index.d.ts +0 -15
  383. package/dist/studio/components/browser/index.d.ts.map +0 -1
  384. package/dist/studio/components/browser/index.js +0 -10
  385. package/dist/studio/components/browser/index.js.map +0 -1
  386. package/dist/studio/components/browser/types.d.ts +0 -33
  387. package/dist/studio/components/browser/types.d.ts.map +0 -1
  388. package/dist/studio/components/browser/types.js +0 -5
  389. package/dist/studio/components/browser/types.js.map +0 -1
  390. package/dist/studio/components/connection/ConnectionForm.d.ts +0 -59
  391. package/dist/studio/components/connection/ConnectionForm.d.ts.map +0 -1
  392. package/dist/studio/components/connection/ConnectionForm.js +0 -274
  393. package/dist/studio/components/connection/ConnectionForm.js.map +0 -1
  394. package/dist/studio/components/connection/ConnectionList.d.ts +0 -59
  395. package/dist/studio/components/connection/ConnectionList.d.ts.map +0 -1
  396. package/dist/studio/components/connection/ConnectionList.js +0 -286
  397. package/dist/studio/components/connection/ConnectionList.js.map +0 -1
  398. package/dist/studio/components/connection/ConnectionPanel.d.ts +0 -132
  399. package/dist/studio/components/connection/ConnectionPanel.d.ts.map +0 -1
  400. package/dist/studio/components/connection/ConnectionPanel.js +0 -293
  401. package/dist/studio/components/connection/ConnectionPanel.js.map +0 -1
  402. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts +0 -8
  403. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.d.ts.map +0 -1
  404. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js +0 -632
  405. package/dist/studio/components/connection/__tests__/ConnectionPanel.test.js.map +0 -1
  406. package/dist/studio/components/connection/__tests__/setup.d.ts +0 -5
  407. package/dist/studio/components/connection/__tests__/setup.d.ts.map +0 -1
  408. package/dist/studio/components/connection/__tests__/setup.js +0 -11
  409. package/dist/studio/components/connection/__tests__/setup.js.map +0 -1
  410. package/dist/studio/components/connection/index.d.ts +0 -10
  411. package/dist/studio/components/connection/index.d.ts.map +0 -1
  412. package/dist/studio/components/connection/index.js +0 -7
  413. package/dist/studio/components/connection/index.js.map +0 -1
  414. package/dist/studio/components/crud/DeleteDocumentDialog.d.ts +0 -91
  415. package/dist/studio/components/crud/DeleteDocumentDialog.d.ts.map +0 -1
  416. package/dist/studio/components/crud/DeleteDocumentDialog.js +0 -273
  417. package/dist/studio/components/crud/DeleteDocumentDialog.js.map +0 -1
  418. package/dist/studio/components/crud/DocumentEditor.d.ts +0 -32
  419. package/dist/studio/components/crud/DocumentEditor.d.ts.map +0 -1
  420. package/dist/studio/components/crud/DocumentEditor.js +0 -546
  421. package/dist/studio/components/crud/DocumentEditor.js.map +0 -1
  422. package/dist/studio/components/crud/InsertDocumentDialog.d.ts +0 -78
  423. package/dist/studio/components/crud/InsertDocumentDialog.d.ts.map +0 -1
  424. package/dist/studio/components/crud/InsertDocumentDialog.js +0 -323
  425. package/dist/studio/components/crud/InsertDocumentDialog.js.map +0 -1
  426. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts +0 -5
  427. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.d.ts.map +0 -1
  428. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js +0 -298
  429. package/dist/studio/components/crud/__tests__/DeleteDocumentDialog.test.js.map +0 -1
  430. package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts +0 -8
  431. package/dist/studio/components/crud/__tests__/DocumentEditor.test.d.ts.map +0 -1
  432. package/dist/studio/components/crud/__tests__/DocumentEditor.test.js +0 -368
  433. package/dist/studio/components/crud/__tests__/DocumentEditor.test.js.map +0 -1
  434. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts +0 -2
  435. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.d.ts.map +0 -1
  436. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js +0 -352
  437. package/dist/studio/components/crud/__tests__/InsertDocumentDialog.test.js.map +0 -1
  438. package/dist/studio/components/crud/__tests__/setup.d.ts +0 -5
  439. package/dist/studio/components/crud/__tests__/setup.d.ts.map +0 -1
  440. package/dist/studio/components/crud/__tests__/setup.js +0 -22
  441. package/dist/studio/components/crud/__tests__/setup.js.map +0 -1
  442. package/dist/studio/components/crud/index.d.ts +0 -12
  443. package/dist/studio/components/crud/index.d.ts.map +0 -1
  444. package/dist/studio/components/crud/index.js +0 -11
  445. package/dist/studio/components/crud/index.js.map +0 -1
  446. package/dist/studio/hooks/useConnection.d.ts +0 -127
  447. package/dist/studio/hooks/useConnection.d.ts.map +0 -1
  448. package/dist/studio/hooks/useConnection.js +0 -414
  449. package/dist/studio/hooks/useConnection.js.map +0 -1
  450. package/dist/studio/hooks/useDatabaseBrowser.d.ts +0 -107
  451. package/dist/studio/hooks/useDatabaseBrowser.d.ts.map +0 -1
  452. package/dist/studio/hooks/useDatabaseBrowser.js +0 -294
  453. package/dist/studio/hooks/useDatabaseBrowser.js.map +0 -1
  454. package/dist/studio/index.d.ts +0 -16
  455. package/dist/studio/index.d.ts.map +0 -1
  456. package/dist/studio/index.js +0 -14
  457. package/dist/studio/index.js.map +0 -1
  458. package/dist/studio/types/connection.d.ts +0 -266
  459. package/dist/studio/types/connection.d.ts.map +0 -1
  460. package/dist/studio/types/connection.js +0 -159
  461. package/dist/studio/types/connection.js.map +0 -1
  462. package/dist/studio/vitest.config.d.ts +0 -3
  463. package/dist/studio/vitest.config.d.ts.map +0 -1
  464. package/dist/studio/vitest.config.js +0 -33
  465. package/dist/studio/vitest.config.js.map +0 -1
  466. package/dist/translator/aggregation-translator.d.ts +0 -51
  467. package/dist/translator/aggregation-translator.d.ts.map +0 -1
  468. package/dist/translator/aggregation-translator.js +0 -324
  469. package/dist/translator/aggregation-translator.js.map +0 -1
  470. package/dist/translator/dialect.d.ts +0 -131
  471. package/dist/translator/dialect.d.ts.map +0 -1
  472. package/dist/translator/dialect.js +0 -276
  473. package/dist/translator/dialect.js.map +0 -1
  474. package/dist/translator/geo-translator.d.ts +0 -91
  475. package/dist/translator/geo-translator.d.ts.map +0 -1
  476. package/dist/translator/geo-translator.js +0 -587
  477. package/dist/translator/geo-translator.js.map +0 -1
  478. package/dist/translator/hybrid-translator.d.ts +0 -70
  479. package/dist/translator/hybrid-translator.d.ts.map +0 -1
  480. package/dist/translator/hybrid-translator.js +0 -193
  481. package/dist/translator/hybrid-translator.js.map +0 -1
  482. package/dist/translator/index.d.ts +0 -13
  483. package/dist/translator/index.d.ts.map +0 -1
  484. package/dist/translator/index.js +0 -11
  485. package/dist/translator/index.js.map +0 -1
  486. package/dist/translator/query-translator.d.ts +0 -211
  487. package/dist/translator/query-translator.d.ts.map +0 -1
  488. package/dist/translator/query-translator.js +0 -1276
  489. package/dist/translator/query-translator.js.map +0 -1
  490. package/dist/translator/search-highlight.d.ts +0 -83
  491. package/dist/translator/search-highlight.d.ts.map +0 -1
  492. package/dist/translator/search-highlight.js +0 -83
  493. package/dist/translator/search-highlight.js.map +0 -1
  494. package/dist/translator/search-translator.d.ts +0 -155
  495. package/dist/translator/search-translator.d.ts.map +0 -1
  496. package/dist/translator/search-translator.js +0 -241
  497. package/dist/translator/search-translator.js.map +0 -1
  498. package/dist/translator/stages/add-fields-stage.d.ts +0 -7
  499. package/dist/translator/stages/add-fields-stage.d.ts.map +0 -1
  500. package/dist/translator/stages/add-fields-stage.js +0 -72
  501. package/dist/translator/stages/add-fields-stage.js.map +0 -1
  502. package/dist/translator/stages/bucket-stage.d.ts +0 -7
  503. package/dist/translator/stages/bucket-stage.d.ts.map +0 -1
  504. package/dist/translator/stages/bucket-stage.js +0 -87
  505. package/dist/translator/stages/bucket-stage.js.map +0 -1
  506. package/dist/translator/stages/count-stage.d.ts +0 -7
  507. package/dist/translator/stages/count-stage.d.ts.map +0 -1
  508. package/dist/translator/stages/count-stage.js +0 -12
  509. package/dist/translator/stages/count-stage.js.map +0 -1
  510. package/dist/translator/stages/expression-translator.d.ts +0 -68
  511. package/dist/translator/stages/expression-translator.d.ts.map +0 -1
  512. package/dist/translator/stages/expression-translator.js +0 -467
  513. package/dist/translator/stages/expression-translator.js.map +0 -1
  514. package/dist/translator/stages/facet-stage.d.ts +0 -13
  515. package/dist/translator/stages/facet-stage.d.ts.map +0 -1
  516. package/dist/translator/stages/facet-stage.js +0 -26
  517. package/dist/translator/stages/facet-stage.js.map +0 -1
  518. package/dist/translator/stages/fusion-stages.d.ts +0 -118
  519. package/dist/translator/stages/fusion-stages.d.ts.map +0 -1
  520. package/dist/translator/stages/fusion-stages.js +0 -201
  521. package/dist/translator/stages/fusion-stages.js.map +0 -1
  522. package/dist/translator/stages/group-stage.d.ts +0 -8
  523. package/dist/translator/stages/group-stage.d.ts.map +0 -1
  524. package/dist/translator/stages/group-stage.js +0 -123
  525. package/dist/translator/stages/group-stage.js.map +0 -1
  526. package/dist/translator/stages/index.d.ts +0 -24
  527. package/dist/translator/stages/index.d.ts.map +0 -1
  528. package/dist/translator/stages/index.js +0 -24
  529. package/dist/translator/stages/index.js.map +0 -1
  530. package/dist/translator/stages/join-optimizer.d.ts +0 -37
  531. package/dist/translator/stages/join-optimizer.d.ts.map +0 -1
  532. package/dist/translator/stages/join-optimizer.js +0 -93
  533. package/dist/translator/stages/join-optimizer.js.map +0 -1
  534. package/dist/translator/stages/limit-stage.d.ts +0 -7
  535. package/dist/translator/stages/limit-stage.d.ts.map +0 -1
  536. package/dist/translator/stages/limit-stage.js +0 -11
  537. package/dist/translator/stages/limit-stage.js.map +0 -1
  538. package/dist/translator/stages/lookup-stage.d.ts +0 -7
  539. package/dist/translator/stages/lookup-stage.d.ts.map +0 -1
  540. package/dist/translator/stages/lookup-stage.js +0 -73
  541. package/dist/translator/stages/lookup-stage.js.map +0 -1
  542. package/dist/translator/stages/match-stage.d.ts +0 -7
  543. package/dist/translator/stages/match-stage.d.ts.map +0 -1
  544. package/dist/translator/stages/match-stage.js +0 -14
  545. package/dist/translator/stages/match-stage.js.map +0 -1
  546. package/dist/translator/stages/optimizer.d.ts +0 -15
  547. package/dist/translator/stages/optimizer.d.ts.map +0 -1
  548. package/dist/translator/stages/optimizer.js +0 -249
  549. package/dist/translator/stages/optimizer.js.map +0 -1
  550. package/dist/translator/stages/parallel-facet.d.ts +0 -47
  551. package/dist/translator/stages/parallel-facet.d.ts.map +0 -1
  552. package/dist/translator/stages/parallel-facet.js +0 -57
  553. package/dist/translator/stages/parallel-facet.js.map +0 -1
  554. package/dist/translator/stages/project-stage.d.ts +0 -8
  555. package/dist/translator/stages/project-stage.d.ts.map +0 -1
  556. package/dist/translator/stages/project-stage.js +0 -145
  557. package/dist/translator/stages/project-stage.js.map +0 -1
  558. package/dist/translator/stages/search-stage.d.ts +0 -60
  559. package/dist/translator/stages/search-stage.d.ts.map +0 -1
  560. package/dist/translator/stages/search-stage.js +0 -89
  561. package/dist/translator/stages/search-stage.js.map +0 -1
  562. package/dist/translator/stages/skip-stage.d.ts +0 -7
  563. package/dist/translator/stages/skip-stage.d.ts.map +0 -1
  564. package/dist/translator/stages/skip-stage.js +0 -11
  565. package/dist/translator/stages/skip-stage.js.map +0 -1
  566. package/dist/translator/stages/sort-stage.d.ts +0 -7
  567. package/dist/translator/stages/sort-stage.d.ts.map +0 -1
  568. package/dist/translator/stages/sort-stage.js +0 -21
  569. package/dist/translator/stages/sort-stage.js.map +0 -1
  570. package/dist/translator/stages/types.d.ts +0 -136
  571. package/dist/translator/stages/types.d.ts.map +0 -1
  572. package/dist/translator/stages/types.js +0 -5
  573. package/dist/translator/stages/types.js.map +0 -1
  574. package/dist/translator/stages/unwind-stage.d.ts +0 -7
  575. package/dist/translator/stages/unwind-stage.d.ts.map +0 -1
  576. package/dist/translator/stages/unwind-stage.js +0 -61
  577. package/dist/translator/stages/unwind-stage.js.map +0 -1
  578. package/dist/translator/stages/vector-search-stage.d.ts +0 -53
  579. package/dist/translator/stages/vector-search-stage.d.ts.map +0 -1
  580. package/dist/translator/stages/vector-search-stage.js +0 -62
  581. package/dist/translator/stages/vector-search-stage.js.map +0 -1
  582. package/dist/translator/update-translator.d.ts +0 -148
  583. package/dist/translator/update-translator.d.ts.map +0 -1
  584. package/dist/translator/update-translator.js +0 -819
  585. package/dist/translator/update-translator.js.map +0 -1
  586. package/dist/translator/vector-translator.d.ts +0 -89
  587. package/dist/translator/vector-translator.d.ts.map +0 -1
  588. package/dist/translator/vector-translator.js +0 -106
  589. package/dist/translator/vector-translator.js.map +0 -1
  590. package/dist/types/env.d.ts +0 -31
  591. package/dist/types/env.d.ts.map +0 -1
  592. package/dist/types/env.js +0 -5
  593. package/dist/types/env.js.map +0 -1
  594. package/dist/types/function.d.ts +0 -65
  595. package/dist/types/function.d.ts.map +0 -1
  596. package/dist/types/function.js +0 -5
  597. package/dist/types/function.js.map +0 -1
  598. package/dist/types/index.d.ts +0 -137
  599. package/dist/types/index.d.ts.map +0 -1
  600. package/dist/types/index.js +0 -13
  601. package/dist/types/index.js.map +0 -1
  602. package/dist/types/mongodb.d.ts +0 -258
  603. package/dist/types/mongodb.d.ts.map +0 -1
  604. package/dist/types/mongodb.js +0 -5
  605. package/dist/types/mongodb.js.map +0 -1
  606. package/dist/types/objectid.d.ts +0 -130
  607. package/dist/types/objectid.d.ts.map +0 -1
  608. package/dist/types/objectid.js +0 -314
  609. package/dist/types/objectid.js.map +0 -1
  610. package/dist/types/rpc.d.ts +0 -313
  611. package/dist/types/rpc.d.ts.map +0 -1
  612. package/dist/types/rpc.js +0 -136
  613. package/dist/types/rpc.js.map +0 -1
  614. package/dist/types/vectorize.d.ts +0 -136
  615. package/dist/types/vectorize.d.ts.map +0 -1
  616. package/dist/types/vectorize.js +0 -8
  617. package/dist/types/vectorize.js.map +0 -1
  618. package/dist/utils/sql-safety.d.ts +0 -64
  619. package/dist/utils/sql-safety.d.ts.map +0 -1
  620. package/dist/utils/sql-safety.js +0 -112
  621. package/dist/utils/sql-safety.js.map +0 -1
  622. package/dist/validation/document-validator.d.ts +0 -195
  623. package/dist/validation/document-validator.d.ts.map +0 -1
  624. package/dist/validation/document-validator.js +0 -529
  625. package/dist/validation/document-validator.js.map +0 -1
  626. package/dist/vectorize/document-serializer.d.ts +0 -119
  627. package/dist/vectorize/document-serializer.d.ts.map +0 -1
  628. package/dist/vectorize/document-serializer.js +0 -320
  629. package/dist/vectorize/document-serializer.js.map +0 -1
  630. package/dist/wire/auth/index.d.ts +0 -5
  631. package/dist/wire/auth/index.d.ts.map +0 -1
  632. package/dist/wire/auth/index.js +0 -5
  633. package/dist/wire/auth/index.js.map +0 -1
  634. package/dist/wire/auth/scram.d.ts +0 -160
  635. package/dist/wire/auth/scram.d.ts.map +0 -1
  636. package/dist/wire/auth/scram.js +0 -425
  637. package/dist/wire/auth/scram.js.map +0 -1
  638. package/dist/wire/backend/interface.d.ts +0 -168
  639. package/dist/wire/backend/interface.d.ts.map +0 -1
  640. package/dist/wire/backend/interface.js +0 -10
  641. package/dist/wire/backend/interface.js.map +0 -1
  642. package/dist/wire/backend/local-sqlite.d.ts +0 -89
  643. package/dist/wire/backend/local-sqlite.d.ts.map +0 -1
  644. package/dist/wire/backend/local-sqlite.js +0 -1002
  645. package/dist/wire/backend/local-sqlite.js.map +0 -1
  646. package/dist/wire/backend/query-router.d.ts +0 -197
  647. package/dist/wire/backend/query-router.d.ts.map +0 -1
  648. package/dist/wire/backend/query-router.js +0 -590
  649. package/dist/wire/backend/query-router.js.map +0 -1
  650. package/dist/wire/backend/validation.d.ts +0 -26
  651. package/dist/wire/backend/validation.d.ts.map +0 -1
  652. package/dist/wire/backend/validation.js +0 -79
  653. package/dist/wire/backend/validation.js.map +0 -1
  654. package/dist/wire/backend/workers-proxy.d.ts +0 -95
  655. package/dist/wire/backend/workers-proxy.d.ts.map +0 -1
  656. package/dist/wire/backend/workers-proxy.js +0 -429
  657. package/dist/wire/backend/workers-proxy.js.map +0 -1
  658. package/dist/wire/commands/admin.d.ts +0 -49
  659. package/dist/wire/commands/admin.d.ts.map +0 -1
  660. package/dist/wire/commands/admin.js +0 -272
  661. package/dist/wire/commands/admin.js.map +0 -1
  662. package/dist/wire/commands/aggregate.d.ts +0 -15
  663. package/dist/wire/commands/aggregate.d.ts.map +0 -1
  664. package/dist/wire/commands/aggregate.js +0 -98
  665. package/dist/wire/commands/aggregate.js.map +0 -1
  666. package/dist/wire/commands/auth.d.ts +0 -58
  667. package/dist/wire/commands/auth.d.ts.map +0 -1
  668. package/dist/wire/commands/auth.js +0 -158
  669. package/dist/wire/commands/auth.js.map +0 -1
  670. package/dist/wire/commands/crud.d.ts +0 -49
  671. package/dist/wire/commands/crud.d.ts.map +0 -1
  672. package/dist/wire/commands/crud.js +0 -336
  673. package/dist/wire/commands/crud.js.map +0 -1
  674. package/dist/wire/commands/hello.d.ts +0 -35
  675. package/dist/wire/commands/hello.d.ts.map +0 -1
  676. package/dist/wire/commands/hello.js +0 -204
  677. package/dist/wire/commands/hello.js.map +0 -1
  678. package/dist/wire/commands/index.d.ts +0 -24
  679. package/dist/wire/commands/index.d.ts.map +0 -1
  680. package/dist/wire/commands/index.js +0 -145
  681. package/dist/wire/commands/index.js.map +0 -1
  682. package/dist/wire/commands/router.d.ts +0 -46
  683. package/dist/wire/commands/router.d.ts.map +0 -1
  684. package/dist/wire/commands/router.js +0 -151
  685. package/dist/wire/commands/router.js.map +0 -1
  686. package/dist/wire/commands/types.d.ts +0 -51
  687. package/dist/wire/commands/types.d.ts.map +0 -1
  688. package/dist/wire/commands/types.js +0 -15
  689. package/dist/wire/commands/types.js.map +0 -1
  690. package/dist/wire/index.d.ts +0 -15
  691. package/dist/wire/index.d.ts.map +0 -1
  692. package/dist/wire/index.js +0 -19
  693. package/dist/wire/index.js.map +0 -1
  694. package/dist/wire/message.d.ts +0 -49
  695. package/dist/wire/message.d.ts.map +0 -1
  696. package/dist/wire/message.js +0 -299
  697. package/dist/wire/message.js.map +0 -1
  698. package/dist/wire/server.d.ts +0 -145
  699. package/dist/wire/server.d.ts.map +0 -1
  700. package/dist/wire/server.js +0 -284
  701. package/dist/wire/server.js.map +0 -1
  702. package/dist/wire/types.d.ts +0 -140
  703. package/dist/wire/types.d.ts.map +0 -1
  704. package/dist/wire/types.js +0 -64
  705. package/dist/wire/types.js.map +0 -1
  706. package/dist/worker.d.ts.map +0 -1
@@ -1,590 +0,0 @@
1
- /**
2
- * Query Router for OLTP/OLAP Backend Selection
3
- *
4
- * Analyzes queries and routes them to the optimal backend:
5
- * - SQLite (OLTP): Simple lookups, writes, small result sets
6
- * - ClickHouse (OLAP): Heavy aggregations, large scans, analytics
7
- *
8
- * Issue: mongo.do-aioe
9
- */
10
- // =============================================================================
11
- // Constants
12
- // =============================================================================
13
- /** Default routing configuration */
14
- const DEFAULT_ROUTING_CONFIG = {
15
- rowThreshold: 10000,
16
- cdcTimestampFields: ['_cdc_timestamp', 'created_at', 'updated_at', 'timestamp'],
17
- autoRouting: true,
18
- preferOlapForAggregations: false,
19
- };
20
- /** Aggregation stages that suggest OLAP is more efficient */
21
- const HEAVY_AGGREGATION_STAGES = [
22
- '$group',
23
- '$bucket',
24
- '$bucketAuto',
25
- '$facet',
26
- '$graphLookup',
27
- '$sortByCount',
28
- '$densify',
29
- '$fill',
30
- ];
31
- /**
32
- * Stages that are lightweight and suitable for OLTP.
33
- * Used by the query analyzer to determine routing decisions.
34
- */
35
- const LIGHTWEIGHT_STAGES = [
36
- '$match',
37
- '$project',
38
- '$limit',
39
- '$skip',
40
- '$sort',
41
- '$count',
42
- ];
43
- // Export for testing
44
- export { LIGHTWEIGHT_STAGES };
45
- // =============================================================================
46
- // Query Analysis Functions
47
- // =============================================================================
48
- /**
49
- * Analyze a MongoDB filter to determine query characteristics
50
- */
51
- function analyzeFilter(filter) {
52
- if (!filter || Object.keys(filter).length === 0) {
53
- return {
54
- hasIdLookup: false,
55
- isTimeRangeQuery: false,
56
- };
57
- }
58
- const characteristics = {
59
- hasIdLookup: false,
60
- isTimeRangeQuery: false,
61
- };
62
- // Check for _id lookup
63
- if ('_id' in filter) {
64
- const idValue = filter._id;
65
- // Direct _id lookup or $eq on _id
66
- if (typeof idValue !== 'object' || (idValue && '$eq' in idValue)) {
67
- characteristics.hasIdLookup = true;
68
- }
69
- // $in with small set of IDs
70
- if (idValue && typeof idValue === 'object' && '$in' in idValue) {
71
- const inArray = idValue.$in;
72
- if (Array.isArray(inArray) && inArray.length <= 100) {
73
- characteristics.hasIdLookup = true;
74
- }
75
- }
76
- }
77
- // Check for time-range queries on common timestamp fields
78
- const timeFields = DEFAULT_ROUTING_CONFIG.cdcTimestampFields;
79
- for (const field of Object.keys(filter)) {
80
- if (timeFields.includes(field)) {
81
- const value = filter[field];
82
- if (typeof value === 'object' && value !== null) {
83
- // Check for range operators
84
- const hasRangeOp = ['$gt', '$gte', '$lt', '$lte'].some((op) => op in value);
85
- if (hasRangeOp) {
86
- characteristics.isTimeRangeQuery = true;
87
- break;
88
- }
89
- }
90
- }
91
- }
92
- return characteristics;
93
- }
94
- /**
95
- * Analyze an aggregation pipeline for routing decisions
96
- */
97
- export function analyzeQuery(pipeline) {
98
- const characteristics = {
99
- hasHeavyAggregation: false,
100
- estimatedRows: 0,
101
- isTimeRangeQuery: false,
102
- requiresRealtime: false,
103
- olapStages: [],
104
- hasIdLookup: false,
105
- };
106
- let hasLimit = false;
107
- let limitValue = Infinity;
108
- let hasMatch = false;
109
- for (const stage of pipeline) {
110
- const stageType = Object.keys(stage)[0];
111
- if (!stageType)
112
- continue;
113
- const stageValue = stage[stageType];
114
- // Check for heavy aggregation stages
115
- if (HEAVY_AGGREGATION_STAGES.includes(stageType)) {
116
- characteristics.hasHeavyAggregation = true;
117
- characteristics.olapStages.push(stageType);
118
- }
119
- // Analyze specific stages
120
- switch (stageType) {
121
- case '$match': {
122
- hasMatch = true;
123
- const matchAnalysis = analyzeFilter(stageValue);
124
- if (matchAnalysis.hasIdLookup) {
125
- characteristics.hasIdLookup = true;
126
- }
127
- if (matchAnalysis.isTimeRangeQuery) {
128
- characteristics.isTimeRangeQuery = true;
129
- }
130
- break;
131
- }
132
- case '$limit': {
133
- hasLimit = true;
134
- const limit = stageValue;
135
- if (limit < limitValue) {
136
- limitValue = limit;
137
- }
138
- break;
139
- }
140
- case '$sample': {
141
- // Sample suggests large dataset
142
- const size = stageValue.size;
143
- if (size > 1000) {
144
- characteristics.olapStages.push('$sample');
145
- }
146
- break;
147
- }
148
- case '$lookup':
149
- case '$graphLookup': {
150
- // Joins can be expensive
151
- characteristics.olapStages.push(stageType);
152
- break;
153
- }
154
- }
155
- }
156
- // Estimate row count based on pipeline structure
157
- if (characteristics.hasIdLookup && hasMatch) {
158
- // _id lookup typically returns 1 or few documents
159
- characteristics.estimatedRows = 1;
160
- }
161
- else if (hasLimit) {
162
- characteristics.estimatedRows = limitValue;
163
- }
164
- else if (hasMatch) {
165
- // Unknown, assume medium size
166
- characteristics.estimatedRows = 1000;
167
- }
168
- else {
169
- // Full collection scan likely
170
- characteristics.estimatedRows = DEFAULT_ROUTING_CONFIG.rowThreshold + 1;
171
- }
172
- return characteristics;
173
- }
174
- /**
175
- * Analyze a find query for routing decisions
176
- */
177
- export function analyzeFindQuery(options) {
178
- const filterAnalysis = analyzeFilter(options.filter);
179
- const characteristics = {
180
- hasHeavyAggregation: false,
181
- estimatedRows: 0,
182
- isTimeRangeQuery: filterAnalysis.isTimeRangeQuery ?? false,
183
- requiresRealtime: false,
184
- olapStages: [],
185
- hasIdLookup: filterAnalysis.hasIdLookup ?? false,
186
- };
187
- // Estimate row count
188
- if (characteristics.hasIdLookup) {
189
- characteristics.estimatedRows = 1;
190
- }
191
- else if (options.limit) {
192
- characteristics.estimatedRows = options.limit;
193
- }
194
- else if (options.filter && Object.keys(options.filter).length > 0) {
195
- // Has filter but no limit - medium estimate
196
- characteristics.estimatedRows = 1000;
197
- }
198
- else {
199
- // No filter, no limit - full scan
200
- characteristics.estimatedRows = DEFAULT_ROUTING_CONFIG.rowThreshold + 1;
201
- }
202
- return characteristics;
203
- }
204
- // =============================================================================
205
- // QueryRouter Class
206
- // =============================================================================
207
- /**
208
- * Smart query router that analyzes queries and routes to optimal backend.
209
- *
210
- * Routing Strategy:
211
- * 1. Explicit backend selection overrides auto-routing
212
- * 2. Write operations always go to OLTP (SQLite)
213
- * 3. Heavy aggregations prefer OLAP (ClickHouse)
214
- * 4. Simple _id lookups prefer OLTP
215
- * 5. Large result sets prefer OLAP
216
- * 6. Time-range queries on CDC fields prefer OLAP
217
- *
218
- * @example
219
- * ```typescript
220
- * const router = new QueryRouter({
221
- * oltp: sqliteBackend,
222
- * olap: clickhouseBackend,
223
- * routing: { rowThreshold: 5000 }
224
- * });
225
- *
226
- * // Auto-routing
227
- * await router.find('db', 'users', { filter: { _id: '123' } });
228
- *
229
- * // Explicit backend
230
- * await router.aggregate('db', 'events', pipeline, { backend: 'clickhouse' });
231
- * ```
232
- */
233
- export class QueryRouter {
234
- _oltp;
235
- _olap;
236
- _config;
237
- constructor(config) {
238
- this._oltp = config.oltp;
239
- this._olap = config.olap;
240
- this._config = {
241
- ...DEFAULT_ROUTING_CONFIG,
242
- ...config.routing,
243
- };
244
- }
245
- // ===========================================================================
246
- // Routing Logic
247
- // ===========================================================================
248
- /**
249
- * Determine which backend to use for a find query
250
- */
251
- routeFind(options) {
252
- // Explicit backend selection
253
- if (options.backend && options.backend !== 'auto') {
254
- const backend = options.backend === 'clickhouse' ? 'olap' : 'oltp';
255
- return {
256
- backend: this._olap && backend === 'olap' ? 'olap' : 'oltp',
257
- reason: `Explicit backend selection: ${options.backend}`,
258
- characteristics: analyzeFindQuery(options),
259
- };
260
- }
261
- // No OLAP available - always use OLTP
262
- if (!this._olap) {
263
- return {
264
- backend: 'oltp',
265
- reason: 'OLAP backend not available',
266
- characteristics: analyzeFindQuery(options),
267
- };
268
- }
269
- // Auto-routing disabled
270
- if (!this._config.autoRouting) {
271
- return {
272
- backend: 'oltp',
273
- reason: 'Auto-routing disabled',
274
- characteristics: analyzeFindQuery(options),
275
- };
276
- }
277
- const characteristics = analyzeFindQuery(options);
278
- // Simple _id lookup - use OLTP
279
- if (characteristics.hasIdLookup) {
280
- return {
281
- backend: 'oltp',
282
- reason: 'Simple _id lookup',
283
- characteristics,
284
- };
285
- }
286
- // Time-range query on CDC fields - use OLAP
287
- if (characteristics.isTimeRangeQuery) {
288
- return {
289
- backend: 'olap',
290
- reason: 'Time-range query on timestamp field',
291
- characteristics,
292
- };
293
- }
294
- // Large result set expected - use OLAP
295
- if (characteristics.estimatedRows > this._config.rowThreshold) {
296
- return {
297
- backend: 'olap',
298
- reason: `Estimated rows (${characteristics.estimatedRows}) exceeds threshold (${this._config.rowThreshold})`,
299
- characteristics,
300
- };
301
- }
302
- // Default to OLTP for small queries
303
- return {
304
- backend: 'oltp',
305
- reason: 'Small query - default to OLTP',
306
- characteristics,
307
- };
308
- }
309
- /**
310
- * Determine which backend to use for an aggregate query
311
- */
312
- routeAggregate(pipeline, options) {
313
- // Explicit backend selection
314
- if (options?.backend && options.backend !== 'auto') {
315
- const backend = options.backend === 'clickhouse' ? 'olap' : 'oltp';
316
- return {
317
- backend: this._olap && backend === 'olap' ? 'olap' : 'oltp',
318
- reason: `Explicit backend selection: ${options.backend}`,
319
- characteristics: analyzeQuery(pipeline),
320
- };
321
- }
322
- // No OLAP available - always use OLTP
323
- if (!this._olap) {
324
- return {
325
- backend: 'oltp',
326
- reason: 'OLAP backend not available',
327
- characteristics: analyzeQuery(pipeline),
328
- };
329
- }
330
- // Auto-routing disabled
331
- if (!this._config.autoRouting) {
332
- return {
333
- backend: 'oltp',
334
- reason: 'Auto-routing disabled',
335
- characteristics: analyzeQuery(pipeline),
336
- };
337
- }
338
- const characteristics = analyzeQuery(pipeline);
339
- // Heavy aggregation stages - prefer OLAP
340
- if (characteristics.hasHeavyAggregation) {
341
- return {
342
- backend: 'olap',
343
- reason: `Heavy aggregation stages: ${characteristics.olapStages.join(', ')}`,
344
- characteristics,
345
- };
346
- }
347
- // Simple _id lookup in $match - use OLTP
348
- if (characteristics.hasIdLookup && characteristics.estimatedRows <= 1) {
349
- return {
350
- backend: 'oltp',
351
- reason: 'Simple _id lookup in $match',
352
- characteristics,
353
- };
354
- }
355
- // Time-range query - prefer OLAP
356
- if (characteristics.isTimeRangeQuery) {
357
- return {
358
- backend: 'olap',
359
- reason: 'Time-range query on timestamp field',
360
- characteristics,
361
- };
362
- }
363
- // Large result set expected - use OLAP
364
- if (characteristics.estimatedRows > this._config.rowThreshold) {
365
- return {
366
- backend: 'olap',
367
- reason: `Estimated rows (${characteristics.estimatedRows}) exceeds threshold (${this._config.rowThreshold})`,
368
- characteristics,
369
- };
370
- }
371
- // Prefer OLAP for aggregations if configured
372
- if (this._config.preferOlapForAggregations && characteristics.olapStages.length > 0) {
373
- return {
374
- backend: 'olap',
375
- reason: 'Preferring OLAP for aggregations (config)',
376
- characteristics,
377
- };
378
- }
379
- // Default to OLTP for simple aggregations
380
- return {
381
- backend: 'oltp',
382
- reason: 'Simple aggregation - default to OLTP',
383
- characteristics,
384
- };
385
- }
386
- /**
387
- * Get the appropriate backend based on routing decision
388
- */
389
- getBackend(decision) {
390
- if (decision.backend === 'olap' && this._olap) {
391
- return this._olap;
392
- }
393
- return this._oltp;
394
- }
395
- // ===========================================================================
396
- // MondoBackend Implementation - Read Operations
397
- // ===========================================================================
398
- async find(db, collection, options) {
399
- const decision = this.routeFind(options);
400
- const backend = this.getBackend(decision);
401
- return backend.find(db, collection, options);
402
- }
403
- async aggregate(db, collection, pipeline, options) {
404
- const decision = this.routeAggregate(pipeline, options);
405
- const backend = this.getBackend(decision);
406
- return backend.aggregate(db, collection, pipeline, options);
407
- }
408
- async count(db, collection, query) {
409
- // Route count queries like find queries
410
- const findOptions = {};
411
- if (query) {
412
- findOptions.filter = query;
413
- }
414
- const characteristics = analyzeFindQuery(findOptions);
415
- if (this._olap && characteristics.estimatedRows > this._config.rowThreshold) {
416
- return this._olap.count(db, collection, query);
417
- }
418
- return this._oltp.count(db, collection, query);
419
- }
420
- async distinct(db, collection, field, query) {
421
- // Distinct on large collections benefits from OLAP
422
- const findOptions = {};
423
- if (query) {
424
- findOptions.filter = query;
425
- }
426
- const characteristics = analyzeFindQuery(findOptions);
427
- if (this._olap && characteristics.estimatedRows > this._config.rowThreshold) {
428
- return this._olap.distinct(db, collection, field, query);
429
- }
430
- return this._oltp.distinct(db, collection, field, query);
431
- }
432
- // ===========================================================================
433
- // MondoBackend Implementation - Write Operations (Always OLTP)
434
- // ===========================================================================
435
- async insertOne(db, collection, doc) {
436
- // Writes always go to OLTP
437
- return this._oltp.insertOne(db, collection, doc);
438
- }
439
- async insertMany(db, collection, docs) {
440
- // Writes always go to OLTP
441
- return this._oltp.insertMany(db, collection, docs);
442
- }
443
- async updateOne(db, collection, filter, update, options) {
444
- // Writes always go to OLTP
445
- return this._oltp.updateOne(db, collection, filter, update, options);
446
- }
447
- async updateMany(db, collection, filter, update, options) {
448
- // Writes always go to OLTP
449
- return this._oltp.updateMany(db, collection, filter, update, options);
450
- }
451
- async deleteOne(db, collection, filter) {
452
- // Writes always go to OLTP
453
- return this._oltp.deleteOne(db, collection, filter);
454
- }
455
- async deleteMany(db, collection, filter) {
456
- // Writes always go to OLTP
457
- return this._oltp.deleteMany(db, collection, filter);
458
- }
459
- // ===========================================================================
460
- // MondoBackend Implementation - Database Operations (Always OLTP)
461
- // ===========================================================================
462
- async listDatabases() {
463
- // List from OLTP (source of truth)
464
- return this._oltp.listDatabases();
465
- }
466
- async createDatabase(name) {
467
- // Writes always go to OLTP
468
- return this._oltp.createDatabase(name);
469
- }
470
- async dropDatabase(name) {
471
- // Writes always go to OLTP
472
- return this._oltp.dropDatabase(name);
473
- }
474
- async databaseExists(name) {
475
- return this._oltp.databaseExists(name);
476
- }
477
- // ===========================================================================
478
- // MondoBackend Implementation - Collection Operations (Always OLTP)
479
- // ===========================================================================
480
- async listCollections(db, filter) {
481
- // List from OLTP (source of truth)
482
- return this._oltp.listCollections(db, filter);
483
- }
484
- async createCollection(db, name, options) {
485
- // Writes always go to OLTP
486
- return this._oltp.createCollection(db, name, options);
487
- }
488
- async dropCollection(db, name) {
489
- // Writes always go to OLTP
490
- return this._oltp.dropCollection(db, name);
491
- }
492
- async collectionExists(db, name) {
493
- return this._oltp.collectionExists(db, name);
494
- }
495
- async collStats(db, collection) {
496
- // Stats from OLTP (real-time data)
497
- return this._oltp.collStats(db, collection);
498
- }
499
- async dbStats(db) {
500
- // Stats from OLTP (real-time data)
501
- return this._oltp.dbStats(db);
502
- }
503
- // ===========================================================================
504
- // MondoBackend Implementation - Index Operations (Always OLTP)
505
- // ===========================================================================
506
- async listIndexes(db, collection) {
507
- return this._oltp.listIndexes(db, collection);
508
- }
509
- async createIndexes(db, collection, indexes) {
510
- // Writes always go to OLTP
511
- return this._oltp.createIndexes(db, collection, indexes);
512
- }
513
- async dropIndex(db, collection, indexName) {
514
- // Writes always go to OLTP
515
- return this._oltp.dropIndex(db, collection, indexName);
516
- }
517
- async dropIndexes(db, collection) {
518
- // Writes always go to OLTP
519
- return this._oltp.dropIndexes(db, collection);
520
- }
521
- // ===========================================================================
522
- // MondoBackend Implementation - Cursor Management
523
- // ===========================================================================
524
- createCursor(state) {
525
- // Cursors are managed by the backend that created them
526
- // For the router, we delegate to OLTP as the primary
527
- this._oltp.createCursor(state);
528
- }
529
- getCursor(id) {
530
- // Try OLTP first, then OLAP
531
- const cursor = this._oltp.getCursor(id);
532
- if (cursor)
533
- return cursor;
534
- return this._olap?.getCursor(id);
535
- }
536
- advanceCursor(id, count) {
537
- // Try OLTP first, then OLAP
538
- const oltpDocs = this._oltp.advanceCursor(id, count);
539
- if (oltpDocs.length > 0)
540
- return oltpDocs;
541
- return this._olap?.advanceCursor(id, count) ?? [];
542
- }
543
- closeCursor(id) {
544
- // Try to close on both backends
545
- const oltpClosed = this._oltp.closeCursor(id);
546
- const olapClosed = this._olap?.closeCursor(id) ?? false;
547
- return oltpClosed || olapClosed;
548
- }
549
- cleanupExpiredCursors() {
550
- this._oltp.cleanupExpiredCursors();
551
- this._olap?.cleanupExpiredCursors();
552
- }
553
- // ===========================================================================
554
- // Utility Methods
555
- // ===========================================================================
556
- /**
557
- * Get routing configuration
558
- */
559
- getConfig() {
560
- return { ...this._config };
561
- }
562
- /**
563
- * Check if OLAP backend is available
564
- */
565
- hasOlapBackend() {
566
- return this._olap !== undefined;
567
- }
568
- /**
569
- * Get the OLTP backend directly
570
- */
571
- getOltpBackend() {
572
- return this._oltp;
573
- }
574
- /**
575
- * Get the OLAP backend directly (if available)
576
- */
577
- getOlapBackend() {
578
- return this._olap;
579
- }
580
- }
581
- // =============================================================================
582
- // Factory Function
583
- // =============================================================================
584
- /**
585
- * Create a query router instance
586
- */
587
- export function createQueryRouter(config) {
588
- return new QueryRouter(config);
589
- }
590
- //# sourceMappingURL=query-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-router.js","sourceRoot":"","sources":["../../../src/wire/backend/query-router.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- /**
2
- * Validation functions for database and collection names.
3
- *
4
- * These functions are critical for security - they prevent path traversal attacks
5
- * and SQL injection attempts through malicious database/collection names.
6
- */
7
- /**
8
- * Validate and sanitize a database name to prevent path traversal attacks.
9
- * Throws an error if the name contains dangerous characters or patterns.
10
- *
11
- * SECURITY: This function is critical for preventing attacks where malicious
12
- * database names like "../../../etc/passwd" could be used to read/write
13
- * files outside the data directory.
14
- *
15
- * @throws Error if the database name is invalid or contains path traversal attempts
16
- */
17
- export declare function sanitizeDatabaseName(name: string): string;
18
- /**
19
- * Validate a collection name to prevent injection attacks.
20
- * Collection names are stored in the database, not used in file paths,
21
- * but validation prevents SQL-related issues and maintains consistency.
22
- *
23
- * @throws Error if the collection name is invalid
24
- */
25
- export declare function validateCollectionName(name: string): string;
26
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/wire/backend/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoCzD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgC3D"}