It cost more than it saved. Two problems, the second only visible once quantus/common tried to consume this package: Its index re-exports packageDetect, whose only job is a side effect registering with @polkadot/util — a peer dependency inherited for nothing. Deep imports (/base64, /fflate) avoided that. But it is a workspace package, so a symlinked consumer resolves its dependencies through *this* repo's node_modules, where @polkadot/wasm-util points at the package source rather than its build and carries no exports map. Node follows symlinks to their realpath, so `@polkadot/wasm-util/base64` failed to resolve from quantus/common no matter which yarn protocol was used — portal: and link: behave the same once the realpath is taken. So: fflate directly for zlib inflate, and fifteen lines for base64 rather than a dependency at all. Deliberately not atob or Buffer.from — the first is browser-only, the second node-only, and this runs in an MV3 service worker, a Worker, node tests and a bundled extension page. The package is now self-contained apart from fflate, which resolves normally from any checkout. Size is unchanged at 234,292 raw / 109,649 zlib / 146,200 base64. Refs quantus/wasm#1, quantus/common#2 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
25 lines
710 B
JSON
25 lines
710 B
JSON
{
|
|
"author": "Quantus Network Developers <hello@quantus.com>",
|
|
"bugs": "https://git.lair.cafe/quantus/wasm/issues",
|
|
"description": "Quantus post-quantum crypto (ML-DSA, Poseidon2, HD derivation) for the browser",
|
|
"engines": {
|
|
"node": ">=18"
|
|
},
|
|
"homepage": "https://git.lair.cafe/quantus/wasm/src/branch/main/packages/quantus-crypto#readme",
|
|
"license": "Apache-2.0",
|
|
"name": "@quantus/crypto",
|
|
"repository": {
|
|
"directory": "packages/quantus-crypto",
|
|
"type": "git",
|
|
"url": "https://git.lair.cafe/quantus/wasm.git"
|
|
},
|
|
"sideEffects": false,
|
|
"type": "module",
|
|
"version": "0.1.0",
|
|
"main": "index.js",
|
|
"dependencies": {
|
|
"fflate": "^0.8.2",
|
|
"tslib": "^2.7.0"
|
|
}
|
|
}
|