wao 0.12.4 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/aoconnect-base.js +307 -167
- package/cjs/armem-base.js +38 -28
- package/cjs/bar.js +260 -193
- package/cjs/hb.js +418 -0
- package/cjs/index.js +7 -0
- package/cjs/lua/aos_mainnet.wasm +0 -0
- package/cjs/server.js +425 -231
- package/cjs/waosm-node/waosm_bg.wasm.js +19 -0
- package/cjs/waosm-node.js +8 -22
- package/cjs/weavedb.js +59 -49
- package/cjs/weavedrive.js +24 -19
- package/esm/aoconnect-base.js +123 -55
- package/esm/armem-base.js +9 -4
- package/esm/bar.js +30 -6
- package/esm/hb.js +121 -0
- package/esm/index.js +2 -1
- package/esm/lua/aos_mainnet.wasm +0 -0
- package/esm/server.js +172 -21
- package/esm/waosm-node/waosm_bg.wasm.js +14 -0
- package/esm/waosm-node.js +6 -22
- package/esm/weavedb.js +15 -11
- package/esm/weavedrive.js +13 -11
- package/package.json +4 -1
- package/esm/.cache/data.mdb +0 -0
- package/esm/.cache/lock.mdb +0 -0
- package/esm/.db/100040/data/1/123.json +0 -1
- package/esm/.db/103252/data/0/13315.json +0 -1
- package/esm/.db/103252/data/1/120.json +0 -1
- package/esm/.db/103252/data/1/123.json +0 -1
- package/esm/.db/105470/data/0/0.json +0 -1
- package/esm/.db/105470/data/1/120.json +0 -1
- package/esm/.db/105470/data/1/123.json +0 -1
- package/esm/.db/105470/data/3/104.json +0 -1
- package/esm/.db/105667/data/ppl/bob.json +0 -1
- package/esm/.db/105869/data/1/120.json +0 -1
- package/esm/.db/105869/data/1/123.json +0 -1
- package/esm/.db/113125/data/1/example.json +0 -1
- package/esm/.db/116234/data/1/123.json +0 -1
- package/esm/.db/119911/data/1/120.json +0 -1
- package/esm/.db/119911/data/1/123.json +0 -1
- package/esm/.db/122989/data/0/0.json +0 -1
- package/esm/.db/122989/data/1/120.json +0 -1
- package/esm/.db/122989/data/1/123.json +0 -1
- package/esm/.db/125755/data/1/123.json +0 -1
- package/esm/.db/126241/data/1/123.json +0 -1
- package/esm/.db/129099/data/1/123.json +0 -1
- package/esm/.db/129781/data/0/14083.json +0 -1
- package/esm/.db/129781/data/1/120.json +0 -1
- package/esm/.db/129781/data/1/123.json +0 -1
- package/esm/.db/129781/data/15/0.json +0 -1
- package/esm/.db/132860/data/0/13315.json +0 -1
- package/esm/.db/132860/data/1/120.json +0 -1
- package/esm/.db/132860/data/1/123.json +0 -1
- package/esm/.db/134721/data/1/123.json +0 -1
- package/esm/.db/137408/data/ppl/bob.json +0 -1
- package/esm/.db/137556/data/1/123.json +0 -1
- package/esm/.db/143417/data/1/123.json +0 -1
- package/esm/.db/143799/data/1/123.json +0 -1
- package/esm/.db/146558/data/0/0.json +0 -1
- package/esm/.db/146558/data/1/120.json +0 -1
- package/esm/.db/146558/data/1/123.json +0 -1
- package/esm/.db/153145/data/1/123.json +0 -1
- package/esm/.db/153912/data/1/example.json +0 -1
- package/esm/.db/154536/data/0/13315.json +0 -1
- package/esm/.db/154536/data/1/120.json +0 -1
- package/esm/.db/154536/data/1/123.json +0 -1
- package/esm/.db/158777/data/1/123.json +0 -1
- package/esm/.db/170678/data/0/13315.json +0 -1
- package/esm/.db/170678/data/1/120.json +0 -1
- package/esm/.db/170678/data/1/123.json +0 -1
- package/esm/.db/17434/data/1/123.json +0 -1
- package/esm/.db/176113/data/1/123.json +0 -1
- package/esm/.db/179669/data/0/13315.json +0 -1
- package/esm/.db/179669/data/1/120.json +0 -1
- package/esm/.db/179669/data/1/123.json +0 -1
- package/esm/.db/183368/data/1/120.json +0 -1
- package/esm/.db/183368/data/1/123.json +0 -1
- package/esm/.db/188491/data/0/14083.json +0 -1
- package/esm/.db/188491/data/1/120.json +0 -1
- package/esm/.db/188491/data/1/123.json +0 -1
- package/esm/.db/188491/data/15/0.json +0 -1
- package/esm/.db/189189/data/ppl/bob.json +0 -1
- package/esm/.db/195025/data/1/120.json +0 -1
- package/esm/.db/195025/data/1/123.json +0 -1
- package/esm/.db/19852/data/1/123.json +0 -1
- package/esm/.db/204968/data/1/123.json +0 -1
- package/esm/.db/207069/data/0/0.json +0 -1
- package/esm/.db/207069/data/1/120.json +0 -1
- package/esm/.db/207069/data/1/123.json +0 -1
- package/esm/.db/211038/data/1/120.json +0 -1
- package/esm/.db/211038/data/1/123.json +0 -1
- package/esm/.db/211580/data/1/120.json +0 -1
- package/esm/.db/211580/data/1/123.json +0 -1
- package/esm/.db/214305/data/0/0.json +0 -1
- package/esm/.db/214305/data/1/120.json +0 -1
- package/esm/.db/214305/data/1/123.json +0 -1
- package/esm/.db/214712/data/0/13315.json +0 -1
- package/esm/.db/214712/data/1/120.json +0 -1
- package/esm/.db/214712/data/1/123.json +0 -1
- package/esm/.db/218886/data/0/14083.json +0 -1
- package/esm/.db/218886/data/1/120.json +0 -1
- package/esm/.db/218886/data/1/123.json +0 -1
- package/esm/.db/218886/data/15/0.json +0 -1
- package/esm/.db/221009/data/1/123.json +0 -1
- package/esm/.db/221818/data/1/120.json +0 -1
- package/esm/.db/221818/data/1/123.json +0 -1
- package/esm/.db/226668/data/0/13315.json +0 -1
- package/esm/.db/226668/data/1/120.json +0 -1
- package/esm/.db/226668/data/1/123.json +0 -1
- package/esm/.db/226981/data/0/123.json +0 -1
- package/esm/.db/235331/data/0/13315.json +0 -1
- package/esm/.db/235331/data/1/120.json +0 -1
- package/esm/.db/235331/data/1/123.json +0 -1
- package/esm/.db/247863/data/1/123.json +0 -1
- package/esm/.db/247918/data/0/0.json +0 -1
- package/esm/.db/247918/data/1/120.json +0 -1
- package/esm/.db/247918/data/1/123.json +0 -1
- package/esm/.db/247918/data/3/104.json +0 -1
- package/esm/.db/250384/data/1/123.json +0 -1
- package/esm/.db/253205/data/1/120.json +0 -1
- package/esm/.db/253205/data/1/123.json +0 -1
- package/esm/.db/26452/data/1/120.json +0 -1
- package/esm/.db/26452/data/1/123.json +0 -1
- package/esm/.db/265430/data/1/120.json +0 -1
- package/esm/.db/265430/data/1/123.json +0 -1
- package/esm/.db/269049/data/0/0.json +0 -1
- package/esm/.db/269049/data/1/120.json +0 -1
- package/esm/.db/269049/data/1/123.json +0 -1
- package/esm/.db/273652/data/0/0.json +0 -1
- package/esm/.db/273652/data/1/120.json +0 -1
- package/esm/.db/273652/data/1/123.json +0 -1
- package/esm/.db/281035/data/0/0.json +0 -1
- package/esm/.db/281035/data/1/120.json +0 -1
- package/esm/.db/281035/data/1/123.json +0 -1
- package/esm/.db/281140/data/0/13315.json +0 -1
- package/esm/.db/281140/data/1/120.json +0 -1
- package/esm/.db/281140/data/1/123.json +0 -1
- package/esm/.db/295732/data/ppl/bob.json +0 -1
- package/esm/.db/296113/data/1/123.json +0 -1
- package/esm/.db/297154/data/0/13315.json +0 -1
- package/esm/.db/297154/data/1/120.json +0 -1
- package/esm/.db/297154/data/1/123.json +0 -1
- package/esm/.db/304770/data/1/120.json +0 -1
- package/esm/.db/304770/data/1/123.json +0 -1
- package/esm/.db/3081/data/0/0.json +0 -1
- package/esm/.db/3081/data/1/120.json +0 -1
- package/esm/.db/3081/data/1/123.json +0 -1
- package/esm/.db/310793/data/1/120.json +0 -1
- package/esm/.db/310793/data/1/123.json +0 -1
- package/esm/.db/317310/data/1/123.json +0 -1
- package/esm/.db/317819/data/1/example.json +0 -1
- package/esm/.db/319464/data/0/0.json +0 -1
- package/esm/.db/319464/data/1/120.json +0 -1
- package/esm/.db/319464/data/1/123.json +0 -1
- package/esm/.db/32053/data/1/120.json +0 -1
- package/esm/.db/32053/data/1/123.json +0 -1
- package/esm/.db/322473/data/ppl/bob.json +0 -1
- package/esm/.db/323300/data/1/123.json +0 -1
- package/esm/.db/323840/data/0/0.json +0 -1
- package/esm/.db/323840/data/1/120.json +0 -1
- package/esm/.db/323840/data/1/123.json +0 -1
- package/esm/.db/328731/data/0/0.json +0 -1
- package/esm/.db/328731/data/1/120.json +0 -1
- package/esm/.db/328731/data/1/123.json +0 -1
- package/esm/.db/334158/data/1/example.json +0 -1
- package/esm/.db/334577/data/1/example.json +0 -1
- package/esm/.db/339914/data/1/123.json +0 -1
- package/esm/.db/34265/data/0/0.json +0 -1
- package/esm/.db/34265/data/1/120.json +0 -1
- package/esm/.db/34265/data/1/123.json +0 -1
- package/esm/.db/346364/data/1/123.json +0 -1
- package/esm/.db/349791/data/0/14083.json +0 -1
- package/esm/.db/349791/data/1/120.json +0 -1
- package/esm/.db/349791/data/1/123.json +0 -1
- package/esm/.db/349791/data/15/0.json +0 -1
- package/esm/.db/350767/data/ppl/bob.json +0 -1
- package/esm/.db/352310/data/0/13315.json +0 -1
- package/esm/.db/352310/data/1/120.json +0 -1
- package/esm/.db/352310/data/1/123.json +0 -1
- package/esm/.db/35438/data/1/123.json +0 -1
- package/esm/.db/354670/data/0/13315.json +0 -1
- package/esm/.db/354670/data/1/120.json +0 -1
- package/esm/.db/354670/data/1/123.json +0 -1
- package/esm/.db/354805/data/0/0.json +0 -1
- package/esm/.db/354805/data/1/120.json +0 -1
- package/esm/.db/354805/data/1/123.json +0 -1
- package/esm/.db/358368/data/1/example.json +0 -1
- package/esm/.db/358831/data/1/123.json +0 -1
- package/esm/.db/360133/data/0/0.json +0 -1
- package/esm/.db/360133/data/1/120.json +0 -1
- package/esm/.db/360133/data/1/123.json +0 -1
- package/esm/.db/367925/data/0/13315.json +0 -1
- package/esm/.db/367925/data/1/120.json +0 -1
- package/esm/.db/367925/data/1/123.json +0 -1
- package/esm/.db/369638/data/1/123.json +0 -1
- package/esm/.db/3700/data/1/120.json +0 -1
- package/esm/.db/3700/data/1/123.json +0 -1
- package/esm/.db/374988/data/0/0.json +0 -1
- package/esm/.db/374988/data/1/120.json +0 -1
- package/esm/.db/374988/data/1/123.json +0 -1
- package/esm/.db/380018/data/1/123.json +0 -1
- package/esm/.db/380021/data/1/123.json +0 -1
- package/esm/.db/386761/data/1/123.json +0 -1
- package/esm/.db/387217/data/0/13315.json +0 -1
- package/esm/.db/387217/data/1/120.json +0 -1
- package/esm/.db/387217/data/1/123.json +0 -1
- package/esm/.db/392652/data/1/123.json +0 -1
- package/esm/.db/392692/data/0/13315.json +0 -1
- package/esm/.db/392692/data/1/120.json +0 -1
- package/esm/.db/392692/data/1/123.json +0 -1
- package/esm/.db/396339/data/1/123.json +0 -1
- package/esm/.db/404348/data/1/123.json +0 -1
- package/esm/.db/405894/data/0/14083.json +0 -1
- package/esm/.db/405894/data/1/120.json +0 -1
- package/esm/.db/405894/data/1/123.json +0 -1
- package/esm/.db/405894/data/15/0.json +0 -1
- package/esm/.db/406165/data/1/example.json +0 -1
- package/esm/.db/407316/data/ppl/bob.json +0 -1
- package/esm/.db/407987/data/1/123.json +0 -1
- package/esm/.db/410181/data/1/123.json +0 -1
- package/esm/.db/411981/data/1/120.json +0 -1
- package/esm/.db/411981/data/1/123.json +0 -1
- package/esm/.db/416278/data/1/120.json +0 -1
- package/esm/.db/416278/data/1/123.json +0 -1
- package/esm/.db/418449/data/1/123.json +0 -1
- package/esm/.db/425620/data/1/120.json +0 -1
- package/esm/.db/425620/data/1/123.json +0 -1
- package/esm/.db/429727/data/1/123.json +0 -1
- package/esm/.db/435030/data/1/123.json +0 -1
- package/esm/.db/444362/data/1/120.json +0 -1
- package/esm/.db/444362/data/1/123.json +0 -1
- package/esm/.db/446985/data/1/123.json +0 -1
- package/esm/.db/451355/data/1/120.json +0 -1
- package/esm/.db/451355/data/1/123.json +0 -1
- package/esm/.db/45640/data/1/123.json +0 -1
- package/esm/.db/46155/data/0/0.json +0 -1
- package/esm/.db/46155/data/0/13315.json +0 -1
- package/esm/.db/46155/data/1/120.json +0 -1
- package/esm/.db/46155/data/1/123.json +0 -1
- package/esm/.db/46528/data/1/123.json +0 -1
- package/esm/.db/466476/data/1/123.json +0 -1
- package/esm/.db/467578/data/0/0.json +0 -1
- package/esm/.db/467578/data/1/120.json +0 -1
- package/esm/.db/467578/data/1/123.json +0 -1
- package/esm/.db/472245/data/1/123.json +0 -1
- package/esm/.db/474238/data/1/example.json +0 -1
- package/esm/.db/477291/data/1/123.json +0 -1
- package/esm/.db/477375/data/1/120.json +0 -1
- package/esm/.db/477375/data/1/123.json +0 -1
- package/esm/.db/479960/data/1/123.json +0 -1
- package/esm/.db/482327/data/1/123.json +0 -1
- package/esm/.db/487117/data/1/example.json +0 -1
- package/esm/.db/495075/data/1/123.json +0 -1
- package/esm/.db/498660/data/1/123.json +0 -1
- package/esm/.db/510578/data/1/123.json +0 -1
- package/esm/.db/514521/data/1/123.json +0 -1
- package/esm/.db/524536/data/1/120.json +0 -1
- package/esm/.db/524536/data/1/123.json +0 -1
- package/esm/.db/52751/data/1/example.json +0 -1
- package/esm/.db/530599/data/ppl/bob.json +0 -1
- package/esm/.db/536579/data/1/123.json +0 -1
- package/esm/.db/539183/data/1/123.json +0 -1
- package/esm/.db/539222/data/1/example.json +0 -1
- package/esm/.db/542071/data/0/0.json +0 -1
- package/esm/.db/542071/data/0/13315.json +0 -1
- package/esm/.db/542071/data/1/120.json +0 -1
- package/esm/.db/542071/data/1/123.json +0 -1
- package/esm/.db/542939/data/ppl/bob.json +0 -1
- package/esm/.db/547077/data/1/123.json +0 -1
- package/esm/.db/548947/data/ppl/bob.json +0 -1
- package/esm/.db/551385/data/0/0.json +0 -1
- package/esm/.db/551385/data/1/120.json +0 -1
- package/esm/.db/551385/data/1/123.json +0 -1
- package/esm/.db/553486/data/0/0.json +0 -1
- package/esm/.db/553486/data/1/120.json +0 -1
- package/esm/.db/553486/data/1/123.json +0 -1
- package/esm/.db/554578/data/1/123.json +0 -1
- package/esm/.db/555963/data/1/123.json +0 -1
- package/esm/.db/556201/data/1/123.json +0 -1
- package/esm/.db/572000/data/1/123.json +0 -1
- package/esm/.db/572151/data/1/123.json +0 -1
- package/esm/.db/573301/data/1/123.json +0 -1
- package/esm/.db/579648/data/0/0.json +0 -1
- package/esm/.db/579648/data/1/120.json +0 -1
- package/esm/.db/579648/data/1/123.json +0 -1
- package/esm/.db/579648/data/3/104.json +0 -1
- package/esm/.db/582311/data/1/example.json +0 -1
- package/esm/.db/587351/data/0/14083.json +0 -1
- package/esm/.db/587351/data/1/120.json +0 -1
- package/esm/.db/587351/data/1/123.json +0 -1
- package/esm/.db/587351/data/15/0.json +0 -1
- package/esm/.db/588867/data/0/0.json +0 -1
- package/esm/.db/588867/data/1/120.json +0 -1
- package/esm/.db/588867/data/1/123.json +0 -1
- package/esm/.db/589730/data/1/123.json +0 -1
- package/esm/.db/591738/data/0/13315.json +0 -1
- package/esm/.db/591738/data/1/120.json +0 -1
- package/esm/.db/591738/data/1/123.json +0 -1
- package/esm/.db/593460/data/1/123.json +0 -1
- package/esm/.db/595304/data/1/123.json +0 -1
- package/esm/.db/595772/data/0/13315.json +0 -1
- package/esm/.db/595772/data/1/120.json +0 -1
- package/esm/.db/595772/data/1/123.json +0 -1
- package/esm/.db/596051/data/0/0.json +0 -1
- package/esm/.db/596051/data/1/120.json +0 -1
- package/esm/.db/596051/data/1/123.json +0 -1
- package/esm/.db/601728/data/1/120.json +0 -1
- package/esm/.db/601728/data/1/123.json +0 -1
- package/esm/.db/619154/data/1/123.json +0 -1
- package/esm/.db/620185/data/1/123.json +0 -1
- package/esm/.db/623179/data/1/123.json +0 -1
- package/esm/.db/623265/data/1/123.json +0 -1
- package/esm/.db/630002/data/1/120.json +0 -1
- package/esm/.db/630002/data/1/123.json +0 -1
- package/esm/.db/631961/data/1/123.json +0 -1
- package/esm/.db/635637/data/0/14083.json +0 -1
- package/esm/.db/635637/data/1/120.json +0 -1
- package/esm/.db/635637/data/1/123.json +0 -1
- package/esm/.db/635637/data/15/0.json +0 -1
- package/esm/.db/636670/data/1/example.json +0 -1
- package/esm/.db/640527/data/0/0.json +0 -1
- package/esm/.db/640527/data/1/120.json +0 -1
- package/esm/.db/640527/data/1/123.json +0 -1
- package/esm/.db/644020/data/0/13315.json +0 -1
- package/esm/.db/644020/data/1/120.json +0 -1
- package/esm/.db/644020/data/1/123.json +0 -1
- package/esm/.db/64462/data/0/14083.json +0 -1
- package/esm/.db/64462/data/1/120.json +0 -1
- package/esm/.db/64462/data/1/123.json +0 -1
- package/esm/.db/64462/data/15/0.json +0 -1
- package/esm/.db/646266/data/1/123.json +0 -1
- package/esm/.db/650764/data/1/120.json +0 -1
- package/esm/.db/650764/data/1/123.json +0 -1
- package/esm/.db/654655/data/0/0.json +0 -1
- package/esm/.db/654655/data/1/120.json +0 -1
- package/esm/.db/654655/data/1/123.json +0 -1
- package/esm/.db/658164/data/1/120.json +0 -1
- package/esm/.db/658164/data/1/123.json +0 -1
- package/esm/.db/65937/data/1/123.json +0 -1
- package/esm/.db/659738/data/0/13315.json +0 -1
- package/esm/.db/659738/data/1/120.json +0 -1
- package/esm/.db/659738/data/1/123.json +0 -1
- package/esm/.db/660517/data/0/13315.json +0 -1
- package/esm/.db/660517/data/1/120.json +0 -1
- package/esm/.db/660517/data/1/123.json +0 -1
- package/esm/.db/664564/data/1/123.json +0 -1
- package/esm/.db/672001/data/1/example.json +0 -1
- package/esm/.db/674620/data/1/123.json +0 -1
- package/esm/.db/67532/data/1/123.json +0 -1
- package/esm/.db/675670/data/1/120.json +0 -1
- package/esm/.db/675670/data/1/123.json +0 -1
- package/esm/.db/686538/data/1/123.json +0 -1
- package/esm/.db/691017/data/1/123.json +0 -1
- package/esm/.db/691716/data/1/120.json +0 -1
- package/esm/.db/691716/data/1/123.json +0 -1
- package/esm/.db/693105/data/0/14083.json +0 -1
- package/esm/.db/693105/data/1/120.json +0 -1
- package/esm/.db/693105/data/1/123.json +0 -1
- package/esm/.db/693105/data/15/0.json +0 -1
- package/esm/.db/694486/data/1/123.json +0 -1
- package/esm/.db/702106/data/1/120.json +0 -1
- package/esm/.db/702106/data/1/123.json +0 -1
- package/esm/.db/7047/data/1/123.json +0 -1
- package/esm/.db/705954/data/0/13315.json +0 -1
- package/esm/.db/705954/data/1/120.json +0 -1
- package/esm/.db/705954/data/1/123.json +0 -1
- package/esm/.db/710967/data/1/120.json +0 -1
- package/esm/.db/710967/data/1/123.json +0 -1
- package/esm/.db/715883/data/0/13315.json +0 -1
- package/esm/.db/715883/data/1/120.json +0 -1
- package/esm/.db/715883/data/1/123.json +0 -1
- package/esm/.db/717358/data/1/120.json +0 -1
- package/esm/.db/717358/data/1/123.json +0 -1
- package/esm/.db/71999/data/0/13315.json +0 -1
- package/esm/.db/71999/data/1/120.json +0 -1
- package/esm/.db/71999/data/1/123.json +0 -1
- package/esm/.db/720364/data/1/123.json +0 -1
- package/esm/.db/727249/data/1/120.json +0 -1
- package/esm/.db/727249/data/1/123.json +0 -1
- package/esm/.db/728258/data/1/example.json +0 -1
- package/esm/.db/728986/data/0/13315.json +0 -1
- package/esm/.db/728986/data/1/120.json +0 -1
- package/esm/.db/728986/data/1/123.json +0 -1
- package/esm/.db/732768/data/1/120.json +0 -1
- package/esm/.db/732768/data/1/123.json +0 -1
- package/esm/.db/733885/data/1/123.json +0 -1
- package/esm/.db/736192/data/0/0.json +0 -1
- package/esm/.db/736192/data/1/120.json +0 -1
- package/esm/.db/736192/data/1/123.json +0 -1
- package/esm/.db/73856/data/0/0.json +0 -1
- package/esm/.db/73856/data/1/120.json +0 -1
- package/esm/.db/73856/data/1/123.json +0 -1
- package/esm/.db/738577/data/1/123.json +0 -1
- package/esm/.db/744844/data/1/123.json +0 -1
- package/esm/.db/745738/data/1/123.json +0 -1
- package/esm/.db/747240/data/1/123.json +0 -1
- package/esm/.db/749115/data/0/0.json +0 -1
- package/esm/.db/749115/data/1/120.json +0 -1
- package/esm/.db/749115/data/1/123.json +0 -1
- package/esm/.db/749514/data/0/0.json +0 -1
- package/esm/.db/749514/data/1/120.json +0 -1
- package/esm/.db/749514/data/1/123.json +0 -1
- package/esm/.db/754982/data/1/123.json +0 -1
- package/esm/.db/765281/data/0/13315.json +0 -1
- package/esm/.db/765281/data/1/120.json +0 -1
- package/esm/.db/765281/data/1/123.json +0 -1
- package/esm/.db/765521/data/0/14083.json +0 -1
- package/esm/.db/765521/data/1/120.json +0 -1
- package/esm/.db/765521/data/1/123.json +0 -1
- package/esm/.db/765521/data/15/0.json +0 -1
- package/esm/.db/766288/data/ppl/bob.json +0 -1
- package/esm/.db/766864/data/1/123.json +0 -1
- package/esm/.db/770788/data/0/14083.json +0 -1
- package/esm/.db/770788/data/1/120.json +0 -1
- package/esm/.db/770788/data/1/123.json +0 -1
- package/esm/.db/770788/data/15/0.json +0 -1
- package/esm/.db/774499/data/1/example.json +0 -1
- package/esm/.db/774617/data/ppl/bob.json +0 -1
- package/esm/.db/775617/data/1/123.json +0 -1
- package/esm/.db/779782/data/1/123.json +0 -1
- package/esm/.db/779921/data/1/123.json +0 -1
- package/esm/.db/782910/data/1/123.json +0 -1
- package/esm/.db/783279/data/0/13315.json +0 -1
- package/esm/.db/783279/data/1/120.json +0 -1
- package/esm/.db/783279/data/1/123.json +0 -1
- package/esm/.db/785515/data/1/123.json +0 -1
- package/esm/.db/791284/data/0/0.json +0 -1
- package/esm/.db/791284/data/1/120.json +0 -1
- package/esm/.db/791284/data/1/123.json +0 -1
- package/esm/.db/791361/data/0/14083.json +0 -1
- package/esm/.db/791361/data/1/120.json +0 -1
- package/esm/.db/791361/data/1/123.json +0 -1
- package/esm/.db/791361/data/15/0.json +0 -1
- package/esm/.db/791754/data/1/120.json +0 -1
- package/esm/.db/791754/data/1/123.json +0 -1
- package/esm/.db/792232/data/0/13315.json +0 -1
- package/esm/.db/792232/data/1/120.json +0 -1
- package/esm/.db/792232/data/1/123.json +0 -1
- package/esm/.db/792777/data/0/13315.json +0 -1
- package/esm/.db/792777/data/1/120.json +0 -1
- package/esm/.db/792777/data/1/123.json +0 -1
- package/esm/.db/793249/data/0/123.json +0 -1
- package/esm/.db/795512/data/0/0.json +0 -1
- package/esm/.db/795512/data/1/120.json +0 -1
- package/esm/.db/795512/data/1/123.json +0 -1
- package/esm/.db/795512/data/3/104.json +0 -1
- package/esm/.db/796663/data/1/123.json +0 -1
- package/esm/.db/797304/data/0/0.json +0 -1
- package/esm/.db/797304/data/1/120.json +0 -1
- package/esm/.db/797304/data/1/123.json +0 -1
- package/esm/.db/797304/data/3/104.json +0 -1
- package/esm/.db/800834/data/1/123.json +0 -1
- package/esm/.db/806421/data/1/120.json +0 -1
- package/esm/.db/806421/data/1/123.json +0 -1
- package/esm/.db/81623/data/0/14083.json +0 -1
- package/esm/.db/81623/data/1/120.json +0 -1
- package/esm/.db/81623/data/1/123.json +0 -1
- package/esm/.db/81623/data/15/0.json +0 -1
- package/esm/.db/81941/data/1/120.json +0 -1
- package/esm/.db/81941/data/1/123.json +0 -1
- package/esm/.db/820340/data/0/0.json +0 -1
- package/esm/.db/820340/data/1/120.json +0 -1
- package/esm/.db/820340/data/1/123.json +0 -1
- package/esm/.db/821932/data/1/120.json +0 -1
- package/esm/.db/821932/data/1/123.json +0 -1
- package/esm/.db/823440/data/1/123.json +0 -1
- package/esm/.db/823889/data/1/120.json +0 -1
- package/esm/.db/823889/data/1/123.json +0 -1
- package/esm/.db/823896/data/1/123.json +0 -1
- package/esm/.db/836077/data/0/14083.json +0 -1
- package/esm/.db/836077/data/1/120.json +0 -1
- package/esm/.db/836077/data/1/123.json +0 -1
- package/esm/.db/836077/data/15/0.json +0 -1
- package/esm/.db/837341/data/1/123.json +0 -1
- package/esm/.db/844882/data/1/123.json +0 -1
- package/esm/.db/847654/data/1/example.json +0 -1
- package/esm/.db/856010/data/0/13315.json +0 -1
- package/esm/.db/856010/data/1/120.json +0 -1
- package/esm/.db/856010/data/1/123.json +0 -1
- package/esm/.db/856047/data/1/120.json +0 -1
- package/esm/.db/856047/data/1/123.json +0 -1
- package/esm/.db/856820/data/1/123.json +0 -1
- package/esm/.db/857266/data/1/123.json +0 -1
- package/esm/.db/86017/data/0/13315.json +0 -1
- package/esm/.db/86017/data/1/120.json +0 -1
- package/esm/.db/86017/data/1/123.json +0 -1
- package/esm/.db/862600/data/1/120.json +0 -1
- package/esm/.db/862600/data/1/123.json +0 -1
- package/esm/.db/871866/data/0/13315.json +0 -1
- package/esm/.db/871866/data/1/120.json +0 -1
- package/esm/.db/871866/data/1/123.json +0 -1
- package/esm/.db/875359/data/0/0.json +0 -1
- package/esm/.db/875359/data/1/120.json +0 -1
- package/esm/.db/875359/data/1/123.json +0 -1
- package/esm/.db/875359/data/3/104.json +0 -1
- package/esm/.db/876330/data/1/example.json +0 -1
- package/esm/.db/880182/data/1/123.json +0 -1
- package/esm/.db/882138/data/0/0.json +0 -1
- package/esm/.db/882138/data/1/120.json +0 -1
- package/esm/.db/882138/data/1/123.json +0 -1
- package/esm/.db/882722/data/1/example.json +0 -1
- package/esm/.db/885449/data/ppl/bob.json +0 -1
- package/esm/.db/893417/data/1/example.json +0 -1
- package/esm/.db/897575/data/1/example.json +0 -1
- package/esm/.db/897832/data/0/13315.json +0 -1
- package/esm/.db/897832/data/1/120.json +0 -1
- package/esm/.db/897832/data/1/123.json +0 -1
- package/esm/.db/898043/data/0/0.json +0 -1
- package/esm/.db/898043/data/1/120.json +0 -1
- package/esm/.db/898043/data/1/123.json +0 -1
- package/esm/.db/898201/data/ppl/bob.json +0 -1
- package/esm/.db/900442/data/1/123.json +0 -1
- package/esm/.db/900800/data/0/0.json +0 -1
- package/esm/.db/900800/data/1/120.json +0 -1
- package/esm/.db/900800/data/1/123.json +0 -1
- package/esm/.db/910535/data/1/120.json +0 -1
- package/esm/.db/910535/data/1/123.json +0 -1
- package/esm/.db/911132/data/1/120.json +0 -1
- package/esm/.db/911132/data/1/123.json +0 -1
- package/esm/.db/913152/data/1/120.json +0 -1
- package/esm/.db/913152/data/1/123.json +0 -1
- package/esm/.db/91378/data/1/123.json +0 -1
- package/esm/.db/918654/data/1/example.json +0 -1
- package/esm/.db/929039/data/ppl/bob.json +0 -1
- package/esm/.db/932648/data/1/123.json +0 -1
- package/esm/.db/936016/data/1/example.json +0 -1
- package/esm/.db/936843/data/1/123.json +0 -1
- package/esm/.db/940099/data/1/example.json +0 -1
- package/esm/.db/941807/data/1/120.json +0 -1
- package/esm/.db/941807/data/1/123.json +0 -1
- package/esm/.db/941934/data/0/14083.json +0 -1
- package/esm/.db/941934/data/1/120.json +0 -1
- package/esm/.db/941934/data/1/123.json +0 -1
- package/esm/.db/941934/data/15/0.json +0 -1
- package/esm/.db/943744/data/1/120.json +0 -1
- package/esm/.db/943744/data/1/123.json +0 -1
- package/esm/.db/955716/data/1/123.json +0 -1
- package/esm/.db/956030/data/1/123.json +0 -1
- package/esm/.db/956395/data/1/120.json +0 -1
- package/esm/.db/956395/data/1/123.json +0 -1
- package/esm/.db/956498/data/1/123.json +0 -1
- package/esm/.db/957435/data/1/123.json +0 -1
- package/esm/.db/960302/data/1/example.json +0 -1
- package/esm/.db/964149/data/0/0.json +0 -1
- package/esm/.db/964149/data/1/120.json +0 -1
- package/esm/.db/964149/data/1/123.json +0 -1
- package/esm/.db/965213/data/0/13315.json +0 -1
- package/esm/.db/965213/data/1/120.json +0 -1
- package/esm/.db/965213/data/1/123.json +0 -1
- package/esm/.db/966774/data/1/120.json +0 -1
- package/esm/.db/966774/data/1/123.json +0 -1
- package/esm/.db/972484/data/1/123.json +0 -1
- package/esm/.db/973155/data/1/123.json +0 -1
- package/esm/.db/973642/data/1/123.json +0 -1
- package/esm/.db/975603/data/0/0.json +0 -1
- package/esm/.db/975603/data/1/120.json +0 -1
- package/esm/.db/975603/data/1/123.json +0 -1
- package/esm/.db/979812/data/0/13315.json +0 -1
- package/esm/.db/979812/data/1/120.json +0 -1
- package/esm/.db/979812/data/1/123.json +0 -1
- package/esm/.db/985666/data/1/example.json +0 -1
- package/esm/.db/986784/data/0/0.json +0 -1
- package/esm/.db/986784/data/1/120.json +0 -1
- package/esm/.db/986784/data/1/123.json +0 -1
- package/esm/.db/988463/data/1/120.json +0 -1
- package/esm/.db/988463/data/1/123.json +0 -1
- package/esm/.db/990386/data/1/120.json +0 -1
- package/esm/.db/990386/data/1/123.json +0 -1
- package/esm/.db/994488/data/0/0.json +0 -1
- package/esm/.db/994488/data/1/120.json +0 -1
- package/esm/.db/994488/data/1/123.json +0 -1
- package/esm/.db/999130/data/ppl/bob.json +0 -1
package/esm/server.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import crypto from "crypto"
|
|
1
2
|
import express from "express"
|
|
2
3
|
import cors from "cors"
|
|
3
4
|
import base64url from "base64url"
|
|
@@ -6,11 +7,73 @@ import { tags, toGraphObj, optAO } from "./utils.js"
|
|
|
6
7
|
import { connect } from "./aoconnect.js"
|
|
7
8
|
import { GQL, cu, su, mu } from "./test.js"
|
|
8
9
|
import bodyParser from "body-parser"
|
|
9
|
-
import { keys, map, isNil, reverse } from "ramda"
|
|
10
|
+
import { keys, map, isNil, reverse, omit } from "ramda"
|
|
11
|
+
import { Bundle } from "arbundles"
|
|
12
|
+
import { httpbis, createVerifier } from "http-message-signatures"
|
|
13
|
+
import { createPublicKey, randomBytes } from "node:crypto"
|
|
14
|
+
const { verifyMessage } = httpbis
|
|
15
|
+
|
|
16
|
+
function toANS104Request(fields) {
|
|
17
|
+
const dataItem = {
|
|
18
|
+
target: fields.target,
|
|
19
|
+
anchor: fields.anchor ?? "",
|
|
20
|
+
tags: keys(
|
|
21
|
+
omit(
|
|
22
|
+
[
|
|
23
|
+
"Target",
|
|
24
|
+
"target",
|
|
25
|
+
"Anchor",
|
|
26
|
+
"anchor",
|
|
27
|
+
"Data",
|
|
28
|
+
"data",
|
|
29
|
+
"data-protocol",
|
|
30
|
+
"Data-Protocol",
|
|
31
|
+
"variant",
|
|
32
|
+
"Variant",
|
|
33
|
+
"dryrun",
|
|
34
|
+
"Dryrun",
|
|
35
|
+
"Type",
|
|
36
|
+
"type",
|
|
37
|
+
"path",
|
|
38
|
+
"method",
|
|
39
|
+
],
|
|
40
|
+
fields
|
|
41
|
+
)
|
|
42
|
+
)
|
|
43
|
+
.map(function (key) {
|
|
44
|
+
return { name: key, value: fields[key] }
|
|
45
|
+
}, fields)
|
|
46
|
+
.concat([
|
|
47
|
+
{ name: "Data-Protocol", value: "ao" },
|
|
48
|
+
{ name: "Type", value: fields.Type ?? "Message" },
|
|
49
|
+
{ name: "Variant", value: fields.Variant ?? "ao.N.1" },
|
|
50
|
+
]),
|
|
51
|
+
data: fields?.data || "",
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
headers: {
|
|
55
|
+
"Content-Type": "application/ans104",
|
|
56
|
+
"codec-device": "ans104@1.0",
|
|
57
|
+
},
|
|
58
|
+
item: dataItem,
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function parseSignatureInput(input) {
|
|
63
|
+
const match = input.match(
|
|
64
|
+
/^([^=]+)=\(([^)]+)\);alg="([^"]+)";keyid="([^"]+)"$/
|
|
65
|
+
)
|
|
66
|
+
if (!match) throw new Error("Invalid signature-input format")
|
|
67
|
+
|
|
68
|
+
const [, label, fieldsStr, alg, keyid] = match
|
|
69
|
+
const fields = fieldsStr.split('" "').map(f => f.replace(/"/g, ""))
|
|
70
|
+
return { label, fields, alg, keyid }
|
|
71
|
+
}
|
|
10
72
|
|
|
11
73
|
class Server {
|
|
12
74
|
constructor({
|
|
13
75
|
ar = 4000,
|
|
76
|
+
bundler = 4001,
|
|
14
77
|
mu = 4002,
|
|
15
78
|
su = 4003,
|
|
16
79
|
cu = 4004,
|
|
@@ -21,6 +84,7 @@ class Server {
|
|
|
21
84
|
} = {}) {
|
|
22
85
|
if (port) {
|
|
23
86
|
ar = port
|
|
87
|
+
bundler = port + 1
|
|
24
88
|
mu = port + 2
|
|
25
89
|
su = port + 3
|
|
26
90
|
cu = port + 4
|
|
@@ -47,13 +111,86 @@ class Server {
|
|
|
47
111
|
this.results = results
|
|
48
112
|
this.mem = mem
|
|
49
113
|
this.gql = new GQL({ mem })
|
|
50
|
-
this.ports = { ar, mu, su, cu }
|
|
114
|
+
this.ports = { ar, mu, su, cu, bundler }
|
|
51
115
|
this.servers = []
|
|
52
116
|
this.ar()
|
|
117
|
+
this.bundler()
|
|
53
118
|
this.mu()
|
|
54
119
|
this.su()
|
|
55
120
|
this.cu()
|
|
56
121
|
}
|
|
122
|
+
|
|
123
|
+
bundler() {
|
|
124
|
+
const app = express()
|
|
125
|
+
app.use(cors())
|
|
126
|
+
app.use("/tx", bodyParser.raw({ type: "*/*", limit: "100mb" }))
|
|
127
|
+
app.post("/tx", async (req, res) => {
|
|
128
|
+
if (!Buffer.isBuffer(req.body)) {
|
|
129
|
+
console.log("BD: Invalid body | expected raw Buffer")
|
|
130
|
+
return res.status(400).send("Invalid body: expected raw Buffer")
|
|
131
|
+
}
|
|
132
|
+
const lines = req.body.toString("utf8").split(/\r?\n/)
|
|
133
|
+
const sigs = {}
|
|
134
|
+
let currentKey = null
|
|
135
|
+
|
|
136
|
+
for (let line of lines) {
|
|
137
|
+
const trimmed = line.trim()
|
|
138
|
+
if (/^--[a-zA-Z0-9_\-=]+/.test(trimmed)) {
|
|
139
|
+
currentKey = null
|
|
140
|
+
continue
|
|
141
|
+
}
|
|
142
|
+
const headerMatch = trimmed.match(/^([a-zA-Z0-9_-]+):\s*(.*)$/)
|
|
143
|
+
if (headerMatch && !headerMatch[2].includes(": ")) {
|
|
144
|
+
const key = headerMatch[1]
|
|
145
|
+
const value = headerMatch[2]
|
|
146
|
+
sigs[key] = value
|
|
147
|
+
currentKey = key
|
|
148
|
+
} else if (currentKey) sigs[currentKey] += "\n" + line
|
|
149
|
+
}
|
|
150
|
+
sigs.target = req.headers.process
|
|
151
|
+
sigs.slot = req.headers.slot
|
|
152
|
+
|
|
153
|
+
const input = parseSignatureInput(req.headers["signature-input"])
|
|
154
|
+
const key = { kty: "RSA", n: input.keyid, e: "AQAB" }
|
|
155
|
+
const verifier = createVerifier(
|
|
156
|
+
createPublicKey({ key, format: "jwk" }),
|
|
157
|
+
"rsa-pss-sha512"
|
|
158
|
+
)
|
|
159
|
+
try {
|
|
160
|
+
const isValid = await verifyMessage(
|
|
161
|
+
{ keyLookup: params => ({ verify: verifier }) },
|
|
162
|
+
{
|
|
163
|
+
method: req.method,
|
|
164
|
+
headers: req.headers,
|
|
165
|
+
url: `http://ao.com${req.headers.path}`,
|
|
166
|
+
}
|
|
167
|
+
)
|
|
168
|
+
const item = toANS104Request(sigs).item
|
|
169
|
+
if (sigs.slot === "0" || sigs.type === "Process") {
|
|
170
|
+
for (let v of item.tags) if (v.name === "Type") v.value = "Process"
|
|
171
|
+
const res = await this.spawn({
|
|
172
|
+
http_msg: item,
|
|
173
|
+
module: sigs.module,
|
|
174
|
+
scheduler: sigs.scheduler,
|
|
175
|
+
})
|
|
176
|
+
} else if (sigs.type === "Message") {
|
|
177
|
+
const res = await this.message({
|
|
178
|
+
http_msg: item,
|
|
179
|
+
process: sigs.target,
|
|
180
|
+
})
|
|
181
|
+
}
|
|
182
|
+
} catch (e) {
|
|
183
|
+
console.log(e, req.originalUrl)
|
|
184
|
+
}
|
|
185
|
+
console.log("bundler success [pid]", sigs.target, "[slot]", sigs.slot)
|
|
186
|
+
return res.status(200).send("Success")
|
|
187
|
+
})
|
|
188
|
+
const server = app.listen(this.ports.bundler, () => {
|
|
189
|
+
console.log(`BD on port ${this.ports.bundler}`)
|
|
190
|
+
})
|
|
191
|
+
this.servers.push(server)
|
|
192
|
+
}
|
|
193
|
+
|
|
57
194
|
ar() {
|
|
58
195
|
const app = express()
|
|
59
196
|
app.use(cors())
|
|
@@ -65,7 +202,7 @@ class Server {
|
|
|
65
202
|
height: this.mem.height,
|
|
66
203
|
network: "wao.LN.1",
|
|
67
204
|
current: this.mem.getAnchor(),
|
|
68
|
-
})
|
|
205
|
+
})
|
|
69
206
|
)
|
|
70
207
|
app.get("/wallet/:id/balance", (req, res) => res.send("0"))
|
|
71
208
|
app.get("/mint/:id/:amount", (req, res) => res.json({ id: "0" }))
|
|
@@ -142,15 +279,11 @@ class Server {
|
|
|
142
279
|
if (req.body.data_root && req.body.data === "") {
|
|
143
280
|
data[req.body.data_root] = req.body
|
|
144
281
|
} else {
|
|
145
|
-
console.log("or here...", req.body)
|
|
146
282
|
await this._ar.postTx(req.body)
|
|
147
283
|
}
|
|
148
284
|
res.json({ id: req.body.id })
|
|
149
285
|
}
|
|
150
286
|
})
|
|
151
|
-
app.get("*", async (req, res) => {
|
|
152
|
-
console.log("what")
|
|
153
|
-
})
|
|
154
287
|
const server = app.listen(this.ports.ar, () => {
|
|
155
288
|
console.log(`AR on port ${this.ports.ar}`)
|
|
156
289
|
})
|
|
@@ -197,7 +330,7 @@ class Server {
|
|
|
197
330
|
}
|
|
198
331
|
})
|
|
199
332
|
const server = app.listen(this.ports.mu, () =>
|
|
200
|
-
console.log(`MU on port ${this.ports.mu}`)
|
|
333
|
+
console.log(`MU on port ${this.ports.mu}`)
|
|
201
334
|
)
|
|
202
335
|
this.servers.push(server)
|
|
203
336
|
}
|
|
@@ -214,7 +347,7 @@ class Server {
|
|
|
214
347
|
})
|
|
215
348
|
})
|
|
216
349
|
app.get("/timestamp", (req, res) =>
|
|
217
|
-
res.json({ timestamp: Date.now(), block_height: this.mem.height })
|
|
350
|
+
res.json({ timestamp: Date.now(), block_height: this.mem.height })
|
|
218
351
|
)
|
|
219
352
|
app.get("/:pid", (req, res) => {
|
|
220
353
|
const pid = req.params.pid
|
|
@@ -248,12 +381,8 @@ class Server {
|
|
|
248
381
|
})(reverse(this.mem.env[pid]?.results ?? [])) // need mod
|
|
249
382
|
res.json({ page_info: { has_next_page: false }, edges })
|
|
250
383
|
})
|
|
251
|
-
app.get("*", async (req, res) => {
|
|
252
|
-
console.log("what2")
|
|
253
|
-
})
|
|
254
|
-
|
|
255
384
|
const server = app.listen(this.ports.su, () =>
|
|
256
|
-
console.log(`SU on port ${this.ports.su}`)
|
|
385
|
+
console.log(`SU on port ${this.ports.su}`)
|
|
257
386
|
)
|
|
258
387
|
this.servers.push(server)
|
|
259
388
|
}
|
|
@@ -262,18 +391,40 @@ class Server {
|
|
|
262
391
|
app.use(cors())
|
|
263
392
|
app.use(bodyParser.json())
|
|
264
393
|
app.get("/", (req, res) =>
|
|
265
|
-
res.json({ timestamp: Date.now(), address: cu.addr })
|
|
394
|
+
res.json({ timestamp: Date.now(), address: cu.addr })
|
|
266
395
|
)
|
|
267
|
-
|
|
396
|
+
const result = async (req, res) => {
|
|
397
|
+
let message = req.params.mid
|
|
398
|
+
const process = req.query["process-id"]
|
|
399
|
+
if (isNil(this.mem.env[process])) {
|
|
400
|
+
console.log("process not found:", req.query["process-id"])
|
|
401
|
+
res.status(404)
|
|
402
|
+
res.json({ error: `not found` })
|
|
403
|
+
setTimeout(() => {
|
|
404
|
+
console.log(this.mem.env)
|
|
405
|
+
}, 1000)
|
|
406
|
+
return
|
|
407
|
+
}
|
|
408
|
+
if (!/^--[0-9a-zA-Z_-]{43,44}$/.test(message)) {
|
|
409
|
+
message = this.mem.env[process]?.results?.[message]
|
|
410
|
+
}
|
|
411
|
+
if (isNil(message)) {
|
|
412
|
+
console.log("message not found", message, req.params)
|
|
413
|
+
res.status(404)
|
|
414
|
+
res.json({ error: `Not Found` })
|
|
415
|
+
return
|
|
416
|
+
}
|
|
268
417
|
const res2 = await this.result({
|
|
269
|
-
message
|
|
270
|
-
process
|
|
418
|
+
message,
|
|
419
|
+
process,
|
|
271
420
|
})
|
|
272
421
|
res.json(res2)
|
|
273
|
-
}
|
|
422
|
+
}
|
|
423
|
+
app.post("/result/:mid", result)
|
|
424
|
+
app.get("/result/:mid", result)
|
|
274
425
|
app.get("/state/:pid", async (req, res) => {
|
|
275
426
|
const pid = req.params.pid
|
|
276
|
-
const memory =
|
|
427
|
+
const memory = this.mem.env[pid]?.memory ?? null
|
|
277
428
|
if (!memory) {
|
|
278
429
|
res.status(404)
|
|
279
430
|
res.json({
|
|
@@ -318,7 +469,7 @@ class Server {
|
|
|
318
469
|
})
|
|
319
470
|
|
|
320
471
|
const server = app.listen(this.ports.cu, () =>
|
|
321
|
-
console.log(`CU on port ${this.ports.cu}`)
|
|
472
|
+
console.log(`CU on port ${this.ports.cu}`)
|
|
322
473
|
)
|
|
323
474
|
this.servers.push(server)
|
|
324
475
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Auto-generated WASM module
|
|
2
|
+
const base64Wasm = "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IQICf0GckcAAKAIAIgNBASAAQQN2dCIAcUUEQEGckcAAIAAgA3I2AgAgAgwBCyACKAIICyEAIAIgATYCCCAAIAE2AgwgASACNgIMIAEgADYCCA8LQayRwAAgATYCAEGkkcAAQaSRwAAoAgAgAGoiADYCACABIABBAXI2AgQgACABaiAANgIAC+4EAQp/IwBBMGsiAyQAIANBAzoALCADQSA2AhwgA0EANgIoIAMgATYCJCADIAA2AiAgA0EANgIUIANBADYCDAJ/AkACQAJAIAIoAhAiCkUEQCACKAIMIgBFDQEgAigCCCEBIABBA3QhBSAAQQFrQf////8BcUEBaiEHIAIoAgAhAANAIABBBGooAgAiBARAIAMoAiAgACgCACAEIAMoAiQoAgwRAgANBAsgASgCACADQQxqIAEoAgQRAQANAyABQQhqIQEgAEEIaiEAIAVBCGsiBQ0ACwwBCyACKAIUIgBFDQAgAEEFdCELIABBAWtB////P3FBAWohByACKAIIIQggAigCACEAA0AgAEEEaigCACIBBEAgAygCICAAKAIAIAEgAygCJCgCDBECAA0DCyADIAUgCmoiAUEQaigCADYCHCADIAFBHGotAAA6ACwgAyABQRhqKAIANgIoIAFBDGooAgAhBEEAIQlBACEGAkACQAJAIAFBCGooAgBBAWsOAgACAQsgBEEDdCAIaiIMKAIEDQEgDCgCACEEC0EBIQYLIAMgBDYCECADIAY2AgwgAUEEaigCACEEAkACQAJAIAEoAgBBAWsOAgACAQsgBEEDdCAIaiIGKAIEDQEgBigCACEEC0EBIQkLIAMgBDYCGCADIAk2AhQgCCABQRRqKAIAQQN0aiIBKAIAIANBDGogASgCBBEBAA0CIABBCGohACALIAVBIGoiBUcNAAsLIAcgAigCBE8NASADKAIgIAIoAgAgB0EDdGoiACgCACAAKAIEIAMoAiQoAgwRAgBFDQELQQEMAQtBAAsgA0EwaiQAC/gDAQJ/IAAgAWohAgJAAkAgACgCBCIDQQFxDQAgA0ECcUUNASAAKAIAIgMgAWohASAAIANrIgBBrJHAACgCAEYEQCACKAIEQQNxQQNHDQFBpJHAACABNgIAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADAILIAAgAxASCwJAAkACQCACKAIE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PwsL0AMBA38jAEEgayIDJAAgACgCACIAEAQhBCADIAI2AgQgAyAENgIAIAIgBEYEQBAHIgUQASIEIAEgAhACIQEgBUGEAU8EQCAFEAALIARBhAFPBEAgBBAACyAAIAFBABADIAFBhAFPBEAgARAACyADQSBqJAAPCyADQQA2AggjAEEQayIAJAAgACADQQRqNgIMIAAgAzYCCCMAQfAAayIBJAAgAUGcgsAANgIMIAEgAEEIajYCCCABQZyCwAA2AhQgASAAQQxqNgIQIAFB/InAADYCGCABQQI2AhwCQCADQQhqIgAoAgBFBEAgAUEDNgJcIAFBuIrAADYCWCABQgM3AmQgASABQRBqrUKAgICA0AOENwNIIAEgAUEIaq1CgICAgNADhDcDQAwBCyABQTBqIABBEGopAgA3AwAgAUEoaiAAQQhqKQIANwMAIAEgACkCADcDICABQQQ2AlwgAUHsisAANgJYIAFCBDcCZCABIAFBEGqtQoCAgIDQA4Q3A1AgASABQQhqrUKAgICA0AOENwNIIAEgAUEgaq1CgICAgPADhDcDQAsgASABQRhqrUKAgICA4AOENwM4IAEgAUE4ajYCYCABQdgAakGMgsAAECgAC48BAgN/AX4jAEEgayICJAAgASgCAEGAgICAeEYEQCABKAIMIQMgAkEcaiIEQQA2AgAgAkKAgICAEDcCFCACQRRqQZSFwAAgAxAPGiACQRBqIAQoAgAiAzYCACACIAIpAhQiBTcDCCABQQhqIAM2AgAgASAFNwIACyAAQdyHwAA2AgQgACABNgIAIAJBIGokAAtuAQF/IwBBMGsiASQAIAEgADYCACABQYABNgIEIAFBAjYCDCABQbiNwAA2AgggAUICNwIUIAEgAUEEaq1CgICAgPABhDcDKCABIAGtQoCAgIDwAYQ3AyAgASABQSBqNgIQIAFBCGpBrIvAABAoAAtmACMAQTBrIgAkAEHkjcAALQAABEAgAEECNgIMIABB+IbAADYCCCAAQgE3AhQgACABNgIsIAAgAEEsaq1CgICAgPABhDcDICAAIABBIGo2AhAgAEEIakGgh8AAECgACyAAQTBqJAALQQEBfyACIAAoAgAgACgCCCIDa0sEQCAAIAMgAhAYIAAoAgghAwsgACgCBCADaiABIAIQSBogACACIANqNgIIQQALTQECf0HljcAALQAAGiABKAIEIQIgASgCACEDQQhBBBA4IgFFBEBBBEEIEEYACyABIAI2AgQgASADNgIAIABB7IfAADYCBCAAIAE2AgALNwACQCABaUEBR0GAgICAeCABayAASXINACAABEBB5Y3AAC0AABogACABEDgiAUUNAQsgAQ8LAAtBAQF/IwBBIGsiAyQAIANBADYCECADQQE2AgQgA0IENwIIIAMgATYCHCADIAA2AhggAyADQRhqNgIAIAMgAhAoAAs5AAJAAn8gAkGAgMQARwRAQQEgACACIAEoAhARAQANARoLIAMNAUEACw8LIAAgAyAEIAEoAgwRAgALswIBA38gACgCACECIAEoAhwiAEEQcUUEQCAAQSBxRQRAIAIgARBADwtBACEAIwBBgAFrIgQkACACKAIAIQIDQCAAIARqQf8AaiACQQ9xIgNBMHIgA0E3aiADQQpJGzoAACAAQQFrIQAgAkEQSSACQQR2IQJFDQALIABBgAFqIgJBgAFLBEAgAhAgAAsgAUGni8AAQQIgACAEakGAAWpBACAAaxANIARBgAFqJAAPC0EAIQAjAEGAAWsiBCQAIAIoAgAhAgNAIAAgBGpB/wBqIAJBD3EiA0EwciADQdcAaiADQQpJGzoAACAAQQFrIQAgAkEQSSACQQR2IQJFDQALIABBgAFqIgJBgAFLBEAgAhAgAAsgAUGni8AAQQIgACAEakGAAWpBACAAaxANIARBgAFqJAALqQIBAn8jAEEgayICJAAgAkEBOwEcIAIgATYCGCACIAA2AhQgAkGoicAANgIQIAJBATYCDCMAQRBrIgEkACACQQxqIgAoAggiAkUEQEHMh8AAEEEACyABIAAoAgw2AgwgASAANgIIIAEgAjYCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIAAgAjYCDCAAQYCAgIB4NgIAIABBkIjAACABKAIEIgAoAgggASgCCCAALQAQIAAtABEQFgALIAAgAzYCBCAAIAI2AgAgAEH8h8AAIAEoAgQiACgCCCABKAIIIAAtABAgAC0AERAWAAs3AQF/QeWNwAAtAAAaQQxBBBA4IgBFBEBBBEEMEEYACyAAQQA2Aggg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DAELIABBAWsiACADQQlqaiACQTByOgAACyABQQFBACADQQlqIABqQScgAGsQDSADQTBqJAALDgBB/IjAAEErIAAQJQALDABBqITAAEEbEEMACwkAIAAgARAGAAsNAEHDhMAAQc8AEEMACw0AIABBlIXAACABEA8LGQAgACABQfCNwAAoAgAiAEEQIAAbEQAAAAuTBQEHfwJAAn8CQCACIgQgACABa0sEQCABIARqIQUgACAEaiECIAAgBEEQSQ0CGiACQXxxIQNBACACQQNxIgZrIQcgBgRAIAEgBGpBAWshAANAIAJBAWsiAiAALQAAOgAAIABBAWshACACIANLDQALCyADIAQgBmsiBkF8cSIEayECIAUgB2oiBUEDcQRAIARBAEwNAiAFQQN0IgBBGHEhByAFQXxxIghBBGshAUEAIABrQRhxIQkgCCgCACEAA0AgA0EEayIDIAAgCXQgASgCACIAIAd2cjYCACABQQRrIQEgAiADSQ0ACwwCCyAEQQBMDQEgASAGakEEayEBA0AgA0EEayIDIAEoAgA2AgAgAUEEayEBIAIgA0kNAAsMAQsCQCAEQRBJBEAgACECDAELIABBACAAa0EDcSIFaiEDIAUEQCAAIQIgASEAA0AgAiAALQAAOgAAIABBAWohACACQQFqIgIgA0kNAAsLIAMgBCAFayIEQXxxIgZqIQICQCABIAVqIgVBA3EEQCAGQQBMDQEgBUEDdCIAQRhxIQcgBUF8cSIIQQRqIQFBACAAa0EYcSEJIAgoAgAhAANAIAMgACAHdiABKAIAIgAgCXRyNgIAIAFBBGohASADQQRqIgMgAkkNAAsMAQsgBkEATA0AIAUhAQNAIAMgASgCADYCACABQQRqIQEgA0EEaiIDIAJJDQALCyAEQQNxIQQgBSAGaiEBCyAERQ0CIAIgBGohAANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIABJDQALDAILIAZBA3EiAEUNASAFIARrIQUgAiAAawshACAFQQFrIQEDQCACQQFrIgIgAS0AADoAACABQQFrIQEgACACSQ0ACwsLuAIBB38CQCACIgRBEEkEQCAAIQIMAQsgAEEAIABrQQNxIgNqIQUgAwRAIAAhAiABIQYDQCACIAYtAAA6AAAgBkEBaiEGIAJBAWoiAiAFSQ0ACwsgBSAEIANrIghB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";
|
|
3
|
+
|
|
4
|
+
function base64ToUint8Array(base64) {
|
|
5
|
+
const binaryString = atob(base64);
|
|
6
|
+
const bytes = new Uint8Array(binaryString.length);
|
|
7
|
+
for (let i = 0; i < binaryString.length; i++) {
|
|
8
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
9
|
+
}
|
|
10
|
+
return bytes;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Export the WASM binary as Uint8Array
|
|
14
|
+
export default base64ToUint8Array(base64Wasm);
|
package/esm/waosm-node.js
CHANGED
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
export * from "./waosm-node/waosm_bg.js"
|
|
2
2
|
import * as wasmBindings from "./waosm-node/waosm_bg.js"
|
|
3
3
|
import { __wbg_set_wasm } from "./waosm-node/waosm_bg.js"
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const wasmInstance = new WebAssembly.Instance(wasmModule, {
|
|
11
|
-
"./waosm_bg.js": wasmBindings,
|
|
12
|
-
})
|
|
13
|
-
__wbg_set_wasm(wasmInstance.exports)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
let dirname
|
|
17
|
-
if (typeof __filename !== "undefined" && typeof __dirname !== "undefined")
|
|
18
|
-
run(__dirname)
|
|
19
|
-
else {
|
|
20
|
-
import("./dirname.js")
|
|
21
|
-
.then(({ default: dirname }) => run(dirname))
|
|
22
|
-
.catch(e => {
|
|
23
|
-
console.log(e)
|
|
24
|
-
})
|
|
25
|
-
}
|
|
4
|
+
import wasmBinary from "./waosm-node/waosm_bg.wasm.js"
|
|
5
|
+
const wasmModule = new WebAssembly.Module(wasmBinary)
|
|
6
|
+
const wasmInstance = new WebAssembly.Instance(wasmModule, {
|
|
7
|
+
"./waosm_bg.js": wasmBindings,
|
|
8
|
+
})
|
|
9
|
+
__wbg_set_wasm(wasmInstance.exports)
|
package/esm/weavedb.js
CHANGED
|
@@ -59,7 +59,7 @@ function frombits(bitArray) {
|
|
|
59
59
|
|
|
60
60
|
return result
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
let init = {}
|
|
63
63
|
export default class WeaveDB {
|
|
64
64
|
constructor(ar, dir) {
|
|
65
65
|
dir ??= resolve(import.meta.dirname, ".db")
|
|
@@ -104,7 +104,7 @@ export default class WeaveDB {
|
|
|
104
104
|
`data/${col}/${doc}`,
|
|
105
105
|
properties,
|
|
106
106
|
true,
|
|
107
|
-
false
|
|
107
|
+
false
|
|
108
108
|
)
|
|
109
109
|
|
|
110
110
|
// Set initial parame
|
|
@@ -178,6 +178,10 @@ export default class WeaveDB {
|
|
|
178
178
|
for (let i = 0; i < FS.streams.length; i++) {
|
|
179
179
|
if (FS.streams[i].fd === fd) stream = FS.streams[i]
|
|
180
180
|
}
|
|
181
|
+
if (!stream) return 0
|
|
182
|
+
if (init[fd] === false) stream.position = 0
|
|
183
|
+
init[fd] = true
|
|
184
|
+
|
|
181
185
|
// Satisfy what we can with the cache first
|
|
182
186
|
let bytes_read = this.readFromCache(stream, dst_ptr, to_read)
|
|
183
187
|
stream.position += bytes_read
|
|
@@ -195,7 +199,7 @@ export default class WeaveDB {
|
|
|
195
199
|
const chunk_download_sz = Math.max(to_read, CACHE_SZ)
|
|
196
200
|
const to = Math.min(
|
|
197
201
|
stream.node.total_size,
|
|
198
|
-
stream.position + chunk_download_sz
|
|
202
|
+
stream.position + chunk_download_sz
|
|
199
203
|
)
|
|
200
204
|
let data = val
|
|
201
205
|
if (!data) {
|
|
@@ -217,7 +221,7 @@ export default class WeaveDB {
|
|
|
217
221
|
if (op === 2) {
|
|
218
222
|
const col_dir = resolve(data_dir, col.toString())
|
|
219
223
|
const _data = JSON.parse(
|
|
220
|
-
readFileSync(resolve(col_dir, `${doc}.json`), "utf8")
|
|
224
|
+
readFileSync(resolve(col_dir, `${doc}.json`), "utf8")
|
|
221
225
|
)
|
|
222
226
|
let u = new Encoder()
|
|
223
227
|
const e = encode(_data, u)
|
|
@@ -236,7 +240,7 @@ export default class WeaveDB {
|
|
|
236
240
|
if (!existsSync(col_dir)) mkdirSync(col_dir)
|
|
237
241
|
writeFileSync(
|
|
238
242
|
resolve(col_dir, `${v.doc}.json`),
|
|
239
|
-
JSON.stringify(v.json)
|
|
243
|
+
JSON.stringify(v.json)
|
|
240
244
|
)
|
|
241
245
|
|
|
242
246
|
for (let i = 0; i < FS.streams.length; i++) {
|
|
@@ -266,7 +270,7 @@ export default class WeaveDB {
|
|
|
266
270
|
}),
|
|
267
271
|
{
|
|
268
272
|
headers: { "Content-Length": chunk.length.toString() },
|
|
269
|
-
}
|
|
273
|
+
}
|
|
270
274
|
)
|
|
271
275
|
const reader = response.body.getReader()
|
|
272
276
|
let bytes_until_cache = CHUNK_SZ
|
|
@@ -304,7 +308,7 @@ export default class WeaveDB {
|
|
|
304
308
|
console.log("KV: Chunk size reached. Compressing cache...")
|
|
305
309
|
stream.node.cache = this.addChunksToCache(
|
|
306
310
|
stream.node.cache,
|
|
307
|
-
cache_chunks
|
|
311
|
+
cache_chunks
|
|
308
312
|
)
|
|
309
313
|
cache_chunks = []
|
|
310
314
|
bytes_until_cache = CHUNK_SZ
|
|
@@ -314,7 +318,7 @@ export default class WeaveDB {
|
|
|
314
318
|
console.log(
|
|
315
319
|
"KV: Downloaded: ",
|
|
316
320
|
(downloaded_bytes / stream.node.total_size) * 100,
|
|
317
|
-
"%"
|
|
321
|
+
"%"
|
|
318
322
|
)
|
|
319
323
|
bytes_until_notify = NOTIFY_SZ
|
|
320
324
|
}
|
|
@@ -328,7 +332,7 @@ export default class WeaveDB {
|
|
|
328
332
|
// Rebuild the cache from the new cache chunks
|
|
329
333
|
stream.node.cache = this.addChunksToCache(
|
|
330
334
|
stream.node.cache,
|
|
331
|
-
cache_chunks
|
|
335
|
+
cache_chunks
|
|
332
336
|
)
|
|
333
337
|
|
|
334
338
|
// Update the last read position
|
|
@@ -365,7 +369,7 @@ export default class WeaveDB {
|
|
|
365
369
|
let new_cache_length = Math.min(
|
|
366
370
|
old_cache.length +
|
|
367
371
|
chunks.reduce((acc, chunk) => acc + chunk.length, 0),
|
|
368
|
-
CACHE_SZ
|
|
372
|
+
CACHE_SZ
|
|
369
373
|
)
|
|
370
374
|
let new_cache = new Uint8Array(new_cache_length)
|
|
371
375
|
// Copy the old cache to the new cache
|
|
@@ -376,7 +380,7 @@ export default class WeaveDB {
|
|
|
376
380
|
if (current_offset < new_cache_length) {
|
|
377
381
|
new_cache.set(
|
|
378
382
|
chunk.subarray(0, new_cache_length - current_offset),
|
|
379
|
-
current_offset
|
|
383
|
+
current_offset
|
|
380
384
|
)
|
|
381
385
|
current_offset += chunk.length
|
|
382
386
|
}
|
package/esm/weavedrive.js
CHANGED
|
@@ -4,7 +4,7 @@ const CACHE_SZ = 32 * KB // Keep small cache size
|
|
|
4
4
|
const CHUNK_SZ = 1 * MB // Reduced from 128MB to 1MB for better memory management
|
|
5
5
|
const STREAM_CHUNK = 256 * KB // Added smaller streaming chunk size
|
|
6
6
|
const log = console.log
|
|
7
|
-
|
|
7
|
+
let init = {}
|
|
8
8
|
export default class WeaveDrive {
|
|
9
9
|
constructor(ar) {
|
|
10
10
|
this.ext = (mod, FS) => {
|
|
@@ -64,7 +64,7 @@ export default class WeaveDrive {
|
|
|
64
64
|
"block/" + id,
|
|
65
65
|
Buffer.from(result, "utf-8"),
|
|
66
66
|
true,
|
|
67
|
-
false
|
|
67
|
+
false
|
|
68
68
|
)
|
|
69
69
|
|
|
70
70
|
var stream = FS.open("/block/" + id, "r")
|
|
@@ -82,7 +82,7 @@ export default class WeaveDrive {
|
|
|
82
82
|
"tx/" + id,
|
|
83
83
|
Buffer.from(result, "utf-8"),
|
|
84
84
|
true,
|
|
85
|
-
false
|
|
85
|
+
false
|
|
86
86
|
)
|
|
87
87
|
var stream = FS.open("/tx/" + id, "r")
|
|
88
88
|
return stream
|
|
@@ -113,7 +113,7 @@ export default class WeaveDrive {
|
|
|
113
113
|
"tx2/" + id,
|
|
114
114
|
Buffer.from(result, "utf-8"),
|
|
115
115
|
true,
|
|
116
|
-
false
|
|
116
|
+
false
|
|
117
117
|
)
|
|
118
118
|
var stream = FS.open("/tx2/" + id, "r")
|
|
119
119
|
return stream
|
|
@@ -161,7 +161,8 @@ export default class WeaveDrive {
|
|
|
161
161
|
|
|
162
162
|
var stream = FS.streams.find(s => s.fd === fd)
|
|
163
163
|
if (!stream) return 0
|
|
164
|
-
|
|
164
|
+
if (init[fd] === false) stream.position = 0
|
|
165
|
+
init[fd] = true
|
|
165
166
|
// Handle block and tx headers
|
|
166
167
|
if (stream.path.includes("/block") || stream.path.includes("/tx")) {
|
|
167
168
|
mod.HEAP8.set(stream.node.contents.subarray(0, to_read), dst_ptr)
|
|
@@ -213,20 +214,20 @@ export default class WeaveDrive {
|
|
|
213
214
|
const blockHeight = mod.blockHeight
|
|
214
215
|
const moduleExtensions = this.getTagValues(
|
|
215
216
|
"Extension",
|
|
216
|
-
mod.module.tags
|
|
217
|
+
mod.module.tags
|
|
217
218
|
)
|
|
218
219
|
const moduleHasWeaveDrive = moduleExtensions.includes("WeaveDrive")
|
|
219
220
|
|
|
220
221
|
const processExtensions = this.getTagValues(
|
|
221
222
|
"Extension",
|
|
222
|
-
mod.spawn.tags
|
|
223
|
+
mod.spawn.tags
|
|
223
224
|
)
|
|
224
225
|
const processHasWeaveDrive =
|
|
225
226
|
moduleHasWeaveDrive || processExtensions.includes("WeaveDrive")
|
|
226
227
|
|
|
227
228
|
if (!processHasWeaveDrive) {
|
|
228
229
|
console.log(
|
|
229
|
-
"WeaveDrive: Process tried to call WeaveDrive, but extension not set!"
|
|
230
|
+
"WeaveDrive: Process tried to call WeaveDrive, but extension not set!"
|
|
230
231
|
)
|
|
231
232
|
return false
|
|
232
233
|
}
|
|
@@ -234,7 +235,7 @@ export default class WeaveDrive {
|
|
|
234
235
|
const modes = ["Assignments", "Individual", "Library"]
|
|
235
236
|
const moduleAvailabilityType = this.getTagValue(
|
|
236
237
|
"Availability-Type",
|
|
237
|
-
mod.module.tags
|
|
238
|
+
mod.module.tags
|
|
238
239
|
)
|
|
239
240
|
const moduleMode = moduleAvailabilityType
|
|
240
241
|
? moduleAvailabilityType
|
|
@@ -242,7 +243,7 @@ export default class WeaveDrive {
|
|
|
242
243
|
|
|
243
244
|
const processAvailabilityType = this.getTagValue(
|
|
244
245
|
"Availability-Type",
|
|
245
|
-
mod.spawn.tags
|
|
246
|
+
mod.spawn.tags
|
|
246
247
|
)
|
|
247
248
|
const processMode = processAvailabilityType
|
|
248
249
|
? processAvailabilityType
|
|
@@ -256,7 +257,7 @@ export default class WeaveDrive {
|
|
|
256
257
|
[
|
|
257
258
|
this.getTagValue("Scheduler", mod.spawn.tags),
|
|
258
259
|
...this.getTagValues("Attestor", mod.spawn.tags),
|
|
259
|
-
].filter(t => !!t)
|
|
260
|
+
].filter(t => !!t)
|
|
260
261
|
)
|
|
261
262
|
|
|
262
263
|
const exists = async tags => {
|
|
@@ -358,6 +359,7 @@ export default class WeaveDrive {
|
|
|
358
359
|
return 0
|
|
359
360
|
} else {
|
|
360
361
|
const stream = await this.create(id)
|
|
362
|
+
init[stream.fd] = false
|
|
361
363
|
return stream.fd
|
|
362
364
|
}
|
|
363
365
|
} else if (pathCategory === "headers") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wao",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"bin": {
|
|
5
5
|
"wao": "./cjs/cli.js",
|
|
6
6
|
"wao-esm": "./esm/cli.js"
|
|
@@ -26,8 +26,10 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
+
"aoconnect-wao": "https://gitpkg.vercel.app/weavedb/ao/connect?wao&scripts.postinstall=npm%20install%20--ignore-scripts%20%26%26%20npm%20run%20build",
|
|
29
30
|
"@babel/plugin-transform-modules-commonjs": "^7.24.8",
|
|
30
31
|
"@bokuweb/zstd-wasm": "^0.0.22",
|
|
32
|
+
"@dha-team/arbundles": "^1.0.1",
|
|
31
33
|
"@permaweb/ao-loader": "^0.0.44",
|
|
32
34
|
"@permaweb/aoconnect": "^0.0.62",
|
|
33
35
|
"arbundles": "^0.11.1",
|
|
@@ -39,6 +41,7 @@
|
|
|
39
41
|
"cors": "^2.8.5",
|
|
40
42
|
"express": "^4.21.2",
|
|
41
43
|
"graphql": "^16.10.0",
|
|
44
|
+
"http-message-signatures": "^1.0.4",
|
|
42
45
|
"lmdb": "^3.2.2",
|
|
43
46
|
"localforage": "^1.10.0",
|
|
44
47
|
"lz4-asm": "^0.4.2",
|
package/esm/.cache/data.mdb
DELETED
|
Binary file
|
package/esm/.cache/lock.mdb
DELETED
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
null
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
null
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
null
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"test":2}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"test":2}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
2
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"name":"Bob","age":40}
|