{"_id":"emnapi","_rev":"49-0d048d43b63f167747c51d078feab95d","name":"emnapi","dist-tags":{"latest":"1.10.0"},"versions":{"0.31.0":{"name":"emnapi","version":"0.31.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.31.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"63dd6e6084924124343cc0ec79cabf7372b6dda0","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.31.0.tgz","fileCount":44,"integrity":"sha512-AlrFCOp0lsKYIHSXWz4EHxKfFH2hDv9NdnvPqiQzJJ1Fvl5EYHygsv1aSFJFy6OZctbrG9FXpTSVprvmQQdI/A==","signatures":[{"sig":"MEUCIAy1KcyGgcIDaHxmDhtqUV56UHruE66u24FUez01EGMKAiEAozYxWBPTE0AZ+qMXU7R2Kc1ZIxWT1f06vgTarf56ZQA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1072090,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj6zs4ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKhA//QIFqo0oJbo/XyUxgnagX+IFoDAk/KUatGye8pz+dHBqgISwI\r\neXswk8MGUsaR0iEYAWm5Ox5RdaGupj3HXC5PIk4z1zVGBcEzT+MJA44poT0K\r\noVaRfleLZNg3XGWDIAZWJtubFTvk0rZ7usBT7UpMsKQ7DqHxYJjnE+kC2PIN\r\nKjTnOKLJ6pi/EJLXkRSZ68x/SBNbVY10Mamk+xcS2zKMaNwrRby3TSlTyeVs\r\nfBWAQ1PCw5BJ6IF7ZVW+wiEKOxyEuqYxhKVPBiwWHJowl+dqM6bN3web3CmB\r\nFksa/YJut5oXGcEUE9uMTPIZxup9iiVH1Xbkn9e2uq2JA5U2s7SxlxuTcqQl\r\ntzAZMb0ByOF94+Vq8Sf5dGdfFUQc+R3eTDZd/BTFR6ZeZjD94XoUoa/4S5Ah\r\nmVmxqnMNzy6VugjSzcMmzAkSvYsGMtOHUQuxx70C7mXZk68HDTHDz8mD6HXP\r\n59/JF+03FR8cyuzc3ZqaDVH8gIrw0rBd+p2YZrdx5BS44SQXFjw+hWZmj06X\r\n3F0utyQ51tEj8vqzgIth97nzvTT8vA7xh3Skh3vFbIk3DwNWi5Oc5yQP8Eld\r\noh7bVi959NMjlDKXL5Etkh9P6nDlj83QQS5XoPT0DM5qeTVlivE1tusKtc5l\r\np8KGLXJAASZPb7VGypjExmSpFMMJX/N+le4=\r\n=Qshm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"dd523c65470211bbe81e7e5a80eb0427b248149c","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.5.5","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"16.15.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.31.0_1676360504157_0.29117305738832666","host":"s3://npm-registry-packages"}},"0.32.2":{"name":"emnapi","version":"0.32.2","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.32.2","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"3dbf37e510d6bc0ac67240e937901028c634cf76","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.32.2.tgz","fileCount":54,"integrity":"sha512-h5MsO8A9NDYIg8MCq1uIvE4vQAvhLgdAVAWea8muY3juRI9GmukHRg+PI0ReuSuA3eZpGfK9BTW+4vKhQPphag==","signatures":[{"sig":"MEYCIQCo8opVyV3XKTPE3sgrxeT35nf6sydUshfeB4iDbTYZYgIhAKhIesNDsA+z5y4fSHOWv3GWKsId+zfcE5/PiJD1avFE","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1111619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj+lgpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqaUg//YqVr8yYjrtEFZfoHN5yaMqTLyufV090lilQMokJZD87SPaj4\r\n0qcxLSILZJ+6YKRaZUmgLUhTrba3UxTvz55J4q2VtjCbaDF3yzahQgRPioEj\r\nlBJ4Bgb1Iil66FrSMUQq66Gm2lm7VvlY20WwC49evZ1Qko/7b5lsCc4zsHZN\r\nedzVjPqWuIeYiAUaM3JCXim9jKO+CmG8yRm6UtPmkXC3PZGqLiszRJUNWWFY\r\nkfae7HPcjNga8+RPq9jXSWGOb+gBzKVivMTaCEsilruoFMfc6N/WkkqMftJu\r\n9G4tNVLFfe3N4XKPXT8lZag9FQBdwpIfYwPNz4kCXlU0Z2rqdDydJIL5AB2Y\r\n/MChwfUYdgt3TTtjpb3SR+j6nzXg6s6CReCqtvZToV7r967g0utn01gOJqG7\r\nxv9RCU0F9VhFuIQlKYVR39w5b5GcQ4t44gtsz6x3Yj5znK1E2Kf2uQRqSoeS\r\nhj2MrBlOPumYwBBbjqYYm1mH46Nek0gzyUgjSwRtPd4Lre2ravnExLpkXOH/\r\nio/pJlJvoKbRS17McsCubqj/Ac40GAPoSjilzDN6qEBF4bLawViKOABsnQ3Z\r\nqsYIn2rX7GuPlMX4QyvOPAFLvAT/syY4g+heVqGSfBKHerj1Ik2R8bOKodG9\r\nYdPIxK1mzDN/I9wjTJPtR1G1OBQ1Bf1SD6I=\r\n=m9UG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"6643963d7cad2b78682b8545f7d2adb435971506","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.32.2_1677350952926_0.07003857552151072","host":"s3://npm-registry-packages"}},"0.33.0":{"name":"emnapi","version":"0.33.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.33.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"9055641ba1cae5f3931a90dbc3937f3ed4e9184d","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.33.0.tgz","fileCount":54,"integrity":"sha512-VNUV0umwutmrk4ejZbF91MlGZm7RKOAzE/dCcpoBgMGMIjyhbSljhE+DIa8zmipRs1PfCTP8lVLJ9jzwQjW/VA==","signatures":[{"sig":"MEUCIQCULZOU4k4fBh2nSLp1q0zff2JkNaCTjL0hf/uu6ko4WAIgPfRCypfMKSyubbYQXFebQEziw7VJaUq0P0WBrw8wdwc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1116743,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCeIpACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoAAw//d0SejPBRW3/06RbHQPrD6wbKs0l7V5m/84kboM7vSivBrs3N\r\nkHxa2P0CjuArVkFCNfnzAeWWliHqMfn9ATI8DL/wbRH/KmTetuNkurZ12GZw\r\n49wxpCydJDtB5SZ4KajgA1yPOPzSDy4g2h/iCfvjw9fCnNp7XYXGE9pcA8ag\r\ns1jSwn1luf6568YYOwu8VhNzRXX4rV9Fpqq2IcduxeSr2qH2Vty3P9NDwzSj\r\noTr2uYDArTDA3NsN5hYGvnm8UnQojl0bQNu3zgooUPqWpcJBHXsZKtZH1xag\r\ndHnTSF2cfalFJTw8Tu7RQ96BhSpIEA2uVGHfFdzF4TpAb4u59Jyf/JHVuWTH\r\nntAz5PBgWThGDtbkw78MF5Pngz4pSRjK0gmgEnuzerN3JkYqwT6epksfTgGv\r\ncTdXATOXuo9nS8z5VGWpZ1dPkujCSy4zRKynP3hBqzuM3bTGr7yZg0kFha+f\r\neLUsUEAi2Zc3JC88FtrgCZvyDiuaIyz6wlW3wVN2S/xaguBHLgOqMWbvpL02\r\nEOuiLspus3qvENWVuIaI32ptJivEd74KqE4WU5okOV8I9WidjpRxJTMfJy8z\r\nCSaAeuQaoM/I+ck8uOaSqeGK0q8TUAKhkWBcBkjVad2zoGdfvA8TRLY5Vnt1\r\nb3QdXX/quL/a/BLPl8rqys4aF8QnT22SDHk=\r\n=S8SJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"3a6e7315bc74de10697cc68cf12d97d2f8c9cddd","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.33.0_1678369321515_0.7799767988481257","host":"s3://npm-registry-packages"}},"0.33.1":{"name":"emnapi","version":"0.33.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.33.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"e1c6947d5590141a18f041316a17857eaaca7e1a","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.33.1.tgz","fileCount":54,"integrity":"sha512-zR4ar85Ge7FNcro/cz8KS7t3TqtyTKikmAYVGFRi7igXjY66yRH552u5yjaFGVVK/6Hmd9IYGEbZDeNm4brmYA==","signatures":[{"sig":"MEUCIQDSrIY0z0Op8M0n8GynkmcpcJYW8kqjYqX1JlqSwOd96gIgFbcb2AGBQhFiBq0fhIqRdrZPK0AYkKtvkx7p/JO/tV0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1116667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkCfxAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrEiw//c1VvfhIzRJT/BIWJtiTtCC64u928x7qhyjuN0YVKqGnoxK3O\r\nlLv7xv86Q1AjLsTu19FleWmEIIauu0kVhvwdf8WNgm05iLwcnFmrEnfusiH5\r\nLwY0sbOCf4hgF+lxztsSkn6gC+s7lsiUeFr3nWeF2fJpCDz5qmKs2yjgxDwj\r\nLpHz5Pe4dwJtBM+o1do6Olx+IRZgzEdM5BPPd0Lz+dHrovdP7spHyJCoaQ5m\r\n57aWQnice/EihNnZZVzOw8ng9/94cLOZjmRnWUb5KF6rlJDmFYqV+pjUjH7f\r\nJwowc9gP9DMMna0651aOtxTnNIjNOdT4iAmz9/U5eL29seGeUkX08tTunMAG\r\njvS+a7od53yAaEDjTh+SMUeinDg7ZAL8N4zKm/ThPogJsTp/jsW820zIrABE\r\n0Fv6gcvr/7AYErUO4fp4mbmKQFwi/iQWFZdaxpuJxWOqKz3r2p9n/2i21e85\r\ny3b8SeufZLsjDEtMKujCp8clLKJgLBSMVffRh5mOPDhWAI4SV9QQAbf52c6I\r\nMc+gsrVYEsnB3HKGAdPKCeZxdll0GdfVFH4PLk0zgEZMcs1es+YmQZdpQ15W\r\nVj25x94HI3QwbU3W2aX69qxcVYjeVBB6f/4fsQMqAL1Umql659dTtcoXqVUI\r\nE3iOnG8JNct4y0mgbbDyQYjoD44U3D4nkSM=\r\n=hck1\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"3d9eaa50e9dee68da01a6de446eca882fc7d0121","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.33.1_1678375999818_0.5508658849197396","host":"s3://npm-registry-packages"}},"0.34.0":{"name":"emnapi","version":"0.34.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.34.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"efebc9315cc04f60cd97032cb840e687c24e4fef","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.34.0.tgz","fileCount":54,"integrity":"sha512-NxYqI4P32oGLfT+kqshnGNI8BALydcAhCaBEwDBtXGZP7vHvZhk3K6HJeonn0L6+E26NWBXV+5iYc1g2nnW5zw==","signatures":[{"sig":"MEYCIQDoij1oQtnqIE5G/N2kfmDMPSLOkweEpFNRuj57puevBgIhAIX7iRC9CPBPC/DV48Wc7AszxfZE7XtMr0k3hw1J4e8E","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1149516,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkErbXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo0sA/8CZRtqkZyYOKNoowJQly+tVQtKBgpnjfbjhSmEpdKa7FpQx0N\r\nZ0wMZAdV2NBmca2B+AT4w7WavQ42q87FH4w6TvhZ0DazMZMdzq9mfJaKu4kP\r\n5j5wztfDO3jCz3r/Np6wC+EpG2T0Gk9SYyMErYJEQ8Nulkb6eElunNrW8dAd\r\nUJVWCPoePDxLGtjV8SjfBsM90ub07FNBJuldWm7SNe6b9XyIznwdaVG+Wzb+\r\n6ykd9Lt+QGp7/qW5EW4LQlOnshoAspaomQfWfdG+UwK40K02LE51geEHTmP6\r\nErs9JNc8qPh+Eif5lHfriMKeMhGhb+veAEq9CdlUtb58HmA86tANvk/MmiCt\r\nLL1DqEdaFo3ymFYFgspV8IClNaalgQ4Qr6KDUv+sjNdhdRm3Ey2cxGc+QMuy\r\nw3XPb/Bd/1JNCBVgA/DkLDn4aP8h1e94zCEqrcDPpRrWxOuZkAV1I2WLfPTg\r\nUkfWMfskJQvy2PexY6r64FVGMCbCziDlYIUnR9ZajU4ebx/zQ13MsORMGz8D\r\nVo3reWccRW3KkcnWtm5hp0i0UCKogsPy5JDMb9yOTvIiwpITWV+GU/7NR/Tx\r\nSAiyCF213gF9y8Rmin9KQ1/PyZvYtOgvakjsN4WuNx1uTA83hc5QCY9Uu/5R\r\njdsp19ov6s3256QmkCMc4S4Mo3Xt4Gag7DA=\r\n=7Bbi\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"0063272fc3c70bfdb95ffd8bc37d97d04195c573","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.34.0_1678948054765_0.9735604683459078","host":"s3://npm-registry-packages"}},"0.35.0":{"name":"emnapi","version":"0.35.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.35.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"ede3efd5659889990cbeeb2193e9e3a695b1a134","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.35.0.tgz","fileCount":60,"integrity":"sha512-+uiCeXsxeygpsPyCX2kKf7nI2Ibcse9txWzZdnZbest9WYjNGuxfZiomdiAz4RfmDDl6b9VoARCB+lPnENda0g==","signatures":[{"sig":"MEUCIEyUDKUFx/BVcItYIEO08VIJ3Y6q88uu46QkZC4Bfc0uAiEA3OjvxBPV+HvkOVQMxV9WZu1bAkr+gR0EdSz/Bnly76I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1207009,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkHCCjACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrW0w//QXD1IdIoUz1ODhiWKMYLC0cAhU32ZHmvSQJk/3EvdXMeChMO\r\n7Ob1zSrqkK5psGG+dCUi8yrZfnUOpR24ISbdetlc2vcK43KDT+9YaMdXtIVu\r\n06mWwX/LMDm4fJmUcnjs7QnzhON3kOdWJkdXKgDpDNvxDng8m8Xwwffc4FvF\r\nhGbcCHcVFDIUkipMdprvZV1LK+KZ7P6S7ETxrvnzjd1T4WG6EUF190jfwHsm\r\nD14AxfQ1R1LEYnJis0vKkTuvXRw8PHyB1ypXT7QtJgD6fRRVvktjq4wArYR+\r\ngojFrvrX/txIlTDP9OxsB/fcdznvMaE478bEWtjV8NSCLB2TGzILzVWEBJ1d\r\nQxZ36gYTW27UrfSwJbc8naBIGRByL8LG9cCBVR+SC2gM0doNvfTXl/L1yj8I\r\nYgmbXQUYCBWCsSaaJ4Og3jVeK+irxbvc0U7drJzViRuBI/rcKXMw5GiHMJtW\r\nDGm4wngooQKsZP4r3d7cXCS8n0Je2zw4I+AuggUpgPj8rVog6J4TX3ezsT7w\r\nz2/Rqk6I6ivWvHMpHpMhkhUnwsu4y7i/2IVs/PAZ8NS8b7EgfOne6XaDqCyi\r\n4OCphSTk1YI3YF5PptIQn82jgyEHbE4N3FWq7LpdMnDRTopgydtDhpfX1PZ2\r\nXFX11eSK0Uy7NpSlh36Sut1uDIQZ0bUaMhc=\r\n=g89W\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"70aa71c9a9bb3291c0a2eb81a7376250fe868578","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.35.0_1679564962899_0.2071133195868604","host":"s3://npm-registry-packages"}},"0.36.0":{"name":"emnapi","version":"0.36.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.36.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"3816603205daf1d0ed648408a2c93962c14825b3","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.36.0.tgz","fileCount":60,"integrity":"sha512-cx9x7tfnTXcjCqp7h4Q5Rw0+yWLefen4HkCZl60oLjwPQe0WOyiU+Kc9fMyrceMUbxYbflb9j+QKtTV9HRY0Cw==","signatures":[{"sig":"MEYCIQDV9rf8CdqNK7jODnj5QNj8NZz1e3uKHJ1wQAFStRo4owIhALwRbMnpbzOmq+XwFRXzwh8Rvay3JJ5YrwggTjfkItFJ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1208972,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJU8qACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq3kQ//Vpe+hIizmi10T33HEeguSiO/gMncRxtt48jwQMILhsMs5RLM\r\ngxOTbkmQ5zCKCqMIxqsESSvOAxSPvlsYX5HsPvu2P0CBHasTlaxXS6ajHMnV\r\n6OcH8WA50DjqplvxXelEm/5VxmZ4TgZASFzwSUL9Ce6OueK3gpsSmlZ4rRrh\r\n5lUNxuv45FJsuWrFxomy8riYcjEgJinyU/dHrdL88qOGUDJ+kPCgD52qSyaR\r\npw/lxvij68gTE0PRU8P/AeCZmDA35gBxMX/AIUEQfh8O/PqDvQJ50Z5yZkod\r\ntp4nuRoxevvN6t1odniygw/1Iqrhyggd/qFpukyIVHNGIyDpDk4kZn4O9KpV\r\nqxfiT9fBpgKoXdYXDbEtb16UCCcU9JO+oqtR/Sr6EwWZBuYBRQSmNPXR0wPY\r\n7B6R/LlM1Ecj/1tuO72bH9appYo54WKGdbk5Hc0Zsbyc6Tqo8XhIuPJxoFEt\r\niKKg6DV0xU5jRNmJGPSmzCG337xoafNYVwTVwsiLCQRX8tHriybLPHXUQBt9\r\n6HvfN0ge/5ZICup2v/De2LRpsEyTYgU39GAQ/D3jlwzx0QF0sKtxVSbVhzDC\r\n27hyFEXMCYBd6M6yRnR9oVoFdQys+EMaXefjouDuEWqsyyeMtZl8zhfF4hbj\r\n3kmzVUqibtEjis/D9R12rXrAH89WC6AXEU4=\r\n=94LT\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"ba0cc473d2f6e0ee2037a57e5ae6d3455685fed3","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.36.0_1680166698267_0.8772788996460839","host":"s3://npm-registry-packages"}},"0.36.1":{"name":"emnapi","version":"0.36.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.36.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"1643bc49c696dffcef6f114b5a34a861099fa374","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.36.1.tgz","fileCount":61,"integrity":"sha512-oVE7o3anUZrwJasApCZIXW4fys157zhTHImOHiuNFbvTwHz/A4hW0VkRPRhE0ec/bOv8nZkVxgNj9hXM/eHi0Q==","signatures":[{"sig":"MEQCIHd4Uuk8Alt9KqJ2mINMelg4EnYEdqq/wlbZbFXHqGNWAiALzaYl4PzQlUQYpWX+plPdf2A1Zb1RMvfzJE2IxnM9PQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1211814,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJqeSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmqd3w//ZqUqi/AYMC3HbXf/AoJireaoNX5ccpTzx6LO5WjyZCEOYn2V\r\n5hmzM44PDIkvRXK8HsjHyqdecnUmHpehXr3FG8vQSUtcidPnVGrV5b0j4TJE\r\nY4jbUV98bUAwAqegZjiVSK62uvi8CzndhVEPPVuUAtYpXqtTjEA8cqzl+9N1\r\n0q6TGXepDKqbjTI2Gye23FHL18+9AVd7m1i059onqYNbuqr/fFDyqPtHAWCT\r\nAHMZOKMxs1qb/DKp1lcp7xruu9T59SuKbBV1B9cZ5BB108yYuIYB1tqwTTbt\r\nrAJD2lEgWoYm4k472/iH9eHvmlVgZDMFRPcuMDXI2Ka5lMvd0FmS2pFF+l+Y\r\nyr9C3QG0rP/2U/4u5BeabQYlx5M5B885I3Y9Evl3tVvJzXTHvTWV88Gp1ORa\r\nPCzfX2Z2CP19PK6lfIrmlTCMkyG2cqe72UoOu5hA68AdKpjBW3lOVVvSE2Rr\r\neKDChxysR8HqV9RB11rGuETdOF0wQVOQipMcsz/p0tUUupNRZh/PzoUjiBs+\r\nbirEAK2Ve1iMbx26vauoJqmegAWiH3UOEng6IFzNIQIsFyU11arP/MAJNIoZ\r\nMCJyJQeHTJdIrHZnbbalUWnmv5U5JKJuZuC9l9dM6BxBjq1fM30KPyaAd6Bf\r\nbw+GexPBp3CU7wrpD7/PVonIApFdZuh+caA=\r\n=DGTV\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"8ecf3b61b2ebd8e1b0a05e880eaae04d7861f6a5","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.36.1_1680254866350_0.5883168046180856","host":"s3://npm-registry-packages"}},"0.36.2":{"name":"emnapi","version":"0.36.2","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.36.2","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"31a239def60ab3737e667c99140421f5c1cf0e3f","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.36.2.tgz","fileCount":65,"integrity":"sha512-RRSMeJFFMrbzR7Kaq5tetzwzM7rldQO1kAOU/W1B3q1hUPnQyvIY5DXxE4Ey4pq3GxKJxLpupZZvbRqHNaQMCw==","signatures":[{"sig":"MEYCIQCElLe/JgCFH5qAYcw3z3c/DqfHqoEcrC50+7/sHU/5vQIhAKpPI/enjrdTCq27ONs0bEvSdjO8f4vvED3DNLju5Bnq","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1281056,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkJxMYACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTQQ//bFOBWAWATAn++3ZI+tI+ICv7ypi6SbRAu8gA0ckagysJCSeD\r\nEpeostoTbeWQ6m26ZNviGLBE716JDY+2QOr9EiiSHdqazuHwQSbWhQxXE6nT\r\nV/HjoyfegpmIa4BE77RA081KQOjFfr5Ss23Y5e//nVrBRdfRNYIJYVh7ZSrr\r\nbBFQ7gsuR/02/ds2c50EwCic+TzSDDg0nnDBV5VI8ct1mnts4SS/9YvqvP25\r\nWod+zADVpONEymDmAxVMvtRTmBYHWuwP6ZJ2oO4pz0AAinOO4z2ZMWeXfrtF\r\n1JZ4VFUh8QksqJQ3JXC0znsV/o1hiGuECylGQaI4DOchCRuC/Osf0/RvCCQ4\r\nfnv7dnxJRgOqJLjsuXMVTt1oqSQxTRpY28Mq5x74kFIded/SDv1TQsQj9t/g\r\nsC3Qa49lsD/gFI+7/xD/dxrbt4mZ62OHTKZ2xcjIR+69kIoCoAoKy5qMQIYx\r\n3ACxYViI0upLhF2J9swY3xhnLNbaqGegr86bgLzCDlC4sYH4X0ryLNeYKtnp\r\nrfvKjFL6jeoM8GV749RNrmnlta6cX9rFmkvfnbUk/omECwdR8nfwQyfXgdvM\r\n89gJkgZ/MdNSPVBTvvuXZGiRAkPQ0Gan60OCCwoxro7EVj8KStY5PtwSZ0J4\r\n98aRA4VmUBDSsxJYfdKfAIOknsKRankwdsU=\r\n=gfPJ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"c6c15f63b3dba916e4acadd4ab810c8b72fccfd1","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.36.2_1680282392381_0.8082459250602059","host":"s3://npm-registry-packages"}},"0.36.3":{"name":"emnapi","version":"0.36.3","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.36.3","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"80578b7bd244dd70af9ee718470c07b066ecd441","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.36.3.tgz","fileCount":65,"integrity":"sha512-BCv1rPIRJlh0jNN7X69OHoLAvMpQJpETZRw38xoH3xUgTDZpurNG/SPPZuGnQWcVmOQvkCQAD0g4FjmrH7/11A==","signatures":[{"sig":"MEUCIGeC/YbubKvUY8La/9mmN/k20oXOLOzpYRJwMB4M47qXAiEA3SH6mugjDvrP1uriCu90Qi/lz38yScom9S4DEoLg+00=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1284622,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkK7hiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRXxAAl+sG7xqSx9oyJGdnZHnTrR4/9geah96jjXgdlktmDFuJ5P+P\r\nftIOLWqE9zTXN6pvXjiCKL4efJDbymnq5/ITWlSPIqGDOPhpWZNMx31PPyH8\r\nT9tkXns/jvL15DVbbCrb/YAyMzcQYj361YbYD8aYDOTOzwU/3HpE+iEdL3+l\r\nZwu7R1/r9K7UBhAZxhw0TeQMGbPaCbYSvm0XjCeSLIZmC2y9L2Qi0oX3GC1+\r\nZVblvhtPQ7z9EbEJcVQJVlLDkWIU1YY+MRy5dvK+UXiu14Pgz8fDCvhJmspt\r\nfr5cdCXrj6LvIKmJEdmXAFZ2d6x/gL70s8hCPDWG5TI6lap0G5u7HBH79s84\r\nrsfGSJz/UusqfJ/r+D3FKB5aA/psnXcmWZceiBrjY1tUdzf4GxHjy1da1pEk\r\nkVaWuXIsFWdyFq+WI8PRQCngTR5QDpluTUaOR2LqIa483ctc1qV3kBjqmzc+\r\nisOnkf+yUniIBhDGVgfMr1aV+SMEDGETmaeBorq7SUph+JgFC4bDPNIMJa56\r\n1RKWmXFUlg942mh26HF6zlRqpm9EE1y5infSHLayBzPkgNbEg3lYioheFrVe\r\nnRR6qB/UJ4eOrOm5AyQvK1fvCt4pajGnsqoJxjDFbRF/19VEzIlwlm0uSAOR\r\n/KAvXmLsDHe7C6eXFqptHWliM8dhJIJn7a0=\r\n=qvpj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"ef44a08d3665e989ae9d37b0720845d5c292e330","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"8.19.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.12.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.36.3_1680586849875_0.16927425042499533","host":"s3://npm-registry-packages"}},"0.37.0":{"name":"emnapi","version":"0.37.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.37.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"a797b2160506f76a2e1814d943ad52fd6b48f092","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.37.0.tgz","fileCount":65,"integrity":"sha512-xIpQ2TiJwuC1YXz2mRkwJvXKqGAPIZrOjTuP8Br9ntZ2MxVcXrs7YKKX0EzuXHLXeMnoqnYS1eorH1Tc9MfkMQ==","signatures":[{"sig":"MEQCH1pG3DghQkopeDbxmlPq5aXTwOUtd5n1eKdhvOt39qsCIQDCARhBIngTZFH1wttodt+xTBs+UBnInvVKYm8G2vk8VA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1288283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkO9boACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrvDA//YUQ/LBKHxNhuILoelj3KKAjkQFfVXv0WxxPc0EymEP+nXvoI\r\nUllnwCdZ7p9DJJOg3jE0vYMf84qEI5MmgLwVzUWb8AEJaAoQanLXmBHP0weo\r\nmFzzrVFcruVPpOeCE0HBzq7J71juuuQQgK/eG6YtpOftTydloIJKN089RDbc\r\n3E1P58L1VM5dldXGkpOqvKx10vx7glYhn/YD6PnREYskIdCdM5JIgePk0G5Q\r\naYSTuM2bWUAGETL9dhfLLKedmwBzYrZRfuoWwM50RAURKbGjpjCAG62Uqnbk\r\nFl5lzBPV1QVj1sVq6gXcPIqGdKboR2yat/dS+NGPrum06oSis8mFEJfBGmwa\r\nmZ4hkyUFsgW/wcoWPM74X/8wmsHaooo7NHwvyEC2hDvNlXkNnusTylzNANuj\r\nYvxLz9+lUjuFtlD2/xL1fVENpVSbU7LFIselrud3O1yszRfB1tf9PkSfg1GM\r\nqg999L7klLfj91XSwi/y7eNNl/IXgi4+eHsVZmgIgNnL6HTVD9XT322xIU1u\r\n7Jy8fMQVPa+cy2/4kjPokB4/Bu5WgYAWTBOdG+tbh+95C6W4kqNfNUfFKmTe\r\nFgrjvOgFTTsFWECbRC24tUg8VSSMdQbRGNJjz30aNOQ1sIkYgDm15VNqvyu9\r\n/BEiZeg0stXUkm+rlb5t0lIve1Ia4NAd+6o=\r\n=X511\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"35421c72f455dfd7a9760cb6896c53571f2a2395","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.37.0_1681643240300_0.5172982917143985","host":"s3://npm-registry-packages"}},"0.38.0":{"name":"emnapi","version":"0.38.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.38.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"43e65777ab57799470e2ce9ee4124317cc366980","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.38.0.tgz","fileCount":62,"integrity":"sha512-Y6GziKlov+3sUq0tP4MEvNa8E+x18qYtKn7YoQI/XryVVf4R0QeJ63O76YxSaQ9scXm8K/8xIAHw/EZcFqRpiw==","signatures":[{"sig":"MEQCIDljvTPDzbjmku3ALplQswuhk7Ooq+D4yM1T+MG12JtXAiAmcQ/Iza9GzszWAA/VIFKoQFhuRGOQ2I3MGH6YY15TLg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":963050,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQrxGACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoIMQ/+IVAPm8J6vlAWfUiM1yRCatb1rOdYWuejw7FJ+dLz2nBMGnsq\r\n/RqK3biB4annz+wA0VqXVv6Msqu0S0n34VdxHshm6U/pahQmRTzRVK3hRa1T\r\niIkIx6Hf5+glS1WA2cfQmDWntKxTj/KscUss06DbGqRmkVQAN7mTh9/JPiH4\r\n/MOehXcuOq5W3DUgoXXEVj7Unq33r0PYOEv+YVbPYuAAmMFg0ZbLOWRA6Ah4\r\nuQdml/h6ZW7UNFc+SXZVEtP2f/TMDZroWWrgptqDMSbakImCuSWpbaQ4MrSf\r\nypnYrWeNclx8A+2Lkyo+PHH9AkkZi7mciw4MBL4KXUKMF/7/9xro2PNSPjLm\r\nzT2m+HAtw66t09s53ez0MU/So7OroajN4Q886tnkNfGgpWoRFj6klWaareSJ\r\nccRQN5a/POD2mJUr4dIIor9fkL6eyNfEwoRHsa1nuK1KYiVZeAJFM5DgISBg\r\naQSzFLFx8ZWkQKK1Y4IKzNmvvq8ac6B7YTuNW08K0cSuY/H4gqealT3G2yFT\r\njEWwVphyWmXTYkgLcjPwxJ88lsoRFLqn/46QrsNl1p0qnBkttEqcM+WE8v68\r\nXqYVMN7n7WSbKY9JskTtolN9S1IKC+3Yr04VQFha9cdQpryU8XGx32twO7jK\r\ngJze7ZxlUV7c/haBPTum6MdPPs0KvqzTIlQ=\r\n=EUgn\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"38a2cd6147863ae54f294defc482043d42a6d723","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.38.0_1682095174045_0.5115826912467631","host":"s3://npm-registry-packages"}},"0.38.1":{"name":"emnapi","version":"0.38.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.38.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"15ba72174ea9c99c2ad690bdc6abd106faf4f178","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.38.1.tgz","fileCount":62,"integrity":"sha512-FQooF8SZL4lY+85T/rMmT1jRkZ7cgUp3DwmZ+OHGuovZ4u6Ho8+1PhLPO2RIRkvrbOlCgOxWNFiXr1aCbQ+KdA==","signatures":[{"sig":"MEQCIEuYcw0cmog85k2cyL3s2IfDNbphfoTt1pRy+GS8H+7+AiA3HLewdVzcGUi8gmdi86zyEe/AG2MzNkehJsilHq5ZMQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":943559,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkRqwEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoV2A//a+7lmNqL5ldAWfIK23KbvPRhIEqYwleqHtIbOhxeJDKAAZ7b\r\ny1URDCGj3Y0JAcofE7hl36L6cXiKY1uk46r4jMHzmlvA6wmyCtqOtCZHwBSW\r\n+A9jdE1CkSQXIKWwl+M6ZJPZtl5uQWtoo2h01GcBEZlLqKVV5JEO2GU6YLf5\r\ntMqX637wFQfJ+lyprNRTEjmUdN/NoYPgElxRuybNk5UzavAPOHEu/cQ4/o5z\r\nhHUvIe6ECuka4VxucjnvPGqX71GhNpjF2IJOYEz0nflH3KnT2K7TD1MvcQLv\r\nNTsaSAu25DkgKnJZBUQHSYuaLx/WpQ37fqfaha7g9tSAfxMOzoUtn98+7SD1\r\n107fObzl1SPyp+0RcwrFdLXSGRe03M2wsij20YALixAy17FYyza4eMxpAaDo\r\nd4JP6qvQvt6DUUm4W6igPirySMvBwaZ4NYL7il47muwgnJ4JAI8Wags1ZIkX\r\n8rygJnDvTe2KxGL4Yl4LEWxQb0hNS8/7N/Px2PGjrXdTCHYscKmi8C8YtFu2\r\nne4TIzvRl2NR5sZNaowwS494FLOXgTLA24GMCr8s7R/3CI3zFTiPslZJqjxX\r\n1oHven5IctPbcq8OWG7aBDEzwhUn85xwNUANcWABL+A+cmpVQPUoJbNSlxez\r\nX2FzzSk9M0Zh7xjChf+Tb8u9eY+lCF4iYbo=\r\n=jmoX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"0bca75fb56d3b7921eaa058ba70d8d1b3139de23","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.38.1_1682353156538_0.6164657037615822","host":"s3://npm-registry-packages"}},"0.38.2":{"name":"emnapi","version":"0.38.2","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.38.2","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"b9436d62f356588a4a4e1cc044d879cbe1d79a6b","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.38.2.tgz","fileCount":62,"integrity":"sha512-QlqAbnFscvhxnXztRklRC51QcF1an4KKcY3T618wDNovUz+/EM+vNjjLEWfmtYpqd5/Bq6WWC7/8KTdz9X6K/A==","signatures":[{"sig":"MEYCIQDVF9oVzSAJt3ngwzqotIejhWo2BwD9bvpefUwe4u63zgIhAPBGPZO2BTENm5i37qtTpkSMZPOU1WeYwVSUnncA43ix","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":960907,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkRrGiACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmruaBAAmheNPcbO0IS1ieT/UJvozkq8S/lVAeWSoU4i3ggbUr/Kcj3q\r\nEf68fVH8XhrFXCkw7m59fg5EFwgaTHPWyila9/GFcKwZi4Ba5CBQynC3Ga9j\r\nrW+RmGV76bPetNNXC9aRit0vH1UGv4vSgq1/jjNrmlF5uD0XVRS6whuOM8Jj\r\n1VkqMCWtkAzaZFYkwVtDXbwmjeb827FmRQQGydec30vQH51myXjRAckrNXfq\r\nwvO/7qs0jXY4BCt5o8lnU5D7EsCbmCHPtQmY9BcztV5joa2VDz7PIgrroUBH\r\npVKyDgGkkx4oYceztpPx/monSH2zKpC0ExJSRSTOxVTEOFV+WKiFPRreM2Co\r\ndrWBewJQTzGTuviDd27iVH8WYPx9NjHt6s/y6ADfqJqkMrQ8piMPmWgFsffO\r\ni8RJb/EfpuuCQKJqZM//W+/hXeqnrfuFt/MzmfN2hNAGoGqzVcmojGqFpFMC\r\n5lnNBHNSBuL2sRH2m8NTVcKaH4jb9KLtLrNEFhFr4an9GhLwvGZ0Iay3Dwbf\r\njWabcQ1fyrpcjzW2WPF1At2am6galgWStJP50APV6dqivBqq0ZOwU7oIiRI+\r\natjXAfAc/oiXG7FZzv/bIvUtrMKKoybuGwT4ykOsePO+WmxDu34qNnZ5Nj8S\r\nI+FZHBm4LgWOwfzanAYqmCBHu771v2oFwSI=\r\n=YDA4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","types":"./index.d.ts","gitHead":"be15ac53006080faa0be0c1ce2750ef768e66f79","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.38.2_1682354594406_0.2823784596960328","host":"s3://npm-registry-packages"}},"0.38.3":{"name":"emnapi","version":"0.38.3","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.38.3","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"fd10aeb1b15fedcd45109477d988a4f72f6fef7b","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.38.3.tgz","fileCount":62,"integrity":"sha512-q3xIaT2V9MoK3S1ZKJgtnBiKAPjXQaoiW+0ArcdsSbN2SxZkUjtn0/DeAyBgqmFz5NBJ7xRC7a3Gfi0WRgcmMQ==","signatures":[{"sig":"MEQCIAHC1UMFCF47LKvL1ZS1W7dKBHEzTeoXIwjcSrlR3H9wAiAv6fZZWr9+FzDzZIawvVbmCHyCP6tFVVeQmDR3HNi9QQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":961134},"main":"index.js","types":"./index.d.ts","gitHead":"9236bd341d01b27672c8fea01f67adaeed8b581d","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.38.3_1683338597187_0.4829219367516322","host":"s3://npm-registry-packages"}},"0.39.0":{"name":"emnapi","version":"0.39.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.39.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"d080093e49221f1cf0f6da2f57471e9a133b8daa","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.39.0.tgz","fileCount":62,"integrity":"sha512-qPZ0Rfbrzzor2EHfxRsREXcv9nTDcGj1LQv9uINpmknXusMSks6dVYRSCd4UM6fTRnsUi8qeIvY0OBu+yEO5aw==","signatures":[{"sig":"MEYCIQDJhdTmxNPCIsH6drYQs7Y+lLiRe2LqaAiZDdlxQCyTtgIhAMzkdDckeOLa/NhcxEovJ9dOuVYgi9V4qHBw+AJCm6IS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":980030},"main":"index.js","types":"./index.d.ts","gitHead":"ed02fc958dbc51d098a3e914c6b4f9645ce8692d","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ts-macros":"2.0.1"},"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.39.0_1685969231720_0.19361550432993235","host":"s3://npm-registry-packages"}},"0.40.0":{"name":"emnapi","version":"0.40.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.40.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"e34da9baeb327fb349d94c282455fdb841e307fe","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.40.0.tgz","fileCount":62,"integrity":"sha512-v05w9O6vGlNBiPcJNjdgmbhaO4lmuPU/kLkaqNdeeHcMryffq8XGzCpaY7xzV6jg+3FV2yjsMYiLnjP7gW7ELQ==","signatures":[{"sig":"MEUCIQDkqGa+dMBfMdHn8zZ171uKUNmuC3bmhnYL3+zT5/KlUgIgbidnEFSZGXwWOADj0uqqzrbzKjGCfsBbl79naKmAlik=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":972741},"main":"index.js","types":"./index.d.ts","gitHead":"306bfa7a45d54f45651866c8fdd43a2940c9ac24","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.40.0_1686996009859_0.7415153049577221","host":"s3://npm-registry-packages"}},"0.41.0":{"name":"emnapi","version":"0.41.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.41.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"ff99005f2d34c1e7ddcf7e4a024d70cac120f4c4","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.41.0.tgz","fileCount":62,"integrity":"sha512-xUEqL427MIi7voyP3EzCqUHzEN0WDk4cQuFT6+Pc7dEel5Bz6doHR86EY0E/WEhu9haJCkvHtmiOiXGwroykQg==","signatures":[{"sig":"MEUCIQCb02C/5NCzcAjpWFpVYnKRKNR2EGzcfX2YDtEuvINI+wIgCaiTNYeuEBEqkDeiNbEtMYuQt5AWL7BGHQ1t9XG0MpU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":976803},"main":"index.js","types":"./index.d.ts","gitHead":"5870859a62ca15c5f3e2e7cbaeaa20503f88b1d6","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.41.0_1687610664756_0.9741554537708996","host":"s3://npm-registry-packages"}},"0.42.0":{"name":"emnapi","version":"0.42.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.42.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"ce8035f85cf91ed6b779b3e81928e3acb6afa029","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.42.0.tgz","fileCount":62,"integrity":"sha512-p6oGD7Gf/F7EOsHL9k0450PwAkEXTj7v5ZUoQK+OaCofOXre0knxTs986ioH+zd84iGrr98EOPee/XJ7NbjbVQ==","signatures":[{"sig":"MEUCIQDUIgXa0vzRzUMIrx3jGPcWOTavHmxBykOS8MbGQQRKjAIgWka1xYAtvnJbWOn8KJWxrNRB/Tf87UbqHdwT5lbhLmI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":979227},"main":"index.js","types":"./index.d.ts","gitHead":"f04d9ed6c0cdee9c75af403884188abbbc022c82","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.42.0_1694833724376_0.0741519754448543","host":"s3://npm-registry-packages"}},"0.43.0":{"name":"emnapi","version":"0.43.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.43.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"964858629b4149b8cdc0b4eef79714a4322c9bbd","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.43.0.tgz","fileCount":62,"integrity":"sha512-2GXuDwAZIbFFuPtEaOSerxXbAje+Y1qPwd4uRA8McNh/7PYkxBwL1fugMpZJgvSbFNu0QQkdZv/mvEPdmV6QvA==","signatures":[{"sig":"MEYCIQDkM4a/KSS6/FtHGLEGQ5DVpYdYsiVHmqwDa7hL1aCmvwIhAPDVN42YnOowcMxFjX/ncgG5UjZdxEYF0MXSoW4nNeZn","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":986940},"main":"index.js","types":"./index.d.ts","gitHead":"69532adc017ced261d70f452a01381b4baac0017","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.43.0_1697812014379_0.5724919784852767","host":"s3://npm-registry-packages"}},"0.43.1":{"name":"emnapi","version":"0.43.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.43.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"ce99a639277060cfe99b32b2ddcc9ae6d60c7aa6","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.43.1.tgz","fileCount":62,"integrity":"sha512-ZsBeBRBHPdoI4GMM2fer2qYN5He8NMc1wg4qWZRZNptRUTDH0hVl8LFu5/uYL3+Z/3qyp1cV/n1FBf+hHlt5Hg==","signatures":[{"sig":"MEUCIFIDuXNjdJqU8fq6fkmPYc/rZ9y3zQofGltXrt770nDeAiEA3bujzSN1ZKFHM71HG2pITKTbGiKOLjpQ4Rgnwjj/Y70=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":986834},"main":"index.js","types":"./index.d.ts","gitHead":"261b2aa0e39704f2aa9c86542e207575da4bb4e8","scripts":{"build":"node ./script/build.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.3.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.43.1_1697907335308_0.7430298068950709","host":"s3://npm-registry-packages"}},"0.44.0":{"name":"emnapi","version":"0.44.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.44.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"bd72f44d48fa464a26dbfe04f37e1bd392b621fa","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.44.0.tgz","fileCount":61,"integrity":"sha512-tc5OD0Xz4Vca9Z/mkF4nt5xzn0A0Pfh/oApWUAG5h+AqFyAprB8OlkEXv1UO/MT2lAczYxbk4+cViNiVOxbFIw==","signatures":[{"sig":"MEUCIQCo3Yxst84H0a1rKRJPzgkBYC5yqBbZ3paHW/OXyLmOnQIgSD2yiEnjxS82UZpJyibvNQ4qo750+oTplFyKCNB8yuk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":981390},"main":"index.js","types":"./index.d.ts","gitHead":"56e64929c4f8d7be42e3c3ab15965eb555713246","scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"9.8.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"18.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.44.0_1699775945931_0.9251973966216718","host":"s3://npm-registry-packages"}},"0.45.0":{"name":"emnapi","version":"0.45.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@0.45.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"0ed192aa7b3ac83530fd3781f589c0a516a2490c","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-0.45.0.tgz","fileCount":61,"integrity":"sha512-VfMt6cZYk5BVuN99ngFQt1EXJLfD4fUx4jmXTCDDzq5DtY3jiSqjFD6p6Ojh5v+AlN5VXVYZbFtgccoz1wvQoQ==","signatures":[{"sig":"MEYCIQCSGeBJSQetyP6gtWZTwd2t5fHQbPgRGJbwFtVAieMpJwIhAPCZGBCiEcLueI9ju3HA9wOkfCQA4qpGUnTA3fHSpQG5","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":999972},"main":"index.js","types":"./index.d.ts","gitHead":"f00e1789c83d0779d20d3468acca6d4d0b037008","scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_0.45.0_1703853913286_0.9647737346224612","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"emnapi","version":"1.0.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.0.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"74151e1672e2644e65a9417d961a385c445c44bf","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.0.0.tgz","fileCount":63,"integrity":"sha512-s0NVPETvRAIr60GSDayoAEkodn/R2kY3vXZCXppYaRmfq95li/EY6WYqkSxQdGfgGBPNZ1Jr4Px8nYITw1V5zA==","signatures":[{"sig":"MEQCIDBwNxSCQl1xouslb0TnIwawILLU4l0MW13heTzKgveYAiANwQy/rhZ6C/qMuN1e93JFeHRmTj92QYpv8bh9iNaXUw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1067970},"main":"index.js","types":"./index.d.ts","gitHead":"14e3f418fda80d3eff5dd00d8310f3b662f4c09b","gypfile":true,"scripts":{"build":"node ./script/build.js","install":"node-gyp rebuild","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.0.0_1706547276285_0.3122608409249523","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"emnapi","version":"1.1.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.1.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"8ce9b9ce9b145da867f0550439b53dbd5e71b248","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.1.0.tgz","fileCount":63,"integrity":"sha512-q4S4JY5Td/CeMXiTT78jejjfKlFNEO4/ID/y33K+8wFj4VQlz511xQC/dGNPMxaHkMcQJCsI/CGHzmJHZ5RFRw==","signatures":[{"sig":"MEYCIQCS9bRYIlNcFimcP+r7+blEMa+O8arkANc9Bs0r72oDhQIhAM1Q359k5N2uxoTo1jhK0vkmQbLZaNpShkM0lH/62Vk8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1070360},"main":"index.js","types":"./index.d.ts","gitHead":"571f577dba78867d5403a18bec11fae9da651b04","gypfile":true,"scripts":{"build":"node ./script/build.js","install":"node-gyp rebuild","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.1.0_1710929320916_0.16940151497452005","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"emnapi","version":"1.1.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.1.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"29e61e20272a7758ffbba662cc33642da36d90c4","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.1.1.tgz","fileCount":63,"integrity":"sha512-md0YDBLCX+378+zzibHvOLsj28YKFy8vl7BiSzVocCY7HujOkYt+N5LCOYqLeYi5C5/5NlnkNweVdUjrvKpGNg==","signatures":[{"sig":"MEUCIQCYyabT+zZdaIhCfuNvIXRIo5HZhPHGfGEZPQaHWW0LOQIgW0FEnqqvlxLzi05kGDYF/rIPv/Wx1sT7B1LpxWSgLWQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1070380},"main":"index.js","types":"./index.d.ts","gitHead":"be5c620ad8ce7603471e46750942d87045cc53f0","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.1.1_1711730911686_0.08754272800086893","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"emnapi","version":"1.2.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.2.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"c61de1428809af92aa82161b77942860e4e56a77","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.2.0.tgz","fileCount":70,"integrity":"sha512-rcq+dJCcfr08I0XM/57LPRqaUokGfni/+SvhO7NaJthTTjRdohhIy0FQwyC5rR1enAsjkldQg83th8J5hURv0Q==","signatures":[{"sig":"MEUCIB+KXD+1mFYzzyVPkMHuoWlWaGVxNdL3y/gffOaTKiT6AiEA2ELkzWT0RU+S8YysFl0lxkBp5Y7MvJAPx/Db4NMx1ic=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1178098},"main":"index.js","types":"./index.d.ts","gitHead":"414439fae59c3e0b6ae4245aeeea9cf1c0edc7ac","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.2.0_1716108657087_0.06457815042786308","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"emnapi","version":"1.3.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.3.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"dda090e014bbbbb4cb5a1c757789a3ed01c7b023","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.3.0.tgz","fileCount":72,"integrity":"sha512-VXpPgNMFG64CJaGgFacGsfpH5Rt+eabaFdm5BCZl359hX9xTcAxUHGl6MT7iSUU6ZVdme8z6O95+FGdHQ2pBqA==","signatures":[{"sig":"MEQCIHjJWZRyHWwKzf0Xp7fy5tPqMPWrI/IESRSIT8VUwGdiAiAS/pjZ7FbnbOtYKoEi5aPoZfoJqLkQrLLs/srcpZyzyg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1215159},"main":"index.js","types":"./index.d.ts","gitHead":"df9dd83a167391d5380bde236b12ca32245c0b22","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.3.0_1728031566921_0.4454810738454331","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"emnapi","version":"1.3.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.3.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"3bd7b6db02183f3c9a07be414844411e4a948e77","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.3.1.tgz","fileCount":72,"integrity":"sha512-8rnw2VLJmHAXBSyhtrL9O5aW1VdbXA1ovRslp0IyTwnM62Fz83jQIo+VaIObgzdo6r1A98J9AHEq4KTqIR67Aw==","signatures":[{"sig":"MEYCIQDqrEW9x0v6OGT9fNmY3vcPRv6T+JT+Sg7xvOtttmwvtAIhAKYSx7/XFyIkcB3M2A3I6qUJ56ICd6NWhUkUovYGwxKy","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1218250},"main":"index.js","types":"./index.d.ts","gitHead":"3cb78fbc014e545409b72ef05dc71bd7dbe1c2ee","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.3.1_1728721902501_0.512072998611353","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"emnapi","version":"1.4.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.4.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"6a886dd00e79a3ad508991262c6bf60c3355d021","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.4.0.tgz","fileCount":72,"integrity":"sha512-lFEJ8CYuJd6+L8GIqfI9VosM2n4ADuw0mUDq3m6ePfSJBh/1F14lWpyikZLuMHKeM3KXxBhWJLvw8yPIkzd8Ew==","signatures":[{"sig":"MEUCIA7NOWzylFeT/GPXkmyPjq7t/5n8Htc6XGdOrke+zBsyAiEApBrBCSOooG9glHA7m6lC2uBxBuzzINpXD43BOWp1fhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215868},"main":"index.js","types":"./index.d.ts","gitHead":"906d8a6505605b27d1a4ddd78c1ede59df0d1e09","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.4.0_1743176967375_0.5506175410484282","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"emnapi","version":"1.4.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.4.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"8148c3da2d4fcf776ead618676a9ea47bc119819","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.4.1.tgz","fileCount":72,"integrity":"sha512-dN/6W9VhGNgjzg9zkzc/zoHbpa2y6zU1SmPlbBEuGHs3rby1udCheFUoA+Yz/w40BCutvd23fTIfNV3BA7KOeQ==","signatures":[{"sig":"MEUCIEygW4pdnYmj79P3PUOqrNC4UvCVnwsZUpw4KRZoEGO4AiEAqzRlCOPSJFJPqw1eWt+07nG01wQ2BX2BxRjxA8H+/0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215868},"main":"index.js","types":"./index.d.ts","gitHead":"c07e9f67c261056cd05d394b2f006f90a9b03874","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.4.1_1744429312077_0.00263587448150715","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"emnapi","version":"1.4.2","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.4.2","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"5a1017db593bca4f03372d0957015a2c1a4b2307","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.4.2.tgz","fileCount":72,"integrity":"sha512-7xUOGKwonz/PUBeZWC5cdPs/wD+i+o81e3G/p0lQc4w42iRvVXTZ0TFf5n08ypGtqXSUL+5vjzq8/9D6wXANhg==","signatures":[{"sig":"MEUCIQDpK1Ste6XQK85/5Ex3QPaEDH2g+3pgPUipm7gyNy8l6gIgWk/snSFs/Mbt1SVthO1QFdRKls3Sb6nP3WehjVD/Qq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215868},"main":"index.js","types":"./index.d.ts","gitHead":"051f1dd160b4c9775c5b42e37e60e9777949b381","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.4.2_1744732135523_0.4772545334609313","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"emnapi","version":"1.4.3","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.4.3","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"4541741b963c8c43fa362aba6c9fc2847fd3f65f","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.4.3.tgz","fileCount":72,"integrity":"sha512-qeLT07Xt4xNjlDJYtwtO664e44HXDaHnja7vWIy/g3xzZiNOcQh02gNblR6tkqnDzPPhc+dUeSYWbt6PoiYZKQ==","signatures":[{"sig":"MEYCIQD9r4Bm5eB5rkN/4Z3qhuS4A53HIkAcBuPxqYh+a8umqAIhANMYMSOrEZiXsZNiRUxwfXp8GTLlsaCpmob5BYrvg4JF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215868},"main":"index.js","types":"./index.d.ts","gitHead":"90c4c1b1358851d401dd162c5d1925a2dcb2e397","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.4.3_1744733896668_0.8579956557639896","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"emnapi","version":"1.4.4","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.4.4","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"1f9ac5ea19e8a78ed9ea57859fd8a0516658e420","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.4.4.tgz","fileCount":72,"integrity":"sha512-cq7665hIGMLliYusV9SV9JMDuIZ9iVBUcs/OhqawSqrEO/0gB1L5O80PLaEXauCnag4c1tPimCaBwKUYITeZLA==","signatures":[{"sig":"MEUCIQDgis43HRDG1gM9zcWci/QnoEC97sYomMEawKxjIaYuFwIgSO4/ajzuDouBhN2JoMYPhtflLWiX+Zcj1zjU5GfPbec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215868},"main":"index.js","types":"./index.d.ts","gitHead":"87bb86c3a5c718ab72fb228505ffde58d7ebea3e","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","actor":{"name":"toyobayashi","type":"user","email":"lifenglin314@outlook.com"},"email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.4.4_1751899594091_0.4482243757518576","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"emnapi","version":"1.4.5","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.4.5","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"286fa814c7b4179806960cdcc3c736973828a072","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.4.5.tgz","fileCount":72,"integrity":"sha512-qYEfWKYngSahxc6Y+zajiiwzhhn5TkRci3BLQFKHVqT3vxj061IWCgaESZ9921OsbPiyetX43kckXw80dj9d6g==","signatures":[{"sig":"MEUCIQDgXYNgj7KL/A/h0saPy3qzTZksKJgDVDnjmxA5H1jiCAIgcugg37Ev+qMXvG/iNhRM0V9amrowU0qmMgqVb7Z70r4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215868},"main":"index.js","types":"./index.d.ts","gitHead":"4afb0e72e28486a073e55d8fa2e00c9ea916d0f5","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.1.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"20.9.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.4.5_1752828698421_0.10149314603236137","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"emnapi","version":"1.5.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.5.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"aeb335a958c09c18c930836b46281f46707d80e9","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.5.0.tgz","fileCount":77,"integrity":"sha512-adAaiwTxMnHbq1u2LUf+AfDR5MYrxDVBtezGspxwk5e/Zb6KHkGNdfuMU4JBIVm6ASY06K8KalhOPUht92MsnA==","signatures":[{"sig":"MEYCIQCIsjCAIBaK3gePH0n59q8L80IhTUMqNI2OpGuzHAXdwAIhAL5G/tt+byvKHfDzSH+ai+O5EDXzCMlol79HFWQf/6Y3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1372200},"main":"index.js","types":"./index.d.ts","gitHead":"61628bd5e27679955f13cbff8f6573d66a5fc00c","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"toyobayashi","email":"lifenglin314@outlook.com"},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"10.9.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.5.0_1756437611593_0.5436632205172196","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"emnapi","version":"1.6.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.6.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"87c87a8a2ba9f143be2bc9532b148cba48cfd2ed","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.6.0.tgz","fileCount":77,"integrity":"sha512-Hx0FqhPchuwkDauQdgamWAn6MHbOX1CPIFfObXqxTEmngZUYM9mZLcPS/civeVT5x73xkBV1ZIwKWfessIFTgQ==","signatures":[{"sig":"MEYCIQDPjn/GhdsvH4Xtk9/YmTtrHTWDIBFXjfR0icqnRBGoTwIhAMwrD9ijHz0XoOllQ7ovpl0NqGA0sSaIFgBBeMwydW9z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1375662},"main":"index.js","types":"./index.d.ts","gitHead":"86d68f88ec3cc3949a555c93a633fa8997534413","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.6.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.6.0_1761012858077_0.5386576829719574","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"emnapi","version":"1.7.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.7.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"c08cecac532bc38caa60dd2fc8850c196725fb1d","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.7.0.tgz","fileCount":77,"integrity":"sha512-d/RB4oJJu56sOxx+ooK4978jUvnoUo3iRob1/U3N+QnCr91IRQ2QNpAGa3/ZSEZqDWgdhfB1Er5jarfYzjvghg==","signatures":[{"sig":"MEQCIETtOgx0zfV1vqgk67DEHouNvLPdJUL0/ii9mByjcYuLAiBIAlbRL+9agyc8e09O8EssqmIsHF+IFNaOATMUPADjpw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1378413},"main":"index.js","types":"./index.d.ts","gitHead":"11f4936f39121d0d79bc4901cf14dca02ef4abea","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.6.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.7.0_1762161217443_0.8169459009776916","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"emnapi","version":"1.7.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.7.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"5cbb09ca201c648417077f2d8825289c106461de","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.7.1.tgz","fileCount":77,"integrity":"sha512-wlLK2xFq+T+rCBlY6+lPlFVDEyE93b7hSn9dMrfWBIcPf4ArwUvymvvMnN9M5WWuiryYQe9M+UJrkqw4trdyRA==","signatures":[{"sig":"MEQCIBgd2PH90on4egkj6tRZUwHj6PYMXmmfIqvBv7gznGDxAiAT4ULw6O5h00oFFinatGH0IzD1rxm5DIf6Yate2z/l3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1379384},"main":"index.js","types":"./index.d.ts","gitHead":"f40577ad6013236e46bef57d829ece20773997bb","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.6.2","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.7.1_1763101993759_0.09510445488576913","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"emnapi","version":"1.8.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.8.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"7fcb5c45688ede42b160c5de39acf2e5d4bbb274","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.8.0.tgz","fileCount":77,"integrity":"sha512-kRYcB+BrUnREjcvwR+8LG4wcfwyDZGeSO3e/rcfT7eephyM7vc4pegT1eHFqUW8tumBKV6AnOPusqnSlWGWiKw==","signatures":[{"sig":"MEUCIQD716jJCoGW0WXr+UGFwKiEQkkB6umWlH8ia6pYzS5MoQIgIJPkKSS3f1JseMOKO55JGa0iLTmBD13EErJVqGN9j4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1381310},"main":"index.js","types":"./index.d.ts","gitHead":"8ed5b338f89136b7ec7a08e9d52aba4bfa5c1e22","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.7.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"22.16.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.8.0_1767446040383_0.34829087267383585","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"emnapi","version":"1.8.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.8.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"308276fb56bcf5daa5c7d592d8a54f00de20e1b3","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.8.1.tgz","fileCount":77,"integrity":"sha512-34i2BbgHx1LnEO4JCGQYo6h6s4e4KrdWtdTHfllBNLbXSHPmdIHplxKejfabsRK+ukNciqVdalB+fxMibqHdaQ==","signatures":[{"sig":"MEYCIQCDBvUpl3mEPTW9wOn3G0FcR9RuHuUU5bhMhxYyEA8+9QIhAJKmoK6ISAf0yT3m/8fKDyVshW4eMpmmnWSu8ar+gtHa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1382318},"main":"index.js","types":"./index.d.ts","gitHead":"54037dde7be14b987744653fac4e30dd43cb8747","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.7.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.8.1_1767522426981_0.9125957656537158","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"emnapi","version":"1.9.0","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.9.0","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"2f0b3811cd1d566059306912762bc59ff997da24","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.9.0.tgz","fileCount":78,"integrity":"sha512-o/MgVYc9Xa92jNd5pk+PRtFx/IuWlILW1vqm9UU7V49Cnos+bK2y982HEtXcRgkdtxZylYBaGWEznC9Alo6xhg==","signatures":[{"sig":"MEYCIQCw9pqwoocBBzVyaCPZrU6G0UDZtLMvm6fkeL4zW00a0QIhAPlYNI0AyZu2jvCTAsWRu5FbEDUzyd54UlHHPa9hMj4k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1516766},"main":"index.js","types":"./index.d.ts","gitHead":"c9743cf573e52c5b4d31d7369c752b652b29fe9e","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js","generate-struct-info":"npm run generate-struct-info-wasm32 && npm run generate-struct-info-wasm64","generate-struct-info-wasm32":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -o script/out/generate_struct_info_wasm32.js && node ./script/out/generate_struct_info_wasm32.js","generate-struct-info-wasm64":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -sMEMORY64 -o script/out/generate_struct_info_wasm64.js && node ./script/out/generate_struct_info_wasm64.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.11.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.9.0_1773307811712_0.019707129285275515","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"emnapi","version":"1.9.1","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.9.1","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"458d432ed899447e652879f8ba625ccfe1f242cf","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.9.1.tgz","fileCount":78,"integrity":"sha512-s4RbfzgbYg9cWBZXJT6LazImJQ5p+F+LyTsCWQJXbGVdPmtCtdlwqd0Oiv3O51KyYV/Hq58xszaQ/l153tK6Uw==","signatures":[{"sig":"MEUCIB/aASbhleyCn6OHDi2Zzfk1/sGM+K8S0kO5MCkoLHkhAiEAvoxVUzUb3MSpjoumjh7XVJnepwT+qgq3F1GmOO47oCc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1516983},"main":"index.js","types":"./index.d.ts","gitHead":"12b9cf3925afdf1116c80aa6e23c5ba881240de2","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js","generate-struct-info":"npm run generate-struct-info-wasm32 && npm run generate-struct-info-wasm64","generate-struct-info-wasm32":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -o script/out/generate_struct_info_wasm32.js && node ./script/out/generate_struct_info_wasm32.js","generate-struct-info-wasm64":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -sMEMORY64 -o script/out/generate_struct_info_wasm64.js && node ./script/out/generate_struct_info_wasm64.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.12.0","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.9.1_1773928111628_0.13635305064309722","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"emnapi","version":"1.9.2","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","_id":"emnapi@1.9.2","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"homepage":"https://github.com/toyobayashi/emnapi#readme","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"dist":{"shasum":"3432c8a631faf715103fb6368a3c09c684372392","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.9.2.tgz","fileCount":78,"integrity":"sha512-OdUoQe/8so7FvubnE/DNV9sNNSFwDYQiK4ZCAz4agMnD1s6faLuDn2gzxfJrmMoKfxZhhsckqGNwqPnS5K140A==","signatures":[{"sig":"MEUCIARU7RQFL5FVQ8ru2CjxAr7bNnqDLygJmv5WEYYi7kpUAiEAl346MQHoS12C3K7aXAt3xEbG3MFF0HgIfA7voEIbIq4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1517382},"main":"index.js","types":"./index.d.ts","gitHead":"8037eb8107ae0c74f99c3fe0b045d5cf3f438ff9","gypfile":false,"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js","generate-struct-info":"npm run generate-struct-info-wasm32 && npm run generate-struct-info-wasm64","generate-struct-info-wasm32":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -o script/out/generate_struct_info_wasm32.js && node ./script/out/generate_struct_info_wasm32.js","generate-struct-info-wasm64":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -sMEMORY64 -o script/out/generate_struct_info_wasm64.js && node ./script/out/generate_struct_info_wasm64.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"repository":{"url":"git+https://github.com/toyobayashi/emnapi.git","type":"git"},"_npmVersion":"11.12.1","description":"Node-API implementation for Emscripten","directories":{},"_nodeVersion":"24.11.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/emnapi_1.9.2_1775124920902_0.7128027221880537","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"emnapi","version":"1.10.0","description":"Node-API implementation for Emscripten","main":"index.js","gypfile":false,"peerDependencies":{"node-addon-api":">= 6.1.0"},"peerDependenciesMeta":{"node-addon-api":{"optional":true}},"scripts":{"build":"node ./script/build.js","version":"node ./script/version.js","generate-struct-info-wasm32":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -o script/out/generate_struct_info_wasm32.js && node ./script/out/generate_struct_info_wasm32.js","generate-struct-info-wasm64":"node -e \"fs.mkdirSync('script/out',{recursive:true})\" && emcc -Iinclude/node -pthread script/generate_struct_info.c -sNODERAWFS -sMEMORY64 -o script/out/generate_struct_info_wasm64.js && node ./script/out/generate_struct_info_wasm64.js","generate-struct-info":"npm run generate-struct-info-wasm32 && npm run generate-struct-info-wasm64"},"repository":{"type":"git","url":"git+https://github.com/toyobayashi/emnapi.git"},"keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"author":{"name":"toyobayashi"},"license":"MIT","bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"homepage":"https://github.com/toyobayashi/emnapi#readme","publishConfig":{"access":"public"},"gitHead":"ba84999164c8d9ee10e57f72bb6fa5fa0b192b54","types":"./index.d.ts","_id":"emnapi@1.10.0","_nodeVersion":"24.11.1","_npmVersion":"11.12.1","dist":{"integrity":"sha512-swoyZjupDvLoe/KC3HZ4SY1JUN+tviT6eOZ3Px28TZAYdBHtRIiMWWrIUUH+2/9CYY4fNTID1YhYZ+kdFHszHg==","shasum":"ea2e87b2ea51d214a28794b1d20628cac9386348","tarball":"https://registry.npmjs.org/emnapi/-/emnapi-1.10.0.tgz","fileCount":78,"unpackedSize":1522038,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/emnapi@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC/HgtJPY5lCdSYgOku+qg72YfrvkVU77I+IiAqEByLawIgSZGrhG4fM5O169CmsTtmRsbGul+GpfHXuqPFCKEbuiA="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9c284abb-6695-474d-a72a-8064e8eff6e6"}},"directories":{},"maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/emnapi_1.10.0_1776312274359_0.9693616705463568"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-14T07:41:44.085Z","modified":"2026-04-16T04:04:34.733Z","0.31.0":"2023-02-14T07:41:44.398Z","0.32.0":"2023-02-25T17:55:36.019Z","0.32.1":"2023-02-25T18:26:02.934Z","0.32.2":"2023-02-25T18:49:13.149Z","0.33.0":"2023-03-09T13:42:01.714Z","0.33.1":"2023-03-09T15:33:20.044Z","0.34.0":"2023-03-16T06:27:35.016Z","0.35.0":"2023-03-23T09:49:23.141Z","0.36.0":"2023-03-30T08:58:18.522Z","0.36.1":"2023-03-31T09:27:46.619Z","0.36.2":"2023-03-31T17:06:32.594Z","0.36.3":"2023-04-04T05:40:50.128Z","0.37.0":"2023-04-16T11:07:20.518Z","0.38.0":"2023-04-21T16:39:34.347Z","0.38.1":"2023-04-24T16:19:16.804Z","0.38.2":"2023-04-24T16:43:14.618Z","0.38.3":"2023-05-06T02:03:17.485Z","0.39.0":"2023-06-05T12:47:11.965Z","0.40.0":"2023-06-17T10:00:10.078Z","0.41.0":"2023-06-24T12:44:24.944Z","0.42.0":"2023-09-16T03:08:44.641Z","0.43.0":"2023-10-20T14:26:54.651Z","0.43.1":"2023-10-21T16:55:35.605Z","0.44.0":"2023-11-12T07:59:06.137Z","0.45.0":"2023-12-29T12:45:13.519Z","1.0.0":"2024-01-29T16:54:36.514Z","1.1.0":"2024-03-20T10:08:41.066Z","1.1.1":"2024-03-29T16:48:31.949Z","1.2.0":"2024-05-19T08:50:57.266Z","1.3.0":"2024-10-04T08:46:07.141Z","1.3.1":"2024-10-12T08:31:42.832Z","1.4.0":"2025-03-28T15:49:27.593Z","1.4.1":"2025-04-12T03:41:52.315Z","1.4.2":"2025-04-15T15:48:55.844Z","1.4.3":"2025-04-15T16:18:16.855Z","1.4.4":"2025-07-07T14:46:34.293Z","1.4.5":"2025-07-18T08:51:38.699Z","1.5.0":"2025-08-29T03:20:11.813Z","1.6.0":"2025-10-21T02:14:18.335Z","1.7.0":"2025-11-03T09:13:37.679Z","1.7.1":"2025-11-14T06:33:13.975Z","1.8.0":"2026-01-03T13:14:00.605Z","1.8.1":"2026-01-04T10:27:07.192Z","1.9.0":"2026-03-12T09:30:11.880Z","1.9.1":"2026-03-19T13:48:31.848Z","1.9.2":"2026-04-02T10:15:21.146Z","1.10.0":"2026-04-16T04:04:34.506Z"},"bugs":{"url":"https://github.com/toyobayashi/emnapi/issues"},"author":{"name":"toyobayashi"},"license":"MIT","homepage":"https://github.com/toyobayashi/emnapi#readme","keywords":["emscripten","wasm","emcc","webassembly","binding","clang","c","c++","cpp","n-api","napi","node-addon-api","napi-rs","rust","wasi-sdk","wasi"],"repository":{"type":"git","url":"git+https://github.com/toyobayashi/emnapi.git"},"description":"Node-API implementation for Emscripten","maintainers":[{"name":"toyobayashi","email":"lifenglin314@outlook.com"}],"readme":"# emnapi\n\n<p align=\"center\">\n  <img src=\"https://toyobayashi.github.io/emnapi-docs/emnapi.svg\" alt=\"emnapi logo\" width=\"256\" />\n</p>\n\n## Sponsors\n\n<p align=\"center\">\n  <a href=\"https://cdn.jsdelivr.net/gh/toyobayashi/toyobayashi/sponsorkit/sponsors.svg\">\n    <img src='https://cdn.jsdelivr.net/gh/toyobayashi/toyobayashi/sponsorkit/sponsors.svg'/>\n  </a>\n</p>\n\n[![Build](https://github.com/toyobayashi/emnapi/actions/workflows/main.yml/badge.svg?branch=main)](https://github.com/toyobayashi/emnapi/actions/workflows/main.yml)\n\n[Node-API](https://nodejs.org/docs/latest/api/n-api.html) implementation for [Emscripten](https://emscripten.org/index.html), [wasi-sdk](https://github.com/WebAssembly/wasi-sdk) and clang with wasm support.\n\nThis project aims to\n\n- Help users port their or existing Node-API native addons to wasm with code change as less as possible.\n- Make runtime behavior matches native Node.js as much as possible.\n\nThis project also powers the WebAssembly feature for [napi-rs](https://github.com/napi-rs/napi-rs), and enables many Node.js native addons to run on [StackBlitz](https://stackblitz.com)'s WebContainer.\n\n[Node-API changes](https://github.com/nodejs/node/pulls?q=is%3Apr+label%3Anode-api+) will be synchronized into this repo.\n\nSee documentation for more details:\n- [https://toyobayashi.github.io/emnapi-docs/guide/](https://toyobayashi.github.io/emnapi-docs/guide/)\n- [https://emnapi-docs.vercel.app/guide/](https://emnapi-docs.vercel.app/guide/)\n\n中文文档：\n- [https://toyobayashi.github.io/emnapi-docs/zh/guide/](https://toyobayashi.github.io/emnapi-docs/zh/guide/)\n- [https://emnapi-docs.vercel.app/zh/guide/](https://emnapi-docs.vercel.app/zh/guide/)\n\n[Full API List](https://toyobayashi.github.io/emnapi-docs/reference/list.html)\n\n[How to build Node-API official examples](https://github.com/toyobayashi/node-addon-examples)\n\nIf you want to deep dive into WebAssembly, highly recommend you to visit [learn-wasm.dev](https://learn-wasm.dev?via=toyobayashi).\n\n## Prerequests\n\nYou will need to install:\n\n- Node.js `>= v16.15.0`\n- npm `>= v8`\n- Emscripten `>= v3.1.9` / wasi-sdk / LLVM clang with wasm support\n- (Optional) CMake `>= v3.13`\n- (Optional) node-gyp `>= v10.2.0`\n- (Optional) ninja\n- (Optional) make\n- (Optional) [node-addon-api](https://github.com/nodejs/node-addon-api) `>= 6.1.0`\n\nThere are several choices to get `make` for Windows user\n\n- Install [mingw-w64](https://www.mingw-w64.org/downloads/), then use `mingw32-make`\n- Download [MSVC prebuilt binary of GNU make](https://github.com/toyobayashi/make-win-build/releases), add to `%Path%` then rename it to `mingw32-make`\n- Install [Visual Studio 2022](https://visualstudio.microsoft.com/) C++ desktop workload, use `nmake` in `Visual Studio Developer Command Prompt`\n- Install [Visual C++ Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/), use `nmake` in `Visual Studio Developer Command Prompt`\n\nVerify your environment:\n\n```bash\nnode -v\nnpm -v\nemcc -v\n\n# clang -v\n# clang -print-targets # ensure wasm32 target exists\n\ncmake --version\n\n# if you use node-gyp\nnode-gyp --version\n\n# if you use ninja\nninja --version\n\n# if you use make\nmake -v\n\n# if you use nmake in Visual Studio Developer Command Prompt\nnmake /?\n```\n\n## Build from source\n\nYou need to set `EMSDK` and `WASI_SDK_PATH` environment variables.\n\n```bash\ngit clone https://github.com/toyobayashi/emnapi.git\ncd ./emnapi\nnpm install -g node-gyp\nnpm install\nnpm run build             # output ./packages/*/dist\nnode ./script/release.js  # output ./out\n\n# test\nnpm run rebuild:test\nnpm test\n```\n\nSee [CONTRIBUTING](https://github.com/toyobayashi/emnapi/blob/main/CONTRIBUTING.md) for more details.\n\n## Quick Start\n\n### NPM Install\n\n```bash\nnpm install -D emnapi\nnpm install @emnapi/runtime\n\n# for non-emscripten\nnpm install @emnapi/core\n\n# if you use node-addon-api\nnpm install node-addon-api\n```\n\nEach package should match the same version.\n\n### Using C\n\nCreate `hello.c`.\n\n```c\n#include <node_api.h>\n\n#define NODE_API_CALL(env, the_call)                            \\\n  do {                                                          \\\n    if ((the_call) != napi_ok) {                                \\\n      const napi_extended_error_info *error_info;               \\\n      napi_get_last_error_info((env), &error_info);             \\\n      bool is_pending;                                          \\\n      const char* err_message = error_info->error_message;      \\\n      napi_is_exception_pending((env), &is_pending);            \\\n      if (!is_pending) {                                        \\\n        const char* error_message = err_message != NULL ?       \\\n          err_message :                                         \\\n          \"empty error message\";                                \\\n        napi_throw_error((env), NULL, error_message);           \\\n      }                                                         \\\n      return NULL;                                              \\\n    }                                                           \\\n  } while (0)\n\nstatic napi_value js_hello(napi_env env, napi_callback_info info) {\n  napi_value world;\n  const char* str = \"world\";\n  NODE_API_CALL(env, napi_create_string_utf8(env, str, NAPI_AUTO_LENGTH, &world));\n  return world;\n}\n\nNAPI_MODULE_INIT() {\n  napi_value hello;\n  NODE_API_CALL(env, napi_create_function(env, \"hello\", NAPI_AUTO_LENGTH,\n                                      js_hello, NULL, &hello));\n  NODE_API_CALL(env, napi_set_named_property(env, exports, \"hello\", hello));\n  return exports;\n}\n```\n\nThe C code is equivalant to the following JavaScript:\n\n```js\nmodule.exports = (function (exports) {\n  const hello = function hello () {\n    // native code in js_hello\n    const world = 'world'\n    return world\n  }\n\n  exports.hello = hello\n  return exports\n})(module.exports)\n```\n\n#### Building\n\n<details>\n<summary>emscripten</summary><br />\n\n```bash\nemcc -O3 \\\n     -DBUILDING_NODE_EXTENSION \\\n     \"-DNAPI_EXTERN=__attribute__((__import_module__(\\\"env\\\")))\" \\\n     -I./node_modules/emnapi/include/node \\\n     -L./node_modules/emnapi/lib/wasm32-emscripten \\\n     --js-library=./node_modules/emnapi/dist/library_napi.js \\\n     -sEXPORTED_FUNCTIONS=\"['_malloc','_free','_napi_register_wasm_v1','_node_api_module_get_api_version_v1']\" \\\n     -sEXPORTED_RUNTIME_METHODS=['emnapiInit'] \\\n     -o hello.js \\\n     hello.c \\\n     -lemnapi\n```\n\n</details>\n\n<details>\n<summary>wasi-sdk</summary><br />\n\n```bash\nclang -O3 \\\n      -DBUILDING_NODE_EXTENSION \\\n      -I./node_modules/emnapi/include/node \\\n      -L./node_modules/emnapi/lib/wasm32-wasi \\\n      --target=wasm32-wasi \\\n      --sysroot=$WASI_SDK_PATH/share/wasi-sysroot \\\n      -mexec-model=reactor \\\n      -Wl,--initial-memory=16777216 \\\n      -Wl,--export-dynamic \\\n      -Wl,--export=malloc \\\n      -Wl,--export=free \\\n      -Wl,--export=napi_register_wasm_v1 \\\n      -Wl,--export-if-defined=node_api_module_get_api_version_v1 \\\n      -Wl,--import-undefined \\\n      -Wl,--export-table \\\n      -o hello.wasm \\\n      hello.c \\\n      -lemnapi\n```\n\n</details>\n\n<details>\n<summary>clang wasm32</summary><br />\n\nChoose `libdlmalloc.a` or `libemmalloc.a` for `malloc` and `free`.\n\n```bash\nclang -O3 \\\n      -DBUILDING_NODE_EXTENSION \\\n      -I./node_modules/emnapi/include/node \\\n      -L./node_modules/emnapi/lib/wasm32 \\\n      --target=wasm32 \\\n      -nostdlib \\\n      -Wl,--no-entry \\\n      -Wl,--initial-memory=16777216 \\\n      -Wl,--export-dynamic \\\n      -Wl,--export=malloc \\\n      -Wl,--export=free \\\n      -Wl,--export=napi_register_wasm_v1 \\\n      -Wl,--export-if-defined=node_api_module_get_api_version_v1 \\\n      -Wl,--import-undefined \\\n      -Wl,--export-table \\\n      -o hello.wasm \\\n      hello.c \\\n      -lemnapi \\\n      -ldlmalloc # -lemmalloc\n```\n\n</details>\n\n#### Initialization\n\nTo initialize emnapi, you need to import the emnapi runtime to create a `Context` by `createContext` or `getDefaultContext` first.\nEach context owns isolated Node-API object such as `napi_env`, `napi_value`, `napi_ref`. If you have multiple emnapi modules, you should reuse the same `Context` across them. \n\n```ts\ndeclare namespace emnapi {\n  // module '@emnapi/runtime'\n  export class Context { /* ... */ }\n  /** Create a new context */\n  export function createContext (): Context\n  /** Create or get */\n  export function getDefaultContext (): Context\n  // ...\n}\n```\n\n<details>\n<summary>emscripten</summary><br />\n\nthen call `Module.emnapiInit` after emscripten runtime initialized.\n`Module.emnapiInit` only do initialization once, it will always return the same binding exports after successfully initialized.\n\n```ts\ndeclare namespace Module {\n  interface EmnapiInitOptions {\n    context: emnapi.Context\n\n    /** node_api_get_module_file_name */\n    filename?: string\n\n    /**\n     * Support following async_hooks related things\n     * on Node.js runtime only\n     * \n     * napi_async_init,\n     * napi_async_destroy,\n     * napi_make_callback,\n     * async resource parameter of\n     * napi_create_async_work and napi_create_threadsafe_function\n     */\n    nodeBinding?: typeof import('@emnapi/node-binding')\n\n    /** See Multithread part */\n    asyncWorkPoolSize?: number\n  }\n  export function emnapiInit (options: EmnapiInitOptions): any\n}\n```\n\n```html\n<script src=\"node_modules/@emnapi/runtime/dist/emnapi.min.js\"></script>\n<script src=\"hello.js\"></script>\n<script>\nModule.onRuntimeInitialized = function () {\n  var binding;\n  try {\n    binding = Module.emnapiInit({ context: emnapi.getDefaultContext() });\n  } catch (err) {\n    console.error(err);\n    return;\n  }\n  var msg = 'hello ' + binding.hello();\n  window.alert(msg);\n};\n\n// if -sMODULARIZE=1\nModule({ /* Emscripten module init options */ }).then(function (Module) {\n  var binding = Module.emnapiInit({ context: emnapi.getDefaultContext() });\n});\n</script>\n```\n\nIf you are using `Visual Studio Code` and have `Live Server` extension installed, you can right click the HTML file in Visual Studio Code source tree and click `Open With Live Server`, then you can see the hello world alert!\n\nRunning on Node.js:\n\n```js\nconst emnapi = require('@emnapi/runtime')\nconst Module = require('./hello.js')\n\nModule.onRuntimeInitialized = function () {\n  let binding\n  try {\n    binding = Module.emnapiInit({ context: emnapi.getDefaultContext() })\n  } catch (err) {\n    console.error(err)\n    return\n  }\n  const msg = `hello ${binding.hello()}`\n  console.log(msg)\n}\n\n// if -sMODULARIZE=1\nModule({ /* Emscripten module init options */ }).then((Module) => {\n  const binding = Module.emnapiInit({ context: emnapi.getDefaultContext() })\n})\n```\n\n</details>\n\n<details>\n<summary>wasi-sdk or clang wasm32</summary><br />\n\nFor non-emscripten, you need to use `@emnapi/core`. The initialization is similar to emscripten.\n\n```html\n<script src=\"node_modules/@emnapi/runtime/dist/emnapi.min.js\"></script>\n<script src=\"node_modules/@emnapi/core/dist/emnapi-core.min.js\"></script>\n<script>\nemnapiCore.instantiateNapiModule(fetch('./hello.wasm'), {\n  context: emnapi.getDefaultContext(),\n  overwriteImports (importObject) {\n    // importObject.env = {\n    //   ...importObject.env,\n    //   ...importObject.napi,\n    //   ...importObject.emnapi,\n    //   // ...\n    // }\n  }\n}).then(({ instance, module, napiModule }) => {\n  const binding = napiModule.exports\n  // ...\n})\n</script>\n```\n\nUsing WASI on Node.js\n\n```js\nconst { instantiateNapiModule } = require('@emnapi/core')\nconst { getDefaultContext } = require('@emnapi/runtime')\nconst { WASI } = require('wasi')\nconst fs = require('fs')\n\ninstantiateNapiModule(fs.promises.readFile('./hello.wasm'), {\n  wasi: new WASI({ /* ... */ }),\n  context: getDefaultContext(),\n  overwriteImports (importObject) {\n    // importObject.env = {\n    //   ...importObject.env,\n    //   ...importObject.napi,\n    //   ...importObject.emnapi,\n    //   // ...\n    // }\n  }\n}).then(({ instance, module, napiModule }) => {\n  const binding = napiModule.exports\n  // ...\n})\n```\n\nUsing WASI on browser, you can use WASI polyfill in [wasm-util](https://github.com/toyobayashi/wasm-util),\nand [memfs-browser](https://github.com/toyobayashi/memfs-browser)\n\n```js\nimport { instantiateNapiModule } from '@emnapi/core'\nimport { getDefaultContext } from '@emnapi/runtime'\nimport { WASI } from '@tybys/wasm-util'\nimport { Volume, createFsFromVolume } from 'memfs-browser'\n\nconst fs = createFsFromVolume(Volume.fromJSON({ /* ... */ }))\ninstantiateNapiModule(fetch('./hello.wasm'), {\n  wasi: new WASI({ fs, /* ... */ })\n  context: getDefaultContext(),\n  overwriteImports (importObject) {\n    // importObject.env = {\n    //   ...importObject.env,\n    //   ...importObject.napi,\n    //   ...importObject.emnapi,\n    //   // ...\n    // }\n  }\n}).then(({ instance, module, napiModule }) => {\n  const binding = napiModule.exports\n  // ...\n})\n```\n\n</details>\n\n### Using C++ and node-addon-api\n\nRequire [`node-addon-api`](https://github.com/nodejs/node-addon-api) `>= 6.1.0`\n\n```bash\nnpm install node-addon-api\n```\n\n**Note: C++ wrapper can only be used to target Node.js v14.6.0+ and modern browsers those support `FinalizationRegistry` and `WeakRef` ([v8 engine v8.4+](https://v8.dev/blog/v8-release-84))!**\n\nCreate `hello.cpp`.\n\n```cpp\n#include <napi.h>\n\nNapi::String Method(const Napi::CallbackInfo& info) {\n  Napi::Env env = info.Env();\n  return Napi::String::New(env, \"world\");\n}\n\nNapi::Object Init(Napi::Env env, Napi::Object exports) {\n  exports.Set(Napi::String::New(env, \"hello\"),\n              Napi::Function::New(env, Method)).Check();\n  return exports;\n}\n\nNODE_API_MODULE(NODE_GYP_MODULE_NAME, Init)\n```\n\nCompile `hello.cpp` using `em++`. C++ exception is disabled by Emscripten default, and not supported by wasi-sdk, so predefine `-DNAPI_DISABLE_CPP_EXCEPTIONS` and `-DNODE_ADDON_API_ENABLE_MAYBE` here. If you would like to enable C++ exception, use `-sDISABLE_EXCEPTION_CATCHING=0` instead and remove `.Check()` call. See official documentation [here](https://github.com/nodejs/node-addon-api/blob/main/doc/error_handling.md).\n\n#### Building\n\n<details>\n<summary>emscripten</summary><br />\n\n```bash\nem++ -O3 \\\n     -DBUILDING_NODE_EXTENSION \\\n     \"-DNAPI_EXTERN=__attribute__((__import_module__(\\\"env\\\")))\" \\\n     -DNAPI_DISABLE_CPP_EXCEPTIONS \\\n     -DNODE_ADDON_API_ENABLE_MAYBE \\\n     -I./node_modules/emnapi/include/node \\\n     -I./node_modules/node-addon-api \\\n     -L./node_modules/emnapi/lib/wasm32-emscripten \\\n     --js-library=./node_modules/emnapi/dist/library_napi.js \\\n     -sEXPORTED_FUNCTIONS=\"['_malloc','_free','_napi_register_wasm_v1','_node_api_module_get_api_version_v1']\" \\\n     -sEXPORTED_RUNTIME_METHODS=['emnapiInit'] \\\n     -o hello.js \\\n     hello.cpp \\\n     -lemnapi\n```\n\n</details>\n\n<details>\n<summary>wasi-sdk</summary><br />\n\n```bash\nclang++ -O3 \\\n        -DBUILDING_NODE_EXTENSION \\\n        -DNAPI_DISABLE_CPP_EXCEPTIONS \\\n        -DNODE_ADDON_API_ENABLE_MAYBE \\\n        -I./node_modules/emnapi/include/node \\\n        -I./node_modules/node-addon-api \\\n        -L./node_modules/emnapi/lib/wasm32-wasi \\\n        --target=wasm32-wasi \\\n        --sysroot=$WASI_SDK_PATH/share/wasi-sysroot \\\n        -fno-exceptions \\\n        -mexec-model=reactor \\\n        -Wl,--initial-memory=16777216 \\\n        -Wl,--export-dynamic \\\n        -Wl,--export=malloc \\\n        -Wl,--export=free \\\n        -Wl,--export=napi_register_wasm_v1 \\\n        -Wl,--export-if-defined=node_api_module_get_api_version_v1 \\\n        -Wl,--import-undefined \\\n        -Wl,--export-table \\\n        -o hello.wasm \\\n        hello.cpp \\\n        -lemnapi\n```\n\n</details>\n\n<details>\n<summary>clang wasm32</summary><br />\n\n`node-addon-api` is using the C++ standard libraries, so you must use WASI if you are using `node-addon-api`.\n\nYou can still use `wasm32-unknown-unknown` target if you use Node-API C API only in C++.\n\n```bash\nclang++ -O3 \\\n        -DBUILDING_NODE_EXTENSION \\\n        -I./node_modules/emnapi/include/node \\\n        -L./node_modules/emnapi/lib/wasm32 \\\n        --target=wasm32 \\\n        -fno-exceptions \\\n        -nostdlib \\\n        -Wl,--no-entry \\\n        -Wl,--initial-memory=16777216 \\\n        -Wl,--export-dynamic \\\n        -Wl,--export=malloc \\\n        -Wl,--export=free \\\n        -Wl,--export=napi_register_wasm_v1 \\\n        -Wl,--export-if-defined=node_api_module_get_api_version_v1 \\\n        -Wl,--import-undefined \\\n        -Wl,--export-table \\\n        -o node_api_c_api_only.wasm \\\n        node_api_c_api_only.cpp \\\n        -lemnapi \\\n        -ldlmalloc # -lemmalloc\n```\n\n`operator new` and `operator delete`.\n\n```cpp\n#include <stddef.h>\n\nextern \"C\" void* malloc(size_t size);\nextern \"C\" void free(void* p);\n\nvoid* operator new(size_t size) {\n  return malloc(size);\n}\n\nvoid operator delete(void* p) noexcept {\n  free(p);\n}\n\nvoid operator delete(void* p, size_t) noexcept {\n  free(p);\n}\n```\n\n</details>\n\n### Using CMake\n\nCreate `CMakeLists.txt`.\n\n```cmake\ncmake_minimum_required(VERSION 3.13)\n\nproject(emnapiexample)\n\nadd_subdirectory(\"${CMAKE_CURRENT_SOURCE_DIR}/node_modules/emnapi\")\n\nadd_executable(hello hello.c)\n\ntarget_link_libraries(hello emnapi)\nif(CMAKE_SYSTEM_NAME STREQUAL \"Emscripten\")\n  target_link_options(hello PRIVATE\n    \"-sEXPORTED_FUNCTIONS=['_malloc','_free','_napi_register_wasm_v1','_node_api_module_get_api_version_v1']\"\n    \"-sEXPORTED_RUNTIME_METHODS=['emnapiInit']\"\n  )\nelseif(CMAKE_SYSTEM_NAME STREQUAL \"WASI\")\n  set_target_properties(hello PROPERTIES SUFFIX \".wasm\")\n  target_link_options(hello PRIVATE\n    \"-mexec-model=reactor\"\n    \"-Wl,--export=napi_register_wasm_v1\"\n    \"-Wl,--export-if-defined=node_api_module_get_api_version_v1\"\n    \"-Wl,--initial-memory=16777216,--export-dynamic,--export=malloc,--export=free,--import-undefined,--export-table\"\n  )\nelseif((CMAKE_C_COMPILER_TARGET STREQUAL \"wasm32\") OR (CMAKE_C_COMPILER_TARGET STREQUAL \"wasm32-unknown-unknown\"))\n  set_target_properties(hello PROPERTIES SUFFIX \".wasm\")\n  target_link_options(hello PRIVATE\n    \"-nostdlib\"\n    \"-Wl,--export=napi_register_wasm_v1\"\n    \"-Wl,--export-if-defined=node_api_module_get_api_version_v1\"\n    \"-Wl,--no-entry\"\n    \"-Wl,--initial-memory=16777216,--export-dynamic,--export=malloc,--export=free,--import-undefined,--export-table\"\n  )\n  target_link_libraries(hello dlmalloc)\n  # target_link_libraries(hello emmalloc)\nendif()\n```\n\nIf you use node-addon-api, you can use `-DEMNAPI_FIND_NODE_ADDON_API=ON` or manually add node-addon-api directory to the include dir via `include_directories()` or `target_include_directories()`.\n\n```bash\nmkdir build\n\n# emscripten\nemcmake cmake -DCMAKE_BUILD_TYPE=Release \\\n              -DEMNAPI_FIND_NODE_ADDON_API=ON \\\n              -G Ninja -H. -Bbuild\n\n# wasi-sdk\ncmake -DCMAKE_TOOLCHAIN_FILE=$WASI_SDK_PATH/share/cmake/wasi-sdk.cmake \\\n      -DWASI_SDK_PREFIX=$WASI_SDK_PATH \\\n      -DEMNAPI_FIND_NODE_ADDON_API=ON \\\n      -DCMAKE_BUILD_TYPE=Release \\\n      -G Ninja -H. -Bbuild\n\n# wasm32\ncmake -DCMAKE_TOOLCHAIN_FILE=node_modules/emnapi/cmake/wasm32.cmake \\\n      -DLLVM_PREFIX=$WASI_SDK_PATH \\\n      -DCMAKE_BUILD_TYPE=Release \\\n      -G Ninja -H. -Bbuild\n\ncmake --build build\n```\n\nOutput code can run in recent version modern browsers and Node.js latest LTS. IE is not supported.\n\n### Using node-gyp (Experimental)\n\nRequire node-gyp `>= 10.2.0`\n\nSee [emnapi-node-gyp-test](https://github.com/toyobayashi/emnapi-node-gyp-test) for examples.\n\n- Variables\n\nArch: `node-gyp configure --arch=<wasm32 | wasm64>`\n\n```ts\n// node-gyp configure -- -Dvariable_name=value\n\ndeclare var OS: 'emscripten' | 'wasi' | 'unknown' | 'wasm' | ''\n\n/**\n * Enable async work and threadsafe-functions\n * @default 0\n */\ndeclare var wasm_threads: 0 | 1\n\n/** @default 1048576 */\ndeclare var stack_size: number\n\n/** @default 16777216 */\ndeclare var initial_memory: number\n\n/** @default 2147483648 */\ndeclare var max_memory: number\n\n/** @default path.join(path.dirname(commonGypiPath,'./dist/library_napi.js')) */\ndeclare var emnapi_js_library: string\n\n/** @default 0 */\ndeclare var emnapi_manual_linking: 0 | 1\n```\n\n- Create `binding.gyp`\n\n\n```py\n{\n  \"targets\": [\n    {\n      \"target_name\": \"hello\",\n      \"sources\": [\n        \"hello.c\"\n      ],\n      \"conditions\": [\n        [\"OS == 'emscripten'\", {\n          \"product_extension\": \"js\", # required\n\n          \"cflags\": [],\n          \"cflags_c\": [],\n          \"cflags_cc\": [],\n          \"ldflags\": []\n        }],\n        [\"OS == 'wasi'\", {\n          # ...\n        }],\n        [\"OS in ' wasm unknown'\", {\n          # ...\n        }]\n      ]\n    }\n  ]\n}\n```\n\n- Add the following environment variables.\n\n```bash\n# Linux or macOS\nexport GYP_CROSSCOMPILE=1\n\n# emscripten\nexport AR_target=\"$EMSDK/upstream/emscripten/emar\"\nexport CC_target=\"$EMSDK/upstream/emscripten/emcc\"\nexport CXX_target=\"$EMSDK/upstream/emscripten/em++\"\n\n# wasi-sdk\nexport AR_target=\"$WASI_SDK_PATH/bin/ar\"\nexport CC_target=\"$WASI_SDK_PATH/bin/clang\"\nexport CXX_target=\"$WASI_SDK_PATH/bin/clang++\"\n```\n\n```bat\n@REM Windows\n\nset GYP_CROSSCOMPILE=1\n\n@REM emscripten\ncall set AR_target=%%EMSDK:\\=/%%/upstream/emscripten/emar.bat\ncall set CC_target=%%EMSDK:\\=/%%/upstream/emscripten/emcc.bat\ncall set CXX_target=%%EMSDK:\\=/%%/upstream/emscripten/em++.bat\n\n@REM wasi-sdk\ncall set AR_target=%%WASI_SDK_PATH:\\=/%%/bin/ar.exe\ncall set CC_target=%%WASI_SDK_PATH:\\=/%%/bin/clang.exe\ncall set CXX_target=%%WASI_SDK_PATH:\\=/%%/bin/clang++.exe\n```\n\n- Build\n\n```bash\n# Linux or macOS\n\n# emscripten\nemmake node-gyp rebuild \\\n  --arch=wasm32 \\\n  --nodedir=./node_modules/emnapi \\\n  -- -f make-emscripten # -Dwasm_threads=1\n\n# wasi\nnode-gyp rebuild \\\n  --arch=wasm32 \\\n  --nodedir=./node_modules/emnapi \\\n  -- -f make-wasi # -Dwasm_threads=1\n\n# bare wasm32\nnode-gyp rebuild \\\n  --arch=wasm32 \\\n  --nodedir=./node_modules/emnapi \\\n  -- -f make-wasm # -Dwasm_threads=1\n```\n\n```bat\n@REM Use make generator on Windows\n@REM Run the bat file in POSIX-like environment (e.g. Cygwin)\n\n@REM emscripten\ncall npx.cmd node-gyp configure --arch=wasm32 --nodedir=./node_modules/emnapi -- -f make-emscripten\ncall emmake.bat make -C %~dp0build\n\n@REM wasi\ncall npx.cmd node-gyp configure --arch=wasm32 --nodedir=./node_modules/emnapi -- -f make-wasi\nmake -C %~dp0build\n\n@REM bare wasm32\ncall npx.cmd node-gyp configure --arch=wasm32 --nodedir=./node_modules/emnapi -- -f make-wasm\nmake -C %~dp0build\n```\n\n### Using Rust\n\nSee [napi-rs](https://github.com/napi-rs/napi-rs) \n\n### Multithread\n\nRelated API:\n\n- [napi_*_async_work](https://nodejs.org/dist/latest/docs/api/n-api.html#napi_create_async_work)\n- [napi_*_threadsafe_function](https://nodejs.org/dist/latest/docs/api/n-api.html#asynchronous-thread-safe-function-calls)\n\nThey are available in emnapi, but you need to know more details before you start to use them.\nNow emnapi has 3 implementations of async work and 2 implementations of TSFN:\n\n- Async work\n    - A. Libuv threadpool and pthread based implementation in C\n    - B. Single thread mock in JavaScript\n    - C. Web worker based implementation in C (stack allocation) and JavaScript\n- TSFN\n    - D. Libuv and pthread based implementation in C\n    - E. Web worker based implementation in JavaScript\n\n|   | Library to Link        | `wasm32-emscripten` | `wasm32` | `wasm32-wasi` | `wasm32-wasi-threads` |\n|---|------------------------|---------------------|----------|---------------|-----------------------|\n| A | libemnapi-mt.a         | ✅                   | ❌        | ❌             | ✅                     |\n| B | libemnapi-basic(-mt).a | ✅                   | ✅        | ✅             | ✅                     |\n| C | libemnapi-basic-mt.a   | ❌                   | ✅        | ❌             | ✅                     |\n| D | libemnapi-mt.a         | ✅                   | ❌        | ❌             | ✅                     |\n| E | libemnapi-basic(-mt).a | ✅                   | ✅        | ✅             | ✅                     |\n\nThere are some limitations on browser about wasi-libc's pthread implementation, for example\n`pthread_mutex_lock` may call `__builtin_wasm_memory_atomic_wait32`(`memory.atomic.wait32`)\nwhich is disallowed in browser JS main thread. While Emscripten's pthread implementation\nhas considered usage in browser. This issue can be solved by upgrading `wasi-sdk` to v26+\nand emnapi v1.5.0+ then pass `--export=emnapi_thread_crashed` to the linker. If you need to\nrun your addon with multithreaded features, we recommend you use A & D or C & E.\n\nNote: For browsers, all the multithreaded features relying on Web Workers (Emscripten pthread also relying on Web Workers)\nrequire cross-origin isolation to enable `SharedArrayBuffer`. You can make a page cross-origin isolated\nby serving the page with these headers:\n\n```\nCross-Origin-Embedder-Policy: require-corp\nCross-Origin-Opener-Policy: same-origin\n```\n\nIf you would like to avoid `SharedArrayBuffer` and cross-origin isolation, please use B & E (link against `libemnapi-basic.a`), see the following table for more details.\n\n#### About Prebuilt Libraries\n\nPrebuilt libraries can be found in the `lib` directory in `emnapi` npm package.\n\n| Library              | Description                                                                                                                                                                                                                                                   | `wasm32-emscripten` | `wasm32` | `wasm32-wasi` | `wasm32-wasi-threads`                   |\n|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------|----------|---------------|-----------------------------------------|\n| libemnapi.a          | no atomics feature.<br/><br/> no libuv port.<br/><br/> `napi_*_async_work` and `napi_*_threadsafe_function` always return `napi_generic_failure`.                                                                                                                         | ✅                   | ✅        | ✅             | ✅ |\n| libemnapi-mt.a       | atomics feature enabled.<br/><br/> `napi_*_async_work` and `napi_*_threadsafe_function` are based on pthread and libuv port.                                                                                                                                        | ✅                   | ❌        | ❌             | ✅ |\n| libemnapi-basic.a    | no atomics feature.<br/><br/> no libuv port.<br/><br/> `napi_*_async_work` and `napi_*_threadsafe_function` are imported from JavaScript land.                                                                                                                            | ✅                   | ✅        | ✅             | ✅ |\n| libemnapi-basic-mt.a | atomics feature enabled.<br/><br/> no libuv port.<br/><br/> `napi_*_async_work` and `napi_*_threadsafe_function` are imported from JavaScript land.<br/><br/> include `emnapi_async_worker_create` and `emnapi_async_worker_init` for WebWorker based async work implementation. | ❌                   | ✅        | ✅             | ✅ |\n| libdlmalloc.a        | no atomics feature, no thread safe garanteed.                                                                                                                                                                                                                 | ❌                   | ✅        | ❌             | ❌                                       |\n| libdlmalloc-mt.a     | atomics feature enabled, thread safe.                                                                                                                                                                                                                         | ❌                   | ✅        | ❌             | ❌                                       |\n| libemmalloc.a        | no atomics feature, no thread safe garanteed.                                                                                                                                                                                                                 | ❌                   | ✅        | ❌             | ❌                                       |\n| libemmalloc-mt.a     | atomics feature enabled, thread safe.                                                                                                                                                                                                                         | ❌                   | ✅        | ❌             | ❌                                       |\n\n#### Usage\n\n```cmake\nadd_subdirectory(\"${CMAKE_CURRENT_SOURCE_DIR}/node_modules/emnapi\")\n\nadd_executable(hello hello.c)\n\nif(CMAKE_SYSTEM_NAME STREQUAL \"Emscripten\")\n  target_link_libraries(hello emnapi-mt)\n  target_compile_options(hello PRIVATE \"-pthread\")\n  target_link_options(hello PRIVATE\n    \"-sALLOW_MEMORY_GROWTH=1\"\n    \"-sEXPORTED_FUNCTIONS=['_malloc','_free','_napi_register_wasm_v1','_node_api_module_get_api_version_v1']\"\n    \"-sEXPORTED_RUNTIME_METHODS=['emnapiInit']\"\n    \"-pthread\"\n    \"-sPTHREAD_POOL_SIZE=4\"\n    # try to specify stack size if you experience pthread errors\n    \"-sSTACK_SIZE=2MB\"\n    \"-sDEFAULT_PTHREAD_STACK_SIZE=2MB\"\n  )\nelseif(CMAKE_C_COMPILER_TARGET STREQUAL \"wasm32-wasi-threads\")\n  target_link_libraries(hello emnapi-mt)\n  set_target_properties(hello PROPERTIES SUFFIX \".wasm\")\n  target_compile_options(hello PRIVATE \"-fno-exceptions\" \"-pthread\")\n  target_link_options(hello PRIVATE\n    \"-pthread\"\n    \"-mexec-model=reactor\"\n    \"-Wl,--import-memory\"\n    \"-Wl,--max-memory=2147483648\"\n    \"-Wl,--export-dynamic\"\n    \"-Wl,--export=napi_register_wasm_v1\"\n    \"-Wl,--export-if-defined=node_api_module_get_api_version_v1\"\n    \"-Wl,--export=malloc\"\n    \"-Wl,--export=free\"\n    \"-Wl,--export=emnapi_thread_crashed\"\n    \"-Wl,--import-undefined\"\n    \"-Wl,--export-table\"\n  )\nelseif((CMAKE_C_COMPILER_TARGET STREQUAL \"wasm32\") OR (CMAKE_C_COMPILER_TARGET STREQUAL \"wasm32-unknown-unknown\"))\n  target_link_libraries(hello emnapi-basic-mt)\n  set_target_properties(hello PROPERTIES SUFFIX \".wasm\")\n  target_compile_options(hello PRIVATE \"-fno-exceptions\" \"-matomics\" \"-mbulk-memory\")\n  target_link_options(hello PRIVATE\n    \"-nostdlib\"\n    \"-Wl,--no-entry\"\n    \"-Wl,--export=napi_register_wasm_v1\"\n    \"-Wl,--export-if-defined=node_api_module_get_api_version_v1\"\n    \"-Wl,--export=emnapi_async_worker_create\"\n    \"-Wl,--export=emnapi_async_worker_init\"\n    \"-Wl,--import-memory,--shared-memory,--max-memory=2147483648,--import-undefined\"\n    \"-Wl,--export-dynamic,--export=malloc,--export=free,--export-table\"\n  )\nendif()\n```\n\n```bash\n# emscripten\nemcmake cmake -DCMAKE_BUILD_TYPE=Release \\\n              -DEMNAPI_FIND_NODE_ADDON_API=ON \\\n              -DEMNAPI_WORKER_POOL_SIZE=4 \\\n              -G Ninja -H. -Bbuild\n\n# wasi-sdk with thread support\ncmake -DCMAKE_TOOLCHAIN_FILE=$WASI_SDK_PATH/share/cmake/wasi-sdk-pthread.cmake \\\n      -DWASI_SDK_PREFIX=$WASI_SDK_PATH \\\n      -DEMNAPI_FIND_NODE_ADDON_API=ON \\\n      -DCMAKE_BUILD_TYPE=Release \\\n      -G Ninja -H. -Bbuild\n\ncmake -DCMAKE_TOOLCHAIN_FILE=node_modules/emnapi/cmake/wasm32.cmake \\\n      -DLLVM_PREFIX=$WASI_SDK_PATH \\\n      -DCMAKE_BUILD_TYPE=Release \\\n      -G Ninja -H. -Bbuild\n\ncmake --build build\n```\n\nAnd additional work is required during instantiating wasm compiled with non-emscripten.\n\n```js\n// emnapi main thread (could be in a Worker)\ninstantiateNapiModule(input, {\n  context: getDefaultContext(),\n  /**\n   * emscripten\n   *   0: no effect\n   *   > 0: the same effect to UV_THREADPOOL_SIZE\n   * non-emscripten\n   *   0: single thread mock\n   *   > 0 schedule async work in web worker\n   */\n  asyncWorkPoolSize: 4, // 0: single thread mock, > 0: schedule async work in web worker\n  wasi: new WASI(/* ... */),\n\n  /**\n   * Setting this to `true` or a delay (ms) makes\n   * pthread_create() do not return until worker actually start.\n   * It will throw error if emnapi runs in browser main thread\n   * since browser disallow blocking the main thread (Atomics.wait).\n   * @defaultValue false\n   */\n  waitThreadStart: isNode || (isBrowser && !isBrowserMainThread),\n\n  /**\n   * Reuse the thread worker after thread exit to avoid re-creatation\n   * @defaultValue false\n   */\n  reuseWorker: {\n    /**\n     * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size | PTHREAD_POOL_SIZE}\n     */\n    size: 0,\n\n    /**\n     * @see {@link https://emscripten.org/docs/tools_reference/settings_reference.html#pthread-pool-size-strict | PTHREAD_POOL_SIZE_STRICT}\n     */\n    strict: false\n  },\n\n  onCreateWorker () {\n    return new Worker('./worker.js')\n    // Node.js\n    // const { Worker } = require('worker_threads')\n    // return new Worker(join(__dirname, './worker.js'), {\n    //   env: process.env,\n    //   execArgv: ['--experimental-wasi-unstable-preview1']\n    // })\n  },\n  overwriteImports (importObject) {\n    importObject.env.memory = new WebAssembly.Memory({\n      initial: 16777216 / 65536,\n      maximum: 2147483648 / 65536,\n      shared: true\n    })\n  }\n})\n```\n\n```js\n// worker.js\n(function () {\n  let fs, WASI, emnapiCore\n\n  const ENVIRONMENT_IS_NODE =\n    typeof process === 'object' && process !== null &&\n    typeof process.versions === 'object' && process.versions !== null &&\n    typeof process.versions.node === 'string'\n\n  if (ENVIRONMENT_IS_NODE) {\n    const nodeWorkerThreads = require('worker_threads')\n\n    const parentPort = nodeWorkerThreads.parentPort\n\n    parentPort.on('message', (data) => {\n      globalThis.onmessage({ data })\n    })\n\n    fs = require('fs')\n\n    Object.assign(globalThis, {\n      self: globalThis,\n      require,\n      Worker: nodeWorkerThreads.Worker,\n      importScripts: function (f) {\n        (0, eval)(fs.readFileSync(f, 'utf8') + '//# sourceURL=' + f)\n      },\n      postMessage: function (msg) {\n        parentPort.postMessage(msg)\n      }\n    })\n\n    WASI = require('wasi').WASI\n    emnapiCore = require('@emnapi/core')\n  } else {\n    importScripts('./node_modules/memfs-browser/dist/memfs.js')\n    importScripts('./node_modules/@tybys/wasm-util/dist/wasm-util.min.js')\n    importScripts('./node_modules/@emnapi/core/dist/emnapi-core.js')\n    emnapiCore = globalThis.emnapiCore\n\n    const { Volume, createFsFromVolume } = memfs\n    fs = createFsFromVolume(Volume.fromJSON({\n      '/': null\n    }))\n\n    WASI = globalThis.wasmUtil.WASI\n  }\n\n  const { instantiateNapiModuleSync, MessageHandler } = emnapiCore\n\n  const handler = new MessageHandler({\n    onLoad ({ wasmModule, wasmMemory }) {\n      const wasi = new WASI({ fs })\n\n      return instantiateNapiModuleSync(wasmModule, {\n        childThread: true,\n        wasi,\n        overwriteImports (importObject) {\n          importObject.env.memory = wasmMemory\n        }\n      })\n    }\n  })\n\n  globalThis.onmessage = function (e) {\n    handler.handle(e)\n    // handle other messages\n  }\n})()\n```\n\n## Preprocess Macro Options\n\n### `-DEMNAPI_WORKER_POOL_SIZE=4`\n\nThis is [`UV_THREADPOOL_SIZE`](http://docs.libuv.org/en/v1.x/threadpool.html?highlight=UV_THREADPOOL_SIZE) equivalent at compile time, if not predefined, emnapi will read `asyncWorkPoolSize` option or `UV_THREADPOOL_SIZE` from Emscripten [environment variable](https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html#interacting-with-code-environment-variables) at runtime:\n\n```js\nModule.init({\n  // ...\n  asyncWorkPoolSize: 2\n})\n\n// if asyncWorkPoolSize is not specified\nModule.preRun = Module.preRun || [];\nModule.preRun.push(function () {\n  if (typeof ENV !== 'undefined') {\n    ENV.UV_THREADPOOL_SIZE = '2';\n  }\n});\n```\n\n```js\n// wasi\ninstantiateNapiModule({\n  // ...\n  asyncWorkPoolSize: 2\n})\n// if asyncWorkPoolSize is not specified\nnew WASI({\n  env: {\n    UV_THREADPOOL_SIZE: '2'\n  }\n})\n```\n\nIt represent max of `EMNAPI_WORKER_POOL_SIZE` async work (`napi_queue_async_work`) can be executed in parallel. Default is not defined.\n\nYou can set both `PTHREAD_POOL_SIZE` and `EMNAPI_WORKER_POOL_SIZE` to `number of CPU cores` in general.\nIf you use another library function which may create `N` child threads in async work,\nthen you need to set `PTHREAD_POOL_SIZE` to `EMNAPI_WORKER_POOL_SIZE * (N + 1)`.\n\nThis option only has effect if you use `-pthread`.\nEmnapi will create `EMNAPI_WORKER_POOL_SIZE` threads when initializing,\nit will throw error if `PTHREAD_POOL_SIZE < EMNAPI_WORKER_POOL_SIZE && PTHREAD_POOL_SIZE_STRICT == 2`.\n\nSee [Issue #8](https://github.com/toyobayashi/emnapi/issues/8) for more detail.\n\n### `-DEMNAPI_NEXTTICK_TYPE=0`\n\nThis option only has effect if you use `-pthread`, Default is `0`.\nTell emnapi how to delay async work in `uv_async_send` / `uv__async_close`.\n\n- `0`: Use `setImmediate()` (Node.js native `setImmediate` or browser `MessageChannel` and `port.postMessage`)\n- `1`: Use `Promise.resolve().then()`\n\n### `-DEMNAPI_USE_PROXYING=1`\n\nThis option only has effect if you use emscripten `-pthread`. Default is `1` if emscripten version `>= 3.1.9`, else `0`.\n\n- `0`\n\n    Use JavaScript implementation to send async work from worker threads, runtime code will access the Emscripten internal `PThread` object to add custom worker message listener.\n\n- `1`:\n\n    Use Emscripten [proxying API](https://emscripten.org/docs/api_reference/proxying.h.html) to send async work from worker threads in C. If you experience something wrong, you can switch set this to `0` and feel free to create an issue.\n","readmeFilename":"README.md"}