@noy-db/hub 0.2.0-pre.2 → 0.2.0-pre.21

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 (368) hide show
  1. package/README.md +126 -0
  2. package/dist/aggregate/index.cjs +643 -37
  3. package/dist/aggregate/index.cjs.map +1 -1
  4. package/dist/aggregate/index.d.cts +3 -2
  5. package/dist/aggregate/index.d.ts +3 -2
  6. package/dist/aggregate/index.js +9 -8
  7. package/dist/aggregate/index.js.map +1 -1
  8. package/dist/attestation/index.cjs.map +1 -1
  9. package/dist/attestation/index.d.cts +7 -5
  10. package/dist/attestation/index.d.ts +7 -5
  11. package/dist/attestation/index.js +6 -6
  12. package/dist/blobs/index.cjs +509 -22
  13. package/dist/blobs/index.cjs.map +1 -1
  14. package/dist/blobs/index.d.cts +9 -7
  15. package/dist/blobs/index.d.ts +9 -7
  16. package/dist/blobs/index.js +11 -6
  17. package/dist/blobs/index.js.map +1 -1
  18. package/dist/bundle/index.cjs +7886 -841
  19. package/dist/bundle/index.cjs.map +1 -1
  20. package/dist/bundle/index.d.cts +20 -18
  21. package/dist/bundle/index.d.ts +20 -18
  22. package/dist/bundle/index.js +24 -13
  23. package/dist/bundle/index.js.map +1 -1
  24. package/dist/{chunk-PFSNOPBQ.js → chunk-2XA2ZML4.js} +31 -3
  25. package/dist/chunk-2XA2ZML4.js.map +1 -0
  26. package/dist/{chunk-2PAQNPE3.js → chunk-37VGJM3T.js} +37 -2
  27. package/dist/chunk-37VGJM3T.js.map +1 -0
  28. package/dist/{chunk-7BRE6EUA.js → chunk-3HNKR65T.js} +4 -4
  29. package/dist/chunk-3HNKR65T.js.map +1 -0
  30. package/dist/{chunk-Y2RKOPNC.js → chunk-5YTXYPES.js} +46 -10
  31. package/dist/chunk-5YTXYPES.js.map +1 -0
  32. package/dist/{chunk-OVZDFEOR.js → chunk-6QAZ5O6X.js} +2 -2
  33. package/dist/chunk-6QAZ5O6X.js.map +1 -0
  34. package/dist/{chunk-RTZVQAJ7.js → chunk-6QE4DUYC.js} +19 -4
  35. package/dist/chunk-6QE4DUYC.js.map +1 -0
  36. package/dist/{chunk-7Q5PLD5C.js → chunk-7MRT7EPB.js} +3 -3
  37. package/dist/{chunk-E535SAN4.js → chunk-7PH4OPBZ.js} +4258 -520
  38. package/dist/chunk-7PH4OPBZ.js.map +1 -0
  39. package/dist/{chunk-PEULZC6M.js → chunk-A3JMGXPG.js} +8 -1
  40. package/dist/chunk-A3JMGXPG.js.map +1 -0
  41. package/dist/{chunk-UMLVJTYV.js → chunk-ADB7GPM3.js} +7 -4
  42. package/dist/chunk-ADB7GPM3.js.map +1 -0
  43. package/dist/{chunk-G6FRSBKK.js → chunk-AI4USDRI.js} +4 -4
  44. package/dist/chunk-BZW5IL43.js +151 -0
  45. package/dist/chunk-BZW5IL43.js.map +1 -0
  46. package/dist/chunk-C2RJVZZL.js +123 -0
  47. package/dist/chunk-C2RJVZZL.js.map +1 -0
  48. package/dist/{chunk-UND4XIB6.js → chunk-C6W5KVDV.js} +52 -38
  49. package/dist/chunk-C6W5KVDV.js.map +1 -0
  50. package/dist/chunk-CQYEDODS.js +125 -0
  51. package/dist/chunk-CQYEDODS.js.map +1 -0
  52. package/dist/{chunk-NWZ3I6R6.js → chunk-EYK72OTL.js} +5 -5
  53. package/dist/{chunk-7BUTTVMR.js → chunk-F5GWNSE2.js} +2 -2
  54. package/dist/{chunk-AHPFONIL.js → chunk-F5ILTHMU.js} +5 -5
  55. package/dist/{chunk-Q6W2CMEJ.js → chunk-FRRJIUSI.js} +18 -5
  56. package/dist/chunk-FRRJIUSI.js.map +1 -0
  57. package/dist/{chunk-YMYK7US4.js → chunk-GJTKMME7.js} +2 -2
  58. package/dist/chunk-GJTKMME7.js.map +1 -0
  59. package/dist/{chunk-EUYOGYGV.js → chunk-HYJMAV53.js} +6 -6
  60. package/dist/chunk-HYJMAV53.js.map +1 -0
  61. package/dist/{chunk-QPEXPHJR.js → chunk-I3IYTUUI.js} +4 -4
  62. package/dist/{chunk-3QAKZ37R.js → chunk-IVZWHIEK.js} +5 -5
  63. package/dist/{chunk-PLI5TV7N.js → chunk-IW4L4X65.js} +2 -2
  64. package/dist/chunk-IW4L4X65.js.map +1 -0
  65. package/dist/{chunk-3Z2TPHC4.js → chunk-IY24WS2P.js} +69 -5
  66. package/dist/chunk-IY24WS2P.js.map +1 -0
  67. package/dist/{chunk-HXJXPZRE.js → chunk-J6RGRZOY.js} +10 -3
  68. package/dist/chunk-J6RGRZOY.js.map +1 -0
  69. package/dist/{chunk-3S4BJX25.js → chunk-JBBWALNI.js} +2 -2
  70. package/dist/chunk-JBBWALNI.js.map +1 -0
  71. package/dist/{chunk-7Z23ZFLV.js → chunk-JDCPRJVS.js} +5 -5
  72. package/dist/chunk-JDCPRJVS.js.map +1 -0
  73. package/dist/{chunk-243PNUA6.js → chunk-JOK73NDT.js} +3 -3
  74. package/dist/chunk-JTI57WRT.js +164 -0
  75. package/dist/chunk-JTI57WRT.js.map +1 -0
  76. package/dist/{chunk-VRBCTEKQ.js → chunk-JYNH4FIM.js} +233 -11
  77. package/dist/chunk-JYNH4FIM.js.map +1 -0
  78. package/dist/{chunk-TBKOGSYR.js → chunk-KOAJ3TZM.js} +27 -5
  79. package/dist/chunk-KOAJ3TZM.js.map +1 -0
  80. package/dist/{chunk-YTXSFG3C.js → chunk-MBXKRHSS.js} +50 -20
  81. package/dist/chunk-MBXKRHSS.js.map +1 -0
  82. package/dist/{chunk-MUWOSVEP.js → chunk-NSXNXLYM.js} +10 -2
  83. package/dist/chunk-NSXNXLYM.js.map +1 -0
  84. package/dist/{chunk-J4KLMEUL.js → chunk-NV4IHBZS.js} +664 -51
  85. package/dist/chunk-NV4IHBZS.js.map +1 -0
  86. package/dist/{chunk-LRAZDV5X.js → chunk-O5XKZCUD.js} +31 -8
  87. package/dist/chunk-O5XKZCUD.js.map +1 -0
  88. package/dist/{chunk-W3XXT26A.js → chunk-OTWT6BAJ.js} +358 -3
  89. package/dist/chunk-OTWT6BAJ.js.map +1 -0
  90. package/dist/{chunk-XG3PTSCD.js → chunk-PDVP3C2I.js} +1 -1
  91. package/dist/chunk-PDVP3C2I.js.map +1 -0
  92. package/dist/{chunk-GIV6DWBG.js → chunk-S45MDEEF.js} +44 -5
  93. package/dist/chunk-S45MDEEF.js.map +1 -0
  94. package/dist/{chunk-VK5EER6C.js → chunk-SQKAECUL.js} +2 -2
  95. package/dist/{chunk-FAQVNJD4.js → chunk-SQOK5UM6.js} +12 -2
  96. package/dist/{chunk-FAQVNJD4.js.map → chunk-SQOK5UM6.js.map} +1 -1
  97. package/dist/chunk-STNPB3UM.js +9 -0
  98. package/dist/chunk-STNPB3UM.js.map +1 -0
  99. package/dist/{chunk-YS3POABP.js → chunk-TA6HPKWQ.js} +1 -1
  100. package/dist/chunk-TA6HPKWQ.js.map +1 -0
  101. package/dist/{chunk-4HIL6AHQ.js → chunk-TAMRU7A2.js} +4 -4
  102. package/dist/{chunk-QXQRKXCU.js → chunk-TGIJTNM3.js} +2 -2
  103. package/dist/chunk-TNH5SLCD.js +361 -0
  104. package/dist/chunk-TNH5SLCD.js.map +1 -0
  105. package/dist/{chunk-VPSUZLOJ.js → chunk-TYMDCIQM.js} +31 -5
  106. package/dist/chunk-TYMDCIQM.js.map +1 -0
  107. package/dist/chunk-U2XSUCDF.js +524 -0
  108. package/dist/chunk-U2XSUCDF.js.map +1 -0
  109. package/dist/{chunk-3Y53S2SA.js → chunk-UU6M64HI.js} +4 -4
  110. package/dist/{chunk-VCGTOS2A.js → chunk-WE2BUQD2.js} +3 -3
  111. package/dist/chunk-WE2BUQD2.js.map +1 -0
  112. package/dist/{chunk-JYQTXEIO.js → chunk-WWVJXBOT.js} +449 -29
  113. package/dist/chunk-WWVJXBOT.js.map +1 -0
  114. package/dist/chunk-YPIOFSN3.js +129 -0
  115. package/dist/chunk-YPIOFSN3.js.map +1 -0
  116. package/dist/chunk-ZC7J6ZYV.js +7 -0
  117. package/dist/chunk-ZC7J6ZYV.js.map +1 -0
  118. package/dist/{chunk-5ZGZ6HIZ.js → chunk-ZONKSLF2.js} +30 -7
  119. package/dist/chunk-ZONKSLF2.js.map +1 -0
  120. package/dist/consent/index.cjs.map +1 -1
  121. package/dist/consent/index.d.cts +8 -6
  122. package/dist/consent/index.d.ts +8 -6
  123. package/dist/consent/index.js +3 -3
  124. package/dist/{crypto-5ZDIY3NG.js → crypto-456N7UVX.js} +7 -3
  125. package/dist/{delegation-QYXZW25W.js → delegation-DP4COTXB.js} +5 -5
  126. package/dist/derivations/index.cjs +124 -6
  127. package/dist/derivations/index.cjs.map +1 -1
  128. package/dist/derivations/index.d.cts +11 -9
  129. package/dist/derivations/index.d.ts +11 -9
  130. package/dist/derivations/index.js +8 -6
  131. package/dist/{dev-unlock-DQCNDfFp.d.cts → dev-unlock-CY0HIZA0.d.cts} +1 -1
  132. package/dist/{dev-unlock-utkybTKb.d.ts → dev-unlock-CpKSkl2c.d.ts} +1 -1
  133. package/dist/discriminant-BN9REW3o.d.cts +60 -0
  134. package/dist/discriminant-BN9REW3o.d.ts +60 -0
  135. package/dist/errors-Dkc_fi-S.d.cts +1467 -0
  136. package/dist/errors-Dkc_fi-S.d.ts +1467 -0
  137. package/dist/executor-4IEW4KG5.js +8 -0
  138. package/dist/executor-KYJCJCIN.js +12 -0
  139. package/dist/executor-W7VIBOBZ.js +8 -0
  140. package/dist/{fanout-sidecar-VJ52RIEY.js → fanout-sidecar-YXNAEZ33.js} +2 -2
  141. package/dist/fanout-sidecar-YXNAEZ33.js.map +1 -0
  142. package/dist/forget/index.cjs +43 -0
  143. package/dist/forget/index.cjs.map +1 -0
  144. package/dist/forget/index.d.cts +1 -0
  145. package/dist/forget/index.d.ts +1 -0
  146. package/dist/forget/index.js +14 -0
  147. package/dist/guards/index.cjs +144 -4
  148. package/dist/guards/index.cjs.map +1 -1
  149. package/dist/guards/index.d.cts +16 -8
  150. package/dist/guards/index.d.ts +16 -8
  151. package/dist/guards/index.js +13 -7
  152. package/dist/{hash-jDowCrK2.d.cts → hash-BSd0-_L8.d.cts} +1 -1
  153. package/dist/{hash-DcoYWfJ_.d.ts → hash-BnBQx39y.d.ts} +1 -1
  154. package/dist/history/index.cjs +28 -5
  155. package/dist/history/index.cjs.map +1 -1
  156. package/dist/history/index.d.cts +9 -7
  157. package/dist/history/index.d.ts +9 -7
  158. package/dist/history/index.js +9 -7
  159. package/dist/history/index.js.map +1 -1
  160. package/dist/i18n/index.cjs +356 -26
  161. package/dist/i18n/index.cjs.map +1 -1
  162. package/dist/i18n/index.d.cts +8 -6
  163. package/dist/i18n/index.d.ts +8 -6
  164. package/dist/i18n/index.js +36 -15
  165. package/dist/i18n/index.js.map +1 -1
  166. package/dist/index-BMmajblo.d.cts +362 -0
  167. package/dist/index-BMmajblo.d.ts +362 -0
  168. package/dist/{index-BCKdioeh.d.ts → index-Bm9hIY7t.d.ts} +169 -1127
  169. package/dist/{index-BMjrzNZr.d.cts → index-tZqVB9g5.d.cts} +169 -1127
  170. package/dist/index.cjs +10286 -2168
  171. package/dist/index.cjs.map +1 -1
  172. package/dist/index.d.cts +258 -23
  173. package/dist/index.d.ts +258 -23
  174. package/dist/index.js +443 -110
  175. package/dist/index.js.map +1 -1
  176. package/dist/indexing/index.cjs +97 -32
  177. package/dist/indexing/index.cjs.map +1 -1
  178. package/dist/indexing/index.d.cts +3 -3
  179. package/dist/indexing/index.d.ts +3 -3
  180. package/dist/indexing/index.js +4 -4
  181. package/dist/issue-JXC6T2QR.js +12 -0
  182. package/dist/{lazy-builder-Rpd-V3jP.d.ts → lazy-builder-ChSqcF5t.d.ts} +2 -2
  183. package/dist/{lazy-builder-C-rPfWG0.d.cts → lazy-builder-eYZzLEL1.d.cts} +2 -2
  184. package/dist/{ledger-3IU5GMXA.js → ledger-I7JUYP4L.js} +6 -6
  185. package/dist/materialized-views/index.cjs +687 -13
  186. package/dist/materialized-views/index.cjs.map +1 -1
  187. package/dist/materialized-views/index.d.cts +23 -20
  188. package/dist/materialized-views/index.d.ts +23 -20
  189. package/dist/materialized-views/index.js +8 -7
  190. package/dist/mime-magic-BnJCGJzB.d.cts +103 -0
  191. package/dist/mime-magic-CjSyakO4.d.ts +103 -0
  192. package/dist/noydb-ZZCRF6TE.js +38 -0
  193. package/dist/overlay-views/index.cjs +58 -18
  194. package/dist/overlay-views/index.cjs.map +1 -1
  195. package/dist/overlay-views/index.d.cts +32 -12
  196. package/dist/overlay-views/index.d.ts +32 -12
  197. package/dist/overlay-views/index.js +6 -6
  198. package/dist/periods/index.cjs.map +1 -1
  199. package/dist/periods/index.d.cts +8 -6
  200. package/dist/periods/index.d.ts +8 -6
  201. package/dist/periods/index.js +6 -6
  202. package/dist/{predicate-Dnu81tsS.d.cts → predicate-BmhBSPCH.d.cts} +87 -5
  203. package/dist/{predicate-Dnu81tsS.d.ts → predicate-BmhBSPCH.d.ts} +87 -5
  204. package/dist/{public-envelope-U3CMEOMV.js → public-envelope-5XRTUNKF.js} +4 -4
  205. package/dist/query/index.cjs +1438 -130
  206. package/dist/query/index.cjs.map +1 -1
  207. package/dist/query/index.d.cts +4 -3
  208. package/dist/query/index.d.ts +4 -3
  209. package/dist/query/index.js +13 -6
  210. package/dist/read-only-facade-EX6WZZBP.js +7 -0
  211. package/dist/registry-ATRHOG5B.js +8 -0
  212. package/dist/registry-DKEXOJVO.js +7 -0
  213. package/dist/registry-LEHB26TY.js +8 -0
  214. package/dist/{registry-3ALP62P6.js → registry-NWHOLD5M.js} +3 -3
  215. package/dist/{revoke-KY2GB4KP.js → revoke-5IEK22KT.js} +6 -6
  216. package/dist/sealed-record/index.cjs +139 -0
  217. package/dist/sealed-record/index.cjs.map +1 -0
  218. package/dist/sealed-record/index.d.cts +123 -0
  219. package/dist/sealed-record/index.d.ts +123 -0
  220. package/dist/sealed-record/index.js +42 -0
  221. package/dist/sealed-record/index.js.map +1 -0
  222. package/dist/session/index.cjs.map +1 -1
  223. package/dist/session/index.d.cts +9 -7
  224. package/dist/session/index.d.ts +9 -7
  225. package/dist/session/index.js +3 -3
  226. package/dist/shadow/index.cjs.map +1 -1
  227. package/dist/shadow/index.d.cts +8 -6
  228. package/dist/shadow/index.d.ts +8 -6
  229. package/dist/shadow/index.js +2 -2
  230. package/dist/{signer-GRI5TZKH.js → signer-I6YARZQA.js} +5 -5
  231. package/dist/snapshots/index.cjs +937 -0
  232. package/dist/snapshots/index.cjs.map +1 -0
  233. package/dist/snapshots/index.d.cts +30 -0
  234. package/dist/snapshots/index.d.ts +30 -0
  235. package/dist/snapshots/index.js +152 -0
  236. package/dist/snapshots/index.js.map +1 -0
  237. package/dist/{stale-OTOF3FH7.js → stale-CPESGAPL.js} +2 -2
  238. package/dist/stale-CPESGAPL.js.map +1 -0
  239. package/dist/state-vault-JR3CFGNP.js +14 -0
  240. package/dist/state-vault-JR3CFGNP.js.map +1 -0
  241. package/dist/store/index.cjs +8 -0
  242. package/dist/store/index.cjs.map +1 -1
  243. package/dist/store/index.d.cts +15 -6
  244. package/dist/store/index.d.ts +15 -6
  245. package/dist/store/index.js +2 -2
  246. package/dist/{strategy-DSTrsZ8t.d.ts → strategy-54eIwox5.d.ts} +456 -7
  247. package/dist/{strategy-DSTrsZ8t.d.cts → strategy-WtB-jXYv.d.cts} +456 -7
  248. package/dist/sync/index.cjs.map +1 -1
  249. package/dist/sync/index.d.cts +7 -5
  250. package/dist/sync/index.d.ts +7 -5
  251. package/dist/sync/index.js +4 -4
  252. package/dist/team/index.cjs +1 -1
  253. package/dist/team/index.cjs.map +1 -1
  254. package/dist/team/index.d.cts +8 -6
  255. package/dist/team/index.d.ts +8 -6
  256. package/dist/team/index.js +8 -8
  257. package/dist/transition-guard-D4bfIAiW.d.ts +165 -0
  258. package/dist/transition-guard-Dmpqzg-_.d.cts +165 -0
  259. package/dist/tx/index.cjs +155 -5
  260. package/dist/tx/index.cjs.map +1 -1
  261. package/dist/tx/index.d.cts +27 -9
  262. package/dist/tx/index.d.ts +27 -9
  263. package/dist/tx/index.js +61 -4
  264. package/dist/tx/index.js.map +1 -1
  265. package/dist/{types-BoFFiskX.d.ts → types-DLfWFr6U.d.ts} +3997 -1262
  266. package/dist/{types-DJG8HG6F.d.cts → types-DyOI6XZ_.d.cts} +3997 -1262
  267. package/dist/{ulid-BmBgooGm.d.ts → ulid-B2L_aqVA.d.ts} +19 -19
  268. package/dist/{ulid-C7ms9oli.d.cts → ulid-LaxfH2tK.d.cts} +19 -19
  269. package/dist/util/index.cjs +7 -0
  270. package/dist/util/index.cjs.map +1 -1
  271. package/dist/util/index.d.cts +2 -0
  272. package/dist/util/index.d.ts +2 -0
  273. package/dist/util/index.js +5 -1
  274. package/dist/util/index.js.map +1 -1
  275. package/dist/vault-group-BB246VIM.js +804 -0
  276. package/dist/vault-group-BB246VIM.js.map +1 -0
  277. package/dist/{with-materialized-view-CqnRwI2S.d.ts → with-materialized-view-CeZYGJVf.d.cts} +2 -2
  278. package/dist/{with-materialized-view-BbEPFIIJ.d.cts → with-materialized-view-DNULSxoP.d.ts} +2 -2
  279. package/dist/{with-overlayed-view-Ct1fSJt-.d.ts → with-overlayed-view-C9joG7UZ.d.ts} +2 -2
  280. package/dist/{with-overlayed-view-bwlmmFjx.d.cts → with-overlayed-view-kdcPGHih.d.cts} +2 -2
  281. package/dist/with-rollup-DJDbrxjf.d.ts +47 -0
  282. package/dist/with-rollup-s58XAeWO.d.cts +47 -0
  283. package/package.json +35 -4
  284. package/dist/chunk-2PAQNPE3.js.map +0 -1
  285. package/dist/chunk-3S4BJX25.js.map +0 -1
  286. package/dist/chunk-3XHOCQK4.js +0 -118
  287. package/dist/chunk-3XHOCQK4.js.map +0 -1
  288. package/dist/chunk-3Z2TPHC4.js.map +0 -1
  289. package/dist/chunk-5ZGZ6HIZ.js.map +0 -1
  290. package/dist/chunk-7BRE6EUA.js.map +0 -1
  291. package/dist/chunk-7Z23ZFLV.js.map +0 -1
  292. package/dist/chunk-CXSCDO5T.js +0 -51
  293. package/dist/chunk-CXSCDO5T.js.map +0 -1
  294. package/dist/chunk-E535SAN4.js.map +0 -1
  295. package/dist/chunk-EUYOGYGV.js.map +0 -1
  296. package/dist/chunk-GIV6DWBG.js.map +0 -1
  297. package/dist/chunk-HXJXPZRE.js.map +0 -1
  298. package/dist/chunk-J4KLMEUL.js.map +0 -1
  299. package/dist/chunk-JYQTXEIO.js.map +0 -1
  300. package/dist/chunk-LRAZDV5X.js.map +0 -1
  301. package/dist/chunk-MRIBLZL3.js +0 -86
  302. package/dist/chunk-MRIBLZL3.js.map +0 -1
  303. package/dist/chunk-MUWOSVEP.js.map +0 -1
  304. package/dist/chunk-OVZDFEOR.js.map +0 -1
  305. package/dist/chunk-PEULZC6M.js.map +0 -1
  306. package/dist/chunk-PFSNOPBQ.js.map +0 -1
  307. package/dist/chunk-PLI5TV7N.js.map +0 -1
  308. package/dist/chunk-Q6W2CMEJ.js.map +0 -1
  309. package/dist/chunk-RTZVQAJ7.js.map +0 -1
  310. package/dist/chunk-TBKOGSYR.js.map +0 -1
  311. package/dist/chunk-UMLVJTYV.js.map +0 -1
  312. package/dist/chunk-UND4XIB6.js.map +0 -1
  313. package/dist/chunk-VCGTOS2A.js.map +0 -1
  314. package/dist/chunk-VE6YVP32.js +0 -19
  315. package/dist/chunk-VE6YVP32.js.map +0 -1
  316. package/dist/chunk-VPSUZLOJ.js.map +0 -1
  317. package/dist/chunk-VRBCTEKQ.js.map +0 -1
  318. package/dist/chunk-W3XXT26A.js.map +0 -1
  319. package/dist/chunk-XG3PTSCD.js.map +0 -1
  320. package/dist/chunk-Y2RKOPNC.js.map +0 -1
  321. package/dist/chunk-YMYK7US4.js.map +0 -1
  322. package/dist/chunk-YS3POABP.js.map +0 -1
  323. package/dist/chunk-YTXSFG3C.js.map +0 -1
  324. package/dist/executor-AS2IDHKZ.js +0 -11
  325. package/dist/executor-HLXFXNFM.js +0 -8
  326. package/dist/executor-HN6YBHZ5.js +0 -8
  327. package/dist/fanout-sidecar-VJ52RIEY.js.map +0 -1
  328. package/dist/issue-ORP37MVW.js +0 -12
  329. package/dist/mime-magic-CBBSOkjm.d.cts +0 -50
  330. package/dist/mime-magic-CBBSOkjm.d.ts +0 -50
  331. package/dist/noydb-5H3C24GG.js +0 -34
  332. package/dist/read-only-facade-ITU6L7BL.js +0 -7
  333. package/dist/registry-7HE6VJGC.js +0 -8
  334. package/dist/registry-PSIPG2QR.js +0 -8
  335. package/dist/registry-RFGGMVNJ.js +0 -7
  336. package/dist/with-derivation-BKXXa8Vt.d.ts +0 -13
  337. package/dist/with-derivation-BjQ7q4NE.d.cts +0 -13
  338. package/dist/with-guard-C25yNjzd.d.ts +0 -18
  339. package/dist/with-guard-DQme5DKE.d.cts +0 -18
  340. /package/dist/{chunk-7Q5PLD5C.js.map → chunk-7MRT7EPB.js.map} +0 -0
  341. /package/dist/{chunk-G6FRSBKK.js.map → chunk-AI4USDRI.js.map} +0 -0
  342. /package/dist/{chunk-NWZ3I6R6.js.map → chunk-EYK72OTL.js.map} +0 -0
  343. /package/dist/{chunk-7BUTTVMR.js.map → chunk-F5GWNSE2.js.map} +0 -0
  344. /package/dist/{chunk-AHPFONIL.js.map → chunk-F5ILTHMU.js.map} +0 -0
  345. /package/dist/{chunk-QPEXPHJR.js.map → chunk-I3IYTUUI.js.map} +0 -0
  346. /package/dist/{chunk-3QAKZ37R.js.map → chunk-IVZWHIEK.js.map} +0 -0
  347. /package/dist/{chunk-243PNUA6.js.map → chunk-JOK73NDT.js.map} +0 -0
  348. /package/dist/{chunk-VK5EER6C.js.map → chunk-SQKAECUL.js.map} +0 -0
  349. /package/dist/{chunk-4HIL6AHQ.js.map → chunk-TAMRU7A2.js.map} +0 -0
  350. /package/dist/{chunk-QXQRKXCU.js.map → chunk-TGIJTNM3.js.map} +0 -0
  351. /package/dist/{chunk-3Y53S2SA.js.map → chunk-UU6M64HI.js.map} +0 -0
  352. /package/dist/{crypto-5ZDIY3NG.js.map → crypto-456N7UVX.js.map} +0 -0
  353. /package/dist/{delegation-QYXZW25W.js.map → delegation-DP4COTXB.js.map} +0 -0
  354. /package/dist/{executor-AS2IDHKZ.js.map → executor-4IEW4KG5.js.map} +0 -0
  355. /package/dist/{executor-HLXFXNFM.js.map → executor-KYJCJCIN.js.map} +0 -0
  356. /package/dist/{executor-HN6YBHZ5.js.map → executor-W7VIBOBZ.js.map} +0 -0
  357. /package/dist/{issue-ORP37MVW.js.map → forget/index.js.map} +0 -0
  358. /package/dist/{ledger-3IU5GMXA.js.map → issue-JXC6T2QR.js.map} +0 -0
  359. /package/dist/{noydb-5H3C24GG.js.map → ledger-I7JUYP4L.js.map} +0 -0
  360. /package/dist/{public-envelope-U3CMEOMV.js.map → noydb-ZZCRF6TE.js.map} +0 -0
  361. /package/dist/{read-only-facade-ITU6L7BL.js.map → public-envelope-5XRTUNKF.js.map} +0 -0
  362. /package/dist/{registry-3ALP62P6.js.map → read-only-facade-EX6WZZBP.js.map} +0 -0
  363. /package/dist/{registry-7HE6VJGC.js.map → registry-ATRHOG5B.js.map} +0 -0
  364. /package/dist/{registry-PSIPG2QR.js.map → registry-DKEXOJVO.js.map} +0 -0
  365. /package/dist/{registry-RFGGMVNJ.js.map → registry-LEHB26TY.js.map} +0 -0
  366. /package/dist/{revoke-KY2GB4KP.js.map → registry-NWHOLD5M.js.map} +0 -0
  367. /package/dist/{signer-GRI5TZKH.js.map → revoke-5IEK22KT.js.map} +0 -0
  368. /package/dist/{stale-OTOF3FH7.js.map → signer-I6YARZQA.js.map} +0 -0
