MoonBit Subresource Integrity toolkit with HTML audits, trusted baselines, and release-to-release HTML reference diffs
moon test --target wasm
moon run cmd/main --target wasm -- generate examples/hello.jssha384-uY+OtEjszwPe7jcYKI1KfAGMrLSMeFfhJc/DWf9ccFpWjjw1tKO9St/U0k2N8ONW<script src="/hello.js"
integrity="sha384-uY+OtEjszwPe7jcYKI1KfAGMrLSMeFfhJc/DWf9ccFpWjjw1tKO9St/U0k2N8ONW"></script>moon run cmd/main --target wasm -- check examples/hello.js 'sha384-uY+OtEjszwPe7jcYKI1KfAGMrLSMeFfhJc/DWf9ccFpWjjw1tKO9St/U0k2N8ONW'moon run cmd/main --target wasm -- generate examples/hello.js sha512moon run cmd/main --target wasm -- tag script examples/hello.js '/assets/hello.js?v=1&lang=zh' sha384
moon run cmd/main --target wasm -- tag stylesheet examples/style.css /assets/style.cssmoon run cmd/main --target wasm -- audit-html --root dist --json --min-algorithm sha384 index.html docs/index.htmlmoon run cmd/main --target wasm -- audit-html --root examples --json browser.htmlmoon run cmd/main --target wasm -- manifest --root reviewed-dist assets/app.js assets/site.css > approved-integrity.json
moon run cmd/main --target wasm -- audit-html --root dist --baseline approved-integrity.json --json index.html docs/index.htmlmoon run cmd/main --target wasm -- diff-html --before-root previous-dist --after-root dist --json index.html docs/index.htmlmoon run cmd/main --target wasm -- manifest examples/hello.js examples/style.css > integrity.json
moon run cmd/main --target wasm -- check-manifest integrity.jsonmoon run cmd/main --target wasm -- check-manifest --json integrity.jsonmoon run cmd/main --target wasm -- manifest --root dist assets/app.js > integrity.json
moon run cmd/main --target wasm -- check-manifest --root staging integrity.jsonmoon run cmd/main --target wasm -- manifest --root dist --from assets.txt > integrity.jsonmoon run cmd/main --target wasm -- diff-manifest previous.json integrity.jsonmoon run cmd/main --target wasm -- check-manifest --json --min-algorithm sha384 integrity.jsonmoon add yiwnagmolu/moonsri@0.5.1import {
"yiwnagmolu/moonsri" @sri,
}
pkgtype(kind: "executable")///|
fn main {
let data = b"abc"
let metadata = @sri.generate(data[:], @sri.Sha256)
println(metadata)
}moon check --target wasm
moon test --target wasm
moon test --target js
moon info
moon fmttype Hasherpub(all) enum Verdict {
Match
Mismatch
NoSupportedMetadata
}fn canonical_metadata(input : String) -> String?Install
Download zipMoonBit Subresource Integrity toolkit with HTML audits, trusted baselines, and release-to-release HTML reference diffs