{"_id":"@actaseal/verify","name":"@actaseal/verify","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@actaseal/verify","version":"0.1.0","description":"Minimal, zero-dependency JS/WebCrypto port of ActaSeal's offline dispute-packet verifier (chain integrity + Ed25519 receipt signature only -- see README for exact scope and what it does NOT check).","main":"verify_min.js","engines":{"node":">=19"},"keywords":["actaseal","verify","receipt","ed25519","webcrypto","tamper-evident"],"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/actaseal/actaseal-verify.git","directory":"tamper_demo"},"homepage":"https://github.com/actaseal/actaseal-verify#readme","author":{"name":"ActaSeal"},"publishConfig":{"access":"public"},"gitHead":"bccd99763af3ef74e1f352d47006b29905112b9f","bugs":{"url":"https://github.com/actaseal/actaseal-verify/issues"},"_id":"@actaseal/verify@0.1.0","_nodeVersion":"20.19.2","_npmVersion":"9.2.0","dist":{"integrity":"sha512-Bw1ys1LL1FJiZK9eAFPzvTULO4z3d+mBFWlumvcpxLlpgXJ/wgICSxCi6anB6GThNNfQEwsfXeEfXMR3I6P1rQ==","shasum":"0410c0ea6e3d4e5d4a1ca321a10397ea7144691a","tarball":"https://registry.npmjs.org/@actaseal/verify/-/verify-0.1.0.tgz","fileCount":3,"unpackedSize":9606,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIATWhmcP2xyP6byB/9yZVFZq4dYmJKwh501wCbm7thnhAiEAlXJsQ5Q9yv6W6JYn0K/nfUVp2L7ABe8CPXEBlL4XMnE="}]},"_npmUser":{"name":"actaseal","email":"chatftx@gmail.com"},"directories":{},"maintainers":[{"name":"actaseal","email":"chatftx@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/verify_0.1.0_1784611234750_0.75395195421242"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T05:20:34.620Z","0.1.0":"2026-07-21T05:20:34.914Z","modified":"2026-07-21T05:20:35.086Z"},"maintainers":[{"name":"actaseal","email":"chatftx@gmail.com"}],"description":"Minimal, zero-dependency JS/WebCrypto port of ActaSeal's offline dispute-packet verifier (chain integrity + Ed25519 receipt signature only -- see README for exact scope and what it does NOT check).","homepage":"https://github.com/actaseal/actaseal-verify#readme","keywords":["actaseal","verify","receipt","ed25519","webcrypto","tamper-evident"],"repository":{"type":"git","url":"git+https://github.com/actaseal/actaseal-verify.git","directory":"tamper_demo"},"author":{"name":"ActaSeal"},"bugs":{"url":"https://github.com/actaseal/actaseal-verify/issues"},"license":"Apache-2.0","readme":"# @actaseal/verify\n\nA minimal, zero-dependency JS/WebCrypto port of ActaSeal's offline\ndispute-packet verifier, extracted from the in-browser tamper-and-verify\ndemo. Runs in any environment with WebCrypto Ed25519 support (Node 19+,\ncurrent Chrome/Firefox/Safari) -- no bundled crypto library, no\nexternal dependency at all.\n\n## Scope -- read before relying on this for anything real\n\n**This is a reduced-scope subset**, not a full port of the canonical\nPython verifier (`verify.py` at the root of this repository). It checks:\n\n- ledger chain integrity (`verifyEvents`)\n- the receipt's **Ed25519** signature only (`verifyReceipt`) -- an\n  ECDSA P-256-signed receipt is NOT checked by this package; a full\n  verification of such a receipt needs the real `verify.py`.\n\nIt does **not** check authentication docs, scope-conformance,\nsettlement anchors, or continuity checkpoints -- see `verify.py`'s own\nfull check list for everything the canonical verifier covers that this\npackage does not.\n\n**For anything beyond a quick, dependency-free sanity check, run the\nreal `verify.py` against the full packet.** This package exists for\nenvironments where shelling out to Python isn't an option (a browser,\na Node-based CI step) and a reduced-scope client-side check is still\nuseful -- it is not a drop-in replacement for the canonical verifier.\n\n## Install\n\n```\nnpm install @actaseal/verify\n```\n\n## Usage\n\n```js\nconst { verifyPacket } = require(\"@actaseal/verify\");\n\nconst result = await verifyPacket(manifest, receipt, events);\n// { verified: boolean, failures: string[] }\n```\n\n`manifest`, `receipt`, and `events` are the parsed JSON contents of a\ndispute packet's `manifest.json`, `receipt.json`, and\n`ledger_slice.ndjson` (one parsed object per line) respectively.\n\n## License\n\nApache-2.0, same as the rest of this repository.\n","readmeFilename":"README.npm.md","_rev":"1-b93860d398aee375c701dd732800a828"}