feat: replace legacy dependencies with platform builtins - #689
Merged
Conversation
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
August 26, 2026 16:17
c01641c to
f135877
Compare
vladfrangu
approved these changes
Sep 1, 2026
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:12
f29cd8f to
0a9bf67
Compare
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:44
0a9bf67 to
f6e7d86
Compare
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:45
f6e7d86 to
f86648a
Compare
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:45
f86648a to
a6910a4
Compare
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:45
a6910a4 to
26cb83c
Compare
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:45
26cb83c to
f3d68c1
Compare
- @apify/image_proxy_client uses Web Crypto instead of create-hmac and encodeURIComponent instead of node:querystring, making the package fully runtime-independent (no Node.js builtins left) - @apify/markdown uses native String.matchAll instead of match-all - @apify/pseudo_url drops its node:util import Steps towards runtime independence of the shared packages (#537). BREAKING CHANGE: ImageProxyClient methods (generateUrl, generateUrlWithParam, updateImagesInHtml, createImageHtml) are now async and return promises, as Web Crypto has no sync API. Generated URLs and digests are unchanged.
B4nan
force-pushed
the
feat/runtime-independent-deps
branch
from
September 2, 2026 08:46
f3d68c1 to
9b2b36b
Compare
B4nan
added a commit
that referenced
this pull request
Sep 2, 2026
image_proxy_client uses Web Crypto instead of create-hmac and encodeURIComponent instead of node:querystring; markdown uses native String.matchAll; pseudo_url drops node:util. Steps towards runtime independence (#537). BREAKING CHANGE: ImageProxyClient methods (generateUrl, generateUrlWithParam, updateImagesInHtml, createImageHtml) are now async and return promises. Generated URLs and digests are unchanged.
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.
Steps towards runtime independence of the shared packages (#537), using the room the major release gives us:
@apify/image_proxy_clientnow uses Web Crypto instead ofcreate-hmacandencodeURIComponentinstead ofnode:querystring, which leaves it with no Node.js builtins at all. Web Crypto has no sync API, so the four public methods became async (the breaking part). The pre-existing tests with hard-coded digests confirm generated URLs are byte-identical. apify-core is not affected: it uses its own internal@apify-packages/image-proxy-clientfork, not this package.@apify/markdownuses nativeString.matchAllinstead of thematch-allpackage (and drops the hand-written.d.tsfor it).@apify/pseudo_urldrops itsnode:utilimport; the invalid-input error message now renders the value viaJSON.stringifyinstead ofinspect(test expectations updated).Not touched, and why: the sync
createHmacSignaturein@apify/utilitiesis still used 27x in apify-core and 4x in the SDK, so it stays deprecated rather than removed;EventEmitterin@apify/log, streams in@apify/utilitiesand theKeyObject-based RSA crypto have no drop-in Web API equivalents and remain as future work on #537.BREAKING CHANGE:
ImageProxyClientmethods are now async. Stacked on the marked PR.