@noy-db/hub 0.2.0-pre.8 → 0.3.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/README.md +129 -3
  2. package/dist/adapter/index.d.ts +5 -0
  3. package/dist/adapter/index.js +15 -0
  4. package/dist/aggregate/index.d.ts +6 -2
  5. package/dist/aggregate/index.js +24 -16
  6. package/dist/aggregate/index.js.map +1 -1
  7. package/dist/api-RW3KP7WU.js +14 -0
  8. package/dist/as/index.d.ts +7 -0
  9. package/dist/as/index.js +24 -0
  10. package/dist/at/index.d.ts +5 -0
  11. package/dist/at/index.js +1 -0
  12. package/dist/attestation/index.d.ts +15 -47
  13. package/dist/attestation/index.js +54 -10
  14. package/dist/attestation/index.js.map +1 -1
  15. package/dist/backup-XV3IOEGB.js +217 -0
  16. package/dist/backup-XV3IOEGB.js.map +1 -0
  17. package/dist/blobs/index.d.ts +6 -8
  18. package/dist/blobs/index.js +19 -12
  19. package/dist/blobs/index.js.map +1 -1
  20. package/dist/bundle/index.d.ts +16 -70
  21. package/dist/bundle/index.js +39 -476
  22. package/dist/bundle/index.js.map +1 -1
  23. package/dist/{ulid-BFJkYRRW.d.ts → bundle-CH-H06dp.d.ts} +31 -86
  24. package/dist/by/index.d.ts +1 -0
  25. package/dist/by/index.js +11 -0
  26. package/dist/cargo/index.d.ts +9 -0
  27. package/dist/cargo/index.js +89 -0
  28. package/dist/chunk-26LGBE4T.js +42 -0
  29. package/dist/chunk-26LGBE4T.js.map +1 -0
  30. package/dist/chunk-2P2HZEXU.js +233 -0
  31. package/dist/chunk-2P2HZEXU.js.map +1 -0
  32. package/dist/{chunk-K3DK3NU5.js → chunk-3YFXJ3ZP.js} +20 -5
  33. package/dist/chunk-3YFXJ3ZP.js.map +1 -0
  34. package/dist/chunk-4Q6HSHHL.js +90 -0
  35. package/dist/chunk-4Q6HSHHL.js.map +1 -0
  36. package/dist/chunk-5LUY7UTV.js +380 -0
  37. package/dist/chunk-5LUY7UTV.js.map +1 -0
  38. package/dist/chunk-5N6CZTCY.js +367 -0
  39. package/dist/chunk-5N6CZTCY.js.map +1 -0
  40. package/dist/chunk-5O3AOPDT.js +992 -0
  41. package/dist/chunk-5O3AOPDT.js.map +1 -0
  42. package/dist/chunk-5R3ERCDH.js +239 -0
  43. package/dist/chunk-5R3ERCDH.js.map +1 -0
  44. package/dist/{chunk-6774ZOQ7.js → chunk-5R5JW2JT.js} +7095 -4769
  45. package/dist/chunk-5R5JW2JT.js.map +1 -0
  46. package/dist/chunk-5TDJ56JE.js +32 -0
  47. package/dist/chunk-5TDJ56JE.js.map +1 -0
  48. package/dist/{chunk-T7JEBOGN.js → chunk-62QYRORB.js} +18 -11
  49. package/dist/chunk-62QYRORB.js.map +1 -0
  50. package/dist/{chunk-J66GRPNH.js → chunk-6S7T6WC4.js} +2 -2
  51. package/dist/chunk-6S7T6WC4.js.map +1 -0
  52. package/dist/chunk-76722EBH.js +451 -0
  53. package/dist/chunk-76722EBH.js.map +1 -0
  54. package/dist/{chunk-Z6FNBOTC.js → chunk-AIWULCUO.js} +13 -17
  55. package/dist/chunk-AIWULCUO.js.map +1 -0
  56. package/dist/{chunk-O3VZPBZG.js → chunk-AQTBSL7R.js} +47 -11
  57. package/dist/chunk-AQTBSL7R.js.map +1 -0
  58. package/dist/chunk-AURFOK3D.js +35 -0
  59. package/dist/chunk-AURFOK3D.js.map +1 -0
  60. package/dist/{chunk-53XBRIRT.js → chunk-AXRXJTE2.js} +9 -9
  61. package/dist/chunk-AXRXJTE2.js.map +1 -0
  62. package/dist/chunk-AZAOEIKW.js +155 -0
  63. package/dist/chunk-AZAOEIKW.js.map +1 -0
  64. package/dist/{chunk-HNRHLRDC.js → chunk-BG3SPSR4.js} +3 -3
  65. package/dist/chunk-BG3SPSR4.js.map +1 -0
  66. package/dist/chunk-BGIZAFY7.js +1 -0
  67. package/dist/chunk-CHFZDSE4.js +1 -0
  68. package/dist/{chunk-DJHHA6XH.js → chunk-CMGR4ZEW.js} +50 -20
  69. package/dist/chunk-CMGR4ZEW.js.map +1 -0
  70. package/dist/chunk-CWPPNPOH.js +23 -0
  71. package/dist/chunk-CWPPNPOH.js.map +1 -0
  72. package/dist/{chunk-QODLLGQ7.js → chunk-DFEMTNPJ.js} +371 -38
  73. package/dist/chunk-DFEMTNPJ.js.map +1 -0
  74. package/dist/{chunk-ZYWZWG6G.js → chunk-DGDI2D4M.js} +10 -10
  75. package/dist/chunk-DGDI2D4M.js.map +1 -0
  76. package/dist/{chunk-SYMWGEET.js → chunk-EIZUR2XW.js} +3 -3
  77. package/dist/chunk-EIZUR2XW.js.map +1 -0
  78. package/dist/{chunk-BVRYKATC.js → chunk-FISN7WE4.js} +36 -33
  79. package/dist/chunk-FISN7WE4.js.map +1 -0
  80. package/dist/chunk-GHVIKOHT.js +1 -0
  81. package/dist/chunk-GYGWYIOZ.js +200 -0
  82. package/dist/chunk-GYGWYIOZ.js.map +1 -0
  83. package/dist/chunk-HCIPRAGS.js +45 -0
  84. package/dist/chunk-HCIPRAGS.js.map +1 -0
  85. package/dist/{chunk-PX35GA7L.js → chunk-I2NOIW44.js} +10 -10
  86. package/dist/chunk-I2NOIW44.js.map +1 -0
  87. package/dist/{chunk-OIF6LZUR.js → chunk-I3TIKTJO.js} +3 -3
  88. package/dist/chunk-I3TIKTJO.js.map +1 -0
  89. package/dist/chunk-I7FD46FF.js +9 -0
  90. package/dist/chunk-I7FD46FF.js.map +1 -0
  91. package/dist/chunk-IAGBDSCS.js +40 -0
  92. package/dist/chunk-IAGBDSCS.js.map +1 -0
  93. package/dist/{chunk-JWRVQKRZ.js → chunk-IELYAOGG.js} +6 -18
  94. package/dist/chunk-IELYAOGG.js.map +1 -0
  95. package/dist/chunk-IGUYVGGI.js +205 -0
  96. package/dist/chunk-IGUYVGGI.js.map +1 -0
  97. package/dist/{chunk-U26HQ6KJ.js → chunk-IO6GRPT6.js} +4 -4
  98. package/dist/chunk-IO6GRPT6.js.map +1 -0
  99. package/dist/chunk-IPB7FTQX.js +273 -0
  100. package/dist/chunk-IPB7FTQX.js.map +1 -0
  101. package/dist/chunk-ITNUCOXM.js +148 -0
  102. package/dist/chunk-ITNUCOXM.js.map +1 -0
  103. package/dist/{chunk-WPLVTJ5D.js → chunk-IUEN57TV.js} +10 -10
  104. package/dist/chunk-IUEN57TV.js.map +1 -0
  105. package/dist/{chunk-DL3HWOQ5.js → chunk-JNUWZ6D3.js} +9 -9
  106. package/dist/chunk-JNUWZ6D3.js.map +1 -0
  107. package/dist/chunk-K2WCO3NX.js +1 -0
  108. package/dist/chunk-KVOXU4T5.js +30 -0
  109. package/dist/chunk-KVOXU4T5.js.map +1 -0
  110. package/dist/chunk-KXGNJJXB.js +135 -0
  111. package/dist/chunk-KXGNJJXB.js.map +1 -0
  112. package/dist/chunk-LB7FD65R.js +163 -0
  113. package/dist/chunk-LB7FD65R.js.map +1 -0
  114. package/dist/{chunk-22DWZL57.js → chunk-LFLXAY2W.js} +43 -218
  115. package/dist/chunk-LFLXAY2W.js.map +1 -0
  116. package/dist/chunk-LMTH2RM6.js +129 -0
  117. package/dist/chunk-LMTH2RM6.js.map +1 -0
  118. package/dist/{aggregate/index.cjs → chunk-LV7M27WM.js} +390 -219
  119. package/dist/chunk-LV7M27WM.js.map +1 -0
  120. package/dist/{chunk-PE2FR4J3.js → chunk-LXQT4WMP.js} +16 -18
  121. package/dist/chunk-LXQT4WMP.js.map +1 -0
  122. package/dist/chunk-M2YKN37S.js +524 -0
  123. package/dist/chunk-M2YKN37S.js.map +1 -0
  124. package/dist/chunk-M6OST55S.js +14 -0
  125. package/dist/chunk-M6OST55S.js.map +1 -0
  126. package/dist/{chunk-F3GDRNUT.js → chunk-MD3Y6J3L.js} +35 -69
  127. package/dist/chunk-MD3Y6J3L.js.map +1 -0
  128. package/dist/{chunk-XJFLDA7A.js → chunk-MTMJVJ5W.js} +8 -7
  129. package/dist/chunk-MTMJVJ5W.js.map +1 -0
  130. package/dist/{chunk-DFMLEQZB.js → chunk-NF5JWERG.js} +5 -10
  131. package/dist/chunk-NF5JWERG.js.map +1 -0
  132. package/dist/{chunk-DO7C2TOG.js → chunk-PKHL44ER.js} +3 -3
  133. package/dist/{chunk-DO7C2TOG.js.map → chunk-PKHL44ER.js.map} +1 -1
  134. package/dist/chunk-PSMV73A5.js +117 -0
  135. package/dist/chunk-PSMV73A5.js.map +1 -0
  136. package/dist/chunk-PY4KJPYU.js +9 -0
  137. package/dist/chunk-PY4KJPYU.js.map +1 -0
  138. package/dist/chunk-PZ5AY32C.js +10 -0
  139. package/dist/{chunk-DE6GKS6G.js → chunk-Q7SS3IME.js} +50 -9
  140. package/dist/chunk-Q7SS3IME.js.map +1 -0
  141. package/dist/chunk-QHJW5EXU.js +54 -0
  142. package/dist/chunk-QHJW5EXU.js.map +1 -0
  143. package/dist/{chunk-NONAAENK.js → chunk-RUEKROOS.js} +11 -4
  144. package/dist/chunk-RUEKROOS.js.map +1 -0
  145. package/dist/chunk-RUIMKQTA.js +23 -0
  146. package/dist/chunk-RUIMKQTA.js.map +1 -0
  147. package/dist/{chunk-TFBP23BX.js → chunk-SKF73JOP.js} +66 -7
  148. package/dist/chunk-SKF73JOP.js.map +1 -0
  149. package/dist/chunk-SM3AVUHC.js +42 -0
  150. package/dist/chunk-SM3AVUHC.js.map +1 -0
  151. package/dist/{chunk-ML236QKC.js → chunk-SMXWYP24.js} +5 -5
  152. package/dist/chunk-SMXWYP24.js.map +1 -0
  153. package/dist/chunk-SRB2XEWB.js +148 -0
  154. package/dist/chunk-SRB2XEWB.js.map +1 -0
  155. package/dist/chunk-SVLR4POP.js +64 -0
  156. package/dist/chunk-SVLR4POP.js.map +1 -0
  157. package/dist/chunk-TA66UMI4.js +123 -0
  158. package/dist/chunk-TA66UMI4.js.map +1 -0
  159. package/dist/chunk-TEILUWOI.js +664 -0
  160. package/dist/chunk-TEILUWOI.js.map +1 -0
  161. package/dist/chunk-TJYQIGAP.js +82 -0
  162. package/dist/chunk-TJYQIGAP.js.map +1 -0
  163. package/dist/{chunk-H2X3ISXG.js → chunk-UAG5KWVA.js} +7 -7
  164. package/dist/chunk-UAG5KWVA.js.map +1 -0
  165. package/dist/chunk-UDRIWL7A.js +382 -0
  166. package/dist/chunk-UDRIWL7A.js.map +1 -0
  167. package/dist/{chunk-2GLDA55J.js → chunk-UIU2THRG.js} +498 -133
  168. package/dist/chunk-UIU2THRG.js.map +1 -0
  169. package/dist/{chunk-3YPCK6JX.js → chunk-UPJNJGGA.js} +165 -423
  170. package/dist/chunk-UPJNJGGA.js.map +1 -0
  171. package/dist/chunk-UV5MFVO3.js +21 -0
  172. package/dist/chunk-UV5MFVO3.js.map +1 -0
  173. package/dist/{chunk-2WUSG3IT.js → chunk-V7RWQRG7.js} +5 -5
  174. package/dist/chunk-V7RWQRG7.js.map +1 -0
  175. package/dist/{chunk-VTKGMEPP.js → chunk-VCTFO5CO.js} +13 -3
  176. package/dist/chunk-VCTFO5CO.js.map +1 -0
  177. package/dist/{chunk-5T22KDPN.js → chunk-VFQGRQIH.js} +8 -8
  178. package/dist/chunk-VFQGRQIH.js.map +1 -0
  179. package/dist/{chunk-2QR2PQTT.js → chunk-VQNJ7UZL.js} +5 -3
  180. package/dist/chunk-VQNJ7UZL.js.map +1 -0
  181. package/dist/{chunk-DONMZAD2.js → chunk-WWGT2MDV.js} +43 -165
  182. package/dist/chunk-WWGT2MDV.js.map +1 -0
  183. package/dist/{chunk-EMIGCR7X.js → chunk-WXSYDNBT.js} +2 -2
  184. package/dist/chunk-WXSYDNBT.js.map +1 -0
  185. package/dist/chunk-WYSO2NIH.js +30 -0
  186. package/dist/chunk-WYSO2NIH.js.map +1 -0
  187. package/dist/chunk-XXYIOFUB.js +164 -0
  188. package/dist/chunk-XXYIOFUB.js.map +1 -0
  189. package/dist/{chunk-3BFJOWSU.js → chunk-Y22T3KQE.js} +35 -7
  190. package/dist/chunk-Y22T3KQE.js.map +1 -0
  191. package/dist/{chunk-A3JMGXPG.js → chunk-YMUGBZN2.js} +2 -2
  192. package/dist/chunk-YMUGBZN2.js.map +1 -0
  193. package/dist/{chunk-I5FOWO4J.js → chunk-ZCGAHGUS.js} +52 -73
  194. package/dist/chunk-ZCGAHGUS.js.map +1 -0
  195. package/dist/{chunk-FZU343FL.js → chunk-ZJADGNYF.js} +2 -2
  196. package/dist/chunk-ZJADGNYF.js.map +1 -0
  197. package/dist/{chunk-B6PB7JLN.js → chunk-ZYUC53LT.js} +427 -6
  198. package/dist/chunk-ZYUC53LT.js.map +1 -0
  199. package/dist/collection-facade-GQAOGJP2.js +33 -0
  200. package/dist/consent/index.d.ts +5 -7
  201. package/dist/consent/index.js +7 -5
  202. package/dist/consent/index.js.map +1 -1
  203. package/dist/crdt/index.d.ts +6 -2
  204. package/dist/crdt/index.js +3 -2
  205. package/dist/crdt/index.js.map +1 -1
  206. package/dist/decrypt-partition-IHtxEnTi.d.ts +21 -0
  207. package/dist/delegation-UL5HKLER.js +19 -0
  208. package/dist/derivations/index.d.ts +7 -9
  209. package/dist/derivations/index.js +11 -6
  210. package/dist/describe/index.d.ts +1 -0
  211. package/dist/describe/index.js +1 -0
  212. package/dist/describe-aBkJR2sd.d.ts +131 -0
  213. package/dist/{dev-unlock-p3ysikWP.d.ts → dev-unlock-C9Ro3v_O.d.ts} +1 -1
  214. package/dist/discriminant-BN9REW3o.d.ts +60 -0
  215. package/dist/enclave-UL5LW66V.js +88 -0
  216. package/dist/executor-2FWQRLMG.js +15 -0
  217. package/dist/executor-QZ7BXICW.js +9 -0
  218. package/dist/executor-Z5ZLJVTV.js +9 -0
  219. package/dist/export-accessible-KRV5W4GH.js +17 -0
  220. package/dist/extract-partition-GLKBOXFQ.js +30 -0
  221. package/dist/{fanout-sidecar-OKPMMPLG.js → fanout-sidecar-GF3DJ6KR.js} +34 -14
  222. package/dist/fanout-sidecar-GF3DJ6KR.js.map +1 -0
  223. package/dist/forget/index.d.ts +36 -0
  224. package/dist/forget/index.js +19 -0
  225. package/dist/forget/index.js.map +1 -0
  226. package/dist/guards/index.d.ts +13 -9
  227. package/dist/guards/index.js +12 -5
  228. package/dist/{hash-BPsYPcv_.d.cts → hash-Cp5uwiox.d.ts} +5 -1
  229. package/dist/history/index.d.ts +6 -8
  230. package/dist/history/index.js +19 -12
  231. package/dist/history/index.js.map +1 -1
  232. package/dist/i18n/index.d.ts +5 -7
  233. package/dist/i18n/index.js +104 -15
  234. package/dist/i18n/index.js.map +1 -1
  235. package/dist/in/index.d.ts +5 -0
  236. package/dist/in/index.js +1 -0
  237. package/dist/in/index.js.map +1 -0
  238. package/dist/index-B9QdHytu.d.ts +123 -0
  239. package/dist/index-BF9_96A5.d.ts +123 -0
  240. package/dist/{types-DGU60JDt.d.ts → index-BzUo1B6n.d.ts} +16306 -8352
  241. package/dist/index.d.ts +1088 -450
  242. package/dist/index.js +1165 -293
  243. package/dist/index.js.map +1 -1
  244. package/dist/indexing/index.d.ts +6 -3
  245. package/dist/indexing/index.js +6 -5
  246. package/dist/indexing/index.js.map +1 -1
  247. package/dist/issue-Y6UVIR43.js +13 -0
  248. package/dist/issue-Y6UVIR43.js.map +1 -0
  249. package/dist/kernel/index.d.ts +32 -0
  250. package/dist/kernel/index.js +53 -0
  251. package/dist/kernel/index.js.map +1 -0
  252. package/dist/{ledger-TMRZYNVJ.js → ledger-RYI35CDS.js} +12 -9
  253. package/dist/ledger-RYI35CDS.js.map +1 -0
  254. package/dist/liberate-CRPZEV7O.js +18 -0
  255. package/dist/liberate-CRPZEV7O.js.map +1 -0
  256. package/dist/materialized-views/index.d.ts +6 -19
  257. package/dist/materialized-views/index.js +16 -12
  258. package/dist/mime-magic-CGhw37_E.d.ts +103 -0
  259. package/dist/noydb-367AM4HT.js +50 -0
  260. package/dist/noydb-367AM4HT.js.map +1 -0
  261. package/dist/on/index.d.ts +5 -0
  262. package/dist/on/index.js +11 -0
  263. package/dist/on/index.js.map +1 -0
  264. package/dist/overlay-views/index.d.ts +27 -11
  265. package/dist/overlay-views/index.js +7 -6
  266. package/dist/periods/index.d.ts +5 -7
  267. package/dist/periods/index.js +13 -9
  268. package/dist/pod/index.d.ts +63 -0
  269. package/dist/pod/index.js +61 -0
  270. package/dist/pod/index.js.map +1 -0
  271. package/dist/policy-IXK4FVXP.js +41 -0
  272. package/dist/policy-IXK4FVXP.js.map +1 -0
  273. package/dist/portability/index.d.ts +20 -0
  274. package/dist/portability/index.js +43 -0
  275. package/dist/portability/index.js.map +1 -0
  276. package/dist/{public-envelope-BW6OXORV.js → public-envelope-JHDQCPSX.js} +6 -5
  277. package/dist/public-envelope-JHDQCPSX.js.map +1 -0
  278. package/dist/query/index.d.ts +5 -3
  279. package/dist/query/index.js +21 -13
  280. package/dist/read-only-facade-5ADRJVTM.js +8 -0
  281. package/dist/read-only-facade-5ADRJVTM.js.map +1 -0
  282. package/dist/registry-45RJNWGU.js +9 -0
  283. package/dist/registry-45RJNWGU.js.map +1 -0
  284. package/dist/registry-5GRV5VXI.js +13 -0
  285. package/dist/registry-5GRV5VXI.js.map +1 -0
  286. package/dist/registry-VW6P6A3J.js +8 -0
  287. package/dist/registry-VW6P6A3J.js.map +1 -0
  288. package/dist/registry-WEUCHBO4.js +11 -0
  289. package/dist/registry-WEUCHBO4.js.map +1 -0
  290. package/dist/request-withdrawal-GBPH2FDY.js +25 -0
  291. package/dist/request-withdrawal-GBPH2FDY.js.map +1 -0
  292. package/dist/revoke-TUFRGI6S.js +18 -0
  293. package/dist/revoke-TUFRGI6S.js.map +1 -0
  294. package/dist/sealed-record/index.d.ts +69 -0
  295. package/dist/sealed-record/index.js +65 -0
  296. package/dist/sealed-record/index.js.map +1 -0
  297. package/dist/session/index.d.ts +6 -8
  298. package/dist/session/index.js +7 -5
  299. package/dist/session/index.js.map +1 -1
  300. package/dist/shadow/index.d.ts +5 -7
  301. package/dist/shadow/index.js +4 -3
  302. package/dist/shadow/index.js.map +1 -1
  303. package/dist/{signer-72QAUSVW.js → signer-PNKTBVF7.js} +6 -5
  304. package/dist/signer-PNKTBVF7.js.map +1 -0
  305. package/dist/snapshots/index.d.ts +16 -11
  306. package/dist/snapshots/index.js +49 -13
  307. package/dist/snapshots/index.js.map +1 -1
  308. package/dist/{stale-6ZDBTQT7.js → stale-3JWHNDIY.js} +3 -2
  309. package/dist/stale-3JWHNDIY.js.map +1 -0
  310. package/dist/store-coordination-provider-3I7XWZZK.js +142 -0
  311. package/dist/store-coordination-provider-3I7XWZZK.js.map +1 -0
  312. package/dist/subject-index-O75wKshW.d.ts +362 -0
  313. package/dist/sync/index.d.ts +4 -6
  314. package/dist/sync/index.js +7 -6
  315. package/dist/sync/index.js.map +1 -1
  316. package/dist/team/index.d.ts +5 -7
  317. package/dist/team/index.js +20 -16
  318. package/dist/tiers/index.d.ts +5 -0
  319. package/dist/tiers/index.js +33 -0
  320. package/dist/tiers/index.js.map +1 -0
  321. package/dist/to/index.d.ts +5 -0
  322. package/dist/to/index.js +17 -0
  323. package/dist/to/index.js.map +1 -0
  324. package/dist/transition-guard-C7ol6oPw.d.ts +165 -0
  325. package/dist/tx/index.d.ts +23 -9
  326. package/dist/tx/index.js +13 -8
  327. package/dist/tx/index.js.map +1 -1
  328. package/dist/ui/index.d.ts +1 -0
  329. package/dist/ui/index.js +1 -0
  330. package/dist/ui/index.js.map +1 -0
  331. package/dist/ulid-DRH25k3y.d.ts +66 -0
  332. package/dist/ulid-PTAIMDG4.js +10 -0
  333. package/dist/ulid-PTAIMDG4.js.map +1 -0
  334. package/dist/util/index.d.ts +2 -0
  335. package/dist/util/index.js +7 -2
  336. package/dist/util/index.js.map +1 -1
  337. package/dist/vault-diff-B5fYNBL7.d.ts +147 -0
  338. package/dist/with/index.d.ts +38 -0
  339. package/dist/with/index.js +25 -0
  340. package/dist/with/index.js.map +1 -0
  341. package/dist/{with-materialized-view-BiasFcYx.d.ts → with-materialized-view-6p0Fk8bL.d.ts} +1 -1
  342. package/dist/{with-overlayed-view-CQViuko_.d.ts → with-overlayed-view-BJ6mXGMd.d.ts} +2 -3
  343. package/dist/with-rollup-BvQo3ROo.d.ts +47 -0
  344. package/dist/withdraw-accessible-FFS46EOD.js +22 -0
  345. package/dist/withdraw-accessible-FFS46EOD.js.map +1 -0
  346. package/dist/zod-HAJM7LMS.js +14763 -0
  347. package/dist/zod-HAJM7LMS.js.map +1 -0
  348. package/package.json +121 -201
  349. package/dist/aggregate/index.cjs.map +0 -1
  350. package/dist/aggregate/index.d.cts +0 -38
  351. package/dist/attestation/index.cjs +0 -305
  352. package/dist/attestation/index.cjs.map +0 -1
  353. package/dist/attestation/index.d.cts +0 -52
  354. package/dist/blobs/index.cjs +0 -1480
  355. package/dist/blobs/index.cjs.map +0 -1
  356. package/dist/blobs/index.d.cts +0 -46
  357. package/dist/bundle/index.cjs +0 -19104
  358. package/dist/bundle/index.cjs.map +0 -1
  359. package/dist/bundle/index.d.cts +0 -176
  360. package/dist/chunk-22DWZL57.js.map +0 -1
  361. package/dist/chunk-2GLDA55J.js.map +0 -1
  362. package/dist/chunk-2QR2PQTT.js.map +0 -1
  363. package/dist/chunk-2WUSG3IT.js.map +0 -1
  364. package/dist/chunk-3BFJOWSU.js.map +0 -1
  365. package/dist/chunk-3YPCK6JX.js.map +0 -1
  366. package/dist/chunk-53XBRIRT.js.map +0 -1
  367. package/dist/chunk-5T22KDPN.js.map +0 -1
  368. package/dist/chunk-5XHKQ56N.js +0 -340
  369. package/dist/chunk-5XHKQ56N.js.map +0 -1
  370. package/dist/chunk-6774ZOQ7.js.map +0 -1
  371. package/dist/chunk-6STK5TQP.js +0 -139
  372. package/dist/chunk-6STK5TQP.js.map +0 -1
  373. package/dist/chunk-A3JMGXPG.js.map +0 -1
  374. package/dist/chunk-B6PB7JLN.js.map +0 -1
  375. package/dist/chunk-BVRYKATC.js.map +0 -1
  376. package/dist/chunk-DE6GKS6G.js.map +0 -1
  377. package/dist/chunk-DFMLEQZB.js.map +0 -1
  378. package/dist/chunk-DJHHA6XH.js.map +0 -1
  379. package/dist/chunk-DL3HWOQ5.js.map +0 -1
  380. package/dist/chunk-DONMZAD2.js.map +0 -1
  381. package/dist/chunk-EMIGCR7X.js.map +0 -1
  382. package/dist/chunk-F3GDRNUT.js.map +0 -1
  383. package/dist/chunk-FZU343FL.js.map +0 -1
  384. package/dist/chunk-H2X3ISXG.js.map +0 -1
  385. package/dist/chunk-HNRHLRDC.js.map +0 -1
  386. package/dist/chunk-I5FOWO4J.js.map +0 -1
  387. package/dist/chunk-J66GRPNH.js.map +0 -1
  388. package/dist/chunk-JWRVQKRZ.js.map +0 -1
  389. package/dist/chunk-K3DK3NU5.js.map +0 -1
  390. package/dist/chunk-ML236QKC.js.map +0 -1
  391. package/dist/chunk-NONAAENK.js.map +0 -1
  392. package/dist/chunk-O3VZPBZG.js.map +0 -1
  393. package/dist/chunk-OIF6LZUR.js.map +0 -1
  394. package/dist/chunk-OQ6PIGHA.js +0 -19
  395. package/dist/chunk-OQ6PIGHA.js.map +0 -1
  396. package/dist/chunk-PE2FR4J3.js.map +0 -1
  397. package/dist/chunk-PP6W64Y3.js +0 -275
  398. package/dist/chunk-PP6W64Y3.js.map +0 -1
  399. package/dist/chunk-PX35GA7L.js.map +0 -1
  400. package/dist/chunk-QEILDE6R.js +0 -793
  401. package/dist/chunk-QEILDE6R.js.map +0 -1
  402. package/dist/chunk-QODLLGQ7.js.map +0 -1
  403. package/dist/chunk-RAZ4OVLL.js +0 -51
  404. package/dist/chunk-RAZ4OVLL.js.map +0 -1
  405. package/dist/chunk-SYMWGEET.js.map +0 -1
  406. package/dist/chunk-T7JEBOGN.js.map +0 -1
  407. package/dist/chunk-TFBP23BX.js.map +0 -1
  408. package/dist/chunk-TV3YZ35S.js +0 -90
  409. package/dist/chunk-TV3YZ35S.js.map +0 -1
  410. package/dist/chunk-U26HQ6KJ.js.map +0 -1
  411. package/dist/chunk-UF3BUNQZ.js +0 -1
  412. package/dist/chunk-UMLVJTYV.js +0 -20
  413. package/dist/chunk-UMLVJTYV.js.map +0 -1
  414. package/dist/chunk-VTKGMEPP.js.map +0 -1
  415. package/dist/chunk-W6EQLGMB.js +0 -100
  416. package/dist/chunk-W6EQLGMB.js.map +0 -1
  417. package/dist/chunk-WIRRPTFH.js +0 -17
  418. package/dist/chunk-WIRRPTFH.js.map +0 -1
  419. package/dist/chunk-WPLVTJ5D.js.map +0 -1
  420. package/dist/chunk-XJFLDA7A.js.map +0 -1
  421. package/dist/chunk-Z6FNBOTC.js.map +0 -1
  422. package/dist/chunk-ZYWZWG6G.js.map +0 -1
  423. package/dist/consent/index.cjs +0 -204
  424. package/dist/consent/index.cjs.map +0 -1
  425. package/dist/consent/index.d.cts +0 -25
  426. package/dist/crdt/index.cjs +0 -152
  427. package/dist/crdt/index.cjs.map +0 -1
  428. package/dist/crdt/index.d.cts +0 -30
  429. package/dist/crypto-HTZ4FJOP.js +0 -44
  430. package/dist/delegation-RI54P6I5.js +0 -17
  431. package/dist/derivations/index.cjs +0 -351
  432. package/dist/derivations/index.cjs.map +0 -1
  433. package/dist/derivations/index.d.cts +0 -72
  434. package/dist/dev-unlock-M4VAWNq_.d.cts +0 -263
  435. package/dist/executor-5PNY7LGW.js +0 -8
  436. package/dist/executor-B4QIYGZX.js +0 -8
  437. package/dist/executor-BWXXDQ7K.js +0 -11
  438. package/dist/fanout-sidecar-OKPMMPLG.js.map +0 -1
  439. package/dist/guards/index.cjs +0 -322
  440. package/dist/guards/index.cjs.map +0 -1
  441. package/dist/guards/index.d.cts +0 -31
  442. package/dist/hash-C1GtiOhR.d.ts +0 -63
  443. package/dist/history/index.cjs +0 -1222
  444. package/dist/history/index.cjs.map +0 -1
  445. package/dist/history/index.d.cts +0 -63
  446. package/dist/i18n/index.cjs +0 -1100
  447. package/dist/i18n/index.cjs.map +0 -1
  448. package/dist/i18n/index.d.cts +0 -39
  449. package/dist/index-4fBVt8j9.d.cts +0 -2387
  450. package/dist/index-D8I_pyJD.d.ts +0 -2387
  451. package/dist/index.cjs +0 -24334
  452. package/dist/index.cjs.map +0 -1
  453. package/dist/index.d.cts +0 -776
  454. package/dist/indexing/index.cjs +0 -742
  455. package/dist/indexing/index.cjs.map +0 -1
  456. package/dist/indexing/index.d.cts +0 -36
  457. package/dist/issue-VGDPP4B5.js +0 -12
  458. package/dist/lazy-builder-7tIpFyWN.d.ts +0 -304
  459. package/dist/lazy-builder-wY4pMCEe.d.cts +0 -304
  460. package/dist/materialized-views/index.cjs +0 -854
  461. package/dist/materialized-views/index.cjs.map +0 -1
  462. package/dist/materialized-views/index.d.cts +0 -186
  463. package/dist/mime-magic-CBBSOkjm.d.cts +0 -50
  464. package/dist/mime-magic-CBBSOkjm.d.ts +0 -50
  465. package/dist/noydb-LZBH3XDK.js +0 -34
  466. package/dist/overlay-views/index.cjs +0 -359
  467. package/dist/overlay-views/index.cjs.map +0 -1
  468. package/dist/overlay-views/index.d.cts +0 -82
  469. package/dist/periods/index.cjs +0 -1041
  470. package/dist/periods/index.cjs.map +0 -1
  471. package/dist/periods/index.d.cts +0 -22
  472. package/dist/predicate-BSAGEyu5.d.cts +0 -209
  473. package/dist/predicate-BSAGEyu5.d.ts +0 -209
  474. package/dist/query/index.cjs +0 -2375
  475. package/dist/query/index.cjs.map +0 -1
  476. package/dist/query/index.d.cts +0 -3
  477. package/dist/read-only-facade-ITU6L7BL.js +0 -7
  478. package/dist/registry-3QP3YKQS.js +0 -8
  479. package/dist/registry-DKEXOJVO.js +0 -7
  480. package/dist/registry-OJIOSBV6.js +0 -10
  481. package/dist/registry-USRVT6YF.js +0 -8
  482. package/dist/revoke-JCC7N56X.js +0 -17
  483. package/dist/session/index.cjs +0 -495
  484. package/dist/session/index.cjs.map +0 -1
  485. package/dist/session/index.d.cts +0 -46
  486. package/dist/shadow/index.cjs +0 -133
  487. package/dist/shadow/index.cjs.map +0 -1
  488. package/dist/shadow/index.d.cts +0 -17
  489. package/dist/snapshots/index.cjs +0 -903
  490. package/dist/snapshots/index.cjs.map +0 -1
  491. package/dist/snapshots/index.d.cts +0 -21
  492. package/dist/store/index.cjs +0 -1083
  493. package/dist/store/index.cjs.map +0 -1
  494. package/dist/store/index.d.cts +0 -492
  495. package/dist/store/index.d.ts +0 -492
  496. package/dist/store/index.js +0 -37
  497. package/dist/strategy-BSxFXGzb.d.cts +0 -110
  498. package/dist/strategy-BSxFXGzb.d.ts +0 -110
  499. package/dist/strategy-DSTrsZ8t.d.cts +0 -601
  500. package/dist/strategy-DSTrsZ8t.d.ts +0 -601
  501. package/dist/sync/index.cjs +0 -1062
  502. package/dist/sync/index.cjs.map +0 -1
  503. package/dist/sync/index.d.cts +0 -43
  504. package/dist/team/index.cjs +0 -2798
  505. package/dist/team/index.cjs.map +0 -1
  506. package/dist/team/index.d.cts +0 -118
  507. package/dist/tx/index.cjs +0 -544
  508. package/dist/tx/index.cjs.map +0 -1
  509. package/dist/tx/index.d.cts +0 -21
  510. package/dist/types-DjunxzJa.d.cts +0 -12776
  511. package/dist/ulid-COREQ2RQ.js +0 -9
  512. package/dist/ulid-DPeuPgi3.d.cts +0 -603
  513. package/dist/util/index.cjs +0 -230
  514. package/dist/util/index.cjs.map +0 -1
  515. package/dist/util/index.d.cts +0 -77
  516. package/dist/with-derivation-Df0kMlED.d.cts +0 -13
  517. package/dist/with-derivation-DfOpKjFw.d.ts +0 -13
  518. package/dist/with-guard-0KksDtSR.d.ts +0 -18
  519. package/dist/with-guard-C6W5RVrH.d.cts +0 -18
  520. package/dist/with-materialized-view-BmDKyHrm.d.cts +0 -27
  521. package/dist/with-overlayed-view-CA66vhHz.d.cts +0 -13
  522. /package/dist/{store → adapter}/index.js.map +0 -0
  523. /package/dist/{chunk-UF3BUNQZ.js.map → api-RW3KP7WU.js.map} +0 -0
  524. /package/dist/{crypto-HTZ4FJOP.js.map → as/index.js.map} +0 -0
  525. /package/dist/{delegation-RI54P6I5.js.map → at/index.js.map} +0 -0
  526. /package/dist/{executor-5PNY7LGW.js.map → by/index.js.map} +0 -0
  527. /package/dist/{executor-B4QIYGZX.js.map → cargo/index.js.map} +0 -0
  528. /package/dist/{executor-BWXXDQ7K.js.map → chunk-BGIZAFY7.js.map} +0 -0
  529. /package/dist/{issue-VGDPP4B5.js.map → chunk-CHFZDSE4.js.map} +0 -0
  530. /package/dist/{ledger-TMRZYNVJ.js.map → chunk-GHVIKOHT.js.map} +0 -0
  531. /package/dist/{noydb-LZBH3XDK.js.map → chunk-K2WCO3NX.js.map} +0 -0
  532. /package/dist/{public-envelope-BW6OXORV.js.map → chunk-PZ5AY32C.js.map} +0 -0
  533. /package/dist/{read-only-facade-ITU6L7BL.js.map → collection-facade-GQAOGJP2.js.map} +0 -0
  534. /package/dist/{registry-3QP3YKQS.js.map → delegation-UL5HKLER.js.map} +0 -0
  535. /package/dist/{registry-DKEXOJVO.js.map → describe/index.js.map} +0 -0
  536. /package/dist/{registry-OJIOSBV6.js.map → enclave-UL5LW66V.js.map} +0 -0
  537. /package/dist/{registry-USRVT6YF.js.map → executor-2FWQRLMG.js.map} +0 -0
  538. /package/dist/{revoke-JCC7N56X.js.map → executor-QZ7BXICW.js.map} +0 -0
  539. /package/dist/{signer-72QAUSVW.js.map → executor-Z5ZLJVTV.js.map} +0 -0
  540. /package/dist/{stale-6ZDBTQT7.js.map → export-accessible-KRV5W4GH.js.map} +0 -0
  541. /package/dist/{ulid-COREQ2RQ.js.map → extract-partition-GLKBOXFQ.js.map} +0 -0
@@ -1,45 +1,153 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ import {
2
+ MoneyUnsupportedError,
3
+ formatScaledInt,
4
+ parseToScaledInt,
5
+ readPath,
6
+ scaleForCurrency
7
+ } from "./chunk-M2YKN37S.js";
8
+ import {
9
+ applyI18nLocale
10
+ } from "./chunk-5LUY7UTV.js";
11
+ import {
12
+ GroupCardinalityError
13
+ } from "./chunk-ZYUC53LT.js";
14
+
15
+ // src/with-lookup/aggregate/reducers.ts
16
+ function count(opts) {
17
+ const _seed = opts?.seed;
18
+ void _seed;
19
+ return {
20
+ op: "count",
21
+ init: () => 0,
22
+ step: (state) => state + 1,
23
+ remove: (state) => state - 1,
24
+ finalize: (state) => state,
25
+ merge: (a, b) => a + b
26
+ };
27
+ }
28
+ function sum(field, opts) {
29
+ const _seed = opts?.seed;
30
+ void _seed;
31
+ return {
32
+ op: "sum",
33
+ field,
34
+ // Money-only metadata, read by `wrapMoneyReducers`. No effect on a
35
+ // generic numeric sum.
36
+ ...opts?.convertTo !== void 0 ? { convertTo: opts.convertTo } : {},
37
+ ...opts?.fx !== void 0 ? { fx: opts.fx } : {},
38
+ init: () => 0,
39
+ step: (state, record) => state + readNumber(record, field),
40
+ remove: (state, record) => state - readNumber(record, field),
41
+ finalize: (state) => state,
42
+ merge: (a, b) => a + b
43
+ };
44
+ }
45
+ function avg(field, opts) {
46
+ const _seed = opts?.seed;
47
+ void _seed;
48
+ return {
49
+ op: "avg",
50
+ field,
51
+ init: () => ({ sum: 0, count: 0 }),
52
+ step: (state, record) => ({
53
+ sum: state.sum + readNumber(record, field),
54
+ count: state.count + 1
55
+ }),
56
+ remove: (state, record) => ({
57
+ sum: state.sum - readNumber(record, field),
58
+ count: state.count - 1
59
+ }),
60
+ finalize: (state) => state.count === 0 ? null : state.sum / state.count,
61
+ merge: (a, b) => ({ sum: a.sum + b.sum, count: a.count + b.count })
62
+ };
63
+ }
64
+ function pushValue(state, value) {
65
+ return { values: [...state.values, value] };
66
+ }
67
+ function removeValue(state, value) {
68
+ const idx = state.values.indexOf(value);
69
+ if (idx < 0) return state;
70
+ const next = state.values.slice();
71
+ next.splice(idx, 1);
72
+ return { values: next };
73
+ }
74
+ function min(field, opts) {
75
+ const _seed = opts?.seed;
76
+ void _seed;
77
+ return {
78
+ op: "min",
79
+ field,
80
+ init: () => ({ values: [] }),
81
+ step: (state, record) => pushValue(state, readNumber(record, field)),
82
+ remove: (state, record) => removeValue(state, readNumber(record, field)),
83
+ finalize: (state) => {
84
+ if (state.values.length === 0) return null;
85
+ let out = state.values[0];
86
+ for (let i = 1; i < state.values.length; i++) {
87
+ const v = state.values[i];
88
+ if (v < out) out = v;
89
+ }
90
+ return out;
91
+ },
92
+ merge: (a, b) => ({ values: [...a.values, ...b.values] })
93
+ };
94
+ }
95
+ function max(field, opts) {
96
+ const _seed = opts?.seed;
97
+ void _seed;
98
+ return {
99
+ op: "max",
100
+ field,
101
+ init: () => ({ values: [] }),
102
+ step: (state, record) => pushValue(state, readNumber(record, field)),
103
+ remove: (state, record) => removeValue(state, readNumber(record, field)),
104
+ finalize: (state) => {
105
+ if (state.values.length === 0) return null;
106
+ let out = state.values[0];
107
+ for (let i = 1; i < state.values.length; i++) {
108
+ const v = state.values[i];
109
+ if (v > out) out = v;
110
+ }
111
+ return out;
112
+ },
113
+ merge: (a, b) => ({ values: [...a.values, ...b.values] })
114
+ };
115
+ }
116
+ function moneySum(field, opts) {
117
+ return sum(field, opts);
118
+ }
119
+ function moneyMin(field, opts) {
120
+ return min(field, opts);
121
+ }
122
+ function moneyMax(field, opts) {
123
+ return max(field, opts);
124
+ }
125
+ var reducerBuilder = {
126
+ count,
127
+ // The generic F parameter on sum/min/max in the interface is type-only; the
128
+ // standalone factories are plain `(field: string)` functions. With M=never the
129
+ // conditional return collapses to the numeric branch, matching the factories'
130
+ // return type, but TypeScript cannot verify that collapse for a generic method
131
+ // signature — so each factory is cast directly to the method's type.
132
+ sum,
133
+ avg,
134
+ min,
135
+ max,
136
+ moneySum,
137
+ moneyMin,
138
+ moneyMax
9
139
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
140
+ function readNumber(record, field) {
141
+ const value = readPath(record, field);
142
+ if (typeof value === "object" && value !== null && "amount" in value && "currency" in value) {
143
+ throw new Error(
144
+ `aggregate: field "${field}" holds a money value but was not money-aware \u2014 declare it in the collection's moneyFields so sum/min/max stay exact`
145
+ );
15
146
  }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/aggregate/index.ts
21
- var aggregate_exports = {};
22
- __export(aggregate_exports, {
23
- Aggregation: () => Aggregation,
24
- GROUPBY_MAX_CARDINALITY: () => GROUPBY_MAX_CARDINALITY,
25
- GROUPBY_WARN_CARDINALITY: () => GROUPBY_WARN_CARDINALITY,
26
- GroupedAggregation: () => GroupedAggregation,
27
- GroupedQuery: () => GroupedQuery,
28
- GroupedQueryN: () => GroupedQueryN,
29
- avg: () => avg,
30
- buildLiveAggregation: () => buildLiveAggregation,
31
- count: () => count,
32
- groupAndReduce: () => groupAndReduce,
33
- max: () => max,
34
- min: () => min,
35
- reduceRecords: () => reduceRecords,
36
- resetGroupByWarnings: () => resetGroupByWarnings,
37
- sum: () => sum,
38
- withAggregate: () => withAggregate
39
- });
40
- module.exports = __toCommonJS(aggregate_exports);
147
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
148
+ }
41
149
 
42
- // src/aggregate/aggregation.ts
150
+ // src/with-lookup/aggregate/aggregation.ts
43
151
  function reduceRecords(records, spec) {
44
152
  const state = {};
45
153
  for (const key of Object.keys(spec)) {
@@ -162,22 +270,7 @@ function buildLiveAggregation(recompute, upstreams) {
162
270
  return new LiveAggregationImpl(recompute, upstreams);
163
271
  }
164
272
 
165
- // src/query/predicate.ts
166
- function readPath(record, path) {
167
- if (record === null || record === void 0) return void 0;
168
- if (!path.includes(".")) {
169
- return record[path];
170
- }
171
- const segments = path.split(".");
172
- let cursor = record;
173
- for (const segment of segments) {
174
- if (cursor === null || cursor === void 0) return void 0;
175
- cursor = cursor[segment];
176
- }
177
- return cursor;
178
- }
179
-
180
- // src/aggregate/canonical-key.ts
273
+ // src/with-lookup/aggregate/canonical-key.ts
181
274
  function canonicalGroupKey(fields, row) {
182
275
  const sorted = [...fields].sort();
183
276
  const parts = [];
@@ -189,36 +282,192 @@ function canonicalGroupKey(fields, row) {
189
282
  return parts.join("|");
190
283
  }
191
284
 
192
- // src/errors.ts
193
- var NoydbError = class extends Error {
194
- /** Machine-readable error code. Stable across library versions. */
195
- code;
196
- constructor(code, message) {
197
- super(message);
198
- this.name = "NoydbError";
199
- this.code = code;
285
+ // src/with-shape/money/money-reducer.ts
286
+ function toScaledIntFromAny(v, scale) {
287
+ if (typeof v === "bigint") return v;
288
+ if (typeof v === "number") {
289
+ const r = parseToScaledInt(v, scale);
290
+ return r.ok ? r.value : null;
200
291
  }
201
- };
202
- var GroupCardinalityError = class extends NoydbError {
203
- /** The field being grouped on. */
204
- field;
205
- /** Observed number of distinct groups at the moment the cap tripped. */
206
- cardinality;
207
- /** The cap that was exceeded. */
208
- maxGroups;
209
- constructor(field, cardinality, maxGroups) {
210
- super(
211
- "GROUP_CARDINALITY",
212
- `.groupBy("${field}") produced ${cardinality} distinct groups, exceeding the ${maxGroups}-group ceiling. This is almost always a query mistake \u2014 grouping on a high-uniqueness field like "id" or "createdAt" produces one bucket per record. Narrow the query with .where() before grouping, or group on a lower-cardinality field (status, category, clientId). If you genuinely need high-cardinality grouping, file an issue with your use case.`
213
- );
214
- this.name = "GroupCardinalityError";
215
- this.field = field;
216
- this.cardinality = cardinality;
217
- this.maxGroups = maxGroups;
292
+ if (typeof v === "string") {
293
+ if (!v.includes(".")) {
294
+ try {
295
+ return BigInt(v);
296
+ } catch {
297
+ return null;
298
+ }
299
+ }
300
+ const r = parseToScaledInt(v, scale);
301
+ return r.ok ? r.value : null;
218
302
  }
219
- };
303
+ return null;
304
+ }
305
+ function readMoney(record, field, desc) {
306
+ const raw = readPath(record, field);
307
+ if (raw === null || raw === void 0) return null;
308
+ if (desc.mode === "fixed") {
309
+ const cur = desc.fixedCurrency;
310
+ const value2 = toScaledIntFromAny(raw, desc.scaleFor(cur));
311
+ return value2 === null ? null : { currency: cur, value: value2 };
312
+ }
313
+ if (typeof raw !== "object") return null;
314
+ const o = raw;
315
+ if (typeof o.currency !== "string") return null;
316
+ const scale = desc.allows(o.currency) ? desc.scaleFor(o.currency) : 0;
317
+ const value = toScaledIntFromAny(o.amount, scale);
318
+ return value === null ? null : { currency: o.currency, value };
319
+ }
320
+ function targetScaleFor(desc, currency) {
321
+ if (desc.allows(currency)) return desc.scaleFor(currency);
322
+ const s = scaleForCurrency(currency);
323
+ if (s === null) {
324
+ throw new Error(`money: cannot determine scale for conversion target "${currency}"`);
325
+ }
326
+ return s;
327
+ }
328
+ function parseRate(rate) {
329
+ const s = String(rate).trim();
330
+ const neg = s.startsWith("-");
331
+ const body = neg ? s.slice(1) : s;
332
+ const dot = body.indexOf(".");
333
+ const intPart = dot === -1 ? body : body.slice(0, dot);
334
+ const fracPart = dot === -1 ? "" : body.slice(dot + 1);
335
+ const int = BigInt((intPart === "" ? "0" : intPart) + fracPart);
336
+ return { int: neg ? -int : int, scale: fracPart.length };
337
+ }
338
+ function divRoundHalfEven(n, d) {
339
+ const q = n / d;
340
+ const r = n % d;
341
+ const twiceR = (r < 0n ? -r : r) * 2n;
342
+ if (twiceR < d) return q;
343
+ if (twiceR > d) return q + (n < 0n ? -1n : 1n);
344
+ return q % 2n === 0n ? q : q + (n < 0n ? -1n : 1n);
345
+ }
346
+ function convertScaled(value, srcScale, rate, targetScale) {
347
+ const { int: rateInt, scale: rateScale } = parseRate(rate);
348
+ const product = value * rateInt;
349
+ const curScale = srcScale + rateScale;
350
+ if (curScale === targetScale) return product;
351
+ if (curScale < targetScale) return product * 10n ** BigInt(targetScale - curScale);
352
+ return divRoundHalfEven(product, 10n ** BigInt(curScale - targetScale));
353
+ }
354
+ function finalizeSum(state, desc, convertTo, fx) {
355
+ if (convertTo !== void 0) {
356
+ if (fx === void 0) {
357
+ throw new Error(`money: sum convertTo "${convertTo}" requires an fx rate map`);
358
+ }
359
+ const targetScale = targetScaleFor(desc, convertTo);
360
+ let total = 0n;
361
+ for (const [cur, v] of state) {
362
+ if (cur === convertTo) {
363
+ total += convertScaled(v, desc.scaleFor(cur), 1, targetScale);
364
+ continue;
365
+ }
366
+ const rate = fx[`${cur}->${convertTo}`];
367
+ if (rate === void 0) {
368
+ throw new Error(`money: no fx rate for "${cur}->${convertTo}"`);
369
+ }
370
+ total += convertScaled(v, desc.scaleFor(cur), rate, targetScale);
371
+ }
372
+ return formatScaledInt(total, targetScale);
373
+ }
374
+ if (desc.mode === "fixed") {
375
+ const cur = desc.fixedCurrency;
376
+ return formatScaledInt(state.get(cur) ?? 0n, desc.scaleFor(cur));
377
+ }
378
+ const out = {};
379
+ for (const [cur, v] of state) out[cur] = formatScaledInt(v, desc.scaleFor(cur));
380
+ return out;
381
+ }
382
+ function moneySumReducer(field, desc, convertTo, fx) {
383
+ return {
384
+ op: "sum",
385
+ field,
386
+ init: () => /* @__PURE__ */ new Map(),
387
+ step: (state, record) => {
388
+ const m = readMoney(record, field, desc);
389
+ if (m) state.set(m.currency, (state.get(m.currency) ?? 0n) + m.value);
390
+ return state;
391
+ },
392
+ remove: (state, record) => {
393
+ const m = readMoney(record, field, desc);
394
+ if (m) state.set(m.currency, (state.get(m.currency) ?? 0n) - m.value);
395
+ return state;
396
+ },
397
+ finalize: (state) => finalizeSum(state, desc, convertTo, fx)
398
+ };
399
+ }
400
+ function extremum(values, op) {
401
+ let out = values[0];
402
+ for (let i = 1; i < values.length; i++) {
403
+ const v = values[i];
404
+ if (op === "min" ? v < out : v > out) out = v;
405
+ }
406
+ return out;
407
+ }
408
+ function moneyMinMaxReducer(op, field, desc) {
409
+ return {
410
+ op,
411
+ field,
412
+ init: () => /* @__PURE__ */ new Map(),
413
+ step: (state, record) => {
414
+ const m = readMoney(record, field, desc);
415
+ if (m) {
416
+ const arr = state.get(m.currency);
417
+ if (arr) arr.push(m.value);
418
+ else state.set(m.currency, [m.value]);
419
+ }
420
+ return state;
421
+ },
422
+ remove: (state, record) => {
423
+ const m = readMoney(record, field, desc);
424
+ if (m) {
425
+ const arr = state.get(m.currency);
426
+ if (arr) {
427
+ const idx = arr.indexOf(m.value);
428
+ if (idx >= 0) arr.splice(idx, 1);
429
+ }
430
+ }
431
+ return state;
432
+ },
433
+ finalize: (state) => {
434
+ if (desc.mode === "fixed") {
435
+ const cur = desc.fixedCurrency;
436
+ const arr = state.get(cur);
437
+ if (!arr || arr.length === 0) return null;
438
+ return formatScaledInt(extremum(arr, op), desc.scaleFor(cur));
439
+ }
440
+ const out = {};
441
+ for (const [cur, arr] of state) {
442
+ if (arr.length > 0) out[cur] = formatScaledInt(extremum(arr, op), desc.scaleFor(cur));
443
+ }
444
+ return out;
445
+ }
446
+ };
447
+ }
448
+ function wrapMoneyReducers(spec, moneyFields) {
449
+ let changed = false;
450
+ const out = {};
451
+ for (const [key, reducer] of Object.entries(spec)) {
452
+ const field = reducer.field;
453
+ const desc = field ? moneyFields[field] : void 0;
454
+ if (desc && reducer.op === "avg") {
455
+ throw new MoneyUnsupportedError(
456
+ field,
457
+ `avg() is not supported on money field "${field}" in v1 \u2014 use sum() and count() and divide at the boundary.`
458
+ );
459
+ }
460
+ if (desc && (reducer.op === "sum" || reducer.op === "min" || reducer.op === "max")) {
461
+ changed = true;
462
+ out[key] = reducer.op === "sum" ? moneySumReducer(field, desc, reducer.convertTo, reducer.fx) : moneyMinMaxReducer(reducer.op, field, desc);
463
+ } else {
464
+ out[key] = reducer;
465
+ }
466
+ }
467
+ return changed ? out : spec;
468
+ }
220
469
 
221
- // src/aggregate/groupby.ts
470
+ // src/with-lookup/aggregate/groupby.ts
222
471
  var GROUPBY_WARN_CARDINALITY = 1e4;
223
472
  var GROUPBY_MAX_CARDINALITY = 1e5;
224
473
  var warnedCardinalityFields = /* @__PURE__ */ new Set();
@@ -235,15 +484,17 @@ function resetGroupByWarnings() {
235
484
  warnedCardinalityFields.clear();
236
485
  }
237
486
  var GroupedQueryBase = class {
238
- constructor(executeRecords, fieldOrFields, upstreams, dictLabelResolver) {
487
+ constructor(executeRecords, fieldOrFields, upstreams, dictLabelResolver, moneyFields) {
239
488
  this.executeRecords = executeRecords;
240
489
  this.upstreams = upstreams;
241
490
  this.dictLabelResolver = dictLabelResolver;
491
+ this.moneyFields = moneyFields;
242
492
  this.fields = typeof fieldOrFields === "string" ? [fieldOrFields] : [...fieldOrFields];
243
493
  }
244
494
  executeRecords;
245
495
  upstreams;
246
496
  dictLabelResolver;
497
+ moneyFields;
247
498
  /**
248
499
  * Field set this grouped query buckets on. Stored in declaration
249
500
  * order — the same order is preserved on every result row by
@@ -251,40 +502,43 @@ var GroupedQueryBase = class {
251
502
  * `[field]`.
252
503
  */
253
504
  fields;
505
+ /** Apply money-aware reducer rewriting when money fields are declared. */
506
+ wrapSpec(spec) {
507
+ return this.moneyFields ? wrapMoneyReducers(spec, this.moneyFields) : spec;
508
+ }
254
509
  };
255
510
  var GroupedQuery = class extends GroupedQueryBase {
256
- /**
257
- * Build a grouped aggregation. Returns a `GroupedAggregation`
258
- * with `.run()`, `.runAsync()`, and `.live()` terminals — same shape
259
- * as the non-grouped `.aggregate()` wrapper, just with an array
260
- * result (one row per bucket) instead of a single reduced object.
261
- */
262
- aggregate(spec) {
511
+ aggregate(specOrBuild) {
512
+ const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
263
513
  return new GroupedAggregation(
264
514
  this.executeRecords,
265
515
  this.fields,
266
- spec,
516
+ this.wrapSpec(spec),
267
517
  this.upstreams,
268
518
  this.dictLabelResolver
269
519
  );
270
520
  }
271
521
  };
272
522
  var GroupedQueryN = class extends GroupedQueryBase {
273
- aggregate(spec) {
523
+ aggregate(specOrBuild) {
524
+ const spec = typeof specOrBuild === "function" ? specOrBuild(reducerBuilder) : specOrBuild;
274
525
  return new GroupedAggregation(
275
526
  this.executeRecords,
276
527
  this.fields,
277
- spec,
528
+ this.wrapSpec(spec),
278
529
  this.upstreams,
279
530
  this.dictLabelResolver
280
531
  );
281
532
  }
282
533
  };
283
- function groupAndReduce(records, fieldOrFields, spec) {
534
+ function groupAndReduce(records, fieldOrFields, spec, moneyFields) {
284
535
  const fields = typeof fieldOrFields === "string" ? [fieldOrFields] : fieldOrFields;
285
536
  if (fields.length === 0) {
286
537
  throw new Error(".groupBy() requires at least one field");
287
538
  }
539
+ if (moneyFields) {
540
+ spec = wrapMoneyReducers(spec, moneyFields);
541
+ }
288
542
  const buckets = /* @__PURE__ */ new Map();
289
543
  const fieldLabel = fields.length === 1 ? fields[0] : `[${fields.join(", ")}]`;
290
544
  for (const record of records) {
@@ -346,9 +600,29 @@ var GroupedAggregation = class {
346
600
  upstreams;
347
601
  dictLabelResolver;
348
602
  fields;
349
- /** Execute the query, group, reduce, and return an array of rows. */
350
- run() {
351
- return groupAndReduce(this.executeRecords(), this.fields, this.spec);
603
+ /**
604
+ * Execute the query, group, reduce, and return an array of rows.
605
+ *
606
+ * `opts` (query-form MV grouping): when a `locale` + `i18nFields` are
607
+ * given, the declared group-key `i18nText` fields are resolved to that locale
608
+ * at the `mv` layer BEFORE bucketing — so an i18n group key is a stable string
609
+ * instead of a raw `{locale}` map. The MV executor passes the MV's
610
+ * `i18nLocale`/`i18nFields`; ordinary `.run()` callers pass nothing and are
611
+ * unaffected.
612
+ */
613
+ run(opts) {
614
+ let records = this.executeRecords();
615
+ if (opts?.locale !== void 0 && opts.i18nFields !== void 0) {
616
+ const groupI18n = {};
617
+ for (const f of this.fields) {
618
+ const d = opts.i18nFields[f];
619
+ if (d !== void 0) groupI18n[f] = d;
620
+ }
621
+ if (Object.keys(groupI18n).length > 0) {
622
+ records = records.map((r) => applyI18nLocale(r, groupI18n, opts.locale, void 0, "mv"));
623
+ }
624
+ }
625
+ return groupAndReduce(records, this.fields, this.spec);
352
626
  }
353
627
  /**
354
628
  * Execute the query, group, reduce, and resolve `<field>Label` for
@@ -402,130 +676,27 @@ var GroupedAggregation = class {
402
676
  }
403
677
  };
404
678
 
405
- // src/aggregate/active.ts
406
- function withAggregate() {
407
- return {
408
- aggregate(executeRecords, spec, upstreams) {
409
- return new Aggregation(executeRecords, spec, upstreams);
410
- },
411
- groupBy(executeRecords, field, upstreams, dictLabelResolver) {
412
- return new GroupedQuery(executeRecords, field, upstreams, dictLabelResolver);
413
- },
414
- groupByN(executeRecords, fields, upstreams) {
415
- return new GroupedQueryN(executeRecords, fields, upstreams);
416
- },
417
- async scanAggregate(iter, spec) {
418
- const collected = [];
419
- for await (const record of iter) collected.push(record);
420
- return reduceRecords(collected, spec);
421
- }
422
- };
423
- }
424
-
425
- // src/aggregate/reducers.ts
426
- function count(opts) {
427
- const _seed = opts?.seed;
428
- void _seed;
429
- return {
430
- init: () => 0,
431
- step: (state) => state + 1,
432
- remove: (state) => state - 1,
433
- finalize: (state) => state
434
- };
435
- }
436
- function sum(field, opts) {
437
- const _seed = opts?.seed;
438
- void _seed;
439
- return {
440
- init: () => 0,
441
- step: (state, record) => state + readNumber(record, field),
442
- remove: (state, record) => state - readNumber(record, field),
443
- finalize: (state) => state
444
- };
445
- }
446
- function avg(field, opts) {
447
- const _seed = opts?.seed;
448
- void _seed;
449
- return {
450
- init: () => ({ sum: 0, count: 0 }),
451
- step: (state, record) => ({
452
- sum: state.sum + readNumber(record, field),
453
- count: state.count + 1
454
- }),
455
- remove: (state, record) => ({
456
- sum: state.sum - readNumber(record, field),
457
- count: state.count - 1
458
- }),
459
- finalize: (state) => state.count === 0 ? null : state.sum / state.count
460
- };
461
- }
462
- function pushValue(state, value) {
463
- return { values: [...state.values, value] };
464
- }
465
- function removeValue(state, value) {
466
- const idx = state.values.indexOf(value);
467
- if (idx < 0) return state;
468
- const next = state.values.slice();
469
- next.splice(idx, 1);
470
- return { values: next };
471
- }
472
- function min(field, opts) {
473
- const _seed = opts?.seed;
474
- void _seed;
475
- return {
476
- init: () => ({ values: [] }),
477
- step: (state, record) => pushValue(state, readNumber(record, field)),
478
- remove: (state, record) => removeValue(state, readNumber(record, field)),
479
- finalize: (state) => {
480
- if (state.values.length === 0) return null;
481
- let out = state.values[0];
482
- for (let i = 1; i < state.values.length; i++) {
483
- const v = state.values[i];
484
- if (v < out) out = v;
485
- }
486
- return out;
487
- }
488
- };
489
- }
490
- function max(field, opts) {
491
- const _seed = opts?.seed;
492
- void _seed;
493
- return {
494
- init: () => ({ values: [] }),
495
- step: (state, record) => pushValue(state, readNumber(record, field)),
496
- remove: (state, record) => removeValue(state, readNumber(record, field)),
497
- finalize: (state) => {
498
- if (state.values.length === 0) return null;
499
- let out = state.values[0];
500
- for (let i = 1; i < state.values.length; i++) {
501
- const v = state.values[i];
502
- if (v > out) out = v;
503
- }
504
- return out;
505
- }
506
- };
507
- }
508
- function readNumber(record, field) {
509
- const value = readPath(record, field);
510
- return typeof value === "number" && Number.isFinite(value) ? value : 0;
511
- }
512
- // Annotate the CommonJS export names for ESM import in node:
513
- 0 && (module.exports = {
679
+ export {
680
+ count,
681
+ sum,
682
+ avg,
683
+ min,
684
+ max,
685
+ moneySum,
686
+ moneyMin,
687
+ moneyMax,
688
+ reducerBuilder,
689
+ wrapMoneyReducers,
690
+ reduceRecords,
514
691
  Aggregation,
515
- GROUPBY_MAX_CARDINALITY,
692
+ buildLiveAggregation,
693
+ canonicalGroupKey,
516
694
  GROUPBY_WARN_CARDINALITY,
517
- GroupedAggregation,
695
+ GROUPBY_MAX_CARDINALITY,
696
+ resetGroupByWarnings,
518
697
  GroupedQuery,
519
698
  GroupedQueryN,
520
- avg,
521
- buildLiveAggregation,
522
- count,
523
699
  groupAndReduce,
524
- max,
525
- min,
526
- reduceRecords,
527
- resetGroupByWarnings,
528
- sum,
529
- withAggregate
530
- });
531
- //# sourceMappingURL=index.cjs.map
700
+ GroupedAggregation
701
+ };
702
+ //# sourceMappingURL=chunk-LV7M27WM.js.map