The browser programs are in web/. Rebuild web/checker.wasm with Rust 1.99.0:

rustup target add wasm32-unknown-unknown --toolchain 1.99.0
cargo +1.99.0 build --locked --release --target wasm32-unknown-unknown --manifest-path checker/Cargo.toml
cp checker/target/wasm32-unknown-unknown/release/writing_timestamp_checker.wasm web/checker.wasm

The browser does not need Rust, npm, OpusWriter or a browser extension. pdf-lib 1.17.1 is bundled with its license. Dependency notices for the Rust module are in web/third-party.txt. No runtime scripts are loaded from third parties. To build the self-contained HTTP worker and the downloadable source with Node and Python 3, run:

python3 build.py

The output dist/server/index.js exports a fetch handler. To serve it locally using Node 22 or later:

node serve.mjs

Only the source files listed in build.py are included in the downloadable source. OpusWriter project files and reports are never server inputs.
