-
Notifications
You must be signed in to change notification settings - Fork 0
[Snyk] Upgrade core-js from 3.12.0 to 3.45.1 #599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Snyk has created this PR to upgrade core-js from 3.12.0 to 3.45.1. See this package in npm: core-js See this project in Snyk: https://app.snyk.io/org/mohammadnewton/project/62ca605f-5f4e-444b-a866-1857eb3a59a6?utm_source=github&utm_medium=referral&page=upgrade-pr
Summary of ChangesHello @nejidevelops, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily focuses on updating the Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request upgrades core-js
by 90 minor versions, from 3.12.0
to 3.45.1
. While this is an automated Snyk PR, likely for security fixes, such a large jump for a critical polyfill library carries a high risk of introducing breaking changes. My review comment on package.json
details this risk, highlighting that the new core-js
version is significantly newer than what the project's build tools are designed for, and recommends thorough testing.
Separately, I've noticed several other key dependencies like @ngrx/*
and @angular/language-service
are outdated and incompatible with your Angular 15 setup. I recommend addressing these in separate PRs to improve project stability.
"@ngrx/store-devtools": "^12.1.0", | ||
"bulma": "^0.9.2", | ||
"core-js": "^3.6.4", | ||
"core-js": "^3.45.1", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a very large version jump for core-js
, spanning 90 minor versions. This carries a significant risk of introducing breaking changes or subtle regressions, as core-js
minor versions can contain breaking changes.
Your project's @angular-devkit/[email protected]
uses @babel/[email protected]
, which is built against core-js
versions up to ~3.25.1
. Upgrading to 3.45.1
is a significant leap beyond what your build tooling was tested with.
Due to the high risk, I strongly recommend thorough testing before merging:
- Full regression testing of the application.
- Cross-browser testing, especially on older browsers.
- Verifying the build process for new warnings or errors.
- Analyzing the final bundle size for unexpected increases.
Snyk has created this PR to upgrade core-js from 3.12.0 to 3.45.1.
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.
The recommended version is 90 versions ahead of your current version.
The recommended version was released 2 months ago.
Release notes
Package name: core-js
Map
upsert proposal with polyfilled methods in the pure versionbugs
fields topackage.json
of all packagesMap
upsert proposal features marked as shipped from Bun 1.2.20Uint8Array
to / from base64 and hex proposal:Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.setFromBase64
Uint8Array.prototype.setFromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
es.
namespace modules,/es/
and/stable/
namespaces entriesUint8Array
fromBase64 / setFromBase64 does not throw an error on incorrect length of base64 stringMath.sumPrecise
proposal:Math.sumPrecise
es.
namespace module,/es/
and/stable/
namespaces entriesIterator
sequencing proposal:Iterator.concat
/actual/
namespace entries, unconditional forced replacement changed to feature detectionMap
upsert proposal:Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
/actual/
namespace entries, unconditional forced replacement changed to feature detectionIterator
methods/stage/
entriesUint8Array
to / from base64 and hex proposal features marked as supported from V8 ~ Chromium 140Uint8Array.{ fromBase64, prototype.setFromBase64 }
marked as unsupported in Safari and supported only from Bun 1.2.20 because of a bug: it does not throw an error on incorrect length of base64 string%TypedArray%.prototype.with
marked as fixed in Safari 26.0Uint8Array
to / from base64 and hex stage 3 proposal:Uint8Array.fromHex
andUint8Array.prototype.{ setFromBase64, toBase64, toHex }
, thanks @ brc-ddGet
inIterator.zipKeyed
, following tc39/proposal-joint-iteration#43Iterator
sequencing stage 2.7 proposal:Iterator.concat
no longer reusesIteratorResult
object of concatenated iterators, following tc39/proposal-iterator-sequencing#26Iterator
chunking stage 2 proposal:Iterator.prototype.sliding
Number.prototype.clamp
stage 2 proposal:clamp
no longer throws an error onNaN
asmin
ormax
, following tc39/proposal-math-clamp#d2387791c265edf66fbe2455eab919016717ce6fSet.prototype.{ symmetricDifference, union }
detectionIterator
methods/full/{ instance, number/virtual }/clamp
entriesIterator
helpers marked as fixed and updated following the latest spec changes in Safari 26.0Set.prototype.{ difference, symmetricDifference, union }
marked as fixed in Safari 26.0SuppressedError
marked as fixed in FF141Error.isError
marked as fixed in Node 24.3setImmediate
andclearImmediate
marked as available from Deno 2.4Math.sumPrecise
marked as shipped in Bun 1.2.18%TypedArray%.prototype.with
marked as fixed in Bun 1.2.18Symbol.dispose
Symbol.asyncDispose
SuppressedError
DisposableStack
DisposableStack.prototype.dispose
DisposableStack.prototype.use
DisposableStack.prototype.adopt
DisposableStack.prototype.defer
DisposableStack.prototype.move
DisposableStack.prototype[@@ dispose]
AsyncDisposableStack
AsyncDisposableStack.prototype.disposeAsync
AsyncDisposableStack.prototype.use
AsyncDisposableStack.prototype.adopt
AsyncDisposableStack.prototype.defer
AsyncDisposableStack.prototype.move
AsyncDisposableStack.prototype[@@ asyncDispose]
Iterator.prototype[@@ dispose]
AsyncIterator.prototype[@@ asyncDispose]
es.
namespace module,/es/
and/stable/
namespaces entriesArray.fromAsync
proposal:Array.fromAsync
es.
namespace module,/es/
and/stable/
namespaces entriesError.isError
proposal:Error.isError
es.
namespace module,/es/
and/stable/
namespaces entriesIterator.zip
Iterator.zipKeyed
Iterator
chunking stage 2 proposal:Iterator.prototype.chunks
Iterator.prototype.windows
Number.prototype.clamp
proposal:Number.prototype.clamp
Math.clamp
was replaced withNumber.prototype.clamp
RangeError
ifmin <= max
or+0
min and-0
max, tc39/proposal-math-clamp/#22flags
getter PR. Native methods are not fixed, only own implementation updated for:RegExp.prototype[@@ match]
RegExp.prototype[@@ replace]
RegExp
flags in polyfills of some methods in engines without proper support ofRegExp.prototype.flags
and without polyfill of this getterthis
is updated whileSet.prototype.difference
is being executedthis
in the following methods:Set.prototype.symmetricDifference
Set.prototype.union
Iterator.prototype.drop
Iterator.prototype.filter
Iterator.prototype.flatMap
Iterator.prototype.map
Iterator.from
when underlying iterator'sreturn
method isnull
Array.prototype.with
when index coercion failsTypedArray.prototype.with
should truncate negative fractional index to zero, but instead throws an errorPromise
polyfill in the pure version/iterator/flat-map
entriesError.isError
marked not supported in Node because of a bugSet.prototype.difference
marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugSet.prototype.{ symmetricDifference, union }
marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugIterator.from
marked as not supported in Safari and supported only from Bun 1.2.5 because of a bugIterator
helpers marked as implemented from FF141Array.prototype.with
marked as supported only from FF140 because it throws an incorrect exception when index coercion failsTypedArray.prototype.with
marked as unsupported in Bun and Safari because it should truncate negative fractional index to zero, but instead throws an errorDisposableStack
andAsyncDisposableStack
marked as shipped in FF141 (SuppressedError
has a bug)AsyncDisposableStack
bugs marked as fixed in Deno 2.3.2SuppressedError
bugs (extra arguments support and arity) marked as fixed in Bun 1.2.15Map
upsert proposal:WeakMap.prototype.getOrInsertComputed
updated following tc39/proposal-upsert#79Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
Symbol
methods forRegExp
on primitive values following tc39/ecma262#3009:core-js
implementationsString.prototype.matchAll
String.prototype.match
String.prototype.replaceAll
String.prototype.replace
String.prototype.search
String.prototype.split
Uint8Array.prototype.setFromBase64
bug in some of Linux builds of WebKitIterator.prototype.drop
Iterator.prototype.every
Iterator.prototype.filter
Iterator.prototype.find
Iterator.prototype.flatMap
Iterator.prototype.forEach
Iterator.prototype.map
Iterator.prototype.reduce
Iterator.prototype.some
Iterator.prototype.take
AsyncIterator
helpersArray.fromAsync
(due to the lack of async feature detection capability - temporarily, only in owncore-js
implementation)AsyncIterator.from
Iterator.prototype.toAsync
undefined
initial parameter inIterator.prototype.reduce
(see WebKit bug)core-js-compat
andcore-js-builder
API:'intersect'
support fortargets.esmodules
(Babel 7 behavior)targets.esmodules: true
(Babel 7 behavior)RegExp.escape
marked as shipped from V8 ~ Chromium 136Error.isError
marked as shipped from FF138Iterator
helpers proposal features marked as supported from Deno 1.38.1 since it seems they were disabled in 1.38.0Iterator.prototype.{ drop, reduce, take }
methods marked as fixed in Bun 1.2.11RegExp.escape
proposal:RegExp.escape
es.
namespace module,/es/
and/stable/
namespaces entriesFloat16
proposal:Math.f16round
DataView.prototype.getFloat16
DataView.prototype.setFloat16
es.
namespace modules,/es/
and/stable/
namespaces entriesMath.clamp
stage 1 proposal:Math.clamp
Math
extensions proposal, February 2025 TC39 meetingAsyncDisposableStack
bug, tc39/proposal-explicit-resource-management/256DisposableStack
,SuppressedError
andIterator.prototype[@@ dispose]
marked as shipped from V8 ~ Chromium 134Error.isError
added and marked as shipped from V8 ~ Chromium 134Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from V8 ~ Chromium 135Iterator
helpers proposal features marked as shipped from Safari 18.4JSON.parse
source text access proposal features marked as shipped from Safari 18.4Math.sumPrecise
marked as shipped from FF137Error.isError
stage 3 proposal:Error.isError
.sham
Iterator
sequencing stage 2.7 proposal:IteratorResult
objects when possible, tc39/proposal-iterator-sequencing/17, tc39/proposal-iterator-sequencing/18, December 2024 TC39 meetingSet
methodsDataView.prototype.{ getFloat16, setFloat16 }
performance, #1379, thanks @ LeviPesin%TypedArray%.prototype.toSpliced
Math.scale
) available on globalRegExp.escape
marked as shipped from Safari 18.2Promise.try
marked as shipped from Safari 18.2Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from Safari 18.2Uint8Array
to / from base64 and hex proposal methods marked as shipped from Safari 18.2JSON.parse
source text access proposal features marked as shipped from FF135RegExp.escape
marked as shipped from FF134Promise.try
marked as shipped from FF134Symbol.dispose
,Symbol.asyncDispose
andIterator.prototype[@@ dispose]
marked as shipped from FF135JSON.parse
source text access proposal features marked as shipped from Bun 1.1.43URL.parse
was added - 22.1 instead of 22.0Iterator
helpers proposal:Iterator
Iterator.from
Iterator.prototype.drop
Iterator.prototype.every
Iterator.prototype.filter
Iterator.prototype.find
Iterator.prototype.flatMap
Iterator.prototype.forEach
Iterator.prototype.map
Iterator.prototype.reduce
Iterator.prototype.some
Iterator.prototype.take
Iterator.prototype.toArray
Iterator.prototype[@@ toStringTag]
es.
namespace modules,/es/
and/stable/
namespaces entriesPromise.try
:Promise.try
es.
namespace module,/es/
and/stable/
namespaces entries/actual|full/promise/try
entries for the callback arguments supportMath.sumPrecise
proposal:Math.sumPrecise
/actual/
namespace entries, unconditional forced replacement changed to feature detectionIterator
sequencing stage 2.7 proposal:Iterator.concat
Map
upsert stage 2 proposal:Map.prototype.getOrInsert
Map.prototype.getOrInsertComputed
WeakMap.prototype.getOrInsert
WeakMap.prototype.getOrInsertComputed
@@ species
pattern removed from%TypedArray%
andArrayBuffer
methods, tc39/ecma262/3450:%TypedArray%.prototype.filter
%TypedArray%.prototype.filterReject
%TypedArray%.prototype.map
%TypedArray%.prototype.slice
%TypedArray%.prototype.subarray
ArrayBuffer.prototype.slice
Uint8Array
to / from base64 and hex proposal methods marked as shipped from FF133self
descriptor is fixed in Deno 1.46.0Iterator
helpers proposal methods marked as shipped from Bun 1.1.31URLSearchParams
percent decoding, #1357, #1361, thanks @ slowcheetahIterator
helpers proposal methods marked as shipped from FF131Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from Bun 1.1.23RegExp.escape
marked as shipped from Bun 1.1.22Promise.try
marked as shipped from Bun 1.1.22Uint8Array
to / from base64 and hex proposal methods marked as shipped from Bun 1.1.22RegExp.escape
proposal:RegExp.escape
/actual/
namespace entries, unconditional forced replacement changed to feature detectionPromise.try
proposal:Promise.try
/actual/
namespace entries, unconditional forced replacement changed to feature detectionUint8Array
to / from base64 and hex stage 3 proposal:Uint8Array.fromBase64
Uint8Array.fromHex
Uint8Array.prototype.setFromBase64
Uint8Array.prototype.setFromHex
Uint8Array.prototype.toBase64
Uint8Array.prototype.toHex
Uint8Array.prototype.{ setFromBase64, setFromHex }
methodsUint8Array.fromBase64
andUint8Array.prototype.setFromBase64
lastChunkHandling
option, proposal-arraybuffer-base64/33Uint8Array.prototype.toBase64
omitPadding
option, proposal-arraybuffer-base64/60TypeError
on arrays backed by detached buffersRegExp
named capture groups polyfill in combination with non-capturing groups, #1352, thanks @ Ulopprocess.getBuiltinModule
for getting built-in NodeJS modules where it's availablehttps
instead ofhttp
inURL
constructor feature detection to avoid extra notifications from some overly vigilant security scanners, #1345browserslist
incore-js-compat
dependencies that fixes an upstream issue with incorrect interpretation of somebrowserslist
queries, #1344, browserslist/829, browserslist/836Object.groupBy
andMap.groupBy
to work for non-objectsRangeError
ifSet
methods are called on an object with negative size propertySet.prototype.symmetricDifference
to callthis.has
in each iterationArray.fromAsync
to not call theArray
constructor twiceURL.parse
Math.f16round
andDataView.prototype.{ getFloat16, setFloat16 }
marked as shipped from FF129Symbol.asyncDispose
added and marked as supported from V8 ~ Chromium 127Promise.try
added and marked as supported from V8 ~ Chromium 128self
descriptor is broken in Deno 1.45.3 (again)Important
Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information: