refactor [NET-1606]: Make utils package work without polyfilling
#3319
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.
Summary
Refactors
@streamr/utilsto eliminate polyfill requirements by implementing platform-specific builds for Node.js and browser environments using Rollup, with separate crypto/MD5 implementations and module aliasing.Changes
Build system and packaging:
tsconfig.rollup.json, usetsxto execute.mtsconfig directlydist/rather than source pathsCross-platform crypto and environment:
src/node/crypto.ts,src/browser/crypto.ts)src/node/md5.ts,src/browser/md5.ts)src/node/env.ts,src/browser/env.ts) replaces directprocess.envaccessosandbuffermodulescryptoglobal check usingglobalThisto handle non-secure contextsCode quality improvements:
@crypto,@md5,@/) configured across Jest, Karma, and RollupLimitations and future improvements
.mjsfor Node 20 compatibility (.mtsdirect execution fails)Checklist before requesting a review
TODOcomments left behind are meant to be left in.✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.