@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,215 @@
1
+ import {
2
+ buildLiveReduction,
3
+ compareReduced
4
+ } from "./chunk-CF5UU4S7.js";
5
+ import {
6
+ canonicalGroupKey
7
+ } from "./chunk-XZHEOSQ2.js";
8
+ import {
9
+ bindDistinctReducers,
10
+ moneySum,
11
+ sum
12
+ } from "./chunk-F2TDU7MQ.js";
13
+ import {
14
+ isDateTruncKey,
15
+ projectDateTruncKeys
16
+ } from "./chunk-XBKH4FOC.js";
17
+ import {
18
+ readPath
19
+ } from "./chunk-HLEK5VAN.js";
20
+
21
+ // src/with-lookup/reduce/window.ts
22
+ function isWindowFn(v) {
23
+ return typeof v === "object" && v !== null && v.__window === true;
24
+ }
25
+ function rowNumber() {
26
+ return {
27
+ __window: true,
28
+ op: "rowNumber",
29
+ evaluate: (rows) => rows.map((_, i) => i + 1)
30
+ };
31
+ }
32
+ function rank() {
33
+ return {
34
+ __window: true,
35
+ op: "rank",
36
+ evaluate: (_rows, peerStart) => peerStart.map((start) => start + 1)
37
+ };
38
+ }
39
+ function assertOffset(op, offset) {
40
+ if (!Number.isInteger(offset) || offset < 0) {
41
+ throw new Error(`${op}(): offset must be a non-negative integer, got ${offset}.`);
42
+ }
43
+ }
44
+ function lag(field, offset = 1, defaultValue) {
45
+ assertOffset("lag", offset);
46
+ return {
47
+ __window: true,
48
+ op: "lag",
49
+ evaluate: (rows) => rows.map((_, i) => i - offset >= 0 ? readPath(rows[i - offset], field) : defaultValue)
50
+ };
51
+ }
52
+ function lead(field, offset = 1, defaultValue) {
53
+ assertOffset("lead", offset);
54
+ return {
55
+ __window: true,
56
+ op: "lead",
57
+ evaluate: (rows) => rows.map((_, i) => i + offset < rows.length ? readPath(rows[i + offset], field) : defaultValue)
58
+ };
59
+ }
60
+ function runningSum(field) {
61
+ return sum(field);
62
+ }
63
+ function runningMoneySum(field) {
64
+ return moneySum(field);
65
+ }
66
+ function asArray(v) {
67
+ if (v === void 0) return [];
68
+ return Array.isArray(v) ? v : [v];
69
+ }
70
+ function normalizeWindow(spec) {
71
+ const derived = [];
72
+ const keyOf = (k) => {
73
+ if (!isDateTruncKey(k)) return k;
74
+ derived.push(k);
75
+ return k.as;
76
+ };
77
+ const partitionKeys = asArray(spec.partitionBy).map(keyOf);
78
+ const orderBy = asArray(spec.orderBy).map((entry) => {
79
+ if (typeof entry === "string" || isDateTruncKey(entry)) {
80
+ return { key: keyOf(entry), direction: "asc" };
81
+ }
82
+ return { key: keyOf(entry.field), direction: entry.direction ?? "asc" };
83
+ });
84
+ return { partitionKeys, orderBy, derived };
85
+ }
86
+ function applyWindow(records, spec, select) {
87
+ const { partitionKeys, orderBy, derived } = normalizeWindow(spec);
88
+ const n = records.length;
89
+ if (n === 0) return [];
90
+ const keyRows = derived.length === 0 ? records : projectDateTruncKeys(records, derived);
91
+ const partitions = /* @__PURE__ */ new Map();
92
+ for (let i = 0; i < n; i++) {
93
+ let dedupKey = "";
94
+ if (partitionKeys.length > 0) {
95
+ const keyValues = {};
96
+ for (const f of partitionKeys) keyValues[f] = readPath(keyRows[i], f);
97
+ dedupKey = canonicalGroupKey(partitionKeys, keyValues);
98
+ }
99
+ const bucket = partitions.get(dedupKey);
100
+ if (bucket) bucket.push(i);
101
+ else partitions.set(dedupKey, [i]);
102
+ }
103
+ const compareByKeys = (a, b) => {
104
+ for (const { key, direction } of orderBy) {
105
+ const cmp = compareReduced(readPath(keyRows[a], key), readPath(keyRows[b], key));
106
+ if (cmp !== 0) return direction === "asc" ? cmp : -cmp;
107
+ }
108
+ return 0;
109
+ };
110
+ const slots = Object.entries(select);
111
+ const out = records.map((r) => ({ ...r }));
112
+ for (const indices of partitions.values()) {
113
+ indices.sort(compareByKeys);
114
+ const ordered = indices.map((i) => records[i]);
115
+ const peerStart = new Array(indices.length);
116
+ for (let k = 0; k < indices.length; k++) {
117
+ peerStart[k] = k === 0 || compareByKeys(indices[k - 1], indices[k]) !== 0 ? k : peerStart[k - 1];
118
+ }
119
+ for (const [name, slot] of slots) {
120
+ if (isWindowFn(slot)) {
121
+ const values = slot.evaluate(ordered, peerStart);
122
+ for (let k = 0; k < indices.length; k++) out[indices[k]][name] = values[k];
123
+ continue;
124
+ }
125
+ let state = slot.init();
126
+ for (let k = 0; k < indices.length; k++) {
127
+ state = slot.step(state, ordered[k]);
128
+ out[indices[k]][name] = slot.finalize(state);
129
+ }
130
+ }
131
+ }
132
+ return out;
133
+ }
134
+ function withWindow() {
135
+ return (executeRecords, spec, upstreams, via) => new WindowedQuery(executeRecords, spec, upstreams, via);
136
+ }
137
+ var WindowedQuery = class {
138
+ constructor(executeRecords, spec, upstreams, via) {
139
+ this.executeRecords = executeRecords;
140
+ this.spec = spec;
141
+ this.upstreams = upstreams;
142
+ this.via = via;
143
+ }
144
+ executeRecords;
145
+ spec;
146
+ upstreams;
147
+ via;
148
+ /**
149
+ * Attach window outputs to every row. Each slot is either a
150
+ * {@link WindowFn} (`rowNumber`, `rank`, `lag`, `lead`) or a `Reducer`,
151
+ * which runs as a running aggregate over `rows unbounded preceding →
152
+ * current row`.
153
+ *
154
+ * Reducers are rewritten through the collection's Via pipeline exactly as
155
+ * `.aggregate()` rewrites them, so a `sum` over a declared money field
156
+ * becomes the exact BigInt accumulator and a `countDistinct` dedups on the
157
+ * canonical index key.
158
+ */
159
+ select(spec) {
160
+ const reducersOnly = {};
161
+ for (const [k, v] of Object.entries(spec)) {
162
+ if (!isWindowFn(v)) reducersOnly[k] = v;
163
+ }
164
+ const wrapped = bindDistinctReducers(
165
+ this.via ? this.via.wrapReducers(reducersOnly) : reducersOnly,
166
+ this.via
167
+ );
168
+ const effective = { ...spec };
169
+ for (const [k, v] of Object.entries(wrapped)) effective[k] = v;
170
+ return new WindowSelection(
171
+ this.executeRecords,
172
+ this.spec,
173
+ effective,
174
+ this.upstreams
175
+ );
176
+ }
177
+ };
178
+ var WindowSelection = class {
179
+ constructor(executeRecords, spec, select, upstreams) {
180
+ this.executeRecords = executeRecords;
181
+ this.spec = spec;
182
+ this.select = select;
183
+ this.upstreams = upstreams;
184
+ }
185
+ executeRecords;
186
+ spec;
187
+ select;
188
+ upstreams;
189
+ /** Execute the query and return every row, widened with the window outputs. */
190
+ run() {
191
+ return applyWindow(this.executeRecords(), this.spec, this.select);
192
+ }
193
+ /**
194
+ * Reactive terminal — re-runs the whole window pipeline on every upstream
195
+ * change, the same naive-recompute contract `GroupedReduction.live()` has.
196
+ * Always call `live.stop()` when finished.
197
+ */
198
+ live() {
199
+ return buildLiveReduction(() => this.run(), this.upstreams);
200
+ }
201
+ };
202
+
203
+ export {
204
+ rowNumber,
205
+ rank,
206
+ lag,
207
+ lead,
208
+ runningSum,
209
+ runningMoneySum,
210
+ applyWindow,
211
+ withWindow,
212
+ WindowedQuery,
213
+ WindowSelection
214
+ };
215
+ //# sourceMappingURL=chunk-T52GX4SA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-lookup/reduce/window.ts"],"sourcesContent":["/**\n * Query DSL `.window()` — SQL window functions over the query's result rows\n * (#1349).\n *\n * ```ts\n * invoices.query()\n * .where('status', '==', 'open')\n * .window({ partitionBy: 'clientId', orderBy: 'date' })\n * .select({ balance: runningSum('amount'), prev: lag('amount', 1), n: rowNumber() })\n * .run()\n * ```\n *\n * Pure in-hub post-processing: the store holds ciphertext, so this runs after\n * decryption like every other query stage. No index is consulted — see\n * \"Complexity\" below for why the sorted-index fast path is deliberately not\n * taken in v1.\n *\n * ## What it is, precisely\n *\n * A window function adds COLUMNS to a row; it never adds, removes or reorders\n * rows. `.select()` therefore returns the query's own rows, in the query's own\n * order, each widened with the window outputs. `orderBy` inside `.window()`\n * decides how a PARTITION is walked; `Query.orderBy()` decides how the RESULT\n * is presented. That is SQL's split and both are honoured independently.\n *\n * ⭐ Distinguished from `.groupBy()` by ARITY: `.groupBy().aggregate()` emits\n * one row per bucket and drops the source rows; `.window().select()` keeps\n * every source row and attaches per-row values computed over its partition.\n *\n * ## The frame — `rows unbounded preceding → current row`, and only that\n *\n * A running aggregate at position `i` of its partition sees exactly rows\n * `0..i`. There is no `RANGE`, no `n preceding`, no `following`, and no\n * `frame` option to pass — explicit frames are a separate feature, and a\n * half-built frame surface is worse than none. `lag`/`lead` are navigation,\n * not aggregation, so they are unaffected by the frame.\n *\n * ## Ordering inside a partition is TOTAL\n *\n * Rows are sorted by the `orderBy` keys and, where those compare equal, by\n * their UPSTREAM POSITION — the sort is a stable sort over an ascending index\n * array, so equal keys keep the order the query produced them in. Without that\n * final key, `lag`/`lead` over equal keys would be a coin flip between runs.\n *\n * The value comparator is {@link compareReduced}, shared with the post-group\n * ordering of #1336 rather than reinvented, and for the same reason: a money\n * value reaches this stage DECODED, as an exact decimal string, and lexical\n * order gets `'9882.00'` vs `'10004.00'` backwards. (The pre-group row\n * pipeline asks `ViaPipeline.compareForOrder` instead — that reads the STORED\n * scaled-integer form, which is not what a decoded row holds, so it cannot\n * serve here.)\n *\n * PEER-ship for `rank` is decided by the `orderBy` keys ALONE, never by the\n * upstream tie-break — otherwise no two rows would ever be peers and `rank`\n * would collapse into `rowNumber`.\n *\n * ## Complexity, and the index question\n *\n * O(n log n): one partition pass, then a sort per partition. #1344's sorted\n * indexes could in principle make the sort a merge, but the input here is the\n * query's already-materialised, already-DECODED result rows — the index is\n * over stored (encoded) values on the collection, and it has no way to express\n * \"sorted within each partition of `clientId`\". Taking a fast path would mean\n * proving identical output including the upstream tie-break, which the index\n * cannot witness. So v1 sorts. This is the correct path, not a placeholder.\n *\n * ## Opting in — and why there is a second opt-in at all\n *\n * `withReduce()` alone does NOT light this up: `.window()` throws until the\n * strategy is built as `withReduce({ window: withWindow() })`. That is not\n * ceremony for its own sake — it is the SAME no-op-stub-until-opted-in rule\n * that keeps `Reduction`/`GroupedQuery` out of the floor bundle, applied one\n * level down. `withReduce()`'s returned object is a live value the bundler\n * cannot prove unused, so a `window()` method that named {@link WindowedQuery}\n * directly made this whole engine reachable from `withReduce` and charged it\n * to every consumer who opted into ordinary aggregation and will never call\n * `.window()`. Measured: the `analytics` bundle scenario went 960 → 1,845\n * gzipped bytes, +92%. Passing the factory in means the engine is reachable\n * only from a consumer that names `withWindow`.\n * ⛔ Do not \"simplify\" this back into `withReduce()` — `check-bundle.mjs`'s\n * `analytics` scenario carries a `WindowedQuery` eager-import canary that will\n * fail if you do.\n *\n * ## Not in `explain()`\n *\n * Same shape as #1336's post-group ops: `explain()` is a terminal on `Query`,\n * and `.window()` leaves `Query` for `WindowedQuery`, so there is no\n * `explain()` in the chain past this point to add a node to. The window stage\n * also has nothing to choose — one dispatch, over rows already in memory.\n */\n\nimport { readPath } from '../../kernel/query/predicate.js'\nimport { canonicalGroupKey } from './canonical-key.js'\nimport { compareReduced } from './groupby.js'\nimport type { Reducer } from './reducers.js'\nimport { bindDistinctReducers, sum, moneySum } from './reducers.js'\nimport type { ReductionUpstream, LiveReduction } from './reduction.js'\nimport { buildLiveReduction } from './reduction.js'\nimport type { DateTruncKey } from '../../kernel/query/reduce/date-trunc.js'\nimport { isDateTruncKey, projectDateTruncKeys } from '../../kernel/query/reduce/date-trunc.js'\nimport type { MoneyString } from '../../via/money/branded.js'\nimport type { ViaPipeline } from '../../kernel/via/pipeline.js'\n\n// ---------------------------------------------------------------------------\n// Spec surface\n// ---------------------------------------------------------------------------\n\n/** One ordering key inside a window: a field name, a `dateTrunc()` key, or either with a direction. */\nexport type WindowOrderInput<F extends string = string> =\n | F\n | DateTruncKey\n | { readonly field: F | DateTruncKey; readonly direction?: 'asc' | 'desc' }\n\n/**\n * The window definition passed to `.window()`.\n *\n * Both members are optional and mean what SQL's omissions mean: no\n * `partitionBy` is one partition holding the whole relation; no `orderBy`\n * makes every row in a partition a peer (so `rank()` is 1 throughout and a\n * running aggregate sees the rows in upstream order).\n */\nexport interface WindowSpec<F extends string = string> {\n /** Field name(s) and/or `dateTrunc()` key(s) to partition on. */\n readonly partitionBy?: F | DateTruncKey | readonly (F | DateTruncKey)[]\n /** How each partition is walked. Successive keys are tie-breakers. */\n readonly orderBy?: WindowOrderInput<F> | readonly WindowOrderInput<F>[]\n}\n\n/**\n * A non-aggregating window function (ranking or navigation). Built by the\n * factories below — the shape is opaque to consumers.\n */\nexport interface WindowFn<R = unknown> {\n readonly __window: true\n readonly op: 'rowNumber' | 'rank' | 'lag' | 'lead'\n /**\n * Compute one value per row of an ORDERED partition.\n * `peerStart[i]` is the index of the first row that compares equal to row\n * `i` under the window's `orderBy` keys.\n */\n evaluate(rows: readonly unknown[], peerStart: readonly number[]): R[]\n}\n\n/**\n * A `.select()` slot: either a window function or an ordinary {@link Reducer},\n * which runs as a RUNNING aggregate under the v1 frame. Any reducer works —\n * `count()`, `sum()`, `countDistinct()`, a custom one — so `runningSum` and\n * `runningMoneySum` below are named conveniences, not a separate mechanism.\n */\nexport type WindowSelectSpec = Readonly<Record<string, WindowFn<unknown> | Reducer<unknown, unknown>>>\n\n/** Result type of one `.select()` slot. */\ntype WindowSlotResult<V> =\n V extends WindowFn<infer R> ? R : V extends Reducer<infer R, unknown> ? R : unknown\n\n/** A window result row: the source record widened with the selected outputs. */\nexport type WindowRow<T, Spec extends WindowSelectSpec> = T & {\n [K in keyof Spec]: WindowSlotResult<Spec[K]>\n}\n\nfunction isWindowFn(v: unknown): v is WindowFn<unknown> {\n return typeof v === 'object' && v !== null && (v as { __window?: unknown }).__window === true\n}\n\n// ---------------------------------------------------------------------------\n// Window function factories\n// ---------------------------------------------------------------------------\n\n/**\n * Sequential position of the row within its partition, starting at 1. NEVER\n * repeats — two rows that tie under `orderBy` still get distinct numbers,\n * resolved by the upstream tie-break. Use {@link rank} when ties should share\n * a number.\n */\nexport function rowNumber(): WindowFn<number> {\n return {\n __window: true,\n op: 'rowNumber',\n evaluate: (rows) => rows.map((_, i) => i + 1),\n }\n}\n\n/**\n * Competition rank within the partition, starting at 1. Rows that compare\n * EQUAL under the window's `orderBy` keys share a rank, and the next distinct\n * value SKIPS the ranks they consumed — `1, 2, 2, 4`. This is the only place\n * `rank` and {@link rowNumber} differ, so a fixture without ties cannot tell\n * them apart.\n *\n * With no `orderBy` every row is a peer and every rank is 1.\n */\nexport function rank(): WindowFn<number> {\n return {\n __window: true,\n op: 'rank',\n evaluate: (_rows, peerStart) => peerStart.map((start) => start + 1),\n }\n}\n\nfunction assertOffset(op: 'lag' | 'lead', offset: number): void {\n if (!Number.isInteger(offset) || offset < 0) {\n throw new Error(`${op}(): offset must be a non-negative integer, got ${offset}.`)\n }\n}\n\n/**\n * Value of `field` from the row `offset` positions EARLIER in the partition.\n * Returns `defaultValue` (default `undefined`) for the first `offset` rows.\n */\nexport function lag<R = unknown>(field: string, offset = 1, defaultValue?: R): WindowFn<R | undefined> {\n assertOffset('lag', offset)\n return {\n __window: true,\n op: 'lag',\n evaluate: (rows) =>\n rows.map((_, i) => (i - offset >= 0 ? (readPath(rows[i - offset], field) as R) : defaultValue)),\n }\n}\n\n/**\n * Value of `field` from the row `offset` positions LATER in the partition.\n * Returns `defaultValue` (default `undefined`) for the last `offset` rows.\n */\nexport function lead<R = unknown>(field: string, offset = 1, defaultValue?: R): WindowFn<R | undefined> {\n assertOffset('lead', offset)\n return {\n __window: true,\n op: 'lead',\n evaluate: (rows) =>\n rows.map((_, i) => (i + offset < rows.length ? (readPath(rows[i + offset], field) as R) : defaultValue)),\n }\n}\n\n/**\n * Running total of a numeric `field` over `rows unbounded preceding → current\n * row`. Identical to passing `sum(field)` — named for the reading.\n *\n * ⚠️ For a declared money field use {@link runningMoneySum}: it is the same\n * reducer, but typed `MoneyString` to match what the exact BigInt rewrite\n * actually returns.\n */\nexport function runningSum(field: string): Reducer<number> {\n return sum(field)\n}\n\n/**\n * Running total of a **declared money field**, exact at any magnitude.\n *\n * The reducer is the ordinary money `sum`, and it is rewritten by\n * `ViaPipeline.wrapReducers` into `via/money/money-reducer.ts`'s BigInt\n * accumulator at `.select()` time — the SAME rewrite `.aggregate()` and\n * `.groupBy()` get, so a running balance and a grand total cannot disagree.\n * Nothing here touches a float: values accumulate as scaled `bigint`s and each\n * row's value is `formatScaledInt`'d out of the state at that point.\n */\nexport function runningMoneySum(field: string): Reducer<MoneyString> {\n return moneySum(field)\n}\n\n// ---------------------------------------------------------------------------\n// Engine\n// ---------------------------------------------------------------------------\n\ninterface NormalizedOrder {\n /** Output key to read (a derived key's `as`, or the plain field name). */\n readonly key: string\n readonly direction: 'asc' | 'desc'\n}\n\ninterface NormalizedWindow {\n readonly partitionKeys: readonly string[]\n readonly orderBy: readonly NormalizedOrder[]\n readonly derived: readonly DateTruncKey[]\n}\n\nfunction asArray<V>(v: V | readonly V[] | undefined): readonly V[] {\n if (v === undefined) return []\n return Array.isArray(v) ? (v as readonly V[]) : [v as V]\n}\n\n/**\n * Resolve the spec into flat key lists plus the derived calendar keys that\n * must be projected before any of them can be read.\n *\n * NOT exported: `NormalizedWindow` is an implementation shape, and exporting\n * the function without it trips `check:types` (a subpath must be able to name\n * every type its own signatures mention).\n */\nfunction normalizeWindow(spec: WindowSpec): NormalizedWindow {\n const derived: DateTruncKey[] = []\n const keyOf = (k: string | DateTruncKey): string => {\n if (!isDateTruncKey(k)) return k\n derived.push(k)\n return k.as\n }\n const partitionKeys = asArray<string | DateTruncKey>(spec.partitionBy).map(keyOf)\n const orderBy = asArray<WindowOrderInput>(spec.orderBy).map((entry): NormalizedOrder => {\n if (typeof entry === 'string' || isDateTruncKey(entry)) {\n return { key: keyOf(entry), direction: 'asc' }\n }\n return { key: keyOf(entry.field), direction: entry.direction ?? 'asc' }\n })\n return { partitionKeys, orderBy, derived }\n}\n\n/**\n * Execute the window stage. Pure function over a row array — exported for\n * tests and for any future `scan().window()` reuse.\n *\n * Rows are returned in INPUT order, each a shallow copy widened with the\n * selected outputs. A `dateTrunc()` partition key is read off an internal\n * projection and is deliberately NOT stamped on the output row — unlike\n * `.groupBy()`, where the derived key IS the result key.\n */\nexport function applyWindow<R>(\n records: readonly unknown[],\n spec: WindowSpec,\n select: WindowSelectSpec,\n): R[] {\n const { partitionKeys, orderBy, derived } = normalizeWindow(spec)\n const n = records.length\n if (n === 0) return []\n\n // Keys are read off a projected copy so a derived calendar bucket looks like\n // an ordinary field; the OUTPUT is built from the untouched original.\n const keyRows: readonly unknown[] =\n derived.length === 0 ? records : projectDateTruncKeys(records, derived)\n\n // Partition. Indices, not rows, so the upstream position survives as the\n // final ordering key. Map preserves insertion order (irrelevant to output\n // ordering here, but it keeps the walk deterministic).\n const partitions = new Map<string, number[]>()\n for (let i = 0; i < n; i++) {\n let dedupKey = ''\n if (partitionKeys.length > 0) {\n const keyValues: Record<string, unknown> = {}\n for (const f of partitionKeys) keyValues[f] = readPath(keyRows[i], f)\n dedupKey = canonicalGroupKey(partitionKeys, keyValues)\n }\n const bucket = partitions.get(dedupKey)\n if (bucket) bucket.push(i)\n else partitions.set(dedupKey, [i])\n }\n\n // Compare two rows by the orderBy keys ONLY — peer-ship for `rank` is\n // decided here, so the upstream tie-break must not participate.\n const compareByKeys = (a: number, b: number): number => {\n for (const { key, direction } of orderBy) {\n const cmp = compareReduced(readPath(keyRows[a], key), readPath(keyRows[b], key))\n if (cmp !== 0) return direction === 'asc' ? cmp : -cmp\n }\n return 0\n }\n\n const slots = Object.entries(select)\n const out: Record<string, unknown>[] = records.map((r) => ({ ...(r as Record<string, unknown>) }))\n\n for (const indices of partitions.values()) {\n // Stable sort over an ascending index array ⇒ equal keys keep upstream\n // order, which is what makes the ordering total.\n indices.sort(compareByKeys)\n const ordered = indices.map((i) => records[i])\n\n // peerStart[k] = index of the first row of k's tie-group under `orderBy`.\n const peerStart: number[] = new Array<number>(indices.length)\n for (let k = 0; k < indices.length; k++) {\n peerStart[k] = k === 0 || compareByKeys(indices[k - 1]!, indices[k]!) !== 0 ? k : peerStart[k - 1]!\n }\n\n for (const [name, slot] of slots) {\n if (isWindowFn(slot)) {\n const values = slot.evaluate(ordered, peerStart)\n for (let k = 0; k < indices.length; k++) out[indices[k]!]![name] = values[k]\n continue\n }\n // Running aggregate under the v1 frame: step, then finalize, per row.\n let state = slot.init()\n for (let k = 0; k < indices.length; k++) {\n state = slot.step(state, ordered[k])\n out[indices[k]!]![name] = slot.finalize(state)\n }\n }\n }\n\n return out as R[]\n}\n\n// ---------------------------------------------------------------------------\n// Chainable wrappers\n// ---------------------------------------------------------------------------\n\n/**\n * What `withWindow()` hands to `withReduce()`. Named as a type so\n * `strategy.ts` / `active.ts` can speak it in a TYPE-ONLY import and never\n * pull this module into their runtime graph.\n */\nexport type WindowFactory = <T>(\n executeRecords: () => readonly unknown[],\n spec: WindowSpec,\n upstreams: readonly ReductionUpstream[],\n via?: ViaPipeline,\n) => WindowedQuery<T>\n\n/**\n * Light up `.window()` on `Query`.\n *\n * ```ts\n * import { withReduce, withWindow } from '@noy-db/hub/reduce'\n * createNoydb({ store, user, secret, reduceStrategy: withReduce({ window: withWindow() }) })\n * ```\n *\n * The only reference to {@link WindowedQuery} outside this module's own\n * consumers — see \"Opting in\" in the module docs for why that matters.\n */\nexport function withWindow(): WindowFactory {\n return <T>(\n executeRecords: () => readonly unknown[],\n spec: WindowSpec,\n upstreams: readonly ReductionUpstream[],\n via?: ViaPipeline,\n ): WindowedQuery<T> => new WindowedQuery<T>(executeRecords, spec, upstreams, via)\n}\n\n/**\n * Chainable wrapper returned by `Query.window(spec)`. Terminates with\n * `.select(spec)`, which is the only operation on it — a window with nothing\n * selected computes nothing.\n */\nexport class WindowedQuery<T> {\n constructor(\n private readonly executeRecords: () => readonly unknown[],\n private readonly spec: WindowSpec,\n private readonly upstreams: readonly ReductionUpstream[],\n private readonly via?: ViaPipeline,\n ) {\n // T is phantom on the wrapper so a consumer still sees the row type on\n // hover. Reference it to keep lint quiet.\n void undefined as T | undefined\n }\n\n /**\n * Attach window outputs to every row. Each slot is either a\n * {@link WindowFn} (`rowNumber`, `rank`, `lag`, `lead`) or a `Reducer`,\n * which runs as a running aggregate over `rows unbounded preceding →\n * current row`.\n *\n * Reducers are rewritten through the collection's Via pipeline exactly as\n * `.aggregate()` rewrites them, so a `sum` over a declared money field\n * becomes the exact BigInt accumulator and a `countDistinct` dedups on the\n * canonical index key.\n */\n select<Spec extends WindowSelectSpec>(spec: Spec): WindowSelection<WindowRow<T, Spec>> {\n const reducersOnly: Record<string, Reducer<unknown, unknown>> = {}\n for (const [k, v] of Object.entries(spec)) {\n if (!isWindowFn(v)) reducersOnly[k] = v\n }\n const wrapped = bindDistinctReducers(\n this.via ? this.via.wrapReducers(reducersOnly) : reducersOnly,\n this.via,\n )\n const effective: Record<string, WindowFn<unknown> | Reducer<unknown, unknown>> = { ...spec }\n for (const [k, v] of Object.entries(wrapped)) effective[k] = v\n return new WindowSelection<WindowRow<T, Spec>>(\n this.executeRecords,\n this.spec,\n effective,\n this.upstreams,\n )\n }\n}\n\n/**\n * The `.window(...).select(...)` terminal. Mirrors `GroupedReduction`'s shape\n * — `.run()` and `.live()` — minus the post-group stage: ordering and limiting\n * of window OUTPUT rows belong on the underlying `Query`, before `.window()`,\n * because a window never changes the row set.\n */\nexport class WindowSelection<R> {\n constructor(\n private readonly executeRecords: () => readonly unknown[],\n private readonly spec: WindowSpec,\n private readonly select: WindowSelectSpec,\n private readonly upstreams: readonly ReductionUpstream[],\n ) {}\n\n /** Execute the query and return every row, widened with the window outputs. */\n run(): R[] {\n return applyWindow<R>(this.executeRecords(), this.spec, this.select)\n }\n\n /**\n * Reactive terminal — re-runs the whole window pipeline on every upstream\n * change, the same naive-recompute contract `GroupedReduction.live()` has.\n * Always call `live.stop()` when finished.\n */\n live(): LiveReduction<R[]> {\n return buildLiveReduction<R[]>(() => this.run(), this.upstreams)\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  linkI18nVia
3
- } from "./chunk-TRGTKX5E.js";
3
+ } from "./chunk-GHLTDZRS.js";
4
4
 
5
5
  // src/via/i18n/dictionary.ts
6
6
  function dictKey(name, keysOrMap, opts) {
@@ -71,4 +71,4 @@ export {
71
71
  dictKey,
72
72
  staticDict
73
73
  };
74
- //# sourceMappingURL=chunk-MVMXZYXT.js.map
74
+ //# sourceMappingURL=chunk-TKUOEU2F.js.map
@@ -0,0 +1,31 @@
1
+ import {
2
+ installLive
3
+ } from "./chunk-FQ54DWUQ.js";
4
+ import {
5
+ installReduce
6
+ } from "./chunk-FXQBGFOX.js";
7
+ import {
8
+ installRelate
9
+ } from "./chunk-ZSX4S5XB.js";
10
+ import {
11
+ ScanBuilder
12
+ } from "./chunk-F24ZZTHQ.js";
13
+ import {
14
+ Query,
15
+ executePlan
16
+ } from "./chunk-7JE7BDYJ.js";
17
+
18
+ // src/kernel/query/all.ts
19
+ installRelate();
20
+ installReduce();
21
+ installLive();
22
+ var Query2 = Query;
23
+ var ScanBuilder2 = ScanBuilder;
24
+ var executePlan2 = executePlan;
25
+
26
+ export {
27
+ Query2 as Query,
28
+ ScanBuilder2 as ScanBuilder,
29
+ executePlan2 as executePlan
30
+ };
31
+ //# sourceMappingURL=chunk-TOPYQ6GA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/kernel/query/all.ts"],"sourcesContent":["/**\n * `Query` with every group attached — the root barrel's view of the DSL (#1458).\n *\n * ⭐ **THE FILE EXISTS TO GET THE INSTALL'S LIFETIME RIGHT, and the two obvious\n * alternatives are both wrong in a way that was measured rather than argued:**\n *\n * - **Installing from `src/index.ts`'s own body** makes the three groups\n * unconditionally reachable from `createNoydb`. The `floor` scenario —\n * `import { createNoydb }` and nothing else — went from 554 to 11,330\n * gzipped bytes, because a consumer who never writes a query now carries\n * the whole DSL. That is a 20× regression on the package's smallest\n * documented consumer.\n * - **Re-exporting the group barrels and relying on the bare import** lets a\n * bundler drop the import as side-effect-free when the re-exported values\n * are unused — so `collection.query().join()` throws\n * `QueryExtensionMissingError` in a production build, for a consumer who\n * never opted out of anything.\n *\n * This module resolves both: it EXPORTS `Query`, and it INSTALLS as a top-level\n * side effect. A bundler may drop the module when nothing uses its exports (the\n * floor consumer never names `Query`, so nothing is paid), and the moment\n * anything does use `Query`, the module is retained and the installs run with\n * it. The dependency the install needs — \"attached whenever Query is reachable\"\n * — is exactly the dependency an export creates.\n *\n * ⚠️ Do not add this file to `package.json`'s `sideEffects` array. Being\n * DROPPABLE is the mechanism; listing it would pin the whole DSL into every\n * bundle and restore the first failure above.\n */\nimport { installRelate } from './relate/install.js'\nimport { installReduce } from './reduce/install.js'\nimport { installLive } from './live/install.js'\n\ninstallRelate()\ninstallReduce()\ninstallLive()\n\n// ⛔ RE-BOUND, not re-exported, and the difference decides whether any of this\n// works. `export { Query } from './builder.js'` is a pure re-export, so\n// esbuild resolves the binding straight to `builder.js` and this module's\n// chunk is left imported for its side effect ALONE — which `sideEffects:\n// false` then licenses the consumer's bundler to drop. Measured: it did, with\n// the warning `Ignoring this import because \"dist/chunk-….js\" was marked as\n// having no side effects`, and the root-barrel scenario came back with no join\n// code at all. Binding through a `const` gives `dist/index.js` a real named\n// import from this chunk, so the chunk is retained exactly when `Query` is\n// used — and dropped, with the installs, when it is not.\nimport { Query as FindQuery, executePlan as findExecutePlan } from './builder.js'\nimport { ScanBuilder as FindScanBuilder } from './scan-builder.js'\n\nexport const Query = FindQuery\nexport const ScanBuilder = FindScanBuilder\nexport const executePlan = findExecutePlan\n\n// The value above is the class; these keep the TYPE spelling `Query<Invoice>`\n// working for a consumer importing from the root barrel, and they resolve to\n// the same declaration the group augmentations merge into.\nexport type Query<\n T,\n S extends keyof T = never,\n Q extends keyof T & string = never,\n M extends keyof T & string = never,\n> = FindQuery<T, S, Q, M>\nexport type ScanBuilder<T, S extends keyof T = never, M extends keyof T & string = never> =\n FindScanBuilder<T, S, M>\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiCA,cAAc;AACd,cAAc;AACd,YAAY;AAeL,IAAMA,SAAQ;AACd,IAAMC,eAAc;AACpB,IAAMC,eAAc;","names":["Query","ScanBuilder","executePlan"]}
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5D2ALSM5.js";
4
4
 
5
5
  // src/with-formula/derivations/stale.ts
6
- var loadDerivationExecutor = lazy(() => import("./executor-5NIMLSKZ.js"));
6
+ var loadDerivationExecutor = lazy(() => import("./executor-RBKM5W5K.js"));
7
7
  var _staleByRegistry = /* @__PURE__ */ new WeakMap();
8
8
  var keyFor = (source, sourceId) => `${source}/${sourceId}`;
9
9
  async function markStale(registry, strategy, sourceId) {
@@ -84,4 +84,4 @@ export {
84
84
  markStale,
85
85
  resolveStaleOnRead
86
86
  };
87
- //# sourceMappingURL=chunk-SMH6SRX7.js.map
87
+ //# sourceMappingURL=chunk-TROR3ALR.js.map