@@ -1,19 +1,20 @@
1
- export { w as withMaterializedView } from '../with-materialized-view-BbEPFIIJ.cjs';
2
- import { aH as Collection, at as TxContext, bi as MVQueryContext, bj as RegisteredMV, bk as MaterializedViewRegistry } from '../types-DJG8HG6F.cjs';
3
- export { bl as MaterializedFromMeta, bm as MaterializedViewOutput, aE as MaterializedViewStrategy, aF as MaterializedViewStrategyHandle, bn as UnionSource } from '../types-DJG8HG6F.cjs';
4
- import { Q as Query } from '../index-BMjrzNZr.cjs';
5
- export { t as MaterializedViewConfigError, u as MaterializedViewCycleError, v as MaterializedViewSourceUnknownError, w as MaterializedViewTooLargeError } from '../index-BMjrzNZr.cjs';
6
- import '../lazy-builder-C-rPfWG0.cjs';
7
- import '../predicate-Dnu81tsS.cjs';
8
- import '../strategy-DSTrsZ8t.cjs';
1
+ export { w as withMaterializedView } from '../with-materialized-view-CeZYGJVf.cjs';
2
+ import { aN as Collection, bk as TxContext, bl as MVQueryContext, bm as RegisteredMV, bn as MaterializedViewRegistry } from '../types-DyOI6XZ_.cjs';
3
+ export { bo as MaterializedFromMeta, bp as MaterializedViewOutput, aK as MaterializedViewStrategy, aL as MaterializedViewStrategyHandle, bq as UnionArmJoin, br as UnionSource } from '../types-DyOI6XZ_.cjs';
4
+ import { Q as Query } from '../index-tZqVB9g5.cjs';
5
+ export { z as MaterializedViewConfigError, C as MaterializedViewCycleError, E as MaterializedViewSourceUnknownError, G as MaterializedViewTooLargeError } from '../errors-Dkc_fi-S.cjs';
6
+ import '../lazy-builder-eYZzLEL1.cjs';
7
+ import '../predicate-BmhBSPCH.cjs';
8
+ import '../strategy-WtB-jXYv.cjs';
9
9
  import '../strategy-BSxFXGzb.cjs';
