Skip to content

feat: package sqlite kv-store backend for stricter browser envs#23089

Open
mverzilli wants to merge 2 commits intomerge-train/fairiesfrom
martin/wallet-sdk-browser-entry-point
Open

feat: package sqlite kv-store backend for stricter browser envs#23089
mverzilli wants to merge 2 commits intomerge-train/fairiesfrom
martin/wallet-sdk-browser-entry-point

Conversation

@mverzilli
Copy link
Copy Markdown
Contributor

While the current sqlite backend for kv-store works fine in vanilla browser environments, browser policies can be stricter for extensions. For example, Chromium's MV3 doesn't accept extensions using eval or freely instantiating Function's. This PR deals with said issues so that eventual wallet implementers don't have to.

mverzilli and others added 2 commits May 8, 2026 11:04
… builds

Adds a package-internal subpath import (#msgpackr) with a 'browser'
condition pointing at msgpackr/index-no-eval. Node consumers continue
to get the regular runtime-codegen build. Browser bundlers automatically
pick the CSP-safe variant via the standard browser condition.

Also updates vitest.config.ts to explicitly include msgpackr/index-no-eval
in optimizeDeps to avoid Vite discovery warnings during browser tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream ordered-binary performs dynamic code generation at module-init
to set up an unrolled string reader. That trips MV3 CSP and there's no
CSP-safe shipped build. We only consume three symbols (toBufferKey,
fromBufferKey, MAXIMUM_KEY) and none touch the dynamically-generated
readString path, so vendor a minimal CSP-safe implementation under
#ordered-binary's browser condition. Node consumers still get upstream.
A parity test on a representative key set guards against divergence on
future bumps.

Also adds Buffer.compare as a static method to the browser Buffer stub
so the parity test can byte-compare outputs in browser (Chromium) mode.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@mverzilli mverzilli requested a review from Thunkar May 8, 2026 12:20
@mverzilli mverzilli enabled auto-merge (squash) May 8, 2026 12:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants