feat: package sqlite kv-store backend for stricter browser envs#23089
Open
mverzilli wants to merge 2 commits intomerge-train/fairiesfrom
Open
feat: package sqlite kv-store backend for stricter browser envs#23089mverzilli wants to merge 2 commits intomerge-train/fairiesfrom
mverzilli wants to merge 2 commits intomerge-train/fairiesfrom
Conversation
… 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>
Thunkar
approved these changes
May 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
evalor freely instantiatingFunction's. This PR deals with said issues so that eventual wallet implementers don't have to.