10
+ import '../index-BMmajblo.cjs';
10
11
  import '@noy-db/attestation';
11
12
 
12
13
  /**
13
14
  * Accessor shape passed in from the owning Vault. Mirrors v1's
14
15
  * `DerivationStaleAccessor` — provides the per-collection resolver
15
16
  * and the active TxContext so refresh writes/tombstones register on
16
- * `_executed` for #133-style rollback symmetry.
17
+ * `_executed` for rollback symmetry.
17
18
  */
18
19
  interface MVExecutorAccessor {
19
20
  getCollection(name: string): Collection<any>;
@@ -44,22 +45,22 @@ interface RefreshResult {
44
45
  *
45
46
  * Stamps `_materializedFrom` onto every emitted row.
46
47
  *
47
- * **Tombstoning** (#152): when `spec.onEmpty: 'delete'` (default), rows
48
+ * **Tombstoning:** when `spec.onEmpty: 'delete'` (default), rows
48
49
  * that existed in a prior refresh but no longer appear in the new
49
50
  * materialized result are deleted via `Collection._internalDelete` —
50
- * the housekeeping bypass primitive added in PR #148 prevents user
51
+ * the housekeeping bypass primitive prevents user
51
52
  * `onDelete` guards on the output collection from firing on these
52
53
  * system-internal deletes. `onEmpty: 'keep'` opts out (rows from
53
54
  * prior refreshes linger even when the new result lacks them).
54
55
  *
55
- * **Cost ceiling** (#152): if the materialized row count exceeds
56
+ * **Cost ceiling:** if the materialized row count exceeds
56
57
  * `spec.maxRows` (default 100k), throws `MaterializedViewTooLargeError`
57
58
  * before any writes hit the store — so strict-mode rollback is
58
59
  * clean.
59
60
  *
60
- * **Strict mode** (#152): `spec.strict === true` re-throws on any
61
+ * **Strict mode:** `spec.strict === true` re-throws on any
61
62
  * row-write failure; the active TxContext registration means the
62
- * source-write rolls back atomically via `revertExecuted` (#133).
63
+ * source-write rolls back atomically via `revertExecuted`.
63
64
  *
64
65
  * @internal
65
66
  */
@@ -71,14 +72,16 @@ declare const MaterializedViewExecutor: {
71
72
  * Walks a `Query<T>` plan and returns the set of source collection
72
73
  * names that any source-write should trigger a refresh on.
73
74
  *
74
- * Foundation sub-issue (#150) handles:
75
+ * Handles:
75
76
  * - root collection (the one the query was built from)
76
77
  * - FK join targets (`.join(field, { as })`)
77
78
  *
78
- * Deferred to later sub-issues:
79
- * - `.crossJoin()` — v3 cross-join spec (separate primitive)
80
- * - `.wherePredicate(name)` — v2 predicate primitive, sub-issue #153
81
- * - Overlay-name expansion to {base, overlay} — sub-issue #154
79
+ * Also handles:
80
+ * - cross-join targets (`.crossJoin(target, { as })`) — v3
81
+ *
82
+ * Deferred:
83
+ * - `.wherePredicate(name)` — v2 predicate primitive
84
+ * - Overlay-name expansion to {base, overlay}
82
85
  *
83
86
  * The set is materialized at MV registration time. The MV registry
84
87
  * uses it to (a) dispatch `onSourceWrite` only to MVs that actually
@@ -167,7 +170,7 @@ declare function isMVStale(registry: MaterializedViewRegistry, mvName: string):
167
170
  *
168
171
  * Dynamic-imports the executor only when a stale flag actually fires
169
172
  * (the floor-bundle isolation pattern v1 derivations established in
170
- * #130).
173
+ * floor-bundle isolation pattern).
171
174
  */
172
175
  declare function resolveStaleMVOnRead(accessor: MVStaleAccessor, outputCollection: string): Promise<void>;
173
176
  /**
@@ -1,19 +1,20 @@
1
- export { w as withMaterializedView } from '../with-materialized-view-CqnRwI2S.js';
2
- import { aH as Collection, at as TxContext, bi as MVQueryContext, bj as RegisteredMV, bk as MaterializedViewRegistry } from '../types-BoFFiskX.js';
3
- export { bl as MaterializedFromMeta, bm as MaterializedViewOutput, aE as MaterializedViewStrategy, aF as MaterializedViewStrategyHandle, bn as UnionSource } from '../types-BoFFiskX.js';
4
- import { Q as Query } from '../index-BCKdioeh.js';
5
- export { t as MaterializedViewConfigError, u as MaterializedViewCycleError, v as MaterializedViewSourceUnknownError, w as MaterializedViewTooLargeError } from '../index-BCKdioeh.js';
6
- import '../lazy-builder-Rpd-V3jP.js';
7
- import '../predicate-Dnu81tsS.js';
8
- import '../strategy-DSTrsZ8t.js';
1
+ export { w as withMaterializedView } from '../with-materialized-view-DNULSxoP.js';
2
+ import { aN as Collection, bk as TxContext, bl as MVQueryContext, bm as RegisteredMV, bn as MaterializedViewRegistry } from '../types-DLfWFr6U.js';
3
+ export { bo as MaterializedFromMeta, bp as MaterializedViewOutput, aK as MaterializedViewStrategy, aL as MaterializedViewStrategyHandle, bq as UnionArmJoin, br as UnionSource } from '../types-DLfWFr6U.js';
4
+ import { Q as Query } from '../index-Bm9hIY7t.js';
5
+ export { z as MaterializedViewConfigError, C as MaterializedViewCycleError, E as MaterializedViewSourceUnknownError, G as MaterializedViewTooLargeError } from '../errors-Dkc_fi-S.js';
6
+ import '../lazy-builder-ChSqcF5t.js';
7
+ import '../predicate-BmhBSPCH.js';
8
+ import '../strategy-54eIwox5.js';
9
9
  import '../strategy-BSxFXGzb.js';
10
+ import '../index-BMmajblo.js';
10
11
  import '@noy-db/attestation';
11
12
 
12
13
  /**
13
14
  * Accessor shape passed in from the owning Vault. Mirrors v1's
14
15
  * `DerivationStaleAccessor` — provides the per-collection resolver
15
16
  * and the active TxContext so refresh writes/tombstones register on
16
- * `_executed` for #133-style rollback symmetry.
17
+ * `_executed` for rollback symmetry.
17
18
  */
18
19
  interface MVExecutorAccessor {
19
20
  getCollection(name: string): Collection<any>;
@@ -44,22 +45,22 @@ interface RefreshResult {
44
45
  *
45
46
  * Stamps `_materializedFrom` onto every emitted row.
46
47
  *
47
- * **Tombstoning** (#152): when `spec.onEmpty: 'delete'` (default), rows
48
+ * **Tombstoning:** when `spec.onEmpty: 'delete'` (default), rows
48
49
  * that existed in a prior refresh but no longer appear in the new
49
50
  * materialized result are deleted via `Collection._internalDelete` —
50
- * the housekeeping bypass primitive added in PR #148 prevents user
51
+ * the housekeeping bypass primitive prevents user
51
52
  * `onDelete` guards on the output collection from firing on these
52
53
  * system-internal deletes. `onEmpty: 'keep'` opts out (rows from
53
54
  * prior refreshes linger even when the new result lacks them).
54
55
  *
55
- * **Cost ceiling** (#152): if the materialized row count exceeds
56
+ * **Cost ceiling:** if the materialized row count exceeds
56
57
  * `spec.maxRows` (default 100k), throws `MaterializedViewTooLargeError`
57
58
  * before any writes hit the store — so strict-mode rollback is
58
59
  * clean.
59
60
  *
60
- * **Strict mode** (#152): `spec.strict === true` re-throws on any
61
+ * **Strict mode:** `spec.strict === true` re-throws on any
61
62
  * row-write failure; the active TxContext registration means the
62
- * source-write rolls back atomically via `revertExecuted` (#133).
63
+ * source-write rolls back atomically via `revertExecuted`.
63
64
  *
64
65
  * @internal
65
66
  */
@@ -71,14 +72,16 @@ declare const MaterializedViewExecutor: {
71
72
  * Walks a `Query<T>` plan and returns the set of source collection
72
73
  * names that any source-write should trigger a refresh on.
73
74
  *
74
- * Foundation sub-issue (#150) handles:
75
+ * Handles:
75
76
  * - root collection (the one the query was built from)
76
77
  * - FK join targets (`.join(field, { as })`)
77
78
  *
78
- * Deferred to later sub-issues:
79
- * - `.crossJoin()` — v3 cross-join spec (separate primitive)
80
- * - `.wherePredicate(name)` — v2 predicate primitive, sub-issue #153
81
- * - Overlay-name expansion to {base, overlay} — sub-issue #154
79
+ * Also handles:
80
+ * - cross-join targets (`.crossJoin(target, { as })`) — v3
81
+ *
82
+ * Deferred:
83
+ * - `.wherePredicate(name)` — v2 predicate primitive
84
+ * - Overlay-name expansion to {base, overlay}
82
85
  *
83
86
  * The set is materialized at MV registration time. The MV registry
84
87
  * uses it to (a) dispatch `onSourceWrite` only to MVs that actually
@@ -167,7 +170,7 @@ declare function isMVStale(registry: MaterializedViewRegistry, mvName: string):
167
170
  *
168
171
  * Dynamic-imports the executor only when a stale flag actually fires
169
172
  * (the floor-bundle isolation pattern v1 derivations established in
170
- * #130).
173
+ * floor-bundle isolation pattern).
171
174
  */
172
175
  declare function resolveStaleMVOnRead(accessor: MVStaleAccessor, outputCollection: string): Promise<void>;
173
176
  /**
@@ -1,30 +1,31 @@
1
1
  import {
2
2
  withMaterializedView
3
- } from "../chunk-RTZVQAJ7.js";
3
+ } from "../chunk-6QE4DUYC.js";
4
4
  import {
5
5
  MaterializedViewExecutor
6
- } from "../chunk-Y2RKOPNC.js";
6
+ } from "../chunk-5YTXYPES.js";
7
7
  import {
8
8
  MaterializedViewRegistry,
9
9
  analyzeDependencies,
10
10
  canonicalizeQueryPlan,
11
11
  computeQueryHash,
12
12
  summarizeQueryPlan
13
- } from "../chunk-TBKOGSYR.js";
13
+ } from "../chunk-KOAJ3TZM.js";
14
14
  import {
15
15
  clearMVStale,
16
16
  isMVStale,
17
17
  markMVStale,
18
18
  resolveStaleMVOnRead
19
- } from "../chunk-PLI5TV7N.js";
20
- import "../chunk-VRBCTEKQ.js";
21
- import "../chunk-MRIBLZL3.js";
19
+ } from "../chunk-IW4L4X65.js";
20
+ import "../chunk-JYNH4FIM.js";
21
+ import "../chunk-U2XSUCDF.js";
22
+ import "../chunk-TNH5SLCD.js";
22
23
  import {
23
24
  MaterializedViewConfigError,
24
25
  MaterializedViewCycleError,
25
26
  MaterializedViewSourceUnknownError,
26
27
  MaterializedViewTooLargeError
27
- } from "../chunk-W3XXT26A.js";
28
+ } from "../chunk-OTWT6BAJ.js";
28
29
  export {
29
30
  MaterializedViewConfigError,
30
31
  MaterializedViewCycleError,
@@ -0,0 +1,103 @@
1
+ import { V as ObjectProjection } from './types-DyOI6XZ_.cjs';
2
+
3
+ /**
4
+ * Import / bootstrap (reverse projection) — walk an existing bucket/prefix in an
5
+ * {@link ObjectProjection} and build a master collection where each record
6
+ * anchors one object, restoring the record-anchoring invariant for objects that
7
+ * pre-date noy-db (or were written by another system). See as-aws-s3 §3.8.
8
+ *
9
+ * Idempotent: re-running re-adopts the same objects under the same record ids.
10
+ */
11
+
12
+ /** Minimal collection surface this utility needs (avoids importing the kernel). */
13
+ interface ImportableCollection {
14
+ get(id: string): Promise<unknown>;
15
+ put(id: string, record: unknown): Promise<unknown>;
16
+ blob(id: string): {
17
+ adoptExternal(slot: string, ref: {
18
+ key: string;
19
+ size?: number;
20
+ contentType?: string;
21
+ public?: boolean;
22
+ backlink?: string;
23
+ }): Promise<void>;
24
+ };
25
+ }
26
+ interface ImportExternalOptions {
27
+ /** Only consider objects under this key prefix. Default `''` (all). */
28
+ prefix?: string;
29
+ /**
30
+ * Derive the record id for an object key. Default: the path segment before
31
+ * the last — i.e. `{collection}/{recordId}/{field}` → `recordId`. Return
32
+ * `null` to skip the object.
33
+ */
34
+ deriveRecordId?: (key: string) => string | null;
35
+ /** Build the anchor record for a new id. Default `{ id }`. */
36
+ makeRecord?: (id: string) => unknown;
37
+ }
38
+ interface ImportExternalResult {
39
+ imported: number;
40
+ skipped: number;
41
+ recordIds: string[];
42
+ }
43
+ /**
44
+ * Build/extend `collection` from the objects under `prefix` in `objectStore`,
45
+ * adopting each as the `field` blob on its derived record.
46
+ */
47
+ declare function importExternalObjects(args: {
48
+ collection: ImportableCollection;
49
+ objectStore: ObjectProjection;
50
+ field: string;
51
+ options?: ImportExternalOptions;
52
+ }): Promise<ImportExternalResult>;
53
+
54
+ /**
55
+ * Lightweight MIME type detection from magic bytes (file signatures).
56
+ *
57
+ * Designed for the blob store's auto-detection feature. Operates on the first 16 bytes of
58
+ * plaintext — no filesystem access, no filename guessing.
59
+ *
60
+ * ## Detection strategies
61
+ *
62
+ * 1. **Prefix match** — magic bytes at offset 0 (most formats).
63
+ * 2. **Offset match** — magic bytes at a fixed offset > 0 (ISOBMFF: offset 4).
64
+ * 3. **Compound match** — two separate byte sequences at different offsets
65
+ * (RIFF-based: bytes 0-3 + bytes 8-11).
66
+ *
67
+ * ## Formats excluded (require offset > 16 bytes)
68
+ *
69
+ * - TAR (`ustar` at offset 257)
70
+ * - ISO 9660 (`CD001` at offset 32769)
71
+ *
72
+ * @module
73
+ */
74
+ /**
75
+ * Detect MIME type from the first bytes of a file.
76
+ *
77
+ * @param header - The first 16 bytes (or more) of the plaintext. Passing
78
+ * fewer than 16 bytes may miss compound and offset-based matches.
79
+ * @returns Detected MIME type, or `'application/octet-stream'` if unknown.
80
+ */
81
+ declare function detectMimeType(header: Uint8Array): string;
82
+ /**
83
+ * Detect MIME type and whether the format is already compressed.
84
+ *
85
+ * Used by `BlobSet.put()` to decide whether to skip gzip compression.
86
+ *
87
+ * @param header - The first 16 bytes (or more) of the plaintext.
88
+ * @returns `{ mime, preCompressed }` or `null` if no match.
89
+ */
90
+ declare function detectMagic(header: Uint8Array): {
91
+ mime: string;
92
+ format: string;
93
+ preCompressed: boolean;
94
+ } | null;
95
+ /**
96
+ * Check whether a format is already compressed (should skip gzip).
97
+ *
98
+ * @param mimeType - A MIME type string.
99
+ * @returns `true` if the format is known to be pre-compressed.
100
+ */
101
+ declare function isPreCompressed(mimeType: string): boolean;
102
+
103
+ export { type ImportExternalOptions as I, type ImportExternalResult as a, type ImportableCollection as b, detectMimeType as c, detectMagic as d, isPreCompressed as e, importExternalObjects as i };
@@ -0,0 +1,103 @@
1
+ import { V as ObjectProjection } from './types-DLfWFr6U.js';
2
+
3
+ /**
4
+ * Import / bootstrap (reverse projection) — walk an existing bucket/prefix in an
5
+ * {@link ObjectProjection} and build a master collection where each record
6
+ * anchors one object, restoring the record-anchoring invariant for objects that
7
+ * pre-date noy-db (or were written by another system). See as-aws-s3 §3.8.
8
+ *
9
+ * Idempotent: re-running re-adopts the same objects under the same record ids.
10
+ */
11
+
12
+ /** Minimal collection surface this utility needs (avoids importing the kernel). */
13
+ interface ImportableCollection {
14
+ get(id: string): Promise<unknown>;
15
+ put(id: string, record: unknown): Promise<unknown>;
16
+ blob(id: string): {
17
+ adoptExternal(slot: string, ref: {
18
+ key: string;
19
+ size?: number;
20
+ contentType?: string;
21
+ public?: boolean;
22
+ backlink?: string;
23
+ }): Promise<void>;
24
+ };
25
+ }
26
+ interface ImportExternalOptions {
27
+ /** Only consider objects under this key prefix. Default `''` (all). */
28
+ prefix?: string;
29
+ /**
30
+ * Derive the record id for an object key. Default: the path segment before
31
+ * the last — i.e. `{collection}/{recordId}/{field}` → `recordId`. Return
32
+ * `null` to skip the object.
33
+ */
34
+ deriveRecordId?: (key: string) => string | null;
35
+ /** Build the anchor record for a new id. Default `{ id }`. */
36
+ makeRecord?: (id: string) => unknown;
37
+ }
38
+ interface ImportExternalResult {
39
+ imported: number;
40
+ skipped: number;
41
+ recordIds: string[];
42
+ }
43
+ /**
44
+ * Build/extend `collection` from the objects under `prefix` in `objectStore`,
45
+ * adopting each as the `field` blob on its derived record.
46
+ */
47
+ declare function importExternalObjects(args: {
48
+ collection: ImportableCollection;
49
+ objectStore: ObjectProjection;
50
+ field: string;
51
+ options?: ImportExternalOptions;
52
+ }): Promise<ImportExternalResult>;
53
+
54
+ /**
55
+ * Lightweight MIME type detection from magic bytes (file signatures).
56
+ *
57
+ * Designed for the blob store's auto-detection feature. Operates on the first 16 bytes of
58
+ * plaintext — no filesystem access, no filename guessing.
59
+ *
60
+ * ## Detection strategies
61
+ *
62
+ * 1. **Prefix match** — magic bytes at offset 0 (most formats).
63
+ * 2. **Offset match** — magic bytes at a fixed offset > 0 (ISOBMFF: offset 4).
64
+ * 3. **Compound match** — two separate byte sequences at different offsets
65
+ * (RIFF-based: bytes 0-3 + bytes 8-11).
66
+ *
67
+ * ## Formats excluded (require offset > 16 bytes)
68
+ *
69
+ * - TAR (`ustar` at offset 257)
70
+ * - ISO 9660 (`CD001` at offset 32769)
71
+ *
72
+ * @module
73
+ */
74
+ /**
75
+ * Detect MIME type from the first bytes of a file.
76
+ *
77
+ * @param header - The first 16 bytes (or more) of the plaintext. Passing
78
+ * fewer than 16 bytes may miss compound and offset-based matches.
79
+ * @returns Detected MIME type, or `'application/octet-stream'` if unknown.
80
+ */
81
+ declare function detectMimeType(header: Uint8Array): string;
82
+ /**
83
+ * Detect MIME type and whether the format is already compressed.
84
+ *
85
+ * Used by `BlobSet.put()` to decide whether to skip gzip compression.
86
+ *
87
+ * @param header - The first 16 bytes (or more) of the plaintext.
88
+ * @returns `{ mime, preCompressed }` or `null` if no match.
89
+ */
90
+ declare function detectMagic(header: Uint8Array): {
91
+ mime: string;
92
+ format: string;
93
+ preCompressed: boolean;
94
+ } | null;
95
+ /**
96
+ * Check whether a format is already compressed (should skip gzip).
97
+ *
98
+ * @param mimeType - A MIME type string.
99
+ * @returns `true` if the format is known to be pre-compressed.
100
+ */
101
+ declare function isPreCompressed(mimeType: string): boolean;
102
+
103
+ export { type ImportExternalOptions as I, type ImportExternalResult as a, type ImportableCollection as b, detectMimeType as c, detectMagic as d, isPreCompressed as e, importExternalObjects as i };
@@ -0,0 +1,38 @@
1
+ import {
2
+ Noydb,
3
+ createNoydb
4
+ } from "./chunk-7PH4OPBZ.js";
5
+ import "./chunk-ZC7J6ZYV.js";
6
+ import "./chunk-EMIGCR7X.js";
7
+ import "./chunk-IY24WS2P.js";
8
+ import "./chunk-MBXKRHSS.js";
9
+ import "./chunk-NV4IHBZS.js";
10
+ import "./chunk-2XA2ZML4.js";
11
+ import "./chunk-3HNKR65T.js";
12
+ import "./chunk-GJTKMME7.js";
13
+ import "./chunk-ZONKSLF2.js";
14
+ import "./chunk-JYNH4FIM.js";
15
+ import "./chunk-U2XSUCDF.js";
16
+ import "./chunk-C6W5KVDV.js";
17
+ import "./chunk-JOK73NDT.js";
18
+ import "./chunk-BZW5IL43.js";
19
+ import "./chunk-I3IYTUUI.js";
20
+ import "./chunk-UF3BUNQZ.js";
21
+ import "./chunk-O5XKZCUD.js";
22
+ import "./chunk-TNH5SLCD.js";
23
+ import "./chunk-HYJMAV53.js";
24
+ import "./chunk-F5GWNSE2.js";
25
+ import "./chunk-FRRJIUSI.js";
26
+ import "./chunk-2QR2PQTT.js";
27
+ import "./chunk-FZU343FL.js";
28
+ import "./chunk-JDCPRJVS.js";
29
+ import "./chunk-PDVP3C2I.js";
30
+ import "./chunk-CQYEDODS.js";
31
+ import "./chunk-TA6HPKWQ.js";
32
+ import "./chunk-37VGJM3T.js";
33
+ import "./chunk-OTWT6BAJ.js";
34
+ export {
35
+ Noydb,
36
+ createNoydb
37
+ };
38
+ //# sourceMappingURL=noydb-ZZCRF6TE.js.map
@@ -158,6 +158,16 @@ var OverlayedViewRegistry = class {
158
158
  isOverlay(name) {
159
159
  return this._byName.has(name);
160
160
  }
161
+ /**
162
+ * All registered overlay strategies as a flat array.
163
+ * Each strategy carries `name`, `base`, and `overlay` fields that
164
+ * `describeOverlays()` in the introspection walker reads directly.
165
+ *
166
+ * Used by `dumpSchema()` to populate the `overlayViews` map.
167
+ */
168
+ all() {
169
+ return [...this._byName.values()];
170
+ }
161
171
  /**
162
172
  * Resolve the `rowKey` function for an overlay's base MV. Returns
163
173
  * `undefined` if the base isn't an MV (raw source collection) or
@@ -207,37 +217,34 @@ var OverlayedCollection = class {
207
217
  /** Get the merged row by id. */
208
218
  async get(id) {
209
219
  const overlayRow = await this.overlayCollection.get(id);
210
- if (overlayRow !== null && this.shadowPredicateApplies(overlayRow)) {
211
- return overlayRow;
212
- }
213
220
  const baseRow = await this.baseCollection.get(id);
214
- if (baseRow !== null) return baseRow;
215
- return null;
221
+ return this.mergeRows(overlayRow, baseRow);
216
222
  }
217
223
  /** List union of base + overlay ids, applying the merge per row. */
218
224
  async list() {
219
225
  const baseRows = await this.baseCollection.list();
220
226
  const overlayRows = await this.overlayCollection.list();
221
- const merged = /* @__PURE__ */ new Map();
222
227
  const idOf = (row) => {
223
228
  if (this.baseRowKey) return this.baseRowKey(row);
224
229
  const idField = row.id;
225
230
  return typeof idField === "string" ? idField : "";
226
231
  };
232
+ const baseById = /* @__PURE__ */ new Map();
233
+ const overlayById = /* @__PURE__ */ new Map();
227
234
  for (const row of baseRows) {
228
235
  const id = idOf(row);
229
- if (id) merged.set(id, row);
236
+ if (id) baseById.set(id, row);
230
237
  }
231
238
  for (const row of overlayRows) {
232
239
  const id = idOf(row);
233
- if (!id) continue;
234
- if (this.shadowPredicateApplies(row)) {
235
- merged.set(id, row);
236
- } else if (!merged.has(id)) {
237
- continue;
238
- }
240
+ if (id) overlayById.set(id, row);
241
+ }
242
+ const out = [];
243
+ for (const id of /* @__PURE__ */ new Set([...baseById.keys(), ...overlayById.keys()])) {
244
+ const merged = this.mergeRows(overlayById.get(id) ?? null, baseById.get(id) ?? null);
245
+ if (merged !== null) out.push(merged);
239
246
  }
240
- return [...merged.values()];
247
+ return out;
241
248
  }
242
249
  /**
243
250
  * Write to the overlay. Two forms:
@@ -277,9 +284,42 @@ var OverlayedCollection = class {
277
284
  async delete(id) {
278
285
  await this.overlayCollection.delete(id);
279
286
  }
280
- /** True when `overlay[shadowField] === shadowValue`. */
281
- shadowPredicateApplies(row) {
282
- return row[this.spec.shadowField] === this.spec.shadowValue;
287
+ /**
288
+ * Merge a single id's overlay + base rows into the visible row.
289
+ *
290
+ * Priority (first match wins):
291
+ * 1. Binary shadow win — overlay present AND
292
+ * `overlay[shadowField] === shadowValue` → return the overlay row
293
+ * entirely. This stays FIRST so the original binary behaviour is
294
+ * unchanged whether or not `mergeMode` is configured.
295
+ * 2. Field-level merge — overlay present, `mergeMode` configured,
296
+ * and a rule whose `whenStatus` equals `overlay[shadowField]`.
297
+ * The matched rule pulls its `overlayFields` (those present on
298
+ * the overlay row) on top of the base row. With no base row, the
299
+ * overlay row is returned as-is.
300
+ * 3. Fallback — return the base row (possibly `null`). An
301
+ * overlay-only row that qualifies under neither (1) nor (2) and
302
+ * has no base is therefore NOT surfaced.
303
+ */
304
+ mergeRows(overlayRow, baseRow) {
305
+ const shadowField = this.spec.shadowField;
306
+ if (overlayRow !== null && overlayRow[shadowField] === this.spec.shadowValue) {
307
+ return overlayRow;
308
+ }
309
+ if (overlayRow !== null && this.spec.mergeMode) {
310
+ const status = overlayRow[shadowField];
311
+ const rule = this.spec.mergeMode.rules.find((r) => r.whenStatus === status);
312
+ if (rule) {
313
+ if (baseRow === null) return overlayRow;
314
+ const overlaySrc = overlayRow;
315
+ const picked = {};
316
+ for (const field of rule.overlayFields) {
317
+ if (field in overlaySrc) picked[field] = overlaySrc[field];
318
+ }
319
+ return { ...baseRow, ...picked };
320
+ }
321
+ }
322
+ return baseRow;
283
323
  }
284
324
  // ─── Throw-stubs for the unimplemented Collection<T> surface ───────
285
325
  //
@@ -290,7 +330,7 @@ var OverlayedCollection = class {
290
330
  // error pointing at the relevant issue — so consumers don't hit a
291
331
  // cryptic `undefined is not a function` runtime crash.
292
332
  //
293
- // Closes niwat-review of PR #160.
333
+ // Throw-stubs so consumers get actionable errors rather than cryptic crashes.
294
334
  /** @throws — chainable Query<T> over a virtual collection is deferred. */
295
335
  query() {
296
336
  throw new Error(