{"_id":"@eco-incorp/sauce-compiler","_rev":"14-f0cf47a2f6761563fd102f91a7d193fa","name":"@eco-incorp/sauce-compiler","dist-tags":{"latest":"2.4.0"},"versions":{"0.3.0":{"name":"@eco-incorp/sauce-compiler","version":"0.3.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@0.3.0","maintainers":[{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://github.com/eco-incorp/sauce#readme","bugs":{"url":"https://github.com/eco-incorp/sauce/issues"},"dist":{"shasum":"ad20065fea9d52e34272a53bee6fd56762c750f1","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-0.3.0.tgz","fileCount":16,"integrity":"sha512-V8FhLCxC0EP7HG/5Dx043toVts0i1yJZzA6yEy7RTt2JDKS0ybea8it7OvEL4P6DBsjUlfgYY88KM4w0drLZnw==","signatures":[{"sig":"MEQCICwMgkpv7dLHkrNz9jg+qI9wbhRFdOSZ9rIMG1wykmjdAiBTSfTMKowVY8Y4iGccgjxC+wXALx1Q8WJHTxZYbMW0OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3523670},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"888c12a85464ae9c6b600b177805245fabfe1346","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"repository":{"url":"git+https://github.com/eco-incorp/sauce.git","type":"git","directory":"compiler/crates/sauce-wasm"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_0.3.0_1787077312177_0.8511434389416654","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@eco-incorp/sauce-compiler","version":"0.4.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@0.4.0","maintainers":[{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://github.com/eco-incorp/sauce#readme","bugs":{"url":"https://github.com/eco-incorp/sauce/issues"},"dist":{"shasum":"74b4782821049cf49d3d622bd268b0d284a6625e","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-0.4.0.tgz","fileCount":16,"integrity":"sha512-h0D8JdAqP0B1WU6ia1K/gCl82MykdOLipwD5qvYr4wmXLx0/8YxIPQlUtgGGGC5zB1CeHzDUoRG0oOFjdQocJw==","signatures":[{"sig":"MEUCIEGtWmCEtsYgXK0Hduf+6URTBOmS1h5AOYQ2YH89CIUoAiEAqucZNx8R3waRCPo0oQ1H9CDCgbufuAqrCs2RNAdz5SE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3539842},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"103844da20d1fd55c11e1663b99dfa6193cf996b","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"repository":{"url":"git+https://github.com/eco-incorp/sauce.git","type":"git","directory":"compiler/crates/sauce-wasm"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_0.4.0_1787246578597_0.47593305201868064","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@eco-incorp/sauce-compiler","version":"0.4.1","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@0.4.1","maintainers":[{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://github.com/eco-incorp/sauce#readme","bugs":{"url":"https://github.com/eco-incorp/sauce/issues"},"dist":{"shasum":"3508095d520673455ec430b516b048c5a39be396","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-0.4.1.tgz","fileCount":16,"integrity":"sha512-yEHgCkBXyidWVuSEYVGbyfnhSB05Ej0drIS0ICMHjCpN5ZdHZWwzO3X5F74hUJpK9Av6jpzVGrDzfrXWJ4vsfQ==","signatures":[{"sig":"MEUCIHGY9Gvec6w45ACR2esOR1XNfn4pd9XLCtVgFnSBj0XjAiEAjBVNzuBekPFHkKQiVO/AMdAI3IsWY7ghiUroni5FFuE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3535331},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"db185e6d72df8c04327c68b6a6951d7ee523a650","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"repository":{"url":"git+https://github.com/eco-incorp/sauce.git","type":"git","directory":"compiler/crates/sauce-wasm"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_0.4.1_1787257155270_0.8071121034530544","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@eco-incorp/sauce-compiler","version":"0.5.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@0.5.0","maintainers":[{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://github.com/eco-incorp/sauce#readme","bugs":{"url":"https://github.com/eco-incorp/sauce/issues"},"dist":{"shasum":"d3ea7901606b480ac006cbe5284363db42cf602b","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-0.5.0.tgz","fileCount":16,"integrity":"sha512-qofnr7H602mFfHhfIEyN+WBcP6VJzQnGFaVVwiLDps3hVwWQbfhP5712/EuX0wnNgpzOJxhcPalUCfQdBk696A==","signatures":[{"sig":"MEUCIQDVtys4+2bIIE/mFO3G1IK0er6IuoC4XrRolK+qW0UMYAIgMV6JT1f6eUq0mFKW0KTEoz/F82dEmgxoPbjnmAFLyAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4189747},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"fcedc167adf762347986feba6e53ed48800a6bfd","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"repository":{"url":"git+https://github.com/eco-incorp/sauce.git","type":"git","directory":"compiler/crates/sauce-wasm"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_0.5.0_1788173613798_0.8259202198697444","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@eco-incorp/sauce-compiler","version":"0.6.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@0.6.0","maintainers":[{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://github.com/eco-incorp/sauce#readme","bugs":{"url":"https://github.com/eco-incorp/sauce/issues"},"dist":{"shasum":"831873a731cc84bc132399f0043fd13884a3dc35","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-0.6.0.tgz","fileCount":16,"integrity":"sha512-LnRFu7cBxRkDfA1sBitOapkmMKF72mp1CnK09YxR9ebtKv9GPXyL/20I81MA4oim8cCNrBeVpVMnhmz+ts0S6w==","signatures":[{"sig":"MEQCIA9A4cpZp0ia32BIcgZZKbRTB2LYLrOGkDddjGty0TFXAiBGa/GiMi3PKkhZcCHcN4VIWmGb2UASmoNOW1/WgxC30Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4300309},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"8c4f2a050d888a34e503979f0a18ff0d510f29d2","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"repository":{"url":"git+https://github.com/eco-incorp/sauce.git","type":"git","directory":"compiler/crates/sauce-wasm"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_0.6.0_1788392438853_0.3829734005169483","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@eco-incorp/sauce-compiler","version":"0.7.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@0.7.0","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://github.com/eco-incorp/v12#readme","bugs":{"url":"https://github.com/eco-incorp/v12/issues"},"dist":{"shasum":"a8fb5112c9cc235f81f75ae33290000e90d349e9","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-0.7.0.tgz","fileCount":16,"integrity":"sha512-OVVAklsK8THBTD7+ApmUv1OXumeo5czpT/UmQSylWktZSJJNUDKpRKco8o3SjxC58q34lggC3sSeF6Wgxp+3gA==","signatures":[{"sig":"MEQCIHlOw5cLpLPeus1+dfzrSKh6qLRpBuIQ0S1AOOnyDpffAiA/p3xx0WcozGuGRHpfav2G2N+tzaJntVTn5j1sbuP3Tw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4339029},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"dbdda3ff7a73d51dee5b5c581c3b5afed56057dc","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"repository":{"url":"git+https://github.com/eco-incorp/v12.git","type":"git","directory":"compiler/crates/sauce-wasm"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_0.7.0_1788980017463_0.05648514764866275","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@eco-incorp/sauce-compiler","version":"1.0.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@1.0.0","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://sauce.eco.com","dist":{"shasum":"f5731a1282b8711b528d01d364457a03db6032ed","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-1.0.0.tgz","fileCount":16,"integrity":"sha512-+E4CniTpOR7DhHk2cYmChYkUkATLk96eEF6BgZzOyqx/kbcN33JWrDBdTBSvFalOIrw24Xt2oqEpk2J9PsZ6Uw==","signatures":[{"sig":"MEUCIGsWaSgNKlOtX07JXSwLCEQcxllcG/2TWuMlDWmfddyMAiEAh2VEp7QHR1VnIFMevt7/p3uuZh8QUrTseTkVk4DAWkM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIB3PYc3jXyAe+yttLDM4MbHpoOGc5Q1XqKYkimpcaZi2AiAoat/gRF3cK2PSlQ9WwDw46Xu/8v9/EW57NJi4V8naHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4393582},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"355aee5af27768c62f3963e157bc66c2dbd7dee7","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_1.0.0_1789137916735_0.7720001709296382","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@eco-incorp/sauce-compiler","version":"2.0.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@2.0.0","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://sauce.eco.com","dist":{"shasum":"a3adf9ee36963bc3c1084bc0421a69108db68194","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-2.0.0.tgz","fileCount":16,"integrity":"sha512-kvW0llGmoSvWaLfe4aUKsSBSiwOeGXqaBpdMYmw0Bt6m8/bvAryZvNaEGgmI+pFuASS+RvAGoyZTmEo/yvsyNA==","signatures":[{"sig":"MEUCIQD7ignHZkLvm0RKin5s1rjbg0LOZt1CzAxtW/cU8fpzmwIgaPkR8OUa66QkW3w6xmVvJgYEPJb2zFIXAB2CNP7Qjvg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDANYuPmSOcp/oMCOLRTGStsY3IOycn9oiOSmKr0lyHuAIhAPhCOI4q/jzyzd2h5Dsj8SH2rkHWx/2PygSH1l2XOQQD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4399732},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"ec593103aa6251f93527f604df5859da9295edbf","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_2.0.0_1789481949285_0.6690772632665634","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@eco-incorp/sauce-compiler","version":"2.1.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@2.1.0","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://sauce.eco.com","dist":{"shasum":"aa2740c7f3557f6d409d396f1882d1f6d423e4be","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-2.1.0.tgz","fileCount":16,"integrity":"sha512-NufD34NSLi2MDsQq5959/0DD4KLsh9jx9CQ/ReaW2Rg/3aujPbEivoyfRDpoJ5nzxelyTGKql7i8y+T4bNB4cg==","signatures":[{"sig":"MEQCIANJtjR7lEtOE/85NG58QOxM1GZXRBUhE6UeYDwO8spoAiAmAYYrecoBuQF8TXi+m9ogpHxfYLxzl87ad0nGBT3K/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC0tZvUl9Bo4Ix0eg85N5qF8nKYAYBxtxckpaYssRQQJgIgT5tlGbGN3TwSwopnq6AGDdsc5BWlnul4vQdZJ1gGrhs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4398908},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"48f00c3fa1e9b439ee32e2b2feb61e527e80499c","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_2.1.0_1789490892315_0.41329500471565583","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@eco-incorp/sauce-compiler","version":"2.2.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@2.2.0","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://sauce.eco.com","dist":{"shasum":"5a504917e1a533db186c1718a2ca088b46bfa2a4","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-2.2.0.tgz","fileCount":16,"integrity":"sha512-UzjSpAC1gYq/Nd8RJ4c/aHAEWpPC+0FVVWj2uVtYXqtG/l1Vnez1HUz48nOxs36Hr1drUTHDJElohLIuKL8Sjw==","signatures":[{"sig":"MEUCIEeP7nkltDh9LmudivwnT2V8WjdoTxagOlNziqj+KaURAiEAgv3cguJSPPWGB/JdivjkSSI2y+8+rtJb7c7ZywK9E8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHTW3ISrb6jhDnQrS0kE6Wv2+qt6xVcVncybuYC1I2TSAiAcR+teaPzXBzpffkuyanqBUnFjNyya7IqiuVsG19fi/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4473610},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"46bec252e46eb0ce629b4c48339a9fd573f055ac","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_2.2.0_1789594316965_0.08576179545746809","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@eco-incorp/sauce-compiler","version":"2.2.1","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@2.2.1","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://sauce.eco.com","dist":{"shasum":"15571983dda7fd45d711fbf9869b99c7c875c43f","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-2.2.1.tgz","fileCount":16,"integrity":"sha512-remQvLSY4XfsVSLxUDQUhRTHpP4CKoHYUAGphtbVkoQECPwrFIC7OsMPGRWyvvuL3I/A1EjiotnHknGMYcNgHg==","signatures":[{"sig":"MEQCIHIfEZ6vrlAUuD007hyGbCGt2qNMxrqK8Bkl+3Ii3jmwAiAmz1xFuMfOAioLTleGjyizPFhmgpJFf0aPcDz25vQRPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH9hYoYTrGlCUPB9KgWfcBL8c/LvQQVC3WI/QqlGcwwgAiEAtUIgfHLFMCpT7aKImA2YwyJe/cLlJQWOoTB/syDnQ1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4475596},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"f2f6dfbe38809304d83ca755eb7975c19d35ceab","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_2.2.1_1789679217645_0.7153263348437973","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@eco-incorp/sauce-compiler","version":"2.3.0","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"license":"SEE LICENSE IN LICENSE.md","_id":"@eco-incorp/sauce-compiler@2.3.0","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"homepage":"https://sauce.eco.com","dist":{"shasum":"cee35dff05ff0795905aed80f7f4c77d8d97974f","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-2.3.0.tgz","fileCount":16,"integrity":"sha512-fZTNdh7O0YjQxsYOGNnWvWYi5r+XK5GRSJeq3pCgFUGPhEenNFifPEPz700mZgiwP8i9k/zaTs+GOSp9oiRqmw==","signatures":[{"sig":"MEUCIFEHT3S7CKYt0DAOVcD0VFaBUOjw3hPBRrENkYBJTo80AiEA3CES7QcK1zmvGBR+dgw/F5i603yonfBeSkXBqiKaDp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDTLRsgLj/0uLa5OSMkgnK5y5R6OF6F37TqreAaiPIUtQIgURN0aqFsW4MT3oERinRTKkDZ4buCjfQ9buaenoRwfXk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4807562},"main":"./node/sauce_wasm.js","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"9281c2eeb0e14557e6565a3a689ae31380740fa7","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sauce-compiler_2.3.0_1790184332051_0.1533995120566829","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"_id":"@eco-incorp/sauce-compiler@2.4.0","dist":{"shasum":"4d88c3a377fca6475c8738d1674daec96d0ccfa6","tarball":"https://registry.npmjs.org/@eco-incorp/sauce-compiler/-/sauce-compiler-2.4.0.tgz","fileCount":16,"integrity":"sha512-lGDM4VcDQicpDSSkxyDu/5j5gL0c9qRqWRZBfRN2XKn7rHTvUlX3SUgBZq36n3kjbTOQ4n8Dp4gySeol4fBVKg==","signatures":[{"sig":"MEYCIQDmaE5AQMwAb1qk5eGmIn9IwvgfGNQsBAan5O2V7EPmGQIhAJGkdO5HcTnprKIuYEdBy1BffEtH55EF4SZlCNlTx9ma","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE6l4CcDU0BhWThsrfepT2W/FQiGygLQifmWfbExm7lsAiAQl+s22XVRd+oajMHHW4DCM0Y9ZGuu5OyPAMcxPR5+oQ=="}],"unpackedSize":4819918},"main":"./node/sauce_wasm.js","name":"@eco-incorp/sauce-compiler","types":"./node/sauce_wasm.d.ts","module":"./web/sauce_wasm.js","browser":"./web/sauce_wasm.js","exports":{".":{"node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"browser":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"default":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"}},"./web":{"types":"./web/sauce_wasm.d.ts","default":"./web/sauce_wasm.js"},"./node":{"types":"./node/sauce_wasm.d.ts","default":"./node/sauce_wasm.js"},"./ready":{"node":{"types":"./node/ready.d.ts","default":"./node/ready.js"},"browser":{"types":"./web/ready.d.ts","default":"./web/ready.js"},"default":{"types":"./web/ready.d.ts","default":"./web/ready.js"}}},"gitHead":"42a492ac7ce3ae3c8444c97182306560b1f1e012","license":"SEE LICENSE IN LICENSE.md","version":"2.4.0","_npmUser":{"name":"seveyeco","email":"matt@eco.com"},"homepage":"https://sauce.eco.com","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"_npmVersion":"10.9.8","description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","directories":{},"maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"typesVersions":{"*":{"ready":["./node/ready.d.ts"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sauce-compiler_2.4.0_1790794091907_0.944300937254146"}}},"time":{"created":"2026-08-18T18:21:51.938Z","modified":"2026-09-30T18:48:12.197Z","0.3.0":"2026-08-18T18:21:52.412Z","0.4.0":"2026-08-20T17:22:58.799Z","0.4.1":"2026-08-20T20:19:15.453Z","0.5.0":"2026-08-31T10:53:33.980Z","0.6.0":"2026-09-02T23:40:39.038Z","0.7.0":"2026-09-09T18:53:37.661Z","1.0.0":"2026-09-11T14:45:16.860Z","2.0.0":"2026-09-15T14:19:09.405Z","2.1.0":"2026-09-15T16:48:12.457Z","2.2.0":"2026-09-16T21:31:57.073Z","2.2.1":"2026-09-17T21:06:57.829Z","2.3.0":"2026-09-23T17:25:32.179Z","2.4.0":"2026-09-30T18:48:12.017Z"},"license":"SEE LICENSE IN LICENSE.md","homepage":"https://sauce.eco.com","keywords":["sauce","saucescript","compiler","webassembly","evm","svm"],"description":"The SauceScript compiler as WebAssembly. Compiles to bytecode for the Sauce EVM and SVM engines, in the browser and in Node.","maintainers":[{"name":"eco-re1ro","email":"kiryl@eco.com"},{"name":"seveyeco","email":"matt@eco.com"}],"readme":"# @eco-incorp/sauce-compiler\n\nThe SauceScript compiler, compiled to WebAssembly. A thin `wasm-bindgen` marshalling layer over the\nRust compiler core, with no compiler logic of its own. The core is I/O-free, so the JS host supplies a\nsynchronous resolver — in Node, backed by `fs`.\n\nCompiles to both targets — **EVM** and **SVM** (Solana) — and runs in both environments, Node and\nthe browser. One package ships both builds; see [JS API](#js-api).\n\n## Documentation\n\n**[sauce.eco.com](https://sauce.eco.com)** — the Sauce overview and integration quickstart.\nThis README documents the package's **JS API**.\n\n> **Installable by anyone; not open source.** Licensed under the **Eco Proprietary License 1.0**,\n> which ships in the package as `LICENSE.md`. Publishing to the public registry means there is no\n> token to configure — it grants no use rights beyond that license. The source repository is private.\n\n> **Versioning is semver**, and which bump a breaking change gets depends on the version you are on.\n> On **`1.x` and later**, a breaking change to the JS API or accepted SauceScript syntax is a\n> **major** bump, new language features, options and exports are minor,\n> and fixes are patch. On a **`0.x`** version the API is not stable — semver says anything may change\n> — and this package's rule there is that a breaking change is a **minor** bump, so pin exactly.\n> Either way, a change to what SauceScript *compiles to* is a compiler change rather than an API\n> change: read the release notes for bytecode, not the version.\n\n## Install\n\n```sh\nnpm install @eco-incorp/sauce-compiler\n```\n\nCreate `src/main.ts`:\n\n```ts\nfunction main(): Uint256 { return 6n * 7n; }\n```\n\nThen compile it in Node:\n\n```js\nconst { readFileSync } = require(\"node:fs\");\nconst { join } = require(\"node:path\");\nconst { compile } = require(\"@eco-incorp/sauce-compiler\");\n\nconst root = \"./src\";\nconst { bytecode } = compile({\n  entry: \"main.ts\",\n  target: \"evm\",\n  // `path` is the specifier as the source wrote it, so join it against a root.\n  resolve: (path) => {\n    try {\n      return readFileSync(join(root, path));\n    } catch (error) {\n      if (error.code === \"ENOENT\" || error.code === \"ENOTDIR\") return undefined;\n      throw error; // an unreadable file is a failure, not an absent target arm\n    }\n  },\n});\n```\n\n## JS API\n\nThe package ships **two builds of the same wasm** and picks between them by `exports` condition, so\nthe import is the same either way — what differs is whether you have to initialize it.\n\n**Node** (`require`, or `import` from ESM) resolves to the CommonJS build, which loads the wasm off\ndisk itself. Nothing to await:\n\n```js\nconst { compile } = require(\"@eco-incorp/sauce-compiler\");\n```\n\n**Browsers and bundlers** resolve to the ESM build, whose default export initializes the wasm. Call\nit once before the first `compile`:\n\n```js\nimport init, { compile } from \"@eco-incorp/sauce-compiler\";\n\nawait init(); // fetches the wasm next to the module; or pass bytes/a URL explicitly\n```\n\n**Either environment**, if you would rather not care which one you are in — `ready()` initializes\nwhere that is needed and is a no-op where it is not:\n\n```js\nimport { ready } from \"@eco-incorp/sauce-compiler/ready\";\n\nconst { compile } = await ready();\n```\n\nPrefer this in code that runs in both, such as an app that compiles in the browser and in its Node\ntests. It saves branching on which build you got: TypeScript resolves only one `exports` condition,\nso the alternative is describing the other build's shape by hand and casting into it. Call it as often\nas you like — initialization happens once, and concurrent callers share the one attempt.\n\nThe package ships its **own TypeScript types** — `CompileOptions`, `CompileResult`,\n`AccountManifest`, `AccountEntry`, `AccountRole`, `SauceTarget`, `ResolveModule`, `ResolvePackage`,\n`FnCacheStats` — so a consumer does not declare them. That is deliberate: an entry point typed\n`(options: any) => any` pushes every consumer into hand-writing the option and result shapes to get\nchecking back, and two consumers then hold two copies of one contract that drift. Import the types\nfrom here instead:\n\n```ts\nimport { compile, type CompileOptions } from \"@eco-incorp/sauce-compiler\";\n```\n\nEither way `compile` is the same function. The following illustrates all options; supply your own\nfilesystem root, package mapper and ABI JSON:\n\n```js\nconst { readFileSync } = require(\"node:fs\");\nconst { join } = require(\"node:path\");\nconst { compile } = require(\"@eco-incorp/sauce-compiler\");\n\nconst { bytecode, manifest, isaRevision, entryEncoding, entrySchema } = compile({\n  entry: \"main.ts\", // optional, default \"main.js\"\n  target: \"evm\", // \"evm\" | \"svm\"\n  resolve(path) {\n    // required: return the module's bytes as a Uint8Array (a Node Buffer is one).\n    // `path` arrives AS THE SOURCE SPELLED IT — `\"./token.json\"` keeps its `./`, and\n    // nothing is normalized for you. Join it against a root, or strip the `./` before\n    // a map lookup; a map keyed by bare filename silently answers \"absent\".\n    // Return undefined when there is nothing at `path` — that is how the per-target\n    // arm probe (`token.evm.ts` before `token.ts`) learns an arm does not exist.\n    // Throw only when the path names something you could not read: a throw is a hard\n    // failure and will NOT fall back to the neutral arm.\n    try {\n      return readFileSync(join(root, path));\n    } catch (error) {\n      if (error.code === \"ENOENT\" || error.code === \"ENOTDIR\") return undefined;\n      throw error;\n    }\n  },\n  resolvePackage(specifier, importer) {\n    // optional: map a bare specifier (\"@sauce/token\") to a path resolve() accepts.\n    // Return undefined to decline — the specifier is then used as a path unchanged.\n    // Throw if the package is genuinely not installed.\n    return mapPackage(specifier, importer);\n  },\n  contracts: [[\"ERC20\", \"./out/ERC20.json\"]], // optional: [name, path] ABI pairs\n  inlineContracts: [[\"Token\", tokenAbiJson]], // optional: [name, abi] pairs, ABI JSON inline\n  ambient: [\"@sauce/token\"], // optional: modules broadcast into every module, no import line\n  defines: [[\"FEE_BPS\", \"30\"]], // optional: [name, value] compile-time consts, value as a string\n  optimize: true, // optional, default true\n  compactArgs: false, // optional, default false — ABI entry arguments\n  cache: true, // optional, default true — see Caching\n});\n```\n\n### Options\n\n| Option           | Type                              | Notes                                                                                                                                 |\n| ---------------- | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |\n| `target`         | `\"evm\" \\| \"svm\"`                  | Required.                                                                                                                             |\n| `resolve`        | `(path) => Uint8Array \\| undefined` | Required. `path` is the specifier **as written** — a relative import keeps its `./`, and nothing is normalized — so join it against a root rather than keying a map by bare filename. `undefined`/`null` means \"nothing at this path\". Anything else is a resolve error, never silently-empty source. A `.json` path may be either a contract ABI or a document the source imports as data (`with { type: \"json\" }`) — both are bytes here, so serve any `.json` the program names. |\n| `resolvePackage` | `(specifier, importer) => string \\| undefined` | Optional. `undefined`/`null` declines, and the specifier is then used as a path unchanged.                                  |\n| `entry`          | `string`                          | Optional, default `\"main.js\"`.                                                                                                        |\n| `contracts`      | `[name, path][]`                  | Optional. Contracts the host declares by path; each `path` is passed to `resolve`. Emits the same bytes as a **bare** `import Name from \"./path.json\"` in the source, which is the spelling to prefer when the ABI is a file the resolver already serves; the same specifier under `with { type: \"json\" }` reads the file as data instead. |\n| `inlineContracts` | `[name, abi][]`                  | Optional. Contracts whose ABI JSON is given directly rather than a path `resolve` must fetch, for a caller that already holds an ABI in memory. Entry module only, exactly like `contracts`; a name colliding with either is a compile error. |\n| `ambient`        | `string[]`                        | Optional. Module specifiers broadcast into every module — their exports are callable/readable with no `import` line. Each resolves as an `import` of it would. Ambient always loses to user code: a name the module declares, imports, or binds as a contract, a JSON data import or a named type wins silently. A module has one namespace, so an occupied name blocks the broadcast whether the two are both functions, both bindings, or one of each. |\n| `defines`        | `[name, value][]`                 | Optional. Compile-time parameters injected into every module as module-scope `const`s. Each `value` is a decimal or `0x`-hex integer **string** (a define is a 256-bit word, which JS `number` cannot carry), with an optional trailing `n` and `_` separators. Precedence is the opposite of `ambient`: a define **overrides** the module's own `const` of that name, on both channels, so an `import` of it reads the defined value too. It does not override a module-scope `let`, a declared function, a lookup table, a bound contract, a JSON data import's binding, or an import's local alias — each is a compile error naming the define — and a function-local or parameter shadows it. A name imported under its own name is left to its import, which already carries the defined value; a data import is refused instead, because a document read from a file has no declaration for the define to stand in for and applying it nowhere would leave the option a silent no-op. The value must be assignable to the declaration's type (only `0`/`1` reaches a `boolean`) and the name must be one a source file could spell. A repeated name is an error, not a last-wins override. **The name is program-wide** — \"every module\" includes packages the host did not write, so a dependency's own `const` of that name is replaced with no diagnostic, and one that binds the name to anything else fails the compile; pick a name nobody else would choose. |\n| `optimize`       | `boolean`                         | Optional, default `true`. Enables optimizations including constant folding/propagation, bounded loop unrolling, scalar expression reuse, invariant tuple-read reuse and scalar helper inlining. Validation still runs when `false`. |\n| `compactArgs`    | `boolean`                         | Optional, default `false`. Uses `compact-v1` entry arguments instead of ABI encoding. Encode arguments using the returned `entrySchema`; ordinary ABI-encoded arguments cannot be substituted. |\n| `cache`          | `boolean`                         | Optional, default `true`. The per-function IR-lowering cache — see [Caching](#caching). Set `false` for a guaranteed-fresh compile.    |\n\n### Result\n\n| Field | Type | Meaning |\n| --- | --- | --- |\n| `bytecode` | `Uint8Array` | Compiled program, without the caller's argument values. |\n| `isaRevision` | `\"stack-compact-v2\"` | Instruction-set compatibility identifier; independent of the npm package version. |\n| `entryEncoding` | `\"abi-v1\" \\| \"compact-v1\"` | Encoding the program expects for entry arguments. |\n| `entrySchema` | `Uint8Array \\| undefined` | Schema for encoding compact arguments; absent with default ABI encoding. |\n| `manifest` | `AccountManifest \\| undefined` | SVM account slots and required roles, plus a remaining-accounts marker when used. `undefined` on EVM. |\n\n### How a `.json` import is read\n\nA **bare** `import Name from \"./x.json\"` binds a **contract ABI**. The same specifier under\n`with { type: \"json\" }` reads the file as **data** instead. Both arrive at `resolve` as bytes, so a\nresolver serves any `.json` the program names and does not need to tell the two apart.\n\n`with { type: \"json\" }` is the only attribute accepted: an unknown key or value, an empty\n`with {}`, more than one attribute, an `assert { … }` clause, and the attribute on a `.js`/`.ts`\nspecifier are each a compile error naming what was wrong. A config file imported *without* the\nattribute reports that it is valid JSON but not a contract ABI, rather than a missing `abi` field.\n\n## Caching\n\n`compile` memoizes function lowerings, on by default. The key is a function's source text, the\ntarget, and a fingerprint of every external binding its lowering read — so recompiling one program\nunder many `defines` reuses the functions a changed define does not move. That is the workload it\nexists for; a single compile pays a little and gains nothing.\n\nThe store lives in the **WASM instance** and persists across `compile()` calls. It is bounded and\nautomatically empties when full. `clearFunctionCache()` empties it explicitly and resets the counters:\n\n```js\nconst { compile, clearFunctionCache, functionCacheStats } = require(\"@eco-incorp/sauce-compiler\");\n\nconst options = {\n  target: \"evm\",\n  resolve: (path) => path === \"main.js\"\n    ? new TextEncoder().encode(\"function main(): Uint256 { return 42n; }\")\n    : undefined,\n};\ncompile(options);\nfunctionCacheStats(); // { hits, misses, inserts } — this instance's counters, not the process's\n\n// Release cached lowerings and reset the counters, for example before measuring a cold compile.\nclearFunctionCache();\n```\n\nChanged source or consulted bindings invalidate reuse automatically. If your resolver caches file\ncontents, refresh that cache yourself; `clearFunctionCache()` cannot change the bytes it returns.\n`cache: false` bypasses lowering-cache lookup and insertion for that compile.\n\n## Errors\n\nA validation, resolve or compile failure throws a JS `Error`. Source diagnostics include the\nrule that was broken, the source line, and a caret under the span; option and resolver errors may\nhave no source span. A host callback's own message is threaded into the chain, so a\nresolver that failed says so rather than surfacing as a generic compile error.\n","readmeFilename":"README.md"}