0.5.0
Added
- add the explicit ESM
react-native-bs-diff-patch/webentry for browser and
desktop WebView byte operations, including typed declarations, Worker jobs,
progress, cancellation, input/output limits, patch inspection, and
byte-for-byte verification; - publish a Node-free browser/Worker WebAssembly artifact alongside the
Node-compatible artifact, while keeping the existing root React Native,
Node, and CLI loading paths; - add the ESM
react-native-bs-diff-patch/toolkitentry for normalized
manifests, multi-baseline bundles, canonical payloads, candidate selection,
error classification, and header-only inspection; - add tarball consumer checks for
/weband/toolkit, production Vite
resource loading, offline browser execution, and TypeScript resolution; - add the Node release helpers, CLI, GitHub Action, and BSDIFF40 converter
needed to prepare verified release artifacts without changing the runtime's
ENDSLEY/BSDIFF43compatibility contract; - add bilingual WebView integration, packaging, lifecycle, CSP, resource
budget, trust-boundary, and release documentation.
Compatibility and release boundaries
- keep the existing root CommonJS build, React Native conditional exports,
native path API, and Node-compatibleweb/bsdiffpatch.mjs; - keep
/weband/toolkitESM-only, and map the browser Worker graph to
web/bsdiffpatch.browser.mjswithout a CDN or Node runtime fallback; - keep
BSDIFF40as a header-inspection/conversion case only; runtime
generation and application remainENDSLEY/BSDIFF43; - leave file authorization, persistence, and final replacement to downstream
desktop applications. Tauri WebView acceptance remains a downstream test,
and registry smoke checks remain a post-release validation step.
Security and compatibility scope
- enforce a zero-byte output budget during C compressed output writes, and add
control-flow guards for malformed or non-progressing patch streams; - classify toolkit array cycles as
EINVALID_MANIFEST, preserve a literal
__proto__object key during canonicalization, and reject invalid selection
budgets even when the requested baseline has no matching candidate; - retain first-match candidate selection rather than silently choosing the
smallest patch, while keeping the root React Native/Node compatibility paths
and theENDSLEY/BSDIFF43runtime format unchanged.
Install: npm install react-native-bs-diff-patch@0.5.0
Full changelog: v0.4.0...v0.5.0