@noy-db/hub 0.7.0 → 0.8.0-pre.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/CHANGELOG.md +105 -14
  2. package/LICENSE +202 -21
  3. package/NOTICE +1 -0
  4. package/README.md +27 -10
  5. package/codemods/0.8.0-pre.json +61 -0
  6. package/dist/api-GVYEKSJE.js +19 -0
  7. package/dist/as/index.js +11 -11
  8. package/dist/at/index.js +9 -9
  9. package/dist/attestation/index.js +20 -20
  10. package/dist/{backup-IJTB4S4M.js → backup-7TFRVFLH.js} +21 -15
  11. package/dist/backup-7TFRVFLH.js.map +1 -0
  12. package/dist/blobs/index.js +13 -13
  13. package/dist/broker/index.js +12 -12
  14. package/dist/by/index.js +2 -2
  15. package/dist/cargo/index.js +39 -36
  16. package/dist/{chunk-7O3Y4PPD.js → chunk-244VXYPG.js} +140 -16
  17. package/dist/chunk-244VXYPG.js.map +1 -0
  18. package/dist/{chunk-BUE2D7PX.js → chunk-32YV3TJT.js} +2 -2
  19. package/dist/{chunk-3RCJJBNR.js → chunk-3ELRMVJK.js} +12 -12
  20. package/dist/{chunk-6GMZ7HEE.js → chunk-3F7GLNAE.js} +6 -6
  21. package/dist/{chunk-2Y4IMKA6.js → chunk-3H5KLDZN.js} +4 -4
  22. package/dist/{chunk-VTFVLCUH.js → chunk-3JWHAR6E.js} +2 -2
  23. package/dist/{chunk-YMUFFJCO.js → chunk-3TDUWVWB.js} +5 -2
  24. package/dist/chunk-3TDUWVWB.js.map +1 -0
  25. package/dist/{chunk-JBDFMYKQ.js → chunk-4AF3TUMP.js} +2 -2
  26. package/dist/{chunk-ZORTV6NH.js → chunk-4I522ERM.js} +88 -4
  27. package/dist/chunk-4I522ERM.js.map +1 -0
  28. package/dist/{chunk-MUM7IANK.js → chunk-4MXI3ODD.js} +4 -4
  29. package/dist/chunk-4MXI3ODD.js.map +1 -0
  30. package/dist/{chunk-BLN54W3L.js → chunk-5FDLC6G7.js} +56 -3
  31. package/dist/chunk-5FDLC6G7.js.map +1 -0
  32. package/dist/chunk-5O7D6ZTW.js +53 -0
  33. package/dist/chunk-5O7D6ZTW.js.map +1 -0
  34. package/dist/{chunk-J6FXAEUG.js → chunk-6B3VNR4P.js} +12 -12
  35. package/dist/{chunk-TUFM4UZP.js → chunk-6K7DPM7D.js} +2 -2
  36. package/dist/{chunk-K6LHRFBL.js → chunk-6LMQ5R26.js} +7 -7
  37. package/dist/{chunk-SPXXX5E4.js → chunk-6LNL42F5.js} +94 -32
  38. package/dist/chunk-6LNL42F5.js.map +1 -0
  39. package/dist/{chunk-XLMEZIAJ.js → chunk-6OWXYZK2.js} +2 -2
  40. package/dist/{chunk-BOWNCWZT.js → chunk-6QSQQLSE.js} +3 -3
  41. package/dist/chunk-7JE7BDYJ.js +1558 -0
  42. package/dist/chunk-7JE7BDYJ.js.map +1 -0
  43. package/dist/{chunk-KG7TZKZG.js → chunk-7VCXZDA4.js} +5 -5
  44. package/dist/chunk-7VCXZDA4.js.map +1 -0
  45. package/dist/{chunk-NQKIUNW5.js → chunk-A6IJU4TK.js} +2 -2
  46. package/dist/{chunk-BM5TWITZ.js → chunk-ANWPSTZU.js} +38 -9
  47. package/dist/chunk-ANWPSTZU.js.map +1 -0
  48. package/dist/{chunk-QIZPZMUI.js → chunk-AOWGXU6D.js} +2 -2
  49. package/dist/{chunk-CUZLNGD5.js → chunk-B2YY6WDD.js} +1 -1
  50. package/dist/chunk-B2YY6WDD.js.map +1 -0
  51. package/dist/{chunk-SFAWCTEM.js → chunk-B57AFBY2.js} +2 -2
  52. package/dist/{chunk-GPEQUXHL.js → chunk-B6SJIBQK.js} +4 -4
  53. package/dist/chunk-BJ2IXQ5Q.js +100 -0
  54. package/dist/chunk-BJ2IXQ5Q.js.map +1 -0
  55. package/dist/{chunk-Q2PU57HC.js → chunk-BK2HHQGN.js} +2 -2
  56. package/dist/chunk-BKT776R5.js +1 -0
  57. package/dist/{chunk-KUX3OB6D.js → chunk-BP6DARYA.js} +33 -5
  58. package/dist/chunk-BP6DARYA.js.map +1 -0
  59. package/dist/{chunk-FXBIP2WD.js → chunk-BUDAGWL5.js} +6 -6
  60. package/dist/chunk-CF5UU4S7.js +757 -0
  61. package/dist/chunk-CF5UU4S7.js.map +1 -0
  62. package/dist/{chunk-BOET4NA4.js → chunk-CKNGS5MH.js} +3 -3
  63. package/dist/chunk-CY2CYVWZ.js +41 -0
  64. package/dist/chunk-CY2CYVWZ.js.map +1 -0
  65. package/dist/{chunk-2577DKXB.js → chunk-DC5QVPV7.js} +2 -2
  66. package/dist/chunk-DC5QVPV7.js.map +1 -0
  67. package/dist/{chunk-YSRUYAVU.js → chunk-DE4DH2RZ.js} +2 -2
  68. package/dist/{chunk-6I2RQCET.js → chunk-DF73H4UN.js} +4 -4
  69. package/dist/{chunk-4GVM6QZA.js → chunk-ENAG3IY7.js} +2 -2
  70. package/dist/chunk-ENAG3IY7.js.map +1 -0
  71. package/dist/{chunk-K7NTTA6P.js → chunk-EOVMT6TB.js} +2 -2
  72. package/dist/chunk-F24ZZTHQ.js +193 -0
  73. package/dist/chunk-F24ZZTHQ.js.map +1 -0
  74. package/dist/chunk-F2TDU7MQ.js +456 -0
  75. package/dist/chunk-F2TDU7MQ.js.map +1 -0
  76. package/dist/chunk-F6NCB7KT.js +13 -0
  77. package/dist/chunk-F6NCB7KT.js.map +1 -0
  78. package/dist/{chunk-SPYWXKJN.js → chunk-F7XGHL5O.js} +3 -3
  79. package/dist/chunk-F7XGHL5O.js.map +1 -0
  80. package/dist/{chunk-XTXOCYOJ.js → chunk-FCKWQE2H.js} +5 -5
  81. package/dist/{chunk-U4FOQDY4.js → chunk-FH2L2E34.js} +4 -4
  82. package/dist/chunk-FH2L2E34.js.map +1 -0
  83. package/dist/{chunk-4OZNXTO4.js → chunk-FN5EBVTQ.js} +2 -2
  84. package/dist/chunk-FQ54DWUQ.js +270 -0
  85. package/dist/chunk-FQ54DWUQ.js.map +1 -0
  86. package/dist/{chunk-NKHRDYOR.js → chunk-FQ5VRHIB.js} +4 -4
  87. package/dist/{chunk-FAHMLERK.js → chunk-FW22ZCXT.js} +2 -2
  88. package/dist/chunk-FXQBGFOX.js +524 -0
  89. package/dist/chunk-FXQBGFOX.js.map +1 -0
  90. package/dist/{chunk-AO42KJO6.js → chunk-GF5BZ7D4.js} +45 -9
  91. package/dist/chunk-GF5BZ7D4.js.map +1 -0
  92. package/dist/{chunk-TRGTKX5E.js → chunk-GHLTDZRS.js} +5 -3
  93. package/dist/{chunk-TRGTKX5E.js.map → chunk-GHLTDZRS.js.map} +1 -1
  94. package/dist/{chunk-5WDXHNSW.js → chunk-HBPPGWUM.js} +5 -5
  95. package/dist/chunk-HBPPGWUM.js.map +1 -0
  96. package/dist/{chunk-KTFRCC5C.js → chunk-HBRLNOHL.js} +82 -8
  97. package/dist/chunk-HBRLNOHL.js.map +1 -0
  98. package/dist/chunk-HLEK5VAN.js +275 -0
  99. package/dist/chunk-HLEK5VAN.js.map +1 -0
  100. package/dist/{chunk-RMS3NEA3.js → chunk-HT2AHGQI.js} +2 -2
  101. package/dist/{chunk-CHJBLCOG.js → chunk-HVSCEIYL.js} +7 -7
  102. package/dist/{chunk-UXWB3FPF.js → chunk-I3JDRCMW.js} +150 -22
  103. package/dist/chunk-I3JDRCMW.js.map +1 -0
  104. package/dist/{chunk-GY4WYNNG.js → chunk-ID6Z6E66.js} +2 -2
  105. package/dist/{chunk-EYBQEIUY.js → chunk-IEX7NK2K.js} +3 -3
  106. package/dist/{chunk-KUJDV5QH.js → chunk-ISZQJBML.js} +5 -5
  107. package/dist/{chunk-LWBCUYZW.js → chunk-IT22PWKV.js} +2 -2
  108. package/dist/{chunk-EQEYOJBM.js → chunk-IUWCVHQ7.js} +3 -3
  109. package/dist/chunk-IUWCVHQ7.js.map +1 -0
  110. package/dist/{chunk-7V4TP3AF.js → chunk-J6UOHJY5.js} +4 -4
  111. package/dist/{chunk-JMGDHKQF.js → chunk-JCN44NCY.js} +2 -2
  112. package/dist/{chunk-CARABLSQ.js → chunk-K6W7BVZ6.js} +3 -3
  113. package/dist/{chunk-77K4PG6P.js → chunk-KJFW62P4.js} +29 -11
  114. package/dist/chunk-KJFW62P4.js.map +1 -0
  115. package/dist/{chunk-453F654R.js → chunk-L7DOS3TE.js} +2 -2
  116. package/dist/chunk-LGNDFRYC.js +23 -0
  117. package/dist/chunk-LGNDFRYC.js.map +1 -0
  118. package/dist/{chunk-WEQEYLCS.js → chunk-LGRLME4M.js} +7 -7
  119. package/dist/{chunk-RMF67KCG.js → chunk-LQ4ZHOKP.js} +2 -2
  120. package/dist/{chunk-ZVO4QVPD.js → chunk-M522UYZ2.js} +5 -5
  121. package/dist/{chunk-G56KBWFY.js → chunk-M7NI3IWE.js} +45 -12
  122. package/dist/chunk-M7NI3IWE.js.map +1 -0
  123. package/dist/chunk-MDWKM2XC.js +293 -0
  124. package/dist/chunk-MDWKM2XC.js.map +1 -0
  125. package/dist/chunk-MKXXMNJH.js +204 -0
  126. package/dist/chunk-MKXXMNJH.js.map +1 -0
  127. package/dist/{chunk-SKGMN35F.js → chunk-MLPHLJIQ.js} +3 -3
  128. package/dist/chunk-MLPHLJIQ.js.map +1 -0
  129. package/dist/{chunk-2N4GY74U.js → chunk-MTL7MXGR.js} +6 -6
  130. package/dist/{chunk-TFR7DSOV.js → chunk-MVZ2TPVP.js} +2 -2
  131. package/dist/{chunk-CPWQB3N5.js → chunk-N5DNADLQ.js} +7 -7
  132. package/dist/{chunk-ELNXJMGB.js → chunk-NNARWO72.js} +6 -6
  133. package/dist/{chunk-PT43Y56J.js → chunk-NRT6QZQB.js} +102 -16
  134. package/dist/chunk-NRT6QZQB.js.map +1 -0
  135. package/dist/{chunk-QIBVIOXO.js → chunk-NWHBJQAL.js} +99 -8
  136. package/dist/chunk-NWHBJQAL.js.map +1 -0
  137. package/dist/chunk-NYMLINRP.js +28 -0
  138. package/dist/chunk-NYMLINRP.js.map +1 -0
  139. package/dist/{chunk-7MG7SJT7.js → chunk-ODVPTDPK.js} +1 -1
  140. package/dist/chunk-ODVPTDPK.js.map +1 -0
  141. package/dist/chunk-ORDURZBU.js +461 -0
  142. package/dist/chunk-ORDURZBU.js.map +1 -0
  143. package/dist/{chunk-6YXCPL4T.js → chunk-PDCG6PR5.js} +2 -2
  144. package/dist/{chunk-REDOOY2Q.js → chunk-PSIV7CJV.js} +2 -2
  145. package/dist/{chunk-NA2NIJZI.js → chunk-QBBUZ3I3.js} +126 -19
  146. package/dist/chunk-QBBUZ3I3.js.map +1 -0
  147. package/dist/{chunk-5VCRVKOZ.js → chunk-QOOUUR4A.js} +6 -4
  148. package/dist/{chunk-5VCRVKOZ.js.map → chunk-QOOUUR4A.js.map} +1 -1
  149. package/dist/{chunk-ANATMFIO.js → chunk-QWFHIOD2.js} +5 -5
  150. package/dist/{chunk-X2DLENDQ.js → chunk-QWGU66MP.js} +3 -3
  151. package/dist/chunk-RHVMZSUU.js +7 -0
  152. package/dist/chunk-RHVMZSUU.js.map +1 -0
  153. package/dist/{chunk-BSFNRLK2.js → chunk-S57HTZ6X.js} +5 -5
  154. package/dist/{chunk-SZJ3DLZA.js → chunk-SEE332EV.js} +2 -2
  155. package/dist/{chunk-YYP7WSEB.js → chunk-SI3V7D4G.js} +2 -2
  156. package/dist/{chunk-UGTBXF5U.js → chunk-SOIQ4MM4.js} +3 -3
  157. package/dist/chunk-SUZKW6UR.js +25 -0
  158. package/dist/chunk-SUZKW6UR.js.map +1 -0
  159. package/dist/{chunk-VXGSWL6L.js → chunk-SYVZW77S.js} +6 -6
  160. package/dist/{chunk-6GOE5PGN.js → chunk-T2LBQ5DV.js} +883 -227
  161. package/dist/chunk-T2LBQ5DV.js.map +1 -0
  162. package/dist/chunk-T52GX4SA.js +215 -0
  163. package/dist/chunk-T52GX4SA.js.map +1 -0
  164. package/dist/{chunk-MVMXZYXT.js → chunk-TKUOEU2F.js} +2 -2
  165. package/dist/chunk-TOPYQ6GA.js +31 -0
  166. package/dist/chunk-TOPYQ6GA.js.map +1 -0
  167. package/dist/{chunk-SMH6SRX7.js → chunk-TROR3ALR.js} +2 -2
  168. package/dist/{chunk-2C3AQB46.js → chunk-UD5EVGZ7.js} +42 -389
  169. package/dist/chunk-UD5EVGZ7.js.map +1 -0
  170. package/dist/{chunk-KJIMGIWO.js → chunk-UPD5NWI5.js} +65 -17
  171. package/dist/chunk-UPD5NWI5.js.map +1 -0
  172. package/dist/{chunk-SL3JAAKN.js → chunk-UYB234ZR.js} +30 -2
  173. package/dist/chunk-UYB234ZR.js.map +1 -0
  174. package/dist/chunk-VHM7HCKB.js +220 -0
  175. package/dist/chunk-VHM7HCKB.js.map +1 -0
  176. package/dist/{chunk-DGOZ4UZD.js → chunk-VNNRUGMM.js} +2 -2
  177. package/dist/{chunk-HDOU6I2Y.js → chunk-VNPEWFPD.js} +4 -4
  178. package/dist/{chunk-L7CIOOBW.js → chunk-WNJ4AVGE.js} +2 -2
  179. package/dist/{chunk-FMZY5Q6L.js → chunk-WX5ADGTZ.js} +3 -3
  180. package/dist/{chunk-VXANTWBJ.js → chunk-WY2XXTET.js} +92 -6
  181. package/dist/{chunk-VXANTWBJ.js.map → chunk-WY2XXTET.js.map} +1 -1
  182. package/dist/{chunk-6X6SEMEE.js → chunk-X25NWUZB.js} +33 -8
  183. package/dist/chunk-X25NWUZB.js.map +1 -0
  184. package/dist/{chunk-Q7HZX3IF.js → chunk-X4773RBR.js} +2 -2
  185. package/dist/chunk-XBKH4FOC.js +195 -0
  186. package/dist/chunk-XBKH4FOC.js.map +1 -0
  187. package/dist/{chunk-ANSIZYEG.js → chunk-YNIUIERI.js} +3 -3
  188. package/dist/chunk-YSK2CU2Q.js +936 -0
  189. package/dist/chunk-YSK2CU2Q.js.map +1 -0
  190. package/dist/{chunk-UXVWEX5L.js → chunk-Z5HTYMMQ.js} +6 -2
  191. package/dist/chunk-Z5HTYMMQ.js.map +1 -0
  192. package/dist/{chunk-RRNRNANG.js → chunk-ZE4CHIED.js} +66 -75
  193. package/dist/chunk-ZE4CHIED.js.map +1 -0
  194. package/dist/chunk-ZSX4S5XB.js +1289 -0
  195. package/dist/chunk-ZSX4S5XB.js.map +1 -0
  196. package/dist/{chunk-BZ3534YM.js → chunk-ZUVBC32X.js} +2 -2
  197. package/dist/{chunk-L742JPKZ.js → chunk-ZXABPVM6.js} +6 -6
  198. package/dist/classified/index.js +5 -5
  199. package/dist/{classified-marker-LI2SF2E4.js → classified-marker-W3USLL5M.js} +3 -3
  200. package/dist/collection-facade-QU6IJBN3.js +48 -0
  201. package/dist/{computed-VPOKQK4N.js → computed-TPFBX7U4.js} +3 -3
  202. package/dist/consent/index.js +9 -9
  203. package/dist/cover/index.js +10 -10
  204. package/dist/coverage/index.js +306 -0
  205. package/dist/coverage/index.js.map +1 -0
  206. package/dist/custody/index.js +12 -12
  207. package/dist/{dead-filter-TSWZQRR5.js → dead-filter-U2UYKSZL.js} +2 -2
  208. package/dist/debug/index.js +1 -1
  209. package/dist/{delegation-OVIFFPG4.js → delegation-S3AEPW2T.js} +11 -11
  210. package/dist/derivations/index.js +25 -22
  211. package/dist/derive-OX7F6TGG.js +21 -0
  212. package/dist/directory/index.js +10 -10
  213. package/dist/{dispatch-WC6X2M6C.js → dispatch-3CQDJV5Q.js} +5 -5
  214. package/dist/{dispatch-S73TK3IY.js → dispatch-RH4LHKBH.js} +21 -21
  215. package/dist/{enclave-KJOTOH7X.js → enclave-27SMF6GF.js} +15 -9
  216. package/dist/executor-B6SRO2QS.js +36 -0
  217. package/dist/executor-BI5CHWRY.js +8 -0
  218. package/dist/executor-RBKM5W5K.js +8 -0
  219. package/dist/export-accessible-VMA3YM5V.js +22 -0
  220. package/dist/extract-partition-NF7PXGPP.js +37 -0
  221. package/dist/{fanout-sidecar-WUFXNYP4.js → fanout-sidecar-OT6RYLOL.js} +9 -9
  222. package/dist/find-LZMP26KF.js +10 -0
  223. package/dist/forget/index.js +9 -9
  224. package/dist/guards/index.js +4 -4
  225. package/dist/history/index.js +13 -13
  226. package/dist/i18n/index.js +14 -14
  227. package/dist/index.d.ts +29 -6
  228. package/dist/index.js +999 -191
  229. package/dist/index.js.map +1 -1
  230. package/dist/indexing/index.js +13 -5
  231. package/dist/indexing/index.js.map +1 -1
  232. package/dist/introspection/index.js +11 -11
  233. package/dist/issue-IHARXWW5.js +18 -0
  234. package/dist/ivf-flat-UZ6DQDLS.js +314 -0
  235. package/dist/ivf-flat-UZ6DQDLS.js.map +1 -0
  236. package/dist/{json-schema-V3M5MUCM.js → json-schema-3SHX72CC.js} +2 -1
  237. package/dist/json-schema-3SHX72CC.js.map +1 -0
  238. package/dist/kernel/collection-config.d.ts +4 -20
  239. package/dist/kernel/collection.d.ts +29 -8
  240. package/dist/kernel/enclave/crypto.d.ts +16 -0
  241. package/dist/kernel/enclave/index.d.ts +1 -1
  242. package/dist/kernel/enclave/record-keys/record-codec.d.ts +25 -0
  243. package/dist/kernel/errors.d.ts +227 -36
  244. package/dist/kernel/generation-map.d.ts +48 -0
  245. package/dist/kernel/memory-store.d.ts +35 -7
  246. package/dist/kernel/noydb.d.ts +6 -1
  247. package/dist/kernel/present-cache.d.ts +58 -0
  248. package/dist/kernel/query/all.d.ts +7 -0
  249. package/dist/kernel/query/builder.d.ts +601 -270
  250. package/dist/kernel/query/civil-date.d.ts +64 -0
  251. package/dist/kernel/query/cursor.d.ts +40 -0
  252. package/dist/kernel/query/distinct-key.d.ts +98 -0
  253. package/dist/kernel/query/hydration.d.ts +76 -0
  254. package/dist/kernel/query/index.d.ts +31 -15
  255. package/dist/kernel/query/internal/core.d.ts +30 -0
  256. package/dist/kernel/query/internal/hooks.d.ts +22 -0
  257. package/dist/kernel/query/internal/maintenance.d.ts +43 -0
  258. package/dist/kernel/query/live/incremental.d.ts +314 -0
  259. package/dist/kernel/query/live/index.d.ts +22 -0
  260. package/dist/kernel/query/live/install.d.ts +2 -0
  261. package/dist/kernel/query/{live.d.ts → live/live.d.ts} +39 -9
  262. package/dist/kernel/query/live/methods.d.ts +107 -0
  263. package/dist/kernel/query/predicate.d.ts +119 -1
  264. package/dist/kernel/query/reduce/date-trunc.d.ts +75 -0
  265. package/dist/kernel/query/reduce/index.d.ts +36 -0
  266. package/dist/kernel/query/reduce/install.d.ts +2 -0
  267. package/dist/kernel/query/reduce/methods.d.ts +259 -0
  268. package/dist/kernel/query/reduce/scan-methods.d.ts +121 -0
  269. package/dist/kernel/query/relate/explain.d.ts +199 -0
  270. package/dist/kernel/query/relate/index.d.ts +48 -0
  271. package/dist/kernel/query/relate/install.d.ts +2 -0
  272. package/dist/kernel/query/relate/join-on.d.ts +126 -0
  273. package/dist/kernel/query/relate/join-reduce.d.ts +16 -0
  274. package/dist/kernel/query/relate/join.d.ts +452 -0
  275. package/dist/kernel/query/relate/methods.d.ts +426 -0
  276. package/dist/kernel/query/relate/partition.d.ts +87 -0
  277. package/dist/kernel/query/relate/scan-methods.d.ts +163 -0
  278. package/dist/kernel/query/relate/traverse.d.ts +109 -0
  279. package/dist/kernel/query/scan-builder.d.ts +79 -176
  280. package/dist/kernel/query/sort-key.d.ts +52 -0
  281. package/dist/kernel/tx-write-gate.d.ts +77 -0
  282. package/dist/kernel/types.d.ts +71 -3
  283. package/dist/kernel/validation.d.ts +27 -10
  284. package/dist/kernel/vault.d.ts +9 -4
  285. package/dist/kernel/via/compose.d.ts +3 -0
  286. package/dist/kernel/via/index.d.ts +56 -0
  287. package/dist/kernel/via/pipeline.d.ts +48 -0
  288. package/dist/{ledger-F33ZVMTK.js → ledger-KZPCMVZY.js} +11 -11
  289. package/dist/liberate-GRLCZMW4.js +24 -0
  290. package/dist/link-set-JCMJ7ULP.js +30 -0
  291. package/dist/{managed-secret-PQYKSR6T.js → managed-secret-S3MQ6SH6.js} +10 -10
  292. package/dist/materialized-views/index.js +30 -23
  293. package/dist/{migrate-cek-5ENH64AA.js → migrate-cek-V7GKJZ7O.js} +2 -2
  294. package/dist/money/index.js +5 -5
  295. package/dist/noydb-SWQJ3MZS.js +97 -0
  296. package/dist/overlay-views/index.js +4 -4
  297. package/dist/periods/index.js +12 -12
  298. package/dist/pod/index.js +75 -68
  299. package/dist/{pod-handle-Q736KYON.js → pod-handle-WGDFB4C2.js} +9 -9
  300. package/dist/policy/index.js +10 -10
  301. package/dist/port/with/blob-strategy.d.ts +9 -0
  302. package/dist/port/with/collection-options.d.ts +5 -0
  303. package/dist/port/with/coverage-strategy.d.ts +83 -0
  304. package/dist/port/with/service-bus.d.ts +46 -0
  305. package/dist/port/with/strategies.d.ts +2 -0
  306. package/dist/portability/index.js +8 -8
  307. package/dist/{post-register-LNE2FE2A.js → post-register-SLSXIPBV.js} +6 -6
  308. package/dist/query/all/index.js +31 -0
  309. package/dist/query/index.js +20 -32
  310. package/dist/query/live/index.js +21 -0
  311. package/dist/query/live/index.js.map +1 -0
  312. package/dist/query/reduce/index.js +33 -0
  313. package/dist/query/reduce/index.js.map +1 -0
  314. package/dist/query/relate/index.js +56 -0
  315. package/dist/query/relate/index.js.map +1 -0
  316. package/dist/reduce/index.js +72 -18
  317. package/dist/reduce/index.js.map +1 -1
  318. package/dist/register-F3OYE7MJ.js +31 -0
  319. package/dist/registry-CILQFXFK.js +8 -0
  320. package/dist/registry-XNNYQVKV.js +8 -0
  321. package/dist/registry-YCDZV3VW.js +35 -0
  322. package/dist/registry-ZGYS33TE.js +24 -0
  323. package/dist/request-withdrawal-Z5NC6TXT.js +30 -0
  324. package/dist/{reveal-67RDQRIN.js → reveal-4BCKPEC2.js} +6 -6
  325. package/dist/revoke-ZL62WC2D.js +23 -0
  326. package/dist/satellites/index.js +1 -1
  327. package/dist/schema-update/index.js +2 -2
  328. package/dist/sealed-record/index.js +12 -12
  329. package/dist/search/index.js +11 -5
  330. package/dist/{seed-G42JYN56.js → seed-4JS2RJ4A.js} +12 -12
  331. package/dist/sequence/index.js +9 -9
  332. package/dist/session/index.js +9 -9
  333. package/dist/shadow/index.js +2 -2
  334. package/dist/signer-MBZZMXTC.js +24 -0
  335. package/dist/snapshots/index.js +10 -10
  336. package/dist/{stale-DDL7WQEZ.js → stale-TJ3DYZMQ.js} +10 -10
  337. package/dist/storage-SVMKRGCW.js +22 -0
  338. package/dist/{store-coordination-provider-MEQ2MJQG.js → store-coordination-provider-2O2VUHKW.js} +10 -10
  339. package/dist/sync/index.js +10 -10
  340. package/dist/team/index.js +17 -15
  341. package/dist/tiers/index.js +13 -11
  342. package/dist/to/index.js +2 -2
  343. package/dist/transactions/index.js +3 -3
  344. package/dist/util/index.js +1 -1
  345. package/dist/vault-head/index.js +8 -8
  346. package/dist/{verify-KOV2G5D6.js → verify-RVT67IMH.js} +5 -5
  347. package/dist/via/blob/index.d.ts +1 -0
  348. package/dist/via/geo/binding.d.ts +31 -0
  349. package/dist/via/geo/descriptor.d.ts +54 -0
  350. package/dist/via/geo/geohash.d.ts +95 -0
  351. package/dist/via/geo/index.d.ts +13 -0
  352. package/dist/via/geo/where.d.ts +50 -0
  353. package/dist/via/i18n/core.d.ts +1 -1
  354. package/dist/via/lookup/registry.d.ts +1 -1
  355. package/dist/via/lookup/snapshot.d.ts +3 -3
  356. package/dist/walk-HJ42EISE.js +21 -0
  357. package/dist/walk-HJ42EISE.js.map +1 -0
  358. package/dist/with-audit/coverage/accounting.d.ts +112 -0
  359. package/dist/with-audit/coverage/active.d.ts +29 -0
  360. package/dist/with-audit/coverage/index.d.ts +61 -0
  361. package/dist/with-audit/coverage/sketch.d.ts +75 -0
  362. package/dist/with-audit/periods/periods.d.ts +55 -7
  363. package/dist/with-audit/periods/reserved-collections.d.ts +3 -0
  364. package/dist/with-audit/periods/vault-facade.d.ts +17 -0
  365. package/dist/with-audit/tiers/index.d.ts +51 -0
  366. package/dist/with-audit/tiers/strategy.d.ts +8 -0
  367. package/dist/with-cargo/floor.d.ts +2 -2
  368. package/dist/with-commit/tx/invariants.d.ts +1 -1
  369. package/dist/with-commit/tx/transaction.d.ts +13 -3
  370. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +4 -3
  371. package/dist/with-formula/materialized-views/emit-memo.d.ts +40 -0
  372. package/dist/with-formula/materialized-views/executor.d.ts +8 -0
  373. package/dist/with-formula/materialized-views/index.d.ts +1 -1
  374. package/dist/with-formula/materialized-views/registry.d.ts +15 -0
  375. package/dist/with-formula/materialized-views/types.d.ts +106 -14
  376. package/dist/with-formula/materialized-views/window-stage.d.ts +11 -0
  377. package/dist/with-formula/overlay-views/types.d.ts +1 -1
  378. package/dist/with-formula/overlay-views/virtual-collection.d.ts +13 -4
  379. package/dist/with-lookup/embeddings/chunks.d.ts +79 -0
  380. package/dist/with-lookup/embeddings/descriptor.d.ts +21 -0
  381. package/dist/with-lookup/embeddings/index.d.ts +3 -0
  382. package/dist/with-lookup/embeddings/ivf-flat.d.ts +93 -0
  383. package/dist/with-lookup/embeddings/vector-index.d.ts +73 -0
  384. package/dist/with-lookup/embeddings/vector-set.d.ts +94 -1
  385. package/dist/with-lookup/embeddings/with-vector-index.d.ts +67 -0
  386. package/dist/with-lookup/indexing/collection-facade.d.ts +85 -2
  387. package/dist/with-lookup/indexing/compound-indexes.d.ts +129 -0
  388. package/dist/with-lookup/indexing/eager-indexes.d.ts +170 -1
  389. package/dist/with-lookup/indexing/index-snapshot.d.ts +62 -0
  390. package/dist/with-lookup/indexing/lazy-builder.d.ts +33 -0
  391. package/dist/with-lookup/indexing/persisted-field-indexes.d.ts +104 -0
  392. package/dist/with-lookup/indexing/persisted-indexes.d.ts +12 -0
  393. package/dist/with-lookup/indexing/sorted-indexes.d.ts +117 -0
  394. package/dist/with-lookup/indexing/unique-constraints.d.ts +106 -23
  395. package/dist/with-lookup/reduce/active.d.ts +2 -24
  396. package/dist/with-lookup/reduce/group-core.d.ts +43 -0
  397. package/dist/with-lookup/reduce/groupby.d.ts +195 -36
  398. package/dist/with-lookup/reduce/incremental-group.d.ts +153 -0
  399. package/dist/with-lookup/reduce/index.d.ts +26 -5
  400. package/dist/with-lookup/reduce/reducers.d.ts +255 -1
  401. package/dist/with-lookup/reduce/reduction.d.ts +44 -13
  402. package/dist/with-lookup/reduce/strategy.d.ts +43 -3
  403. package/dist/with-lookup/reduce/window.d.ts +262 -0
  404. package/dist/with-lookup/search/collection-facade.d.ts +44 -8
  405. package/dist/with-lookup/search/index-store.d.ts +5 -3
  406. package/dist/with-lookup/search/index.d.ts +4 -2
  407. package/dist/with-lookup/search/inverted-index.d.ts +38 -2
  408. package/dist/with-lookup/search/persisted-index-store.d.ts +5 -2
  409. package/dist/with-lookup/search/phrase.d.ts +28 -0
  410. package/dist/with-lookup/search/retrieve-types.d.ts +57 -1
  411. package/dist/with-lookup/search/serialize.d.ts +29 -3
  412. package/dist/with-lookup/search/strategy.d.ts +2 -6
  413. package/dist/with-party/directory/cover/index.d.ts +1 -1
  414. package/dist/with-party/directory/cover/storage.d.ts +1 -1
  415. package/dist/with-party/directory/cover/types.d.ts +1 -1
  416. package/dist/with-party/directory/index.d.ts +1 -1
  417. package/dist/with-party/directory/types.d.ts +1 -1
  418. package/dist/with-party/directory/user-envelope/api.d.ts +1 -1
  419. package/dist/with-party/policy/engine.d.ts +1 -1
  420. package/dist/with-party/policy/index.d.ts +1 -1
  421. package/dist/with-party/policy/presets.d.ts +1 -1
  422. package/dist/with-party/team/authenticators.d.ts +91 -1
  423. package/dist/with-party/team/index.d.ts +3 -2
  424. package/dist/with-party/team/keyring.d.ts +13 -6
  425. package/dist/with-party/team/managed-secret.d.ts +1 -1
  426. package/dist/with-party/team/noydb-facade.d.ts +12 -3
  427. package/dist/with-party/team/wrapped-deks.d.ts +4 -4
  428. package/dist/with-pod/format.d.ts +1 -1
  429. package/dist/with-pod/pod.d.ts +5 -5
  430. package/dist/with-shape/blobs/blob-compaction.d.ts +16 -0
  431. package/dist/with-shape/blobs/blob-set.d.ts +21 -2
  432. package/dist/with-shape/blobs/legacy-sweep.d.ts +35 -0
  433. package/dist/with-shape/introspection/describe.d.ts +6 -0
  434. package/dist/with-shape/introspection/field-meta.d.ts +18 -0
  435. package/dist/with-shape/introspection/types.d.ts +57 -1
  436. package/dist/with-shape/links/vault-facade.d.ts +1 -1
  437. package/dist/with-store/partitioned/index.d.ts +337 -0
  438. package/dist/with-sync/change-broadcast.d.ts +153 -0
  439. package/dist/withdraw-accessible-5NZUPAVA.js +27 -0
  440. package/dist/withdraw-accessible-5NZUPAVA.js.map +1 -0
  441. package/package.json +37 -10
  442. package/dist/api-TXFOVOXX.js +0 -19
  443. package/dist/backup-IJTB4S4M.js.map +0 -1
  444. package/dist/chunk-2577DKXB.js.map +0 -1
  445. package/dist/chunk-2C3AQB46.js.map +0 -1
  446. package/dist/chunk-4GVM6QZA.js.map +0 -1
  447. package/dist/chunk-5WDXHNSW.js.map +0 -1
  448. package/dist/chunk-6GOE5PGN.js.map +0 -1
  449. package/dist/chunk-6X6SEMEE.js.map +0 -1
  450. package/dist/chunk-77K4PG6P.js.map +0 -1
  451. package/dist/chunk-7MG2LHO5.js +0 -1616
  452. package/dist/chunk-7MG2LHO5.js.map +0 -1
  453. package/dist/chunk-7MG7SJT7.js.map +0 -1
  454. package/dist/chunk-7O3Y4PPD.js.map +0 -1
  455. package/dist/chunk-AO42KJO6.js.map +0 -1
  456. package/dist/chunk-ATL3ZVXT.js +0 -151
  457. package/dist/chunk-ATL3ZVXT.js.map +0 -1
  458. package/dist/chunk-BLN54W3L.js.map +0 -1
  459. package/dist/chunk-BM5TWITZ.js.map +0 -1
  460. package/dist/chunk-CUZLNGD5.js.map +0 -1
  461. package/dist/chunk-EQEYOJBM.js.map +0 -1
  462. package/dist/chunk-G56KBWFY.js.map +0 -1
  463. package/dist/chunk-I3ISCYT7.js +0 -159
  464. package/dist/chunk-I3ISCYT7.js.map +0 -1
  465. package/dist/chunk-KG7TZKZG.js.map +0 -1
  466. package/dist/chunk-KJIMGIWO.js.map +0 -1
  467. package/dist/chunk-KTFRCC5C.js.map +0 -1
  468. package/dist/chunk-KUX3OB6D.js.map +0 -1
  469. package/dist/chunk-MUM7IANK.js.map +0 -1
  470. package/dist/chunk-NA2NIJZI.js.map +0 -1
  471. package/dist/chunk-NSITFOCJ.js +0 -99
  472. package/dist/chunk-NSITFOCJ.js.map +0 -1
  473. package/dist/chunk-PT43Y56J.js.map +0 -1
  474. package/dist/chunk-QIBVIOXO.js.map +0 -1
  475. package/dist/chunk-RRNRNANG.js.map +0 -1
  476. package/dist/chunk-RTBJ5IOO.js +0 -87
  477. package/dist/chunk-RTBJ5IOO.js.map +0 -1
  478. package/dist/chunk-SKGMN35F.js.map +0 -1
  479. package/dist/chunk-SL3JAAKN.js.map +0 -1
  480. package/dist/chunk-SPXXX5E4.js.map +0 -1
  481. package/dist/chunk-SPYWXKJN.js.map +0 -1
  482. package/dist/chunk-U4FOQDY4.js.map +0 -1
  483. package/dist/chunk-UXVWEX5L.js.map +0 -1
  484. package/dist/chunk-UXWB3FPF.js.map +0 -1
  485. package/dist/chunk-YMUFFJCO.js.map +0 -1
  486. package/dist/chunk-ZN4FD4PE.js +0 -364
  487. package/dist/chunk-ZN4FD4PE.js.map +0 -1
  488. package/dist/chunk-ZORTV6NH.js.map +0 -1
  489. package/dist/collection-facade-4GRREZ6C.js +0 -45
  490. package/dist/derive-6O5SWQKN.js +0 -21
  491. package/dist/executor-5NIMLSKZ.js +0 -8
  492. package/dist/executor-AQVXV5GZ.js +0 -8
  493. package/dist/executor-PUAO6AKJ.js +0 -29
  494. package/dist/export-accessible-72EQNBMR.js +0 -22
  495. package/dist/extract-partition-PUYNU3UF.js +0 -37
  496. package/dist/find-2ABFCZX4.js +0 -10
  497. package/dist/issue-SIDORTSZ.js +0 -18
  498. package/dist/json-schema-V3M5MUCM.js.map +0 -1
  499. package/dist/kernel/query/join.d.ts +0 -232
  500. package/dist/liberate-LCDPNAG2.js +0 -24
  501. package/dist/link-set-FKNWAYKS.js +0 -30
  502. package/dist/noydb-DUXZPKSN.js +0 -90
  503. package/dist/register-I2DZXGAR.js +0 -31
  504. package/dist/registry-23WF3TGH.js +0 -8
  505. package/dist/registry-4AYVUNXK.js +0 -8
  506. package/dist/registry-VSSQPIGF.js +0 -18
  507. package/dist/registry-YLEWMGAC.js +0 -32
  508. package/dist/request-withdrawal-KFQHEZ25.js +0 -30
  509. package/dist/revoke-DQDZAZZM.js +0 -23
  510. package/dist/signer-WAMDZHEN.js +0 -24
  511. package/dist/storage-FLR73HHF.js +0 -22
  512. package/dist/walk-3UQBRMDV.js +0 -21
  513. package/dist/withdraw-accessible-EL5GXZBS.js +0 -27
  514. /package/dist/{api-TXFOVOXX.js.map → api-GVYEKSJE.js.map} +0 -0
  515. /package/dist/{chunk-BUE2D7PX.js.map → chunk-32YV3TJT.js.map} +0 -0
  516. /package/dist/{chunk-3RCJJBNR.js.map → chunk-3ELRMVJK.js.map} +0 -0
  517. /package/dist/{chunk-6GMZ7HEE.js.map → chunk-3F7GLNAE.js.map} +0 -0
  518. /package/dist/{chunk-2Y4IMKA6.js.map → chunk-3H5KLDZN.js.map} +0 -0
  519. /package/dist/{chunk-VTFVLCUH.js.map → chunk-3JWHAR6E.js.map} +0 -0
  520. /package/dist/{chunk-JBDFMYKQ.js.map → chunk-4AF3TUMP.js.map} +0 -0
  521. /package/dist/{chunk-J6FXAEUG.js.map → chunk-6B3VNR4P.js.map} +0 -0
  522. /package/dist/{chunk-TUFM4UZP.js.map → chunk-6K7DPM7D.js.map} +0 -0
  523. /package/dist/{chunk-K6LHRFBL.js.map → chunk-6LMQ5R26.js.map} +0 -0
  524. /package/dist/{chunk-XLMEZIAJ.js.map → chunk-6OWXYZK2.js.map} +0 -0
  525. /package/dist/{chunk-BOWNCWZT.js.map → chunk-6QSQQLSE.js.map} +0 -0
  526. /package/dist/{chunk-NQKIUNW5.js.map → chunk-A6IJU4TK.js.map} +0 -0
  527. /package/dist/{chunk-QIZPZMUI.js.map → chunk-AOWGXU6D.js.map} +0 -0
  528. /package/dist/{chunk-SFAWCTEM.js.map → chunk-B57AFBY2.js.map} +0 -0
  529. /package/dist/{chunk-GPEQUXHL.js.map → chunk-B6SJIBQK.js.map} +0 -0
  530. /package/dist/{chunk-Q2PU57HC.js.map → chunk-BK2HHQGN.js.map} +0 -0
  531. /package/dist/{collection-facade-4GRREZ6C.js.map → chunk-BKT776R5.js.map} +0 -0
  532. /package/dist/{chunk-FXBIP2WD.js.map → chunk-BUDAGWL5.js.map} +0 -0
  533. /package/dist/{chunk-BOET4NA4.js.map → chunk-CKNGS5MH.js.map} +0 -0
  534. /package/dist/{chunk-YSRUYAVU.js.map → chunk-DE4DH2RZ.js.map} +0 -0
  535. /package/dist/{chunk-6I2RQCET.js.map → chunk-DF73H4UN.js.map} +0 -0
  536. /package/dist/{chunk-K7NTTA6P.js.map → chunk-EOVMT6TB.js.map} +0 -0
  537. /package/dist/{chunk-XTXOCYOJ.js.map → chunk-FCKWQE2H.js.map} +0 -0
  538. /package/dist/{chunk-4OZNXTO4.js.map → chunk-FN5EBVTQ.js.map} +0 -0
  539. /package/dist/{chunk-NKHRDYOR.js.map → chunk-FQ5VRHIB.js.map} +0 -0
  540. /package/dist/{chunk-FAHMLERK.js.map → chunk-FW22ZCXT.js.map} +0 -0
  541. /package/dist/{chunk-RMS3NEA3.js.map → chunk-HT2AHGQI.js.map} +0 -0
  542. /package/dist/{chunk-CHJBLCOG.js.map → chunk-HVSCEIYL.js.map} +0 -0
  543. /package/dist/{chunk-GY4WYNNG.js.map → chunk-ID6Z6E66.js.map} +0 -0
  544. /package/dist/{chunk-EYBQEIUY.js.map → chunk-IEX7NK2K.js.map} +0 -0
  545. /package/dist/{chunk-KUJDV5QH.js.map → chunk-ISZQJBML.js.map} +0 -0
  546. /package/dist/{chunk-LWBCUYZW.js.map → chunk-IT22PWKV.js.map} +0 -0
  547. /package/dist/{chunk-7V4TP3AF.js.map → chunk-J6UOHJY5.js.map} +0 -0
  548. /package/dist/{chunk-JMGDHKQF.js.map → chunk-JCN44NCY.js.map} +0 -0
  549. /package/dist/{chunk-CARABLSQ.js.map → chunk-K6W7BVZ6.js.map} +0 -0
  550. /package/dist/{chunk-453F654R.js.map → chunk-L7DOS3TE.js.map} +0 -0
  551. /package/dist/{chunk-WEQEYLCS.js.map → chunk-LGRLME4M.js.map} +0 -0
  552. /package/dist/{chunk-RMF67KCG.js.map → chunk-LQ4ZHOKP.js.map} +0 -0
  553. /package/dist/{chunk-ZVO4QVPD.js.map → chunk-M522UYZ2.js.map} +0 -0
  554. /package/dist/{chunk-2N4GY74U.js.map → chunk-MTL7MXGR.js.map} +0 -0
  555. /package/dist/{chunk-TFR7DSOV.js.map → chunk-MVZ2TPVP.js.map} +0 -0
  556. /package/dist/{chunk-CPWQB3N5.js.map → chunk-N5DNADLQ.js.map} +0 -0
  557. /package/dist/{chunk-ELNXJMGB.js.map → chunk-NNARWO72.js.map} +0 -0
  558. /package/dist/{chunk-6YXCPL4T.js.map → chunk-PDCG6PR5.js.map} +0 -0
  559. /package/dist/{chunk-REDOOY2Q.js.map → chunk-PSIV7CJV.js.map} +0 -0
  560. /package/dist/{chunk-ANATMFIO.js.map → chunk-QWFHIOD2.js.map} +0 -0
  561. /package/dist/{chunk-X2DLENDQ.js.map → chunk-QWGU66MP.js.map} +0 -0
  562. /package/dist/{chunk-BSFNRLK2.js.map → chunk-S57HTZ6X.js.map} +0 -0
  563. /package/dist/{chunk-SZJ3DLZA.js.map → chunk-SEE332EV.js.map} +0 -0
  564. /package/dist/{chunk-YYP7WSEB.js.map → chunk-SI3V7D4G.js.map} +0 -0
  565. /package/dist/{chunk-UGTBXF5U.js.map → chunk-SOIQ4MM4.js.map} +0 -0
  566. /package/dist/{chunk-VXGSWL6L.js.map → chunk-SYVZW77S.js.map} +0 -0
  567. /package/dist/{chunk-MVMXZYXT.js.map → chunk-TKUOEU2F.js.map} +0 -0
  568. /package/dist/{chunk-SMH6SRX7.js.map → chunk-TROR3ALR.js.map} +0 -0
  569. /package/dist/{chunk-DGOZ4UZD.js.map → chunk-VNNRUGMM.js.map} +0 -0
  570. /package/dist/{chunk-HDOU6I2Y.js.map → chunk-VNPEWFPD.js.map} +0 -0
  571. /package/dist/{chunk-L7CIOOBW.js.map → chunk-WNJ4AVGE.js.map} +0 -0
  572. /package/dist/{chunk-FMZY5Q6L.js.map → chunk-WX5ADGTZ.js.map} +0 -0
  573. /package/dist/{chunk-Q7HZX3IF.js.map → chunk-X4773RBR.js.map} +0 -0
  574. /package/dist/{chunk-ANSIZYEG.js.map → chunk-YNIUIERI.js.map} +0 -0
  575. /package/dist/{chunk-BZ3534YM.js.map → chunk-ZUVBC32X.js.map} +0 -0
  576. /package/dist/{chunk-L742JPKZ.js.map → chunk-ZXABPVM6.js.map} +0 -0
  577. /package/dist/{classified-marker-LI2SF2E4.js.map → classified-marker-W3USLL5M.js.map} +0 -0
  578. /package/dist/{computed-VPOKQK4N.js.map → collection-facade-QU6IJBN3.js.map} +0 -0
  579. /package/dist/{derive-6O5SWQKN.js.map → computed-TPFBX7U4.js.map} +0 -0
  580. /package/dist/{dead-filter-TSWZQRR5.js.map → dead-filter-U2UYKSZL.js.map} +0 -0
  581. /package/dist/{delegation-OVIFFPG4.js.map → delegation-S3AEPW2T.js.map} +0 -0
  582. /package/dist/{enclave-KJOTOH7X.js.map → derive-OX7F6TGG.js.map} +0 -0
  583. /package/dist/{dispatch-WC6X2M6C.js.map → dispatch-3CQDJV5Q.js.map} +0 -0
  584. /package/dist/{dispatch-S73TK3IY.js.map → dispatch-RH4LHKBH.js.map} +0 -0
  585. /package/dist/{executor-5NIMLSKZ.js.map → enclave-27SMF6GF.js.map} +0 -0
  586. /package/dist/{executor-AQVXV5GZ.js.map → executor-B6SRO2QS.js.map} +0 -0
  587. /package/dist/{executor-PUAO6AKJ.js.map → executor-BI5CHWRY.js.map} +0 -0
  588. /package/dist/{export-accessible-72EQNBMR.js.map → executor-RBKM5W5K.js.map} +0 -0
  589. /package/dist/{extract-partition-PUYNU3UF.js.map → export-accessible-VMA3YM5V.js.map} +0 -0
  590. /package/dist/{find-2ABFCZX4.js.map → extract-partition-NF7PXGPP.js.map} +0 -0
  591. /package/dist/{fanout-sidecar-WUFXNYP4.js.map → fanout-sidecar-OT6RYLOL.js.map} +0 -0
  592. /package/dist/{issue-SIDORTSZ.js.map → find-LZMP26KF.js.map} +0 -0
  593. /package/dist/{ledger-F33ZVMTK.js.map → issue-IHARXWW5.js.map} +0 -0
  594. /package/dist/{liberate-LCDPNAG2.js.map → ledger-KZPCMVZY.js.map} +0 -0
  595. /package/dist/{link-set-FKNWAYKS.js.map → liberate-GRLCZMW4.js.map} +0 -0
  596. /package/dist/{managed-secret-PQYKSR6T.js.map → link-set-JCMJ7ULP.js.map} +0 -0
  597. /package/dist/{noydb-DUXZPKSN.js.map → managed-secret-S3MQ6SH6.js.map} +0 -0
  598. /package/dist/{migrate-cek-5ENH64AA.js.map → migrate-cek-V7GKJZ7O.js.map} +0 -0
  599. /package/dist/{register-I2DZXGAR.js.map → noydb-SWQJ3MZS.js.map} +0 -0
  600. /package/dist/{pod-handle-Q736KYON.js.map → pod-handle-WGDFB4C2.js.map} +0 -0
  601. /package/dist/{post-register-LNE2FE2A.js.map → post-register-SLSXIPBV.js.map} +0 -0
  602. /package/dist/{registry-23WF3TGH.js.map → query/all/index.js.map} +0 -0
  603. /package/dist/{registry-4AYVUNXK.js.map → register-F3OYE7MJ.js.map} +0 -0
  604. /package/dist/{registry-VSSQPIGF.js.map → registry-CILQFXFK.js.map} +0 -0
  605. /package/dist/{registry-YLEWMGAC.js.map → registry-XNNYQVKV.js.map} +0 -0
  606. /package/dist/{request-withdrawal-KFQHEZ25.js.map → registry-YCDZV3VW.js.map} +0 -0
  607. /package/dist/{revoke-DQDZAZZM.js.map → registry-ZGYS33TE.js.map} +0 -0
  608. /package/dist/{signer-WAMDZHEN.js.map → request-withdrawal-Z5NC6TXT.js.map} +0 -0
  609. /package/dist/{reveal-67RDQRIN.js.map → reveal-4BCKPEC2.js.map} +0 -0
  610. /package/dist/{stale-DDL7WQEZ.js.map → revoke-ZL62WC2D.js.map} +0 -0
  611. /package/dist/{seed-G42JYN56.js.map → seed-4JS2RJ4A.js.map} +0 -0
  612. /package/dist/{storage-FLR73HHF.js.map → signer-MBZZMXTC.js.map} +0 -0
  613. /package/dist/{walk-3UQBRMDV.js.map → stale-TJ3DYZMQ.js.map} +0 -0
  614. /package/dist/{withdraw-accessible-EL5GXZBS.js.map → storage-SVMKRGCW.js.map} +0 -0
  615. /package/dist/{store-coordination-provider-MEQ2MJQG.js.map → store-coordination-provider-2O2VUHKW.js.map} +0 -0
  616. /package/dist/{verify-KOV2G5D6.js.map → verify-RVT67IMH.js.map} +0 -0
@@ -4,13 +4,13 @@ import {
4
4
  import {
5
5
  buildRecordAad,
6
6
  openEnvelopeJson
7
- } from "./chunk-77K4PG6P.js";
7
+ } from "./chunk-KJFW62P4.js";
8
8
  import {
9
9
  buildRecordEnvelope
10
- } from "./chunk-SZJ3DLZA.js";
10
+ } from "./chunk-SEE332EV.js";
11
11
  import {
12
12
  encrypt
13
- } from "./chunk-SL3JAAKN.js";
13
+ } from "./chunk-UYB234ZR.js";
14
14
 
15
15
  // src/with-audit/consent/consent.ts
16
16
  var CONSENT_AUDIT_COLLECTION = "_consent_audit";
@@ -66,4 +66,4 @@ export {
66
66
  writeConsentEntry,
67
67
  loadConsentEntries
68
68
  };
69
- //# sourceMappingURL=chunk-NKHRDYOR.js.map
69
+ //# sourceMappingURL=chunk-FQ5VRHIB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ValidationError
3
- } from "./chunk-7O3Y4PPD.js";
3
+ } from "./chunk-244VXYPG.js";
4
4
 
5
5
  // src/with-audit/periods/window.ts
6
6
  var PERIODS_COLLECTION = "_periods";
