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,73 +0,0 @@
1
- /**
2
- * $lookup stage - Performs a left outer join with another collection
3
- * Translates to SQL LEFT JOIN or subquery
4
- */
5
- import { getFieldPath } from './expression-translator';
6
- export function translateLookupStage(lookup, context) {
7
- const params = [];
8
- const { localField, foreignField } = lookup;
9
- if (localField && foreignField) {
10
- // Simple lookup with localField/foreignField
11
- return translateSimpleLookup(lookup, context, params);
12
- }
13
- else if (lookup.let && lookup.pipeline) {
14
- // Pipeline lookup
15
- return translatePipelineLookup(lookup, context, params);
16
- }
17
- throw new Error('$lookup requires either localField/foreignField or let/pipeline');
18
- }
19
- function translateSimpleLookup(lookup, context, params) {
20
- const { from, localField, foreignField, as } = lookup;
21
- const source = context.previousCte || context.collection;
22
- const localPath = getFieldPath('$' + localField);
23
- const foreignPath = getFieldPath('$' + foreignField);
24
- // Use a subquery to collect matching documents as a JSON array
25
- const cteName = `stage_${context.cteIndex}`;
26
- const cteExpression = `
27
- SELECT
28
- ${source}.data,
29
- COALESCE(
30
- (SELECT json_group_array(${from}.data)
31
- FROM ${from}
32
- WHERE json_extract(${from}.data, '${foreignPath}') = json_extract(${source}.data, '${localPath}')),
33
- '[]'
34
- ) AS lookup_result
35
- FROM ${source}
36
- `;
37
- // The result should merge lookup_result into data as the 'as' field
38
- const selectClause = `json_set(data, '$.${as}', json(lookup_result)) AS data`;
39
- return {
40
- cteExpression: cteExpression.trim(),
41
- cteName,
42
- selectClause,
43
- params,
44
- transformsShape: true
45
- };
46
- }
47
- function translatePipelineLookup(lookup, context, params) {
48
- const { from, as } = lookup;
49
- // For pipeline lookups, we need to handle variable substitution
50
- // This is a simplified implementation
51
- const source = context.previousCte || context.collection;
52
- const cteName = `stage_${context.cteIndex}`;
53
- // Build the inner query for the lookup
54
- // In a full implementation, we'd translate the pipeline with variable substitution
55
- const cteExpression = `
56
- SELECT
57
- ${source}.data,
58
- COALESCE(
59
- (SELECT json_group_array(${from}.data) FROM ${from}),
60
- '[]'
61
- ) AS lookup_result
62
- FROM ${source}
63
- `;
64
- const selectClause = `json_set(data, '$.${as}', json(lookup_result)) AS data`;
65
- return {
66
- cteExpression: cteExpression.trim(),
67
- cteName,
68
- selectClause,
69
- params,
70
- transformsShape: true
71
- };
72
- }
73
- //# sourceMappingURL=lookup-stage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lookup-stage.js","sourceRoot":"","sources":["../../../src/translator/stages/lookup-stage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,UAAU,oBAAoB,CAClC,MAAmB,EACnB,OAAqB;IAErB,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,CAAA;IAE3C,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;QAC/B,6CAA6C;QAC7C,OAAO,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACvD,CAAC;SAAM,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzC,kBAAkB;QAClB,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACzD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;AACpF,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAAmB,EACnB,OAAqB,EACrB,MAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;IAErD,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAA;IACxD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,GAAG,UAAW,CAAC,CAAA;IACjD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,GAAG,YAAa,CAAC,CAAA;IAErD,+DAA+D;IAC/D,MAAM,OAAO,GAAG,SAAS,OAAO,CAAC,QAAQ,EAAE,CAAA;IAC3C,MAAM,aAAa,GAAG;;QAEhB,MAAM;;mCAEqB,IAAI;gBACvB,IAAI;8BACU,IAAI,WAAW,WAAW,qBAAqB,MAAM,WAAW,SAAS;;;WAG5F,MAAM;GACd,CAAA;IAED,oEAAoE;IACpE,MAAM,YAAY,GAAG,qBAAqB,EAAE,iCAAiC,CAAA;IAE7E,OAAO;QACL,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE;QACnC,OAAO;QACP,YAAY;QACZ,MAAM;QACN,eAAe,EAAE,IAAI;KACtB,CAAA;AACH,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAmB,EACnB,OAAqB,EACrB,MAAiB;IAEjB,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAA;IAE3B,gEAAgE;IAChE,sCAAsC;IACtC,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAA;IACxD,MAAM,OAAO,GAAG,SAAS,OAAO,CAAC,QAAQ,EAAE,CAAA;IAE3C,uCAAuC;IACvC,mFAAmF;IACnF,MAAM,aAAa,GAAG;;QAEhB,MAAM;;mCAEqB,IAAI,eAAe,IAAI;;;WAG/C,MAAM;GACd,CAAA;IAED,MAAM,YAAY,GAAG,qBAAqB,EAAE,iCAAiC,CAAA;IAE7E,OAAO;QACL,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE;QACnC,OAAO;QACP,YAAY;QACZ,MAAM;QACN,eAAe,EAAE,IAAI;KACtB,CAAA;AACH,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * $match stage - Filters documents based on a query condition
3
- * Translates to SQL WHERE clause using QueryTranslator
4
- */
5
- import type { StageResult, StageContext } from './types';
6
- export declare function translateMatchStage(matchQuery: Record<string, unknown>, _context: StageContext): StageResult;
7
- //# sourceMappingURL=match-stage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-stage.d.ts","sourceRoot":"","sources":["../../../src/translator/stages/match-stage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAExD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,QAAQ,EAAE,YAAY,GACrB,WAAW,CAQb"}
@@ -1,14 +0,0 @@
1
- /**
2
- * $match stage - Filters documents based on a query condition
3
- * Translates to SQL WHERE clause using QueryTranslator
4
- */
5
- import { QueryTranslator } from '../query-translator';
6
- export function translateMatchStage(matchQuery, _context) {
7
- const queryTranslator = new QueryTranslator();
8
- const { sql, params } = queryTranslator.translate(matchQuery);
9
- return {
10
- whereClause: sql,
11
- params
12
- };
13
- }
14
- //# sourceMappingURL=match-stage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-stage.js","sourceRoot":"","sources":["../../../src/translator/stages/match-stage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAGrD,MAAM,UAAU,mBAAmB,CACjC,UAAmC,EACnC,QAAsB;IAEtB,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA;IAC7C,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAE7D,OAAO;QACL,WAAW,EAAE,GAAG;QAChB,MAAM;KACP,CAAA;AACH,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Pipeline Optimizer - Optimizes aggregation pipelines before translation
3
- *
4
- * Optimizations:
5
- * 1. Predicate pushdown: Move $match stages as early as possible
6
- * 2. Projection pushdown: Reduce fields carried through pipeline
7
- * 3. Stage merging: Combine adjacent compatible stages
8
- * 4. Redundant stage elimination
9
- */
10
- import type { PipelineStage } from './types';
11
- /**
12
- * Optimize an aggregation pipeline
13
- */
14
- export declare function optimizePipeline(pipeline: PipelineStage[]): PipelineStage[];
15
- //# sourceMappingURL=optimizer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimizer.d.ts","sourceRoot":"","sources":["../../../src/translator/stages/optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAS3E"}
@@ -1,249 +0,0 @@
1
- /**
2
- * Pipeline Optimizer - Optimizes aggregation pipelines before translation
3
- *
4
- * Optimizations:
5
- * 1. Predicate pushdown: Move $match stages as early as possible
6
- * 2. Projection pushdown: Reduce fields carried through pipeline
7
- * 3. Stage merging: Combine adjacent compatible stages
8
- * 4. Redundant stage elimination
9
- */
10
- /**
11
- * Optimize an aggregation pipeline
12
- */
13
- export function optimizePipeline(pipeline) {
14
- let optimized = [...pipeline];
15
- // Apply optimizations in order
16
- optimized = pushdownPredicates(optimized);
17
- optimized = mergeAdjacentStages(optimized);
18
- optimized = eliminateRedundantStages(optimized);
19
- return optimized;
20
- }
21
- /**
22
- * Push $match stages as early as possible in the pipeline
23
- * This reduces the number of documents processed by subsequent stages
24
- */
25
- function pushdownPredicates(pipeline) {
26
- const result = [];
27
- for (let i = 0; i < pipeline.length; i++) {
28
- const stage = pipeline[i];
29
- const stageType = getStageType(stage);
30
- if (stageType !== '$match') {
31
- result.push(stage);
32
- continue;
33
- }
34
- // Try to push this $match earlier
35
- const matchCondition = stage.$match;
36
- const pushPosition = findEarliestPushPosition(result, matchCondition);
37
- if (pushPosition < result.length) {
38
- // Insert at the earlier position
39
- result.splice(pushPosition, 0, stage);
40
- }
41
- else {
42
- result.push(stage);
43
- }
44
- }
45
- return result;
46
- }
47
- /**
48
- * Find the earliest position where a $match can be pushed
49
- */
50
- function findEarliestPushPosition(stages, matchCondition) {
51
- const matchFields = extractFieldsFromCondition(matchCondition);
52
- // Walk backwards through stages
53
- for (let i = stages.length - 1; i >= 0; i--) {
54
- const stage = stages[i];
55
- const stageType = getStageType(stage);
56
- // Can't push past stages that modify the fields we're matching on
57
- if (stageType === '$group') {
58
- // $group completely changes document shape
59
- return i + 1;
60
- }
61
- if (stageType === '$project' || stageType === '$addFields') {
62
- const projectFields = getAffectedFields(stage);
63
- if (matchFields.some(f => projectFields.has(f))) {
64
- return i + 1;
65
- }
66
- }
67
- if (stageType === '$unwind') {
68
- const unwindField = getUnwindField(stage);
69
- if (matchFields.some(f => f === unwindField || f.startsWith(unwindField + '.'))) {
70
- return i + 1;
71
- }
72
- }
73
- if (stageType === '$lookup') {
74
- const lookupAs = getLookupAsField(stage);
75
- if (matchFields.some(f => f === lookupAs || f.startsWith(lookupAs + '.'))) {
76
- return i + 1;
77
- }
78
- }
79
- // $sort, $limit, $skip don't affect fields
80
- // We can generally push $match past them (though order matters for correctness)
81
- if (stageType === '$limit' || stageType === '$skip') {
82
- // Can't push past limit/skip as it changes result set
83
- return i + 1;
84
- }
85
- }
86
- return 0;
87
- }
88
- /**
89
- * Merge adjacent compatible stages
90
- */
91
- function mergeAdjacentStages(pipeline) {
92
- const result = [];
93
- for (const stage of pipeline) {
94
- if (result.length === 0) {
95
- result.push(stage);
96
- continue;
97
- }
98
- const prevStage = result[result.length - 1];
99
- const merged = tryMergeStages(prevStage, stage);
100
- if (merged) {
101
- result[result.length - 1] = merged;
102
- }
103
- else {
104
- result.push(stage);
105
- }
106
- }
107
- return result;
108
- }
109
- /**
110
- * Try to merge two stages into one
111
- */
112
- function tryMergeStages(first, second) {
113
- const firstType = getStageType(first);
114
- const secondType = getStageType(second);
115
- // Merge adjacent $match stages
116
- if (firstType === '$match' && secondType === '$match') {
117
- const firstMatch = first.$match;
118
- const secondMatch = second.$match;
119
- return {
120
- $match: {
121
- $and: [firstMatch, secondMatch]
122
- }
123
- };
124
- }
125
- // Merge adjacent $addFields stages
126
- if (firstType === '$addFields' && secondType === '$addFields') {
127
- const firstFields = first.$addFields;
128
- const secondFields = second.$addFields;
129
- return {
130
- $addFields: {
131
- ...firstFields,
132
- ...secondFields
133
- }
134
- };
135
- }
136
- // Merge adjacent $project stages (if compatible)
137
- if (firstType === '$project' && secondType === '$project') {
138
- const firstProject = first.$project;
139
- const secondProject = second.$project;
140
- // Only merge if both are inclusion or both are exclusion
141
- const firstIsExclusion = isExclusionProject(firstProject);
142
- const secondIsExclusion = isExclusionProject(secondProject);
143
- if (firstIsExclusion === secondIsExclusion) {
144
- return {
145
- $project: {
146
- ...firstProject,
147
- ...secondProject
148
- }
149
- };
150
- }
151
- }
152
- return null;
153
- }
154
- /**
155
- * Eliminate redundant stages
156
- */
157
- function eliminateRedundantStages(pipeline) {
158
- return pipeline.filter((stage, index) => {
159
- const stageType = getStageType(stage);
160
- // Remove empty $match
161
- if (stageType === '$match') {
162
- const matchCondition = stage.$match;
163
- if (Object.keys(matchCondition).length === 0) {
164
- return false;
165
- }
166
- }
167
- // Remove $limit 0 followed by anything (no results anyway)
168
- if (stageType === '$limit') {
169
- const limit = stage.$limit;
170
- if (limit === 0) {
171
- // Keep only this stage, remove rest
172
- return true;
173
- }
174
- }
175
- // Remove duplicate $sort stages (only last one matters)
176
- if (stageType === '$sort' && index < pipeline.length - 1) {
177
- for (let i = index + 1; i < pipeline.length; i++) {
178
- const laterStageType = getStageType(pipeline[i]);
179
- if (laterStageType === '$sort') {
180
- return false;
181
- }
182
- // If we hit a stage that depends on order, keep this sort
183
- if (['$limit', '$skip', '$first', '$last'].includes(laterStageType)) {
184
- return true;
185
- }
186
- }
187
- }
188
- return true;
189
- });
190
- }
191
- /**
192
- * Helper functions
193
- */
194
- function getStageType(stage) {
195
- return Object.keys(stage)[0];
196
- }
197
- function extractFieldsFromCondition(condition) {
198
- const fields = [];
199
- for (const [key, value] of Object.entries(condition)) {
200
- if (key.startsWith('$')) {
201
- // Logical operator
202
- if (Array.isArray(value)) {
203
- for (const subCondition of value) {
204
- fields.push(...extractFieldsFromCondition(subCondition));
205
- }
206
- }
207
- }
208
- else {
209
- fields.push(key);
210
- }
211
- }
212
- return fields;
213
- }
214
- function getAffectedFields(stage) {
215
- const stageType = getStageType(stage);
216
- const fields = new Set();
217
- if (stageType === '$project') {
218
- const project = stage.$project;
219
- for (const key of Object.keys(project)) {
220
- fields.add(key);
221
- }
222
- }
223
- else if (stageType === '$addFields') {
224
- const addFields = stage.$addFields;
225
- for (const key of Object.keys(addFields)) {
226
- fields.add(key);
227
- }
228
- }
229
- return fields;
230
- }
231
- function getUnwindField(stage) {
232
- const unwind = stage.$unwind;
233
- if (typeof unwind === 'string') {
234
- return unwind.replace(/^\$/, '');
235
- }
236
- return unwind.path.replace(/^\$/, '');
237
- }
238
- function getLookupAsField(stage) {
239
- const lookup = stage.$lookup;
240
- return lookup.as;
241
- }
242
- function isExclusionProject(project) {
243
- return Object.entries(project).every(([key, value]) => {
244
- if (key === '_id')
245
- return true;
246
- return value === 0;
247
- });
248
- }
249
- //# sourceMappingURL=optimizer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"optimizer.js","sourceRoot":"","sources":["../../../src/translator/stages/optimizer.ts"],"names":[],"mappings":"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"}
@@ -1,47 +0,0 @@
1
- /**
2
- * Parallel Facet Executor - Executes multiple facet pipelines concurrently
3
- *
4
- * This module provides utilities for executing facet queries in parallel,
5
- * taking advantage of the independent nature of each facet.
6
- */
7
- export interface FacetQuery {
8
- name: string;
9
- sql: string;
10
- params: unknown[];
11
- }
12
- export interface FacetResult {
13
- name: string;
14
- rows: unknown[];
15
- }
16
- export interface FacetExecutionPlan {
17
- /** Queries that can be executed in parallel */
18
- parallelQueries: FacetQuery[];
19
- /** Combined result structure */
20
- combineResults: (results: FacetResult[]) => Record<string, unknown[]>;
21
- }
22
- /**
23
- * Create an execution plan for parallel facet queries
24
- */
25
- export declare function createFacetExecutionPlan(facets: Record<string, {
26
- sql: string;
27
- params: unknown[];
28
- }>): FacetExecutionPlan;
29
- /**
30
- * Example executor interface for parallel facet execution
31
- * This would be implemented by the database layer
32
- */
33
- export interface ParallelExecutor {
34
- executeParallel(queries: FacetQuery[]): Promise<FacetResult[]>;
35
- }
36
- /**
37
- * Create a mock parallel executor for testing
38
- */
39
- export declare function createMockParallelExecutor(queryHandler: (sql: string, params: unknown[]) => unknown[]): ParallelExecutor;
40
- /**
41
- * Batch facet execution - groups queries for efficient execution
42
- */
43
- export declare function batchFacetQueries(facets: Record<string, {
44
- sql: string;
45
- params: unknown[];
46
- }>, batchSize?: number): FacetQuery[][];
47
- //# sourceMappingURL=parallel-facet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-facet.d.ts","sourceRoot":"","sources":["../../../src/translator/stages/parallel-facet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,EAAE,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,eAAe,EAAE,UAAU,EAAE,CAAA;IAC7B,gCAAgC;IAChC,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;CACtE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,GACzD,kBAAkB,CAiBpB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;CAC/D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,GAC1D,gBAAgB,CAalB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,EAC1D,SAAS,GAAE,MAAU,GACpB,UAAU,EAAE,EAAE,CAahB"}
@@ -1,57 +0,0 @@
1
- /**
2
- * Parallel Facet Executor - Executes multiple facet pipelines concurrently
3
- *
4
- * This module provides utilities for executing facet queries in parallel,
5
- * taking advantage of the independent nature of each facet.
6
- */
7
- /**
8
- * Create an execution plan for parallel facet queries
9
- */
10
- export function createFacetExecutionPlan(facets) {
11
- const parallelQueries = Object.entries(facets).map(([name, query]) => ({
12
- name,
13
- sql: query.sql,
14
- params: query.params
15
- }));
16
- return {
17
- parallelQueries,
18
- combineResults: (results) => {
19
- const combined = {};
20
- for (const result of results) {
21
- combined[result.name] = result.rows;
22
- }
23
- return combined;
24
- }
25
- };
26
- }
27
- /**
28
- * Create a mock parallel executor for testing
29
- */
30
- export function createMockParallelExecutor(queryHandler) {
31
- return {
32
- async executeParallel(queries) {
33
- // Execute all queries in parallel using Promise.all
34
- const results = await Promise.all(queries.map(async (query) => ({
35
- name: query.name,
36
- rows: queryHandler(query.sql, query.params)
37
- })));
38
- return results;
39
- }
40
- };
41
- }
42
- /**
43
- * Batch facet execution - groups queries for efficient execution
44
- */
45
- export function batchFacetQueries(facets, batchSize = 3) {
46
- const queries = Object.entries(facets).map(([name, query]) => ({
47
- name,
48
- sql: query.sql,
49
- params: query.params
50
- }));
51
- const batches = [];
52
- for (let i = 0; i < queries.length; i += batchSize) {
53
- batches.push(queries.slice(i, i + batchSize));
54
- }
55
- return batches;
56
- }
57
- //# sourceMappingURL=parallel-facet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-facet.js","sourceRoot":"","sources":["../../../src/translator/stages/parallel-facet.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAA0D;IAE1D,MAAM,eAAe,GAAiB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,IAAI;QACJ,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC,CAAA;IAEH,OAAO;QACL,eAAe;QACf,cAAc,EAAE,CAAC,OAAsB,EAAE,EAAE;YACzC,MAAM,QAAQ,GAA8B,EAAE,CAAA;YAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;YACrC,CAAC;YACD,OAAO,QAAQ,CAAA;QACjB,CAAC;KACF,CAAA;AACH,CAAC;AAUD;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAA2D;IAE3D,OAAO;QACL,KAAK,CAAC,eAAe,CAAC,OAAqB;YACzC,oDAAoD;YACpD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;aAC5C,CAAC,CAAC,CACJ,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA0D,EAC1D,YAAoB,CAAC;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,IAAI;QACJ,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,CAAC,CAAC,CAAA;IAEH,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * $project stage - Reshapes documents by including, excluding, or computing fields
3
- * Translates to SQL SELECT with json_object, json_remove, or computed expressions
4
- * Supports multiple SQL dialects (SQLite, ClickHouse)
5
- */
6
- import type { StageResult, StageContext } from './types';
7
- export declare function translateProjectStage(projection: Record<string, unknown>, context: StageContext): StageResult;
8
- //# sourceMappingURL=project-stage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project-stage.d.ts","sourceRoot":"","sources":["../../../src/translator/stages/project-stage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAwCxD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,YAAY,GACpB,WAAW,CAiBb"}
@@ -1,145 +0,0 @@
1
- /**
2
- * $project stage - Reshapes documents by including, excluding, or computing fields
3
- * Translates to SQL SELECT with json_object, json_remove, or computed expressions
4
- * Supports multiple SQL dialects (SQLite, ClickHouse)
5
- */
6
- import { translateExpression, isFieldReference, getFieldPath } from './expression-translator';
7
- import { validateFieldPath } from '../../utils/sql-safety.js';
8
- import { jsonExtract as dialectJsonExtract } from '../dialect';
9
- /**
10
- * Recursively collect all field references from a $function expression's args
11
- */
12
- function collectFunctionFieldRefs(expr) {
13
- if (!expr || typeof expr !== 'object')
14
- return [];
15
- const fields = [];
16
- const exprObj = expr;
17
- // Check if this is a $function expression
18
- if ('$function' in exprObj) {
19
- const fnSpec = exprObj.$function;
20
- if (fnSpec.args && Array.isArray(fnSpec.args)) {
21
- for (const arg of fnSpec.args) {
22
- if (isFieldReference(arg)) {
23
- // Extract field name from $fieldName reference
24
- const fieldName = arg.substring(1).split('.')[0];
25
- if (fieldName) {
26
- fields.push(fieldName);
27
- }
28
- }
29
- }
30
- }
31
- }
32
- // Recursively check nested objects
33
- for (const value of Object.values(exprObj)) {
34
- if (value && typeof value === 'object') {
35
- fields.push(...collectFunctionFieldRefs(value));
36
- }
37
- }
38
- return fields;
39
- }
40
- export function translateProjectStage(projection, context) {
41
- const params = [];
42
- const dialect = context.dialect || 'sqlite';
43
- const fields = Object.entries(projection);
44
- // Check if it's an exclusion projection (all values are 0 except _id)
45
- const isExclusion = fields.every(([key, value]) => {
46
- if (key === '_id')
47
- return true;
48
- return value === 0;
49
- });
50
- if (isExclusion) {
51
- return translateExclusionProject(projection, context, params, dialect);
52
- }
53
- // Inclusion or computed projection
54
- return translateInclusionProject(projection, context, params, dialect);
55
- }
56
- function translateExclusionProject(projection, _context, params, dialect = 'sqlite') {
57
- const fieldsToRemove = Object.entries(projection)
58
- .filter(([key, value]) => value === 0 && key !== '_id')
59
- .map(([key]) => {
60
- // Validate field name to prevent SQL injection
61
- validateFieldPath(key);
62
- return `'$.${key}'`;
63
- });
64
- let selectClause;
65
- if (fieldsToRemove.length > 0) {
66
- if (dialect === 'clickhouse') {
67
- // ClickHouse doesn't have json_remove, would need different approach
68
- selectClause = 'data'; // Simplified for now
69
- }
70
- else {
71
- selectClause = `json_remove(data, ${fieldsToRemove.join(', ')}) AS data`;
72
- }
73
- }
74
- else {
75
- selectClause = 'data';
76
- }
77
- return {
78
- selectClause,
79
- params
80
- };
81
- }
82
- function translateInclusionProject(projection, _context, params, dialect = 'sqlite') {
83
- const jsonParts = [];
84
- // Collect all field references needed by $function expressions
85
- // These need to be included in the output so the function executor can extract them
86
- const functionFieldRefs = new Set();
87
- for (const [, value] of Object.entries(projection)) {
88
- if (typeof value === 'object' && value !== null) {
89
- const refs = collectFunctionFieldRefs(value);
90
- refs.forEach(ref => functionFieldRefs.add(ref));
91
- }
92
- }
93
- // First, add the explicitly projected fields
94
- const explicitFields = new Set();
95
- for (const [key, value] of Object.entries(projection)) {
96
- // Validate key (output field name) to prevent SQL injection
97
- validateFieldPath(key);
98
- explicitFields.add(key);
99
- if (value === 1) {
100
- // Include existing field
101
- const fieldExpr = dialectJsonExtract(dialect, 'data', `$.${key}`);
102
- jsonParts.push(`'${key}', ${fieldExpr}`);
103
- }
104
- else if (typeof value === 'string' && value.startsWith('$')) {
105
- // Field reference (renaming) - getFieldPath validates the field
106
- const fieldPath = getFieldPath(value);
107
- const fieldExpr = dialectJsonExtract(dialect, 'data', fieldPath);
108
- jsonParts.push(`'${key}', ${fieldExpr}`);
109
- }
110
- else if (typeof value === 'object' && value !== null) {
111
- // Expression
112
- const exprSql = translateExpression(value, params, dialect);
113
- jsonParts.push(`'${key}', ${exprSql}`);
114
- }
115
- else if (value !== 0) {
116
- // Literal value
117
- if (typeof value === 'string') {
118
- params.push(value);
119
- jsonParts.push(`'${key}', ?`);
120
- }
121
- else if (typeof value === 'number' || typeof value === 'boolean') {
122
- jsonParts.push(`'${key}', ${JSON.stringify(value)}`);
123
- }
124
- }
125
- }
126
- // Add source fields needed by $function that aren't already projected
127
- // These will be used by the function executor to extract argument values
128
- for (const fieldRef of functionFieldRefs) {
129
- if (!explicitFields.has(fieldRef)) {
130
- // Validate field reference to prevent SQL injection
131
- validateFieldPath(fieldRef);
132
- const fieldExpr = dialectJsonExtract(dialect, 'data', `$.${fieldRef}`);
133
- jsonParts.push(`'${fieldRef}', ${fieldExpr}`);
134
- }
135
- }
136
- const selectClause = dialect === 'clickhouse'
137
- ? `tuple(${jsonParts.join(', ')}) AS data`
138
- : `json_object(${jsonParts.join(', ')}) AS data`;
139
- return {
140
- selectClause,
141
- params,
142
- transformsShape: true
143
- };
144
- }
145
- //# sourceMappingURL=project-stage.js.map