@semaphore-protocol/proof doesn't work with ES modules, because, in turn, snarkjs cannot be used with ES modules as some iden3 packages depend on web-worker@1.3.0, which for some reason doesn't include type: "module" in its package.json (and exports its ES modules with .js instead of .mjs).
To Reproduce
import { generateProof } from "@semaphore-protocol/proof"
console.log(generateProof)
(node:32193) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
/home/cedoor/Downloads/tests/snarkjs/node_modules/circom_runtime/node_modules/web-worker/node.js:17
import URL from 'url';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at internalCompileFunction (node:internal/vm:77:18)
at wrapSafe (node:internal/modules/cjs/loader:1288:20)
at Module._compile (node:internal/modules/cjs/loader:1340:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
at Module.load (node:internal/modules/cjs/loader:1207:32)
at Module._load (node:internal/modules/cjs/loader:1023:12)
at cjsLoader (node:internal/modules/esm/translators:345:17)
at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:294:7)
at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
Node.js v20.10.0
Expected behavior
@semaphore-protocol/proof should work when imported into an ES module.
Describe the bug
@semaphore-protocol/proof
doesn't work with ES modules, because, in turn,snarkjs
cannot be used with ES modules as some iden3 packages depend on web-worker@1.3.0, which for some reason doesn't include type: "module" in its package.json (and exports its ES modules with .js instead of .mjs).To Reproduce
Error
Expected behavior
@semaphore-protocol/proof
should work when imported into an ES module.Additional context
Related issues: