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.
This is a major bump due to a couple of breaking changes. The only one that affects us is the bump from Node 12 to Node 18 due to the binaries being built with newer Go (evanw/esbuild#3802). This is a problem because we still build/test on Node 14.
We could split the build so that we build on the latest Node, then switch to older Node for testing, but that will require quite a bit of hackery in our build scripts to split these apart, when the original design was to be simple.
For now, just hack the missing API back onto Node's crypto module with the same call that Go used to have before they started requiring Node 18. Curiously, things don't break when I don't apply this hack, so it's possible that the APIs in question are simply not called in the code paths we use. But I've seen it break in: https://github.com/evanw/esbuild/actions/runs/9672521120/job/26684967350Hopefully esbuild doesn't actually start using newer syntax, though. They are well within their rights to, of course, at which point I'll have to add some mechanism to our build like
--only-build
and--no-build
to be able to split into two stages for continued testing.The above was mostly wrong, I don't know why I thought the wasm change mattered. We just use the regular API which just uses regular binaries.