Skip to content

feat(web): add standalone browser SDK - #424

Merged
JimmyDaddy merged 3 commits into
masterfrom
feat/standalone-web-sdk
Aug 31, 2026
Merged

JimmyDaddy merged 3 commits into
masterfrom
feat/standalone-web-sdk

Conversation

@JimmyDaddy

@JimmyDaddy JimmyDaddy commented Aug 31, 2026 •

Copy link
Copy Markdown
Owner

Browser-only consumers currently inherit the legacy Core/Editor packages’ required React Native peers. This adds a standalone package while keeping existing package names, exports, peers, native entry selection, and algorithms intact.

Changes:

  • Add @image-marker/web@0.1.0 with root, headless editor, Web adapter, and public Worker resource exports, ESM/CJS, and self-contained declarations.
  • Build from the authoritative shared Core/editor sources; preserve migration normalization and validation through the existing Core wrapper.
  • Add per-instance resource/execution adapters, honest cancellation capabilities, host termination acknowledgement, and cleanup/isolation checks.
  • Read local metadata without fetch(dataURL), including cleanup when a resource factory fails.
  • Move website runtime examples to public package exports and add bilingual documentation and a minimal Vite example.
  • Wire package/API/size/consumer gates and the Web release/registry verification route.

Validation:

  • Root Jest: 158 tests; Web: 69 tests, 66.62% branch coverage / 78.81% lines; Editor: 28 tests; Recipe/Node/CLI and release/CI guards pass.
  • Lint and strict TypeScript pass, including standalone declarations with skipLibCheck: false.
  • Real external tarball consumer: 42 checks covering normal installation without peer bypass, ESM/CJS, Vite production output, fixed-font/pixel assertions, Blob/File, Recipe, editor undo/redo, locator Worker and real host cancellation.
  • Website build and Chrome playground/tools/accessibility smoke pass; legacy packed consumers pass.
  • Android library Release build and all four 16 KB ABI checks pass; RN/Expo bundles and three focused iOS Simulator tests pass.
  • Full hosted CI remains the merge gate. Local Firefox/WebKit binaries were unavailable; no Tauri platform validation is claimed.

Release scope: new Web package only, version 0.1.0. The existing packages are not version-bumped. Publication follows successful PR checks and promotion into the protected release branch.

CI follow-through:

  • Isolate concurrency per PR so promotion and feature PRs do not cancel each other.
  • Replace Expo's mutable online patch-version recommendation check with a strict check against the installed SDK's compatibility metadata; keep the remaining 19 Expo Doctor checks online. Seven regression tests reject missing metadata/packages, incompatible versions, and undeclared prereleases. No RN/Expo dependency or lockfile upgrade.

@JimmyDaddy
JimmyDaddy merged commit 6f7f950 into master Aug 31, 2026
40 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant