@noy-db/hub 0.2.0-pre.9 → 0.3.0-pre.2

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-KMJQ66MF.js +219 -0
  16. package/dist/backup-KMJQ66MF.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-CJ8RzRrm.d.ts → bundle-PwBGkhpe.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-K3DK3NU5.js → chunk-3YFXJ3ZP.js} +20 -5
  31. package/dist/chunk-3YFXJ3ZP.js.map +1 -0
  32. package/dist/chunk-4Q6HSHHL.js +90 -0
  33. package/dist/chunk-4Q6HSHHL.js.map +1 -0
  34. package/dist/chunk-5LUY7UTV.js +380 -0
  35. package/dist/chunk-5LUY7UTV.js.map +1 -0
  36. package/dist/chunk-5N6CZTCY.js +367 -0
  37. package/dist/chunk-5N6CZTCY.js.map +1 -0
  38. package/dist/chunk-5O3AOPDT.js +992 -0
  39. package/dist/chunk-5O3AOPDT.js.map +1 -0
  40. package/dist/chunk-5R3ERCDH.js +239 -0
  41. package/dist/chunk-5R3ERCDH.js.map +1 -0
  42. package/dist/chunk-5TDJ56JE.js +32 -0
  43. package/dist/chunk-5TDJ56JE.js.map +1 -0
  44. package/dist/{chunk-T7JEBOGN.js → chunk-62QYRORB.js} +18 -11
  45. package/dist/chunk-62QYRORB.js.map +1 -0
  46. package/dist/{chunk-J66GRPNH.js → chunk-6S7T6WC4.js} +2 -2
  47. package/dist/chunk-6S7T6WC4.js.map +1 -0
  48. package/dist/chunk-76722EBH.js +451 -0
  49. package/dist/chunk-76722EBH.js.map +1 -0
  50. package/dist/{chunk-Z6FNBOTC.js → chunk-AIWULCUO.js} +13 -17
  51. package/dist/chunk-AIWULCUO.js.map +1 -0
  52. package/dist/{chunk-O3VZPBZG.js → chunk-AQTBSL7R.js} +47 -11
  53. package/dist/chunk-AQTBSL7R.js.map +1 -0
  54. package/dist/chunk-AURFOK3D.js +35 -0
  55. package/dist/chunk-AURFOK3D.js.map +1 -0
  56. package/dist/{chunk-53XBRIRT.js → chunk-AXRXJTE2.js} +9 -9
  57. package/dist/chunk-AXRXJTE2.js.map +1 -0
  58. package/dist/chunk-AZAOEIKW.js +155 -0
  59. package/dist/chunk-AZAOEIKW.js.map +1 -0
  60. package/dist/{chunk-HNRHLRDC.js → chunk-BG3SPSR4.js} +3 -3
  61. package/dist/chunk-BG3SPSR4.js.map +1 -0
  62. package/dist/chunk-BGIZAFY7.js +1 -0
  63. package/dist/chunk-CHFZDSE4.js +1 -0
  64. package/dist/{chunk-DJHHA6XH.js → chunk-CMGR4ZEW.js} +50 -20
  65. package/dist/chunk-CMGR4ZEW.js.map +1 -0
  66. package/dist/chunk-CWPPNPOH.js +23 -0
  67. package/dist/chunk-CWPPNPOH.js.map +1 -0
  68. package/dist/{chunk-QODLLGQ7.js → chunk-DFEMTNPJ.js} +371 -38
  69. package/dist/chunk-DFEMTNPJ.js.map +1 -0
  70. package/dist/{chunk-ZYWZWG6G.js → chunk-DGDI2D4M.js} +10 -10
  71. package/dist/chunk-DGDI2D4M.js.map +1 -0
  72. package/dist/{chunk-SYMWGEET.js → chunk-EIZUR2XW.js} +3 -3
  73. package/dist/chunk-EIZUR2XW.js.map +1 -0
  74. package/dist/{chunk-BVRYKATC.js → chunk-FISN7WE4.js} +36 -33
  75. package/dist/chunk-FISN7WE4.js.map +1 -0
  76. package/dist/chunk-GHVIKOHT.js +1 -0
  77. package/dist/chunk-GYGWYIOZ.js +200 -0
  78. package/dist/chunk-GYGWYIOZ.js.map +1 -0
  79. package/dist/chunk-HCIPRAGS.js +45 -0
  80. package/dist/chunk-HCIPRAGS.js.map +1 -0
  81. package/dist/{chunk-PX35GA7L.js → chunk-I2NOIW44.js} +10 -10
  82. package/dist/chunk-I2NOIW44.js.map +1 -0
  83. package/dist/{chunk-OIF6LZUR.js → chunk-I3TIKTJO.js} +3 -3
  84. package/dist/chunk-I3TIKTJO.js.map +1 -0
  85. package/dist/chunk-I7FD46FF.js +9 -0
  86. package/dist/chunk-I7FD46FF.js.map +1 -0
  87. package/dist/chunk-IAGBDSCS.js +40 -0
  88. package/dist/chunk-IAGBDSCS.js.map +1 -0
  89. package/dist/{chunk-JWRVQKRZ.js → chunk-IELYAOGG.js} +6 -18
  90. package/dist/chunk-IELYAOGG.js.map +1 -0
  91. package/dist/chunk-IGUYVGGI.js +205 -0
  92. package/dist/chunk-IGUYVGGI.js.map +1 -0
  93. package/dist/{chunk-U26HQ6KJ.js → chunk-IO6GRPT6.js} +4 -4
  94. package/dist/chunk-IO6GRPT6.js.map +1 -0
  95. package/dist/chunk-IPB7FTQX.js +273 -0
  96. package/dist/chunk-IPB7FTQX.js.map +1 -0
  97. package/dist/chunk-ITNUCOXM.js +148 -0
  98. package/dist/chunk-ITNUCOXM.js.map +1 -0
  99. package/dist/{chunk-WPLVTJ5D.js → chunk-IUEN57TV.js} +10 -10
  100. package/dist/chunk-IUEN57TV.js.map +1 -0
  101. package/dist/{chunk-DL3HWOQ5.js → chunk-JNUWZ6D3.js} +9 -9
  102. package/dist/chunk-JNUWZ6D3.js.map +1 -0
  103. package/dist/chunk-K2WCO3NX.js +1 -0
  104. package/dist/chunk-KVOXU4T5.js +30 -0
  105. package/dist/chunk-KVOXU4T5.js.map +1 -0
  106. package/dist/chunk-KXGNJJXB.js +135 -0
  107. package/dist/chunk-KXGNJJXB.js.map +1 -0
  108. package/dist/chunk-LB7FD65R.js +163 -0
  109. package/dist/chunk-LB7FD65R.js.map +1 -0
  110. package/dist/{chunk-22DWZL57.js → chunk-LFLXAY2W.js} +43 -218
  111. package/dist/chunk-LFLXAY2W.js.map +1 -0
  112. package/dist/chunk-LMTH2RM6.js +129 -0
  113. package/dist/chunk-LMTH2RM6.js.map +1 -0
  114. package/dist/{aggregate/index.cjs → chunk-LV7M27WM.js} +390 -219
  115. package/dist/chunk-LV7M27WM.js.map +1 -0
  116. package/dist/{chunk-PE2FR4J3.js → chunk-LXQT4WMP.js} +16 -18
  117. package/dist/chunk-LXQT4WMP.js.map +1 -0
  118. package/dist/chunk-M2YKN37S.js +524 -0
  119. package/dist/chunk-M2YKN37S.js.map +1 -0
  120. package/dist/chunk-M6OST55S.js +14 -0
  121. package/dist/chunk-M6OST55S.js.map +1 -0
  122. package/dist/{chunk-F3GDRNUT.js → chunk-MD3Y6J3L.js} +35 -69
  123. package/dist/chunk-MD3Y6J3L.js.map +1 -0
  124. package/dist/{chunk-XJFLDA7A.js → chunk-MTMJVJ5W.js} +8 -7
  125. package/dist/chunk-MTMJVJ5W.js.map +1 -0
  126. package/dist/{chunk-DFMLEQZB.js → chunk-NF5JWERG.js} +5 -10
  127. package/dist/chunk-NF5JWERG.js.map +1 -0
  128. package/dist/{chunk-DO7C2TOG.js → chunk-PKHL44ER.js} +3 -3
  129. package/dist/{chunk-DO7C2TOG.js.map → chunk-PKHL44ER.js.map} +1 -1
  130. package/dist/{chunk-6CME4UEK.js → chunk-PSHOXR6C.js} +7008 -4827
  131. package/dist/chunk-PSHOXR6C.js.map +1 -0
  132. package/dist/chunk-PSMV73A5.js +117 -0
  133. package/dist/chunk-PSMV73A5.js.map +1 -0
  134. package/dist/chunk-PY4KJPYU.js +9 -0
  135. package/dist/chunk-PY4KJPYU.js.map +1 -0
  136. package/dist/chunk-PZ5AY32C.js +10 -0
  137. package/dist/{chunk-DE6GKS6G.js → chunk-Q7SS3IME.js} +50 -9
  138. package/dist/chunk-Q7SS3IME.js.map +1 -0
  139. package/dist/chunk-QHJW5EXU.js +54 -0
  140. package/dist/chunk-QHJW5EXU.js.map +1 -0
  141. package/dist/chunk-QZISFCVG.js +233 -0
  142. package/dist/chunk-QZISFCVG.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-Ccd1hS7a.d.ts +143 -0
  213. package/dist/{dev-unlock-B4kDxep_.d.ts → dev-unlock-h0K-UZTk.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-DdpVypUp.d.cts → hash-CdSr06sm.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-CGLLRtFc.d.ts +123 -0
  240. package/dist/{types-Df28QFKb.d.ts → index-_6At2_9_.d.ts} +16270 -8358
  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-B4RoFj3B.d.ts +103 -0
  259. package/dist/noydb-LDEBLNHY.js +50 -0
  260. package/dist/noydb-LDEBLNHY.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 +6 -8
  306. package/dist/snapshots/index.js +13 -11
  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-DqodPNKw.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-BtpiBvic.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-BLkQxoQN.d.ts → with-materialized-view-DMmWtYfJ.d.ts} +1 -1
  342. package/dist/{with-overlayed-view-CRsSEwHR.d.ts → with-overlayed-view-D_IB2nkM.d.ts} +2 -3
  343. package/dist/with-rollup-em2wxoHP.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 -19264
  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-6CME4UEK.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-BIoEFbwm.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-HJqD14vS.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 -24487
  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-G725ZSZG.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 -937
  490. package/dist/snapshots/index.cjs.map +0 -1
  491. package/dist/snapshots/index.d.cts +0 -28
  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-DyXYr8rE.d.cts +0 -12818
  511. package/dist/ulid-COREQ2RQ.js +0 -9
  512. package/dist/ulid-Drr7ykr6.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-DFnFByiQ.d.ts +0 -13
  517. package/dist/with-derivation-DU3Sjazm.d.cts +0 -13
  518. package/dist/with-guard-ByyxmEe7.d.cts +0 -18
  519. package/dist/with-guard-qube6BMI.d.ts +0 -18
  520. package/dist/with-materialized-view-BmEToIR1.d.cts +0 -27
  521. package/dist/with-overlayed-view-BMsQQbWm.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-G725ZSZG.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,492 +0,0 @@
1
- import { b3 as NoydbStore, aB as NoydbBundleStore } from '../types-Df28QFKb.js';
2
- export { bT as BUNDLE_STORE_POLICY, cB as INDEXED_STORE_POLICY, dm as PullMode, dp as PullPolicy, dr as PushMode, dt as PushPolicy, e3 as SyncPolicy, e4 as SyncScheduler, e5 as SyncSchedulerStatus } from '../types-Df28QFKb.js';
3
- export { aF as StoreCapabilityError } from '../index-D8I_pyJD.js';
4
- import '../lazy-builder-7tIpFyWN.js';
5
- import '../predicate-BSAGEyu5.js';
6
- import '../strategy-DSTrsZ8t.js';
7
- import '../strategy-BSxFXGzb.js';
8
- import '@noy-db/attestation';
9
-
10
- interface WrapBundleStoreOptions {
11
- /**
12
- * When `true` (default), every `put()` and `delete()` flushes the full
13
- * vault snapshot to the bundle backend. Set to `false` for bulk operations
14
- * and call `store.flush(vaultId)` manually.
15
- */
16
- autoFlush?: boolean;
17
- }
18
- interface WrappedBundleNoydbStore extends NoydbStore {
19
- /** Manually flush the in-memory snapshot to the bundle backend. */
20
- flush(vaultId: string): Promise<void>;
21
- /**
22
- * Run a batch of mutations without flushing until the callback completes.
23
- * A single flush is performed at the end.
24
- */
25
- batch(vaultId: string, fn: () => Promise<void>): Promise<void>;
26
- }
27
- /**
28
- * Convert a `NoydbBundleStore` (blob-oriented read/write with OCC) into the
29
- * standard six-method `NoydbStore` interface expected by `createNoydb({ store })`.
30
- *
31
- * Bundle stores operate on the entire vault as a single serialised unit —
32
- * ideal for backends like Google Drive, WebDAV, or iCloud Drive that work
33
- * best with whole-file I/O rather than per-record KV operations.
34
- *
35
- * ## Optimistic concurrency
36
- *
37
- * The wrapper tracks the `version` token from the last `readBundle` and
38
- * passes it as `expectedVersion` on every flush. On
39
- * `BundleVersionConflictError`, it re-reads, merges the remote snapshot
40
- * (last-write-wins per record key), and retries (max 3 attempts).
41
- *
42
- * ## Flush modes
43
- *
44
- * By default, flushes on every mutation (O(vault size) per write). Options:
45
- * - `autoFlush: false` + explicit `store.flush(vaultId)` calls
46
- * - `store.batch(vaultId, async () => { ... })` — defers flush until end
47
- * - Pair with `syncPolicy: { push: { mode: 'debounce' } }` from
48
- */
49
- declare function wrapBundleStore(bundle: NoydbBundleStore, options?: WrapBundleStoreOptions): WrappedBundleNoydbStore;
50
- /**
51
- * Type-safe factory helper for `NoydbBundleStore` implementations,
52
- * analogous to `createStore` for KV stores.
53
- */
54
- declare function createBundleStore<TOptions>(factory: (options: TOptions) => NoydbBundleStore): (options: TOptions) => NoydbBundleStore;
55
-
56
- /**
57
- * Store router / multiplexer.
58
- *
59
- * Dispatches `NoydbStore` operations to different backends based on
60
- * collection type, record size, record age, collection name, or vault name.
61
- *
62
- * ```ts
63
- * const db = await createNoydb({
64
- * store: routeStore({
65
- * default: dynamo({ table: 'myapp' }),
66
- * blobs: s3Store({ bucket: 'myapp-blobs' }),
67
- * }),
68
- * })
69
- * ```
70
- *
71
- * @module
72
- */
73
-
74
- /**
75
- * Size-tiered blob routing configuration.
76
- *
77
- * Routes blob chunks to different stores based on byte size. Small blobs
78
- * (under `threshold`) stay in the primary or `small` store; large blobs
79
- * go to `large`. This lets you keep DynamoDB as the default while sending
80
- * large binary objects to S3.
81
- */
82
- interface BlobStoreRoute {
83
- /** Store for small blobs (under threshold). Falls back to `default`. */
84
- readonly small?: NoydbStore;
85
- /** Store for large blobs (over threshold). */
86
- readonly large: NoydbStore;
87
- /** Size threshold in bytes. Default: `400 * 1024` (DynamoDB item limit). */
88
- readonly threshold?: number;
89
- }
90
- /**
91
- * Blob lifecycle management policies evaluated during `compact()`.
92
- *
93
- * Controls orphan cleanup, cold-tier archival, and hard deletion of
94
- * blobs that are no longer referenced by any record.
95
- */
96
- interface BlobLifecyclePolicy {
97
- /** Delete orphan blobs (refCount: 0) after this many days. Default: 7. */
98
- readonly orphanRetentionDays?: number;
99
- /** Move blobs not accessed in this many days to the cold blob store. */
100
- readonly archiveAfterDays?: number;
101
- /** Store for archived blobs. Required if archiveAfterDays is set. */
102
- readonly archiveStore?: NoydbStore;
103
- /** Hard-delete archived blobs after this many days. */
104
- readonly expireAfterDays?: number;
105
- }
106
- /**
107
- * Age-based hot/cold tiering configuration.
108
- *
109
- * Records whose `_ts` timestamp is older than `coldAfterDays` are migrated
110
- * to the `cold` store during `compact()`. Reads transparently fall through
111
- * to the cold store when the hot store returns null, so callers don't need
112
- * to know which tier a record lives in.
113
- */
114
- interface AgeRoute {
115
- /** Store for records older than the cutoff. */
116
- readonly cold: NoydbStore;
117
- /** Days after last modification before a record is cold-eligible. */
118
- readonly coldAfterDays: number;
119
- /**
120
- * Collections that participate in age tiering.
121
- * Empty array or omitted = all user collections (excluding `_` prefixed).
122
- */
123
- readonly collections?: string[];
124
- }
125
- /**
126
- * Options for `routeStore()` — the store multiplexer.
127
- *
128
- * At minimum, provide a `default` store. All other fields are optional
129
- * extensions for specific routing scenarios (blobs → S3, geographic sharding,
130
- * age-based tiering, etc.).
131
- */
132
- interface RouteStoreOptions {
133
- /** Default store for all unmatched operations. */
134
- readonly default: NoydbStore;
135
- /**
136
- * Route blob chunk data to a separate store.
137
- * - Pass a `NoydbStore` for simple prefix routing (all chunks → that store).
138
- * - Pass `{ small?, large, threshold? }` for size-tiered routing.
139
- */
140
- readonly blobs?: NoydbStore | BlobStoreRoute;
141
- /** Route all blob metadata (index, slots, versions) to the blobs store too. Default: false. */
142
- readonly routeBlobMeta?: boolean;
143
- /** Route specific user collections to dedicated stores. */
144
- readonly routes?: Record<string, NoydbStore>;
145
- /** Route by vault name (prefix patterns, e.g. `'EU-'`). */
146
- readonly vaultRoutes?: Record<string, NoydbStore>;
147
- /**
148
- * Age-based tiering: records older than `coldAfterDays` are read from
149
- * the cold store. A background `compact()` method migrates them.
150
- */
151
- readonly age?: AgeRoute;
152
- /**
153
- * Content-aware blob routing.
154
- * Route blob chunks by MIME type glob pattern. The MIME type is stored
155
- * in `BlobObject` and matched at read time via `storeHint`.
156
- */
157
- readonly blobRoutes?: Record<string, NoydbStore>;
158
- /**
159
- * Blob lifecycle policies.
160
- * Evaluated during `compact()`.
161
- */
162
- readonly blobLifecycle?: BlobLifecyclePolicy;
163
- /**
164
- * Quota-aware overflow.
165
- * When the default store's usage exceeds the threshold, new writes
166
- * overflow to the specified store.
167
- */
168
- readonly overflow?: NoydbStore;
169
- /**
170
- * Quota threshold (0-1). Default: 0.8 (overflow at 80% usage).
171
- * Only effective when `overflow` is set.
172
- */
173
- readonly quotaThreshold?: number;
174
- }
175
- /**
176
- * Named route that can be overridden or suspended at runtime.
177
- *
178
- * Built-in names: `'default'`, `'blobs'`, `'cold'`.
179
- * Custom names: any collection name from `routes`, any vault prefix from
180
- * `vaultRoutes`, or any sync target label.
181
- */
182
- type OverrideTarget = 'default' | 'blobs' | 'cold' | (string & {});
183
- /**
184
- * Options for `RoutedNoydbStore.override()`.
185
- *
186
- * Controls whether the new store is pre-populated with data from the
187
- * original store before the switch takes effect.
188
- */
189
- interface OverrideOptions {
190
- /**
191
- * Hydrate the override store from the original before activating.
192
- * - `true` — copy all data for all vaults.
193
- * - `string[]` — copy only named collections.
194
- * Makes `override()` async — returns a Promise.
195
- */
196
- hydrate?: boolean | string[];
197
- }
198
- /**
199
- * Options for `RoutedNoydbStore.suspend()`.
200
- *
201
- * A suspended route becomes a null store: reads return null/[], writes
202
- * are dropped (or buffered if `queue: true`). Useful for maintenance
203
- * windows or restricted-network scenarios.
204
- */
205
- interface SuspendOptions {
206
- /**
207
- * Buffer write operations during suspension. On `resume()`, queued
208
- * writes are replayed against the restored store.
209
- */
210
- queue?: boolean;
211
- /**
212
- * Maximum queued operations. When exceeded, oldest entries are dropped.
213
- * Default: 10_000.
214
- */
215
- maxQueueSize?: number;
216
- }
217
- /**
218
- * Snapshot of the current override and suspend state of a `RoutedNoydbStore`.
219
- * Returned by `routeStatus()` for diagnostics and health dashboards.
220
- */
221
- interface RouteStatus {
222
- /** Active overrides: route name → override store name. */
223
- readonly overrides: Record<string, string>;
224
- /** Currently suspended routes. */
225
- readonly suspended: string[];
226
- /** Queued writes per suspended route (only for routes suspended with `queue: true`). */
227
- readonly queued: Record<string, number>;
228
- }
229
- /**
230
- * Extended `NoydbStore` returned by `routeStore()`.
231
- *
232
- * Satisfies the full `NoydbStore` contract plus adds runtime control
233
- * methods for overriding, suspending, and inspecting routes.
234
- */
235
- interface RoutedNoydbStore extends NoydbStore {
236
- /**
237
- * Migrate records older than the age cutoff from the hot store to the
238
- * cold store. Only applies when `age` is configured. Returns the number
239
- * of records migrated.
240
- */
241
- compact(vault: string): Promise<number>;
242
- /**
243
- * Override a named route at runtime.
244
- *
245
- * The override persists until `clearOverride()` is called or the
246
- * instance is closed. In-flight operations complete on the original
247
- * store; new operations use the override.
248
- *
249
- * Options:
250
- * - `hydrate: true` — async: copies all data from the original store
251
- * into the override before activating the switch.
252
- * - `hydrate: ['invoices', 'clients']` — copies only named collections.
253
- *
254
- * Use cases:
255
- * - Shared device: `await store.override('default', memory(), { hydrate: true })`
256
- * - Restricted network: `store.override('blobs', localFile(...))`
257
- */
258
- override(route: OverrideTarget, store: NoydbStore, opts?: OverrideOptions): void | Promise<void>;
259
- /** Clear a runtime override, reverting to the original store. */
260
- clearOverride(route: OverrideTarget): void;
261
- /**
262
- * Suspend a route entirely. Operations to suspended stores become
263
- * no-ops (puts silently dropped, gets return null, lists return []).
264
- *
265
- * Options:
266
- * - `queue: true` — buffer write operations (put/delete) during
267
- * suspension. When `resume()` is called, queued writes are replayed
268
- * against the restored store.
269
- *
270
- * Returns a `SuspendHandle` when `queue: true`, for inspecting queue state.
271
- */
272
- suspend(route: OverrideTarget, opts?: SuspendOptions): void;
273
- /**
274
- * Resume a previously suspended route.
275
- * If the route was suspended with `queue: true`, replays queued writes.
276
- * Returns the number of replayed operations.
277
- */
278
- resume(route: OverrideTarget): Promise<number>;
279
- /** Snapshot the current override/suspend state for diagnostics. */
280
- routeStatus(): RouteStatus;
281
- }
282
- /**
283
- * Create a store multiplexer that dispatches operations to different backends
284
- * based on collection type, record size, record age, vault prefix, or
285
- * runtime overrides.
286
- *
287
- * ```ts
288
- * const store = routeStore({
289
- * default: dynamo({ table: 'myapp' }),
290
- * blobs: s3({ bucket: 'myapp-blobs' }),
291
- * routes: { auditLog: s3({ bucket: 'myapp-audit' }) },
292
- * })
293
- * ```
294
- *
295
- * The returned store satisfies `NoydbStore` and can be passed directly to
296
- * `createNoydb({ store })`. It also exposes additional methods
297
- * (`override`, `suspend`, `resume`, `routeStatus`, `compact`) for runtime
298
- * control and maintenance.
299
- */
300
- declare function routeStore(opts: RouteStoreOptions): RoutedNoydbStore;
301
-
302
- /**
303
- * Store middleware — composable interceptors for NoydbStore.
304
- *
305
- * ```ts
306
- * const resilient = wrapStore(
307
- * dynamo({ table: 'myapp' }),
308
- * withRetry({ maxRetries: 3 }),
309
- * withLogging({ level: 'debug' }),
310
- * withCache({ ttlMs: 60_000 }),
311
- * )
312
- * ```
313
- *
314
- * Each middleware is `(next: NoydbStore) => NoydbStore`. They compose
315
- * left-to-right: first middleware is outermost (processes requests first,
316
- * responses last).
317
- *
318
- * @module
319
- */
320
-
321
- /**
322
- * A store middleware function.
323
- *
324
- * Takes the next store in the chain and returns a wrapped store. Middlewares
325
- * compose left-to-right via `wrapStore()`: the first argument is outermost
326
- * (first to intercept requests, last to process responses).
327
- *
328
- * ```ts
329
- * const mw: StoreMiddleware = (next) => ({
330
- * ...next,
331
- * async get(vault, collection, id) {
332
- * console.log('get', id)
333
- * return next.get(vault, collection, id)
334
- * },
335
- * })
336
- * ```
337
- */
338
- type StoreMiddleware = (next: NoydbStore) => NoydbStore;
339
- /**
340
- * Wrap a store with one or more middlewares. Middlewares compose left-to-right.
341
- */
342
- declare function wrapStore(store: NoydbStore, ...middlewares: StoreMiddleware[]): NoydbStore;
343
- /** Options for `withRetry()`. */
344
- interface RetryOptions {
345
- /** Maximum retry attempts. Default: 3. */
346
- maxRetries?: number;
347
- /** Base backoff delay in ms. Default: 500. */
348
- backoffMs?: number;
349
- /** Jitter factor (0-1). Adds random delay up to `backoffMs * jitter`. Default: 0.3. */
350
- jitter?: number;
351
- /** Only retry on these error codes. Default: retry all errors. */
352
- retryOn?: string[];
353
- }
354
- /**
355
- * Middleware that retries failed store operations with exponential backoff
356
- * and optional jitter. Useful for transient network errors on DynamoDB/S3.
357
- *
358
- * ```ts
359
- * wrapStore(dynamo({ table: 'myapp' }), withRetry({ maxRetries: 5, retryOn: ['NETWORK_ERROR'] }))
360
- * ```
361
- */
362
- declare function withRetry(opts?: RetryOptions): StoreMiddleware;
363
- /** Log level for `withLogging()`. Maps to standard console method names. */
364
- type LogLevel = 'debug' | 'info' | 'warn' | 'error';
365
- /** Options for `withLogging()`. */
366
- interface LoggingOptions {
367
- /** Minimum log level. Default: 'info'. */
368
- level?: LogLevel;
369
- /** Custom logger. Default: console. */
370
- logger?: {
371
- debug(msg: string, ...args: unknown[]): void;
372
- info(msg: string, ...args: unknown[]): void;
373
- warn(msg: string, ...args: unknown[]): void;
374
- error(msg: string, ...args: unknown[]): void;
375
- };
376
- /** Log the data payload (envelope contents). Default: false (privacy). */
377
- logData?: boolean;
378
- }
379
- /**
380
- * Middleware that logs every store operation with its method name, arguments,
381
- * and elapsed duration. Privacy-safe by default: envelope payloads are not
382
- * logged unless `logData: true` is set.
383
- */
384
- declare function withLogging(opts?: LoggingOptions): StoreMiddleware;
385
- /**
386
- * Data emitted to `MetricsOptions.onOperation` after every store call.
387
- *
388
- * Carries method name, vault/collection/id context, elapsed duration,
389
- * and success/failure status. Wire this into your metrics pipeline
390
- * (DataDog, Prometheus, CloudWatch) to get per-operation latency histograms.
391
- */
392
- interface StoreOperation {
393
- method: 'get' | 'put' | 'delete' | 'list' | 'loadAll' | 'saveAll';
394
- vault: string;
395
- collection?: string;
396
- id?: string;
397
- durationMs: number;
398
- success: boolean;
399
- error?: Error;
400
- }
401
- /** Options for `withMetrics()`. */
402
- interface MetricsOptions {
403
- /** Called after every store operation. */
404
- onOperation: (op: StoreOperation) => void;
405
- }
406
- /**
407
- * Middleware that calls `onOperation` after every store method with timing
408
- * and success/failure data. Designed for low-overhead integration with
409
- * metrics systems — the callback is synchronous and fire-and-forget.
410
- */
411
- declare function withMetrics(opts: MetricsOptions): StoreMiddleware;
412
- /**
413
- * Options for `withCircuitBreaker()`.
414
- *
415
- * The circuit breaker moves through three states:
416
- * - `closed`: normal operation.
417
- * - `open`: store is failing; all calls return fallback values immediately.
418
- * - `half-open`: one probe call after `resetTimeoutMs` — success closes, failure re-opens.
419
- */
420
- interface CircuitBreakerOptions {
421
- /** Number of consecutive failures before opening the circuit. Default: 5. */
422
- failureThreshold?: number;
423
- /** Time in ms before attempting to half-open the circuit. Default: 30_000. */
424
- resetTimeoutMs?: number;
425
- /** Called when the circuit opens (store becomes unavailable). */
426
- onOpen?: () => void;
427
- /** Called when the circuit closes (store recovers). */
428
- onClose?: () => void;
429
- }
430
- /**
431
- * Middleware that implements the circuit-breaker pattern.
432
- *
433
- * When the wrapped store fails `failureThreshold` consecutive times, the
434
- * circuit opens: subsequent calls return safe fallback values (`null`, `[]`,
435
- * `{}`) without hitting the store. After `resetTimeoutMs` the circuit
436
- * half-opens and allows one probe — success closes the circuit, failure
437
- * keeps it open. Pair with `withRetry` to handle transient errors before
438
- * they trip the circuit.
439
- */
440
- declare function withCircuitBreaker(opts?: CircuitBreakerOptions): StoreMiddleware;
441
- /**
442
- * Options for `withCache()`.
443
- *
444
- * The cache is a read-through LRU that caches individual record fetches
445
- * (`get`). Writes (`put`, `delete`) invalidate the relevant cache entry
446
- * immediately. `list`, `loadAll`, and `saveAll` bypass the cache.
447
- *
448
- * Named `StoreCacheOptions` to distinguish from `CacheOptions` in
449
- * `@noy-db/hub/collection`, which controls the in-memory decrypted-record LRU.
450
- */
451
- interface StoreCacheOptions {
452
- /** Maximum cached entries. Default: 500. */
453
- maxEntries?: number;
454
- /** Cache TTL in ms. Default: 60_000 (1 minute). 0 = no expiry. */
455
- ttlMs?: number;
456
- }
457
- /**
458
- * Middleware that adds a read-through LRU cache for `get()` calls.
459
- *
460
- * Reduces latency for frequently-read records (e.g. lookup tables, user
461
- * profiles) by serving repeat reads from memory. Because NOYDB records are
462
- * encrypted at rest, caching envelopes is safe — the cache holds ciphertext,
463
- * not plaintext. For write-heavy workloads, the cache provides little benefit
464
- * and should be omitted to avoid the invalidation overhead.
465
- */
466
- declare function withCache(opts?: StoreCacheOptions): StoreMiddleware;
467
- interface HealthCheckOptions {
468
- /** Ping interval in ms. Default: 30_000. */
469
- checkIntervalMs?: number;
470
- /** Suspend after N consecutive ping failures. Default: 3. */
471
- suspendAfterFailures?: number;
472
- /** Resume after N consecutive ping successes. Default: 1. */
473
- resumeAfterSuccess?: number;
474
- /** Called when the store is auto-suspended. */
475
- onSuspend?: () => void;
476
- /** Called when the store is auto-resumed. */
477
- onResume?: () => void;
478
- /**
479
- * Custom health check. Default: calls `store.ping()` if available,
480
- * otherwise attempts a `list()` on a sentinel collection.
481
- */
482
- check?: () => Promise<boolean>;
483
- }
484
- /**
485
- * Auto-suspends a store when health checks fail, auto-resumes when they recover.
486
- *
487
- * When suspended, `get` returns null, `put`/`delete` are no-ops, `list` returns [].
488
- * This is identical to the `NullStore` behavior from `routeStore.suspend()`.
489
- */
490
- declare function withHealthCheck(opts?: HealthCheckOptions): StoreMiddleware;
491
-
492
- export { type AgeRoute, type BlobLifecyclePolicy, type BlobStoreRoute, type CircuitBreakerOptions, type HealthCheckOptions, type LogLevel, type LoggingOptions, type MetricsOptions, type OverrideOptions, type OverrideTarget, type RetryOptions, type RouteStatus, type RouteStoreOptions, type RoutedNoydbStore, type StoreCacheOptions, type StoreMiddleware, type StoreOperation, type SuspendOptions, type WrapBundleStoreOptions, type WrappedBundleNoydbStore, createBundleStore, routeStore, withCache, withCircuitBreaker, withHealthCheck, withLogging, withMetrics, withRetry, wrapBundleStore, wrapStore };
@@ -1,37 +0,0 @@
1
- import {
2
- createBundleStore,
3
- routeStore,
4
- withCache,
5
- withCircuitBreaker,
6
- withHealthCheck,
7
- withLogging,
8
- withMetrics,
9
- withRetry,
10
- wrapBundleStore,
11
- wrapStore
12
- } from "../chunk-QEILDE6R.js";
13
- import {
14
- BUNDLE_STORE_POLICY,
15
- INDEXED_STORE_POLICY,
16
- SyncScheduler
17
- } from "../chunk-2QR2PQTT.js";
18
- import {
19
- StoreCapabilityError
20
- } from "../chunk-B6PB7JLN.js";
21
- export {
22
- BUNDLE_STORE_POLICY,
23
- INDEXED_STORE_POLICY,
24
- StoreCapabilityError,
25
- SyncScheduler,
26
- createBundleStore,
27
- routeStore,
28
- withCache,
29
- withCircuitBreaker,
30
- withHealthCheck,
31
- withLogging,
32
- withMetrics,
33
- withRetry,
34
- wrapBundleStore,
35
- wrapStore
36
- };
37
- //# sourceMappingURL=index.js.map
@@ -1,110 +0,0 @@
1
- /**
2
- * CRDT state types, merge logic, and build helpers.
3
- * per-collection CRDT mode: 'lww-map' | 'rga' | 'yjs'
4
- *
5
- * The encrypted envelope wraps the CRDT state (not the resolved snapshot).
6
- * Adapters only ever see ciphertext. `collection.get(id)` returns the
7
- * resolved snapshot; `collection.getRaw(id)` returns the full CRDT state.
8
- */
9
- /** Per-collection CRDT mode. */
10
- type CrdtMode = 'lww-map' | 'rga' | 'yjs';
11
- /**
12
- * Per-field last-write-wins registers.
13
- * Each field carries its latest value and the ISO timestamp of the last write.
14
- * Merge: for each field, keep the entry with the lexicographically higher `ts`.
15
- */
16
- interface LwwMapState {
17
- readonly _crdt: 'lww-map';
18
- readonly fields: Record<string, {
19
- readonly v: unknown;
20
- readonly ts: string;
21
- }>;
22
- }
23
- /**
24
- * Simplified Replicated Growable Array.
25
- * Items are assigned stable NID (noy-db id) strings on first insertion.
26
- * Deleted items are tracked as tombstones so concurrent removals commute.
27
- *
28
- * The resolved snapshot is the ordered list of non-tombstoned `v` values.
29
- */
30
- interface RgaState {
31
- readonly _crdt: 'rga';
32
- readonly items: ReadonlyArray<{
33
- readonly nid: string;
34
- readonly v: unknown;
35
- }>;
36
- readonly tombstones: readonly string[];
37
- }
38
- /**
39
- * Yjs binary state marker. `update` is base64(Y.encodeStateAsUpdate()).
40
- * Core stores and retrieves the blob opaquely. `@noy-db/yjs` is responsible
41
- * for encoding, decoding, and merging via `Y.mergeUpdates`.
42
- * Core falls back to last-write-wins (higher `_v`) for conflict resolution.
43
- */
44
- interface YjsState {
45
- readonly _crdt: 'yjs';
46
- /** base64-encoded Y.encodeStateAsUpdate() bytes. */
47
- readonly update: string;
48
- }
49
- type CrdtState = LwwMapState | RgaState | YjsState;
50
- /**
51
- * Resolve a CRDT state into the end-user record snapshot.
52
- *
53
- * - `lww-map` → `Record<string, unknown>` (field values extracted from registers)
54
- * - `rga` → `unknown[]` (non-tombstoned items in insertion order)
55
- * - `yjs` → `string` (base64 update blob; use @noy-db/yjs for a Y.Doc)
56
- */
57
- declare function resolveCrdtSnapshot(state: CrdtState): unknown;
58
- /**
59
- * Merge two CRDT states produced by concurrent writes.
60
- * Called by the collection-level conflict resolver registered with SyncEngine.
61
- *
62
- * For `yjs`: core cannot merge Yjs without importing the `yjs` package.
63
- * The caller must handle that case by falling back to the higher-`_v` envelope.
64
- */
65
- declare function mergeCrdtStates(a: CrdtState, b: CrdtState): CrdtState;
66
- /**
67
- * Build (or update) an lww-map state from a new record.
68
- *
69
- * All fields in the new record win at timestamp `now`.
70
- * Fields present in the existing state but absent from the new record
71
- * are preserved (they were written by another device).
72
- */
73
- declare function buildLwwMapState(record: Record<string, unknown>, existing: LwwMapState | undefined, now: string): LwwMapState;
74
- /**
75
- * Build (or update) an RGA state from a new array.
76
- *
77
- * Existing items are matched to new elements by deep-equality of their `v`.
78
- * Unmatched existing items are tombstoned. New elements that have no existing
79
- * match get a fresh NID via `generateNid()`.
80
- */
81
- declare function buildRgaState(arr: unknown[], existing: RgaState | undefined, generateNid: () => string): RgaState;
82
-
83
- /**
84
- * Strategy seam between core Collection and the optional CRDT
85
- * subsystem. Core imports `CrdtStrategy` as a TYPE-ONLY symbol and
86
- * `NO_CRDT` as a minimal runtime stub.
87
- *
88
- * The state-construction / merge / snapshot-resolution helpers —
89
- * `buildLwwMapState`, `buildRgaState`, `mergeCrdtStates`,
90
- * `resolveCrdtSnapshot` — are only reachable from `withCrdt()` in
91
- * `./active.ts`, which is only exported through the `@noy-db/hub/crdt`
92
- * subpath. Consumers without CRDT mode configured never pull the
93
- * ~221 LOC into their bundle.
94
- *
95
- * @internal
96
- */
97
-
98
- /**
99
- * Seam interface. `@internal`.
100
- *
101
- * @internal
102
- */
103
- interface CrdtStrategy {
104
- buildLwwMapState(record: Record<string, unknown>, previous: LwwMapState | undefined, now: string): LwwMapState;
105
- buildRgaState(items: readonly unknown[], previous: RgaState | undefined, idGen: () => string): RgaState;
106
- mergeCrdtStates(local: CrdtState, remote: CrdtState): CrdtState;
107
- resolveCrdtSnapshot(state: CrdtState): unknown;
108
- }
109
-
110
- export { type CrdtStrategy as C, type LwwMapState as L, type RgaState as R, type YjsState as Y, type CrdtMode as a, type CrdtState as b, buildLwwMapState as c, buildRgaState as d, mergeCrdtStates as m, resolveCrdtSnapshot as r };