@@ -23,4 +23,4 @@ export {
23
23
  PERIOD_REOPENS_COLLECTION,
24
24
  periodExclusiveUpperBound
25
25
  };
26
- //# sourceMappingURL=chunk-FAHMLERK.js.map
26
+ //# sourceMappingURL=chunk-FW22ZCXT.js.map
@@ -0,0 +1,524 @@
1
+ import {
2
+ bindDistinctReducers,
3
+ reducerBuilder
4
+ } from "./chunk-F2TDU7MQ.js";
5
+ import {
6
+ ViaPipeline
7
+ } from "./chunk-ORDURZBU.js";
8
+ import {
9
+ distinctKeyOf
10
+ } from "./chunk-SUZKW6UR.js";
11
+ import {
12
+ MaintenanceMethods
13
+ } from "./chunk-BJ2IXQ5Q.js";
14
+ import {
15
+ groupKeyName,
16
+ isDateTruncKey,
17
+ projectDateTruncKeys
18
+ } from "./chunk-XBKH4FOC.js";
19
+ import {
20
+ ScanBuilder
21
+ } from "./chunk-F24ZZTHQ.js";
22
+ import {
23
+ installMethods
24
+ } from "./chunk-F6NCB7KT.js";
25
+ import {
26
+ Query,
27
+ buildDictLabelResolver,
28
+ candidateRecords,
29
+ executeClausePipeline,
30
+ filterRecords,
31
+ fnViewDecoder
32
+ } from "./chunk-7JE7BDYJ.js";
33
+ import {
34
+ readPath
35
+ } from "./chunk-HLEK5VAN.js";
36
+ import {
37
+ FieldNotQueryableError,
38
+ GroupCardinalityError
39
+ } from "./chunk-244VXYPG.js";
40
+
41
+ // src/kernel/query/relate/join-reduce.ts
42
+ function liftToAlias(alias, path, inner) {
43
+ const under = (record) => record === null || typeof record !== "object" ? void 0 : record[alias];
44
+ return {
45
+ ...inner,
46
+ // The dotted path, so anything reading `.field` for a label or a
47
+ // dependency still sees the field the CALLER named.
48
+ field: path,
49
+ init: () => inner.init(),
50
+ step: (state, record) => inner.step(state, under(record)),
51
+ ...inner.remove ? { remove: (state, record) => inner.remove(state, under(record)) } : {},
52
+ finalize: (state) => inner.finalize(state)
53
+ };
54
+ }
55
+ function joinAliasBinding(aliasVia) {
56
+ return {
57
+ brand: "join-alias",
58
+ posture: { encryptedAtRest: "envelope", queryable: "full", exportable: true, forgettable: true },
59
+ // Claims no field: this binding must never shadow a left-side posture.
60
+ covers: () => false,
61
+ wrapReducers: (spec) => {
62
+ let changed = false;
63
+ const out = {};
64
+ for (const [key, reducer] of Object.entries(spec)) {
65
+ const field = reducer.field;
66
+ const dot = field === void 0 ? -1 : field.indexOf(".");
67
+ const via = dot > 0 ? aliasVia.get(field.slice(0, dot)) : void 0;
68
+ if (!via) {
69
+ out[key] = reducer;
70
+ continue;
71
+ }
72
+ const bare = field.slice(dot + 1);
73
+ const wrapped = via.wrapReducers({ [key]: { ...reducer, field: bare } })[key];
74
+ if (wrapped === reducer || wrapped.field !== bare) {
75
+ out[key] = reducer;
76
+ continue;
77
+ }
78
+ changed = true;
79
+ out[key] = liftToAlias(field.slice(0, dot), field, wrapped);
80
+ }
81
+ return changed ? out : spec;
82
+ }
83
+ };
84
+ }
85
+ function reduceViaFor(leftVia, aliasVia) {
86
+ if (aliasVia === void 0 || aliasVia.size === 0) return leftVia;
87
+ return ViaPipeline.build([...leftVia?.bindings ?? [], joinAliasBinding(aliasVia)], leftVia?.taint);
88
+ }
89
+ function refuseAliasBinding(aliases) {
90
+ return {
91
+ brand: "join-alias-refuse",
92
+ posture: { encryptedAtRest: "envelope", queryable: "full", exportable: true, forgettable: true },
93
+ covers: () => false,
94
+ wrapReducers: (spec) => {
95
+ for (const reducer of Object.values(spec)) {
96
+ const field = reducer.field;
97
+ if (field === void 0) continue;
98
+ const head = field.split(".")[0];
99
+ if (!aliases.has(head)) continue;
100
+ throw new Error(
101
+ `Query.groupBy().aggregate(): reducer field "${field}" addresses the join alias "${head}", but the GROUP KEY does not \u2014 so the join legs are not applied for this grouping and the reducer would fold undefined into every bucket. Group by a field on "${head}" (then the legs run), or aggregate without grouping, where an aliased reducer is applied directly.`
102
+ );
103
+ }
104
+ return spec;
105
+ }
106
+ };
107
+ }
108
+ function refuseAliasReduceVia(leftVia, aliases) {
109
+ if (aliases.size === 0) return leftVia;
110
+ return ViaPipeline.build([...leftVia?.bindings ?? [], refuseAliasBinding(aliases)], leftVia?.taint);
111
+ }
112
+
113
+ // src/kernel/query/reduce/methods.ts
114
+ function assertNoJoinAliasField(fields, joins, terminal) {
115
+ if (joins.length === 0) return;
116
+ const aliases = new Set(joins.map((leg) => leg.as));
117
+ for (const field of fields) {
118
+ const head = field.split(".")[0];
119
+ if (!aliases.has(head)) continue;
120
+ throw new Error(
121
+ `Query.${terminal}(): field "${field}" addresses the join alias "${head}", but ${terminal}() does not apply join legs \u2014 it would silently group every row under undefined. Joined aggregation is not supported. Either aggregate over the left collection's own fields, or use .crossJoin("${head}", { as: \u2026 }), whose expansion IS visible to ${terminal}().`
122
+ );
123
+ }
124
+ }
125
+ var ReduceMethods = class {
126
+ /**
127
+ * The right-side change streams a joined query has to merge (#1338), deduped
128
+ * by target the way `live()` does — a chain joining the same collection
129
+ * twice must not double-fire. Extracted so a joined REDUCTION and a joined
130
+ * live query cannot disagree on what "the sources of this result" means.
131
+ */
132
+ rightSideUpstreams() {
133
+ const ctx = this.joinContext;
134
+ if (!ctx) return [];
135
+ const out = [];
136
+ const seen = /* @__PURE__ */ new Set();
137
+ for (const leg of this.plan.joins) {
138
+ if (seen.has(leg.target)) continue;
139
+ seen.add(leg.target);
140
+ const right = ctx.resolveSource(leg.target);
141
+ if (!right?.subscribe) continue;
142
+ const subscribe = right.subscribe.bind(right);
143
+ out.push({ subscribe: (cb) => subscribe(cb) });
144
+ }
145
+ return out;
146
+ }
147
+ /**
148
+ * Every alias this plan can produce, pipeline or not (#1338).
149
+ *
150
+ * `aliasVia()` above holds only the aliases whose collection compiles a Via
151
+ * pipeline; refusal has to know about ALL of them, or an aliased reducer
152
+ * over a plain right-side collection stays silent.
153
+ */
154
+ aliasNames() {
155
+ const out = /* @__PURE__ */ new Set();
156
+ for (const clause of this.plan.clauses) {
157
+ if (clause.type !== "crossJoin") continue;
158
+ out.add(clause.as);
159
+ if (clause.leftAs !== void 0) out.add(clause.leftAs);
160
+ }
161
+ for (const leg of this.plan.joins) out.add(leg.as);
162
+ return out;
163
+ }
164
+ /** Is `field` rooted at an alias this plan produces? */
165
+ addressesAlias(field, aliases) {
166
+ const dot = field.indexOf(".");
167
+ return dot > 0 && aliases.has(field.slice(0, dot));
168
+ }
169
+ /**
170
+ * The distinct values of `field` across the match set (#1347) — the
171
+ * declarative form of `new Set(q.toArray().map(r => r[field]))`, which is
172
+ * what consumers write today and which is wrong in two ways this is not.
173
+ *
174
+ * **Distinctness is decided on the canonical index key, not on the value
175
+ * you get back.** For a Via-covered field that is the difference between a
176
+ * right answer and a plausible one: money stores a scaled integer, and a
177
+ * row written before the field was declared can spell it non-canonically
178
+ * (`'0100'` for `'100'`). Deduping the stored strings reports two values
179
+ * where there is one; deduping the FORMATTED strings makes the answer
180
+ * depend on a locale this layer does not have (`'10.00'` vs `'10,00'`).
181
+ * See `distinct-key.ts`. The values RETURNED are the decoded ones, so they
182
+ * match what `toArray()` hands back for the same field.
183
+ *
184
+ * **Nullish values are excluded** — `null`/`undefined`/missing is the
185
+ * absence of a value, not a distinct one. That is also the only choice
186
+ * under which the index-backed and scanned paths can agree, since the hash
187
+ * index does not hold nullish keys; see `distinctKeyOf`.
188
+ *
189
+ * Same match set as `count()`: where/filter apply, orderBy/limit/offset do
190
+ * not. Values come back in first-encountered order.
191
+ *
192
+ * ⭐ INDEX-BACKED when the field carries a hash index AND the plan narrows
193
+ * nothing — the buckets ARE the distinct key set, so the answer costs
194
+ * O(distinct values) instead of O(records) and never decrypts a snapshot.
195
+ * The guard is deliberately all-or-nothing: with a where clause the whole
196
+ * collection's buckets are not the answer, and intersecting a candidate id
197
+ * set with every bucket would cost more than the scan it replaced.
198
+ *
199
+ * ⛔ THE RETURN TYPE IS `(T & Record<F, unknown>)[F][]`, NOT
200
+ * `F extends keyof T ? T[F][] : unknown[]` — and it must stay that way. The
201
+ * conditional form reads better and type-checks at every call site, but a
202
+ * DEFERRED conditional over `T` makes TypeScript give up relating
203
+ * `Query<T>` to `Query<unknown>`, which makes `Collection<T>` invariant in
204
+ * `T`, which breaks `vault.ts`'s `Map<string, Collection<unknown>>` cache
205
+ * with four errors that name neither this method nor this file. The
206
+ * intersection form resolves to the same thing (`T[F]` for a literal key,
207
+ * `unknown` for a `string`-typed one) and stays covariant.
208
+ */
209
+ distinct(field) {
210
+ const name = field;
211
+ assertNoJoinAliasField([name], this.plan.joins, "distinct");
212
+ const via = this.source.via;
213
+ if (via?.postureFor(name)?.queryable === "none") throw new FieldNotQueryableError(name);
214
+ const decode = via?.hasResultDecode ? (r) => via.decodeResults(r) : (r) => r;
215
+ const indexes = this.plan.clauses.length === 0 && this.plan.joins.length === 0 ? this.source.getIndexes?.() : void 0;
216
+ if (indexes && this.source.lookupById) {
217
+ const lookupById = (id) => this.source.lookupById?.(id);
218
+ const reps = indexes.bucketRepresentatives(name);
219
+ if (reps) {
220
+ const fromIndex = [];
221
+ for (const id of reps) {
222
+ const record = lookupById(id);
223
+ if (record === void 0) continue;
224
+ fromIndex.push(readPath(decode(record), name));
225
+ }
226
+ return fromIndex;
227
+ }
228
+ }
229
+ const seen = /* @__PURE__ */ new Set();
230
+ const out = [];
231
+ for (const record of this.matchedRecords("distinct")) {
232
+ const key = distinctKeyOf(name, readPath(record, name), via);
233
+ if (key === void 0 || seen.has(key)) continue;
234
+ seen.add(key);
235
+ out.push(readPath(decode(record), name));
236
+ }
237
+ return out;
238
+ }
239
+ aggregate(specOrBuild) {
240
+ let spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
241
+ const aliases = this.aliasNames();
242
+ const aliasedReducer = this.plan.joins.length > 0 && Object.values(spec).some((r) => {
243
+ const f = r.field;
244
+ return typeof f === "string" && this.addressesAlias(f, aliases);
245
+ });
246
+ spec = (aliasedReducer ? reduceViaFor(this.source.via, this.aliasVia()) : this.source.via)?.wrapReducers(spec) ?? spec;
247
+ spec = bindDistinctReducers(spec, this.source.via);
248
+ const source = this.source;
249
+ const clauses = this.plan.clauses;
250
+ const joinCtx = this.joinContext;
251
+ const hasCrossJoins = clauses.some((c) => c.type === "crossJoin");
252
+ const fullScan = aliasedReducer ? () => this.matchedRecords("aggregate", true) : () => {
253
+ if (hasCrossJoins) {
254
+ if (!joinCtx) throw new Error("Query.aggregate(): crossJoin requires a join context");
255
+ return executeClausePipeline(source, clauses, joinCtx);
256
+ }
257
+ const { candidates, remainingClauses } = candidateRecords(source, clauses);
258
+ return remainingClauses.length === 0 ? candidates : filterRecords(candidates, remainingClauses, fnViewDecoder(source));
259
+ };
260
+ const maintainer = this.incrementalMaintainer("records");
261
+ const executeRecords = maintainer ? () => maintainer.rows() : fullScan;
262
+ const upstreams = [];
263
+ if (aliasedReducer) upstreams.push(...this.rightSideUpstreams());
264
+ if (source.subscribe) {
265
+ const subscribe = source.subscribe.bind(source);
266
+ upstreams.push(
267
+ maintainer ? {
268
+ // The maintainer folds the delta in BEFORE the reduction reads,
269
+ // which is why it is wrapped here rather than subscribed
270
+ // separately — emitter callback order would otherwise decide
271
+ // whether the reduction saw the new record.
272
+ subscribe: (cb) => {
273
+ maintainer.attach();
274
+ const unsubscribe = subscribe((change) => {
275
+ try {
276
+ maintainer.apply(change);
277
+ } catch {
278
+ maintainer.invalidate();
279
+ }
280
+ cb();
281
+ });
282
+ return () => {
283
+ maintainer.detach();
284
+ unsubscribe();
285
+ };
286
+ }
287
+ } : { subscribe: (cb) => subscribe(cb) }
288
+ );
289
+ }
290
+ return this.reduceStrategy.aggregate(executeRecords, spec, upstreams, this.source.hydration);
291
+ }
292
+ groupBy(...keys) {
293
+ if (keys.length === 0) {
294
+ throw new Error(".groupBy() requires at least one field");
295
+ }
296
+ const derived = keys.filter(isDateTruncKey);
297
+ const fields = keys.map(groupKeyName);
298
+ const aliases = this.aliasNames();
299
+ const keyIsAliased = this.plan.joins.length > 0 && fields.some((f) => this.addressesAlias(f, aliases));
300
+ const source = this.source;
301
+ const clauses = this.plan.clauses;
302
+ const joinCtx = this.joinContext;
303
+ const hasCrossJoins = clauses.some((c) => c.type === "crossJoin");
304
+ const executeRecords = keyIsAliased ? () => this.matchedRecords("groupBy", true) : () => {
305
+ if (hasCrossJoins) {
306
+ if (!joinCtx) throw new Error("Query.groupBy(): crossJoin requires a join context");
307
+ return executeClausePipeline(source, clauses, joinCtx);
308
+ }
309
+ const { candidates, remainingClauses } = candidateRecords(source, clauses);
310
+ return remainingClauses.length === 0 ? candidates : filterRecords(candidates, remainingClauses, fnViewDecoder(source));
311
+ };
312
+ const executeGroupRecords = derived.length === 0 ? executeRecords : () => projectDateTruncKeys(executeRecords(), derived);
313
+ const upstreams = [];
314
+ if (source.subscribe) {
315
+ const subscribe = source.subscribe.bind(source);
316
+ upstreams.push({ subscribe: (cb) => subscribe(cb) });
317
+ }
318
+ if (keyIsAliased) upstreams.push(...this.rightSideUpstreams());
319
+ const maintenance = keyIsAliased ? void 0 : this.groupMaintenance(derived);
320
+ const reduceVia = keyIsAliased ? reduceViaFor(this.source.via, this.aliasVia()) : refuseAliasReduceVia(this.source.via, aliases);
321
+ if (fields.length === 1) {
322
+ const field = fields[0];
323
+ const dictLabelResolver = derived.length > 0 ? void 0 : buildDictLabelResolver(this.joinContext, field);
324
+ return this.reduceStrategy.groupBy(
325
+ executeGroupRecords,
326
+ field,
327
+ upstreams,
328
+ dictLabelResolver,
329
+ reduceVia,
330
+ maintenance
331
+ );
332
+ }
333
+ return this.reduceStrategy.groupByN(
334
+ executeGroupRecords,
335
+ fields,
336
+ upstreams,
337
+ reduceVia,
338
+ maintenance
339
+ );
340
+ }
341
+ /**
342
+ * SQL window functions over the query's result rows (#1349) — terminate with
343
+ * `.select(spec)`.
344
+ *
345
+ * ```ts
346
+ * invoices.query()
347
+ * .where('status', '==', 'open')
348
+ * .window({ partitionBy: 'clientId', orderBy: 'date' })
349
+ * .select({ balance: runningSum('amount'), prev: lag('amount', 1), n: rowNumber() })
350
+ * .run()
351
+ * ```
352
+ *
353
+ * ⭐ Distinguished from `.groupBy()` by ARITY, not by capability: grouping
354
+ * emits one row per bucket and drops the source rows; a window keeps EVERY
355
+ * row and attaches per-row values computed over its partition.
356
+ *
357
+ * **The record set is `toArray()`'s** — the full pipeline, including joins,
358
+ * `orderBy`, `offset`/`limit` and the Via decode. That differs deliberately
359
+ * from `.groupBy()`, which reads the candidate/filter pipeline only: a
360
+ * window returns ROWS, so the query's own ordering and paging are exactly
361
+ * what decides which rows there are and how they are presented. `orderBy`
362
+ * inside the window decides only how a partition is WALKED.
363
+ *
364
+ * **Frame:** `rows unbounded preceding → current row`, and only that in v1.
365
+ *
366
+ * `partitionBy` / `orderBy` accept a `dateTrunc()` key (#1350) alongside
367
+ * plain field names; the derived bucket is used for partitioning and is not
368
+ * stamped on the output row. A sealed (`sensitive`) field is refused at
369
+ * compile time, same as `.groupBy()`.
370
+ *
371
+ * ⛔ **Not an `explain()` node.** `explain()` is a terminal on `Query`;
372
+ * `.window()` leaves `Query` for `WindowedQuery`, so there is nothing past
373
+ * here to add a node to — the same reason #1336's post-group ops are absent.
374
+ */
375
+ window(spec) {
376
+ const upstreams = [];
377
+ if (this.source.subscribe) {
378
+ const subscribe = this.source.subscribe.bind(this.source);
379
+ upstreams.push({ subscribe: (cb) => subscribe(cb) });
380
+ }
381
+ return this.reduceStrategy.window(
382
+ () => this.toArray(),
383
+ spec,
384
+ upstreams,
385
+ this.source.via
386
+ );
387
+ }
388
+ };
389
+
390
+ // src/kernel/query/reduce/scan-methods.ts
391
+ var ScanReduceMethods = class {
392
+ async aggregate(specOrBuild) {
393
+ if (Array.isArray(specOrBuild)) return this.aggregateMany(specOrBuild);
394
+ const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
395
+ this.via?.refuseUnqueryableReducers(spec);
396
+ const keys = Object.keys(spec);
397
+ const state = {};
398
+ for (const key of keys) {
399
+ state[key] = spec[key].init();
400
+ }
401
+ for await (const record of this) {
402
+ for (const key of keys) {
403
+ state[key] = spec[key].step(state[key], record);
404
+ }
405
+ }
406
+ const result = {};
407
+ for (const key of keys) {
408
+ result[key] = spec[key].finalize(state[key]);
409
+ }
410
+ return result;
411
+ }
412
+ /**
413
+ * The multi-spec `.aggregate([specA, specB, …])` executor (#1340).
414
+ *
415
+ * One iteration of the scan, `Σ|spec|` reducer states — memory stays
416
+ * O(reducers) exactly as the single-spec terminal's does, with the sum taken
417
+ * across specs instead of within one. Every spec's state is stepped from the
418
+ * SAME yielded record, so the page provider is read once per page.
419
+ *
420
+ * Semantics per spec are identical to the single-spec form, deliberately:
421
+ * the posture gate is `refuseUnqueryableReducers` (metadata only), NOT the
422
+ * full `wrapReducers` — so `aggregate([a, b])` returns exactly what
423
+ * `aggregate(a)` and `aggregate(b)` return, and the array form is a pure
424
+ * cost optimisation with no behavioural delta to reason about. (The grouped
425
+ * scan path DOES wrap — it has to agree with the eager grouped path, which
426
+ * wraps. See `scan-groupby.ts`.)
427
+ */
428
+ async aggregateMany(specs) {
429
+ for (const spec of specs) this.via?.refuseUnqueryableReducers(spec);
430
+ const keysPerSpec = specs.map((spec) => Object.keys(spec));
431
+ const states = specs.map((spec, i) => {
432
+ const state = {};
433
+ for (const key of keysPerSpec[i]) state[key] = spec[key].init();
434
+ return state;
435
+ });
436
+ for await (const record of this) {
437
+ for (let i = 0; i < specs.length; i++) {
438
+ const spec = specs[i];
439
+ const state = states[i];
440
+ for (const key of keysPerSpec[i]) state[key] = spec[key].step(state[key], record);
441
+ }
442
+ }
443
+ return specs.map((spec, i) => {
444
+ const result = {};
445
+ for (const key of keysPerSpec[i]) result[key] = spec[key].finalize(states[i][key]);
446
+ return result;
447
+ });
448
+ }
449
+ groupBy(key, opts) {
450
+ return new ScanGroupedScan(
451
+ this,
452
+ key,
453
+ opts?.maxGroups ?? SCAN_GROUPBY_DEFAULT_MAX_GROUPS,
454
+ this.via
455
+ );
456
+ }
457
+ };
458
+ var SCAN_GROUPBY_DEFAULT_MAX_GROUPS = 1e5;
459
+ function scanGroupKey(field, value) {
460
+ return `${field}=${value === void 0 ? "undefined" : JSON.stringify(value)}`;
461
+ }
462
+ var ScanGroupedScan = class {
463
+ constructor(stream, key, maxGroups, via) {
464
+ this.stream = stream;
465
+ this.key = key;
466
+ this.maxGroups = maxGroups;
467
+ this.via = via;
468
+ if (!Number.isInteger(maxGroups) || maxGroups < 1) {
469
+ throw new Error(
470
+ `scan().groupBy(): { maxGroups: ${String(maxGroups)} } must be a positive integer \u2014 it is the declared ceiling on how many reducer states the grouped scan may hold.`
471
+ );
472
+ }
473
+ }
474
+ stream;
475
+ key;
476
+ maxGroups;
477
+ via;
478
+ async aggregate(specOrBuild) {
479
+ const raw = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
480
+ const spec = bindDistinctReducers(this.via ? this.via.wrapReducers(raw) : raw, this.via);
481
+ const keys = Object.keys(spec);
482
+ const field = groupKeyName(this.key);
483
+ const derived = isDateTruncKey(this.key) ? [this.key] : [];
484
+ const groups = /* @__PURE__ */ new Map();
485
+ for await (const record of this.stream) {
486
+ const row = derived.length === 0 ? record : projectDateTruncKeys([record], derived)[0];
487
+ const keyValue = readPath(row, field);
488
+ const dedupKey = scanGroupKey(field, keyValue);
489
+ let group = groups.get(dedupKey);
490
+ if (group === void 0) {
491
+ if (groups.size >= this.maxGroups) {
492
+ throw new GroupCardinalityError(field, groups.size + 1, this.maxGroups, "scan");
493
+ }
494
+ const state = {};
495
+ for (const k of keys) state[k] = spec[k].init();
496
+ group = { keyValue, state };
497
+ groups.set(dedupKey, group);
498
+ }
499
+ for (const k of keys) group.state[k] = spec[k].step(group.state[k], row);
500
+ }
501
+ const out = [];
502
+ for (const group of groups.values()) {
503
+ const outRow = { [field]: group.keyValue };
504
+ for (const k of keys) outRow[k] = spec[k].finalize(group.state[k]);
505
+ out.push(outRow);
506
+ }
507
+ return out;
508
+ }
509
+ };
510
+
511
+ // src/kernel/query/reduce/install.ts
512
+ var done = false;
513
+ function installReduce() {
514
+ if (done) return;
515
+ done = true;
516
+ installMethods(Query.prototype, MaintenanceMethods);
517
+ installMethods(Query.prototype, ReduceMethods);
518
+ installMethods(ScanBuilder.prototype, ScanReduceMethods);
519
+ }
520
+
521
+ export {
522
+ installReduce
523
+ };
524
+ //# sourceMappingURL=chunk-FXQBGFOX.js.map