@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
@@ -0,0 +1,757 @@
1
+ import {
2
+ canonicalGroupKey
3
+ } from "./chunk-XZHEOSQ2.js";
4
+ import {
5
+ bindDistinctReducers,
6
+ reducerBuilder
7
+ } from "./chunk-F2TDU7MQ.js";
8
+ import {
9
+ LiveMaintainer
10
+ } from "./chunk-VHM7HCKB.js";
11
+ import {
12
+ gateTerminal
13
+ } from "./chunk-5O7D6ZTW.js";
14
+ import {
15
+ readPath
16
+ } from "./chunk-HLEK5VAN.js";
17
+ import {
18
+ applyI18nLocale
19
+ } from "./chunk-GHLTDZRS.js";
20
+ import {
21
+ viaBinder
22
+ } from "./chunk-Z5HTYMMQ.js";
23
+ import {
24
+ GroupCardinalityError
25
+ } from "./chunk-244VXYPG.js";
26
+
27
+ // src/with-lookup/reduce/reduction.ts
28
+ function reduceRecords(records, spec) {
29
+ const state = {};
30
+ for (const key of Object.keys(spec)) {
31
+ state[key] = spec[key].init();
32
+ }
33
+ for (const record of records) {
34
+ for (const key of Object.keys(spec)) {
35
+ state[key] = spec[key].step(state[key], record);
36
+ }
37
+ }
38
+ const result = {};
39
+ for (const key of Object.keys(spec)) {
40
+ result[key] = spec[key].finalize(state[key]);
41
+ }
42
+ return result;
43
+ }
44
+ var LiveAggregationImpl = class {
45
+ constructor(recompute, upstreams) {
46
+ this.recompute = recompute;
47
+ try {
48
+ this.value = recompute();
49
+ this.error = void 0;
50
+ } catch (err) {
51
+ this.value = void 0;
52
+ this.error = err;
53
+ }
54
+ for (const upstream of upstreams) {
55
+ const unsub = upstream.subscribe(() => this.refresh());
56
+ this.unsubscribes.push(unsub);
57
+ }
58
+ }
59
+ recompute;
60
+ value;
61
+ error;
62
+ listeners = /* @__PURE__ */ new Set();
63
+ unsubscribes = [];
64
+ stopped = false;
65
+ refresh() {
66
+ if (this.stopped) return;
67
+ try {
68
+ this.value = this.recompute();
69
+ this.error = void 0;
70
+ } catch (err) {
71
+ this.error = err;
72
+ }
73
+ for (const listener of this.listeners) {
74
+ try {
75
+ listener();
76
+ } catch (err) {
77
+ console.warn("[noy-db] LiveReduction listener threw:", err);
78
+ }
79
+ }
80
+ }
81
+ subscribe(cb) {
82
+ if (this.stopped) {
83
+ return () => {
84
+ };
85
+ }
86
+ this.listeners.add(cb);
87
+ return () => {
88
+ this.listeners.delete(cb);
89
+ };
90
+ }
91
+ stop() {
92
+ if (this.stopped) return;
93
+ this.stopped = true;
94
+ for (const unsub of this.unsubscribes) {
95
+ try {
96
+ unsub();
97
+ } catch (err) {
98
+ console.warn("[noy-db] LiveReduction upstream unsubscribe threw:", err);
99
+ }
100
+ }
101
+ this.unsubscribes.length = 0;
102
+ this.listeners.clear();
103
+ }
104
+ };
105
+ var Reduction = class {
106
+ constructor(executeRecords, spec, upstreams, gate) {
107
+ this.executeRecords = executeRecords;
108
+ this.spec = spec;
109
+ this.upstreams = upstreams;
110
+ this.gate = gate;
111
+ }
112
+ executeRecords;
113
+ spec;
114
+ upstreams;
115
+ gate;
116
+ /**
117
+ * Execute the query and reduce the results synchronously.
118
+ * Returns the reduced shape matching the spec — e.g. a spec of
119
+ * `{ total: sum('amount'), n: count() }` returns
120
+ * `{ total: number, n: number }`.
121
+ */
122
+ run() {
123
+ return gateTerminal(this.gate, "aggregate().run", () => reduceRecords(this.executeRecords(), this.spec));
124
+ }
125
+ /**
126
+ * Build a reactive `LiveReduction<R>` that re-runs the reduction
127
+ * whenever any upstream source notifies of a change. The initial
128
+ * value is computed eagerly in the constructor, so consumers can
129
+ * read `live.value` immediately after calling `.live()`.
130
+ *
131
+ * Always call `live.stop()` when finished — it tears down the
132
+ * upstream subscriptions. Vue's `onUnmounted` is the canonical
133
+ * place.
134
+ *
135
+ * **Implementation note:** every upstream change triggers a full
136
+ * re-reduction over the matching records — but since #1341 that record
137
+ * set is itself maintained per delta rather than re-scanned, so the cost
138
+ * is O(matches) rather than O(collection). Reducer-level `remove()`
139
+ * (O(1) per delta for sum/count/avg) remains unwired; see the file
140
+ * docstring for why folding beats inverting here.
141
+ */
142
+ live() {
143
+ const recompute = () => reduceRecords(this.executeRecords(), this.spec);
144
+ return gateTerminal(this.gate, "aggregate().live", () => new LiveAggregationImpl(recompute, this.upstreams));
145
+ }
146
+ };
147
+ function buildLiveReduction(recompute, upstreams) {
148
+ return new LiveAggregationImpl(recompute, upstreams);
149
+ }
150
+
151
+ // src/with-lookup/reduce/group-core.ts
152
+ var GROUPBY_WARN_CARDINALITY = 1e4;
153
+ var GROUPBY_MAX_CARDINALITY = 1e5;
154
+ var warnedCardinalityFields = /* @__PURE__ */ new Set();
155
+ function warnCardinalityApproaching(fields, observed) {
156
+ const key = JSON.stringify([...fields].sort());
157
+ if (warnedCardinalityFields.has(key)) return;
158
+ warnedCardinalityFields.add(key);
159
+ const label = `[${fields.join(", ")}]`;
160
+ console.warn(
161
+ `[noy-db] .groupBy(${label}) produced ${observed} distinct groups, ${Math.round(observed / GROUPBY_MAX_CARDINALITY * 100)}% of the ${GROUPBY_MAX_CARDINALITY}-group ceiling. Narrow the query with .where() before grouping, or switch to a lower-cardinality field.`
162
+ );
163
+ }
164
+ function resetGroupByWarnings() {
165
+ warnedCardinalityFields.clear();
166
+ }
167
+ function groupFieldLabel(fields) {
168
+ return fields.length === 1 ? fields[0] : `[${fields.join(", ")}]`;
169
+ }
170
+ function reduceGroupRow(fields, keyValues, records, spec, reducerKeys) {
171
+ const state = {};
172
+ for (const rk of reducerKeys) {
173
+ state[rk] = spec[rk].init();
174
+ }
175
+ for (const record of records) {
176
+ for (const rk of reducerKeys) {
177
+ state[rk] = spec[rk].step(state[rk], record);
178
+ }
179
+ }
180
+ const row = {};
181
+ for (const f of fields) {
182
+ row[f] = keyValues[f];
183
+ }
184
+ for (const rk of reducerKeys) {
185
+ row[rk] = spec[rk].finalize(state[rk]);
186
+ }
187
+ return row;
188
+ }
189
+
190
+ // src/with-lookup/reduce/incremental-group.ts
191
+ var GroupedMaintainer = class {
192
+ inner;
193
+ fields;
194
+ spec;
195
+ reducerKeys;
196
+ fieldLabel;
197
+ project;
198
+ buckets = /* @__PURE__ */ new Map();
199
+ /** Dedup keys in emission (first-seen) order. Recomputed when `orderDirty`. */
200
+ order = [];
201
+ orderDirty = true;
202
+ stale = true;
203
+ attached = false;
204
+ patches = 0;
205
+ rebuilds = 0;
206
+ bucketsReduced = 0;
207
+ recordsFolded = 0;
208
+ constructor(cfg) {
209
+ this.fields = cfg.fields;
210
+ this.spec = cfg.spec;
211
+ this.reducerKeys = Object.keys(cfg.spec);
212
+ this.fieldLabel = groupFieldLabel(cfg.fields);
213
+ const project = cfg.source.project;
214
+ this.project = project ? (record) => project(record) : (record) => record;
215
+ this.inner = new LiveMaintainer({
216
+ snapshotEntries: cfg.source.snapshotEntries,
217
+ lookupById: cfg.source.lookupById,
218
+ matches: cfg.source.matches,
219
+ // Grouping reduces the whole match set in candidate order — it never
220
+ // sorts, offsets, limits or decodes. Same switches the ungrouped
221
+ // `.aggregate()` maintainer runs with.
222
+ offset: 0,
223
+ limit: void 0
224
+ });
225
+ }
226
+ /**
227
+ * Start accepting deltas. Call in the SAME synchronous turn as the initial
228
+ * read — `LiveReduction` computes its first value in its constructor and
229
+ * subscribes immediately after, so attaching there is that turn.
230
+ */
231
+ attach() {
232
+ this.attached = true;
233
+ this.inner.attach();
234
+ }
235
+ /** Stop accepting deltas; every later read rebuilds. */
236
+ detach() {
237
+ this.attached = false;
238
+ this.inner.detach();
239
+ }
240
+ /** Force the next read to rebuild. */
241
+ invalidate() {
242
+ this.stale = true;
243
+ this.inner.invalidate();
244
+ }
245
+ /** Patch/rebuild counters — the observable difference between the two paths. */
246
+ stats() {
247
+ return {
248
+ patches: this.patches,
249
+ rebuilds: this.rebuilds,
250
+ bucketsReduced: this.bucketsReduced,
251
+ recordsFolded: this.recordsFolded
252
+ };
253
+ }
254
+ /**
255
+ * Fold one upstream change into the maintained buckets.
256
+ *
257
+ * The match-set layer runs first and unconditionally — even when THIS layer
258
+ * is stale, keeping the inner maintainer current is what makes the rebuild
259
+ * below cost O(matches) instead of O(collection).
260
+ */
261
+ apply(change) {
262
+ let outcome;
263
+ try {
264
+ outcome = this.inner.apply(change);
265
+ } catch (err) {
266
+ this.stale = true;
267
+ throw err;
268
+ }
269
+ if (!this.attached || this.stale) return;
270
+ if (outcome.kind === "rebuilt") {
271
+ this.stale = true;
272
+ return;
273
+ }
274
+ try {
275
+ if (outcome.removed) this.leave(outcome.removed);
276
+ if (outcome.inserted) this.join(outcome.inserted);
277
+ this.patches++;
278
+ } catch (err) {
279
+ this.stale = true;
280
+ throw err;
281
+ }
282
+ }
283
+ /** The current grouped rows — a fresh array on every call. */
284
+ rows() {
285
+ if (!this.attached || this.stale) this.rebuild();
286
+ if (this.buckets.size >= GROUPBY_WARN_CARDINALITY) {
287
+ warnCardinalityApproaching(this.fields, this.buckets.size);
288
+ }
289
+ if (this.orderDirty) {
290
+ this.order = [...this.buckets.keys()].sort(
291
+ (a, b) => this.buckets.get(a).members[0].seq - this.buckets.get(b).members[0].seq
292
+ );
293
+ this.orderDirty = false;
294
+ }
295
+ const out = [];
296
+ for (const key of this.order) {
297
+ const bucket = this.buckets.get(key);
298
+ if (bucket.dirty) {
299
+ bucket.row = this.reduce(bucket);
300
+ bucket.dirty = false;
301
+ }
302
+ out.push(bucket.row);
303
+ }
304
+ return out;
305
+ }
306
+ /**
307
+ * Rebuild every bucket from the maintained match set. Equivalent to the
308
+ * eager path by construction: the inner maintainer hands back exactly the
309
+ * records `executeRecords()` would produce, in exactly that order, and
310
+ * `join()` below is the same bucketing loop `groupAndReduce` runs.
311
+ */
312
+ rebuild() {
313
+ this.rebuilds++;
314
+ this.buckets = /* @__PURE__ */ new Map();
315
+ const entries = this.inner.maintainedEntries();
316
+ for (const entry of entries) this.join({ seq: entry.seq, record: entry.record });
317
+ this.orderDirty = true;
318
+ this.stale = false;
319
+ }
320
+ /** A record left the match set, or left one group on its way to another. */
321
+ leave(delta) {
322
+ const record = this.project(delta.record);
323
+ const key = this.dedupKey(record);
324
+ const bucket = this.buckets.get(key);
325
+ if (!bucket) {
326
+ this.stale = true;
327
+ return;
328
+ }
329
+ const at = lowerBoundBySeq(bucket.members, delta.seq);
330
+ if (bucket.members[at]?.seq !== delta.seq) {
331
+ this.stale = true;
332
+ return;
333
+ }
334
+ bucket.members.splice(at, 1);
335
+ if (bucket.members.length === 0) {
336
+ this.buckets.delete(key);
337
+ this.orderDirty = true;
338
+ return;
339
+ }
340
+ if (at === 0) this.orderDirty = true;
341
+ bucket.dirty = true;
342
+ }
343
+ /** A record joined the match set, or joined a new group. */
344
+ join(delta) {
345
+ const record = this.project(delta.record);
346
+ const key = this.dedupKey(record);
347
+ let bucket = this.buckets.get(key);
348
+ if (bucket === void 0) {
349
+ if (this.buckets.size >= GROUPBY_MAX_CARDINALITY) {
350
+ throw new GroupCardinalityError(
351
+ this.fieldLabel,
352
+ this.buckets.size + 1,
353
+ GROUPBY_MAX_CARDINALITY
354
+ );
355
+ }
356
+ bucket = { members: [], row: void 0, dirty: true };
357
+ this.buckets.set(key, bucket);
358
+ this.orderDirty = true;
359
+ }
360
+ const at = lowerBoundBySeq(bucket.members, delta.seq);
361
+ bucket.members.splice(at, 0, { seq: delta.seq, record });
362
+ if (at === 0) this.orderDirty = true;
363
+ bucket.dirty = true;
364
+ }
365
+ reduce(bucket) {
366
+ const first = bucket.members[0].record;
367
+ const keyValues = {};
368
+ for (const f of this.fields) keyValues[f] = readPath(first, f);
369
+ this.bucketsReduced++;
370
+ this.recordsFolded += bucket.members.length;
371
+ return reduceGroupRow(
372
+ this.fields,
373
+ keyValues,
374
+ bucket.members.map((m) => m.record),
375
+ this.spec,
376
+ this.reducerKeys
377
+ );
378
+ }
379
+ dedupKey(record) {
380
+ const keyValues = {};
381
+ for (const f of this.fields) keyValues[f] = readPath(record, f);
382
+ return canonicalGroupKey(this.fields, keyValues);
383
+ }
384
+ };
385
+ function lowerBoundBySeq(members, seq) {
386
+ let lo = 0;
387
+ let hi = members.length;
388
+ while (lo < hi) {
389
+ const mid = lo + hi >>> 1;
390
+ if (members[mid].seq < seq) lo = mid + 1;
391
+ else hi = mid;
392
+ }
393
+ return lo;
394
+ }
395
+
396
+ // src/with-lookup/reduce/groupby.ts
397
+ var GroupedQueryBase = class {
398
+ constructor(executeRecords, fieldOrFields, upstreams, dictLabelResolver, via, maintenance) {
399
+ this.executeRecords = executeRecords;
400
+ this.upstreams = upstreams;
401
+ this.dictLabelResolver = dictLabelResolver;
402
+ this.via = via;
403
+ this.maintenance = maintenance;
404
+ this.fields = typeof fieldOrFields === "string" ? [fieldOrFields] : [...fieldOrFields];
405
+ }
406
+ executeRecords;
407
+ upstreams;
408
+ dictLabelResolver;
409
+ via;
410
+ maintenance;
411
+ /**
412
+ * Field set this grouped query buckets on. Stored in declaration
413
+ * order — the same order is preserved on every result row by
414
+ * `groupAndReduce`. For the single-field constructor, this is
415
+ * `[field]`.
416
+ */
417
+ fields;
418
+ /** Apply Via-aware reducer rewriting (e.g. money) when the source declares one. */
419
+ wrapSpec(spec) {
420
+ return bindDistinctReducers(this.via ? this.via.wrapReducers(spec) : spec, this.via);
421
+ }
422
+ };
423
+ var GroupedQuery = class extends GroupedQueryBase {
424
+ aggregate(specOrBuild) {
425
+ const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
426
+ return new GroupedReduction(
427
+ this.executeRecords,
428
+ this.fields,
429
+ this.wrapSpec(spec),
430
+ this.upstreams,
431
+ this.dictLabelResolver,
432
+ NO_POST_GROUP,
433
+ this.maintenance
434
+ );
435
+ }
436
+ };
437
+ var GroupedQueryN = class extends GroupedQueryBase {
438
+ aggregate(specOrBuild) {
439
+ const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
440
+ return new GroupedReduction(
441
+ this.executeRecords,
442
+ this.fields,
443
+ this.wrapSpec(spec),
444
+ this.upstreams,
445
+ this.dictLabelResolver,
446
+ NO_POST_GROUP,
447
+ this.maintenance
448
+ );
449
+ }
450
+ };
451
+ function groupAndReduce(records, fieldOrFields, spec, moneyFields) {
452
+ const fields = typeof fieldOrFields === "string" ? [fieldOrFields] : fieldOrFields;
453
+ if (fields.length === 0) {
454
+ throw new Error(".groupBy() requires at least one field");
455
+ }
456
+ if (moneyFields) {
457
+ const binding = viaBinder("money")({ moneyFields });
458
+ spec = binding.wrapReducers(spec);
459
+ spec = bindDistinctReducers(spec, {
460
+ canonicalizeIndexKey: (f, v) => binding.canonicalizeIndexKey?.(f, v)
461
+ });
462
+ }
463
+ const buckets = /* @__PURE__ */ new Map();
464
+ const fieldLabel = groupFieldLabel(fields);
465
+ for (const record of records) {
466
+ const keyValues = {};
467
+ for (const f of fields) {
468
+ keyValues[f] = readPath(record, f);
469
+ }
470
+ const dedupKey = canonicalGroupKey(fields, keyValues);
471
+ let bucket = buckets.get(dedupKey);
472
+ if (bucket === void 0) {
473
+ if (buckets.size >= GROUPBY_MAX_CARDINALITY) {
474
+ throw new GroupCardinalityError(
475
+ fieldLabel,
476
+ buckets.size + 1,
477
+ GROUPBY_MAX_CARDINALITY
478
+ );
479
+ }
480
+ bucket = { keyValues, records: [] };
481
+ buckets.set(dedupKey, bucket);
482
+ }
483
+ bucket.records.push(record);
484
+ }
485
+ if (buckets.size >= GROUPBY_WARN_CARDINALITY) {
486
+ warnCardinalityApproaching(fields, buckets.size);
487
+ }
488
+ const reducerKeys = Object.keys(spec);
489
+ const out = [];
490
+ for (const bucket of buckets.values()) {
491
+ out.push(reduceGroupRow(fields, bucket.keyValues, bucket.records, spec, reducerKeys));
492
+ }
493
+ return out;
494
+ }
495
+ var NO_POST_GROUP = { having: [], orderBy: [], limit: void 0 };
496
+ var DECIMAL_NUMERAL = /^[+-]?\d+(\.\d+)?$/;
497
+ function compareReduced(a, b) {
498
+ if (a === void 0 || a === null) return b === void 0 || b === null ? 0 : 1;
499
+ if (b === void 0 || b === null) return -1;
500
+ if (typeof a === "number" && typeof b === "number") return a - b;
501
+ if (typeof a === "bigint" && typeof b === "bigint") return a < b ? -1 : a > b ? 1 : 0;
502
+ if (typeof a === "string" && typeof b === "string") {
503
+ if (DECIMAL_NUMERAL.test(a) && DECIMAL_NUMERAL.test(b)) {
504
+ const an = Number(a);
505
+ const bn = Number(b);
506
+ if (an !== bn) return an < bn ? -1 : 1;
507
+ }
508
+ return a < b ? -1 : a > b ? 1 : 0;
509
+ }
510
+ if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();
511
+ return 0;
512
+ }
513
+ function applyPostGroup(rows, post) {
514
+ let out = rows;
515
+ for (const pred of post.having) {
516
+ out = out.filter((row) => pred(row));
517
+ }
518
+ if (post.orderBy.length > 0) {
519
+ out = [...out].sort((x, y) => {
520
+ for (const { key, direction } of post.orderBy) {
521
+ const cmp = compareReduced(
522
+ x[key],
523
+ y[key]
524
+ );
525
+ if (cmp !== 0) return direction === "asc" ? cmp : -cmp;
526
+ }
527
+ return 0;
528
+ });
529
+ }
530
+ if (post.limit !== void 0 && post.limit < out.length) out = out.slice(0, post.limit);
531
+ return out;
532
+ }
533
+ var GroupedReduction = class _GroupedReduction {
534
+ constructor(executeRecords, fields, spec, upstreams, dictLabelResolver, post = NO_POST_GROUP, maintenance) {
535
+ this.executeRecords = executeRecords;
536
+ this.spec = spec;
537
+ this.upstreams = upstreams;
538
+ this.dictLabelResolver = dictLabelResolver;
539
+ this.post = post;
540
+ this.maintenance = maintenance;
541
+ this.fields = typeof fields === "string" ? [fields] : [...fields];
542
+ }
543
+ executeRecords;
544
+ spec;
545
+ upstreams;
546
+ dictLabelResolver;
547
+ post;
548
+ maintenance;
549
+ fields;
550
+ /** Clone with a replaced post-group stage. */
551
+ withPost(post) {
552
+ return new _GroupedReduction(
553
+ this.executeRecords,
554
+ this.fields,
555
+ this.spec,
556
+ this.upstreams,
557
+ this.dictLabelResolver,
558
+ post,
559
+ this.maintenance
560
+ );
561
+ }
562
+ /**
563
+ * Keep only the reduced rows a predicate accepts — SQL's `HAVING` (#1336).
564
+ *
565
+ * ```ts
566
+ * invoices.query()
567
+ * .groupBy('clientId')
568
+ * .aggregate({ total: sum('amount') })
569
+ * .having(r => (r.total as number) > 10_000)
570
+ * .orderBy('total', 'desc')
571
+ * .limit(20)
572
+ * .run()
573
+ * ```
574
+ *
575
+ * The predicate sees the WHOLE reduced row — group keys (including a
576
+ * `dateTrunc()`-derived one) and reducer outputs alike — with each value in
577
+ * its exact reduced form: a money `sum` arrives as its canonical decimal
578
+ * string (`'10004.00'`), never as a locale-formatted label, so comparing on
579
+ * it is exact. Successive calls AND.
580
+ *
581
+ * ⚠️ Not a memory optimization. See the class docs — the buckets exist
582
+ * already; `having` only decides what is returned.
583
+ */
584
+ having(predicate) {
585
+ return this.withPost({
586
+ ...this.post,
587
+ having: [...this.post.having, predicate]
588
+ });
589
+ }
590
+ /**
591
+ * Order the REDUCED rows by one of their keys (#1336). Successive calls are
592
+ * tie-breakers; the sort is stable, so bucket first-seen order breaks a
593
+ * final tie.
594
+ *
595
+ * ⭐ Distinguished from `Query.orderBy()` by POSITION, not by name: this one
596
+ * exists only after `.aggregate()` and sorts result rows by a reduced key or
597
+ * a group key; `Query.orderBy()` exists only before `.groupBy()` and sorts
598
+ * SOURCE RECORDS, which (via `.limit()`) changes which records are grouped
599
+ * at all. Both may appear in one chain and they do not interfere.
600
+ */
601
+ orderBy(key, direction = "asc") {
602
+ return this.withPost({
603
+ ...this.post,
604
+ orderBy: [...this.post.orderBy, { key, direction }]
605
+ });
606
+ }
607
+ /**
608
+ * Cap the number of reduced rows returned (#1336) — applied AFTER `having`
609
+ * and `orderBy`, so `.orderBy('total', 'desc').limit(20)` is a top-20.
610
+ *
611
+ * A later call replaces an earlier one.
612
+ */
613
+ limit(n) {
614
+ if (!Number.isInteger(n) || n < 0) {
615
+ throw new Error(`.limit(${n}): a post-group limit must be a non-negative integer.`);
616
+ }
617
+ return this.withPost({ ...this.post, limit: n });
618
+ }
619
+ /**
620
+ * Execute the query, group, reduce, and return an array of rows.
621
+ *
622
+ * `opts` (query-form MV grouping): when a `locale` + `i18nFields` are
623
+ * given, the declared group-key `i18nText` fields are resolved to that locale
624
+ * at the `mv` layer BEFORE bucketing — so an i18n group key is a stable string
625
+ * instead of a raw `{locale}` map. The MV executor passes the MV's
626
+ * `i18nLocale`/`i18nFields`; ordinary `.run()` callers pass nothing and are
627
+ * unaffected.
628
+ */
629
+ run(opts) {
630
+ let records = this.executeRecords();
631
+ if (opts?.locale !== void 0 && opts.i18nFields !== void 0) {
632
+ const groupI18n = {};
633
+ for (const f of this.fields) {
634
+ const d = opts.i18nFields[f];
635
+ if (d !== void 0) groupI18n[f] = d;
636
+ }
637
+ if (Object.keys(groupI18n).length > 0) {
638
+ records = records.map((r) => applyI18nLocale(r, groupI18n, opts.locale, void 0, "mv"));
639
+ }
640
+ }
641
+ return applyPostGroup(groupAndReduce(records, this.fields, this.spec), this.post);
642
+ }
643
+ /**
644
+ * Execute the query, group, reduce, and resolve `<field>Label` for
645
+ * each result row when the grouping field is a `dictKey` and a
646
+ * `locale` is provided. Returns `R[]` synchronously when
647
+ * no locale is specified (identical to `.run()`).
648
+ *
649
+ * The `<field>Label` field is appended to each row. Rows whose group
650
+ * key has no dictionary entry get `<field>Label: undefined`.
651
+ *
652
+ * Dict-label resolution is single-field only — multi-key groupings
653
+ * do not produce a `<field>Label`. The resolver is only attached
654
+ * by the builder when `fields.length === 1`.
655
+ */
656
+ async runAsync(opts) {
657
+ const rows = applyPostGroup(
658
+ groupAndReduce(this.executeRecords(), this.fields, this.spec),
659
+ this.post
660
+ );
661
+ if (!opts?.locale || !this.dictLabelResolver || this.fields.length !== 1) return rows;
662
+ const resolve = this.dictLabelResolver;
663
+ const locale = opts.locale;
664
+ const fallback = opts.fallback;
665
+ const field = this.fields[0];
666
+ const labelKey = `${field}Label`;
667
+ return Promise.all(
668
+ rows.map(async (row) => {
669
+ const key = row[field];
670
+ if (typeof key !== "string") return row;
671
+ const label = await resolve(key, locale, fallback);
672
+ return { ...row, [labelKey]: label };
673
+ })
674
+ );
675
+ }
676
+ /**
677
+ * Build a reactive `LiveReduction<R[]>` that updates whenever any upstream
678
+ * source notifies of a change. Same error-isolation and idempotent-stop
679
+ * contract as `Reduction.live()` — the implementation delegates to the same
680
+ * `LiveAggregationImpl` class by threading a fresh recompute closure through
681
+ * the existing constructor.
682
+ *
683
+ * **Incremental per-group maintenance (#1341, grouped half).** When
684
+ * `Query.groupBy()` supplied a maintenance seam — a plan
685
+ * `canMaintainIncrementally()` admits, over a source that can hand back a
686
+ * snapshot and an id lookup — a change no longer re-runs the pipeline. The
687
+ * delta patches the match set, then patches the ONE OR TWO buckets it
688
+ * touches; every other bucket serves the row it already computed. See
689
+ * `incremental-group.ts` for the correctness argument, including the three
690
+ * membership transitions (a record changing group, a group emptying, a group
691
+ * appearing) that a naive per-group patch gets wrong.
692
+ *
693
+ * Every other plan, and every notification that arrives without a delta,
694
+ * re-runs the whole grouping exactly as before. Either way the emitted rows
695
+ * are identical to `.run()`'s.
696
+ *
697
+ * ⚠️ `.run()` is deliberately NOT served from the maintained state: it is a
698
+ * one-shot terminal that may be called long after a `.live()` was stopped,
699
+ * and reading the snapshot is the only answer that cannot be stale.
700
+ *
701
+ * Always call `live.stop()` when finished.
702
+ */
703
+ live() {
704
+ const maintainer = this.maintenance ? new GroupedMaintainer({
705
+ source: this.maintenance,
706
+ fields: this.fields,
707
+ spec: this.spec
708
+ }) : void 0;
709
+ if (!maintainer) {
710
+ const recompute2 = () => applyPostGroup(
711
+ groupAndReduce(this.executeRecords(), this.fields, this.spec),
712
+ this.post
713
+ );
714
+ return withStats(buildLiveReduction(recompute2, this.upstreams), void 0);
715
+ }
716
+ const recompute = () => applyPostGroup(maintainer.rows(), this.post);
717
+ const upstreams = this.upstreams.map((upstream) => ({
718
+ subscribe: (cb) => {
719
+ maintainer.attach();
720
+ const unsubscribe = upstream.subscribe((change) => {
721
+ try {
722
+ maintainer.apply(change);
723
+ } catch {
724
+ maintainer.invalidate();
725
+ }
726
+ cb();
727
+ });
728
+ return () => {
729
+ maintainer.detach();
730
+ unsubscribe();
731
+ };
732
+ }
733
+ }));
734
+ return withStats(buildLiveReduction(recompute, upstreams), maintainer);
735
+ }
736
+ };
737
+ function withStats(live, maintainer) {
738
+ return Object.assign(live, {
739
+ maintenanceStats: () => maintainer?.stats()
740
+ });
741
+ }
742
+
743
+ export {
744
+ reduceRecords,
745
+ Reduction,
746
+ buildLiveReduction,
747
+ GROUPBY_WARN_CARDINALITY,
748
+ GROUPBY_MAX_CARDINALITY,
749
+ resetGroupByWarnings,
750
+ GroupedMaintainer,
751
+ GroupedQuery,
752
+ GroupedQueryN,
753
+ groupAndReduce,
754
+ compareReduced,
755
+ GroupedReduction
756
+ };
757
+ //# sourceMappingURL=chunk-CF5UU4S7.js.map