From a93f905b73508f1f800bdccb52f15b8dd3e232df Mon Sep 17 00:00:00 2001 From: "street-side-software-automation[bot]" <74785433+street-side-software-automation[bot]@users.noreply.github.com> Date: Fri, 26 Aug 2022 09:36:34 +0200 Subject: [PATCH] fix: Workflow Bot -- Update ALL Dependencies (main) (#917) fix: Workflow Bot -- Update ALL Dependencies Co-authored-by: Jason3S --- action/node_modules/fast-equals/CHANGELOG.md | 4 ++ action/node_modules/fast-equals/README.md | 2 +- .../fast-equals/dist/fast-equals.cjs.js | 28 +++++----- .../fast-equals/dist/fast-equals.esm.js | 28 +++++----- .../fast-equals/dist/fast-equals.js | 28 +++++----- .../fast-equals/dist/fast-equals.min.js | 2 +- .../fast-equals/dist/fast-equals.mjs | 28 +++++----- action/node_modules/fast-equals/package.json | 52 +++++++++---------- .../fast-equals/src/comparator.ts | 16 +++--- yarn.lock | 6 +-- 10 files changed, 95 insertions(+), 99 deletions(-) diff --git a/action/node_modules/fast-equals/CHANGELOG.md b/action/node_modules/fast-equals/CHANGELOG.md index 5b78875f5..a3f731443 100644 --- a/action/node_modules/fast-equals/CHANGELOG.md +++ b/action/node_modules/fast-equals/CHANGELOG.md @@ -1,5 +1,9 @@ # fast-equals CHANGELOG +## 4.0.3 + +- Remove unnecessary second strict equality check for objects in edge-case scenarios + ## 4.0.2 - [#85](https://github.com/planttheidea/fast-equals/issues/85) - `createCustomCircularEqual` typing is incorrect diff --git a/action/node_modules/fast-equals/README.md b/action/node_modules/fast-equals/README.md index b59bab505..e6666f3b1 100644 --- a/action/node_modules/fast-equals/README.md +++ b/action/node_modules/fast-equals/README.md @@ -210,7 +210,7 @@ Some recipes have been created to provide examples of use-cases for `createCusto - [Explicit property check](./recipes/explicit-property-check.md) - [Using `meta` in comparison](./recipes//using-meta-in-comparison.md) - [Comparing non-standard properties](./recipes/non-standard-properties.md) -- [Strict property descriptor comparison](./recipes/strict-equality-checks.md) +- [Strict property descriptor comparison](./recipes/strict-property-descriptor-check.md) ### `createCustomCircularEqual` diff --git a/action/node_modules/fast-equals/dist/fast-equals.cjs.js b/action/node_modules/fast-equals/dist/fast-equals.cjs.js index 56fb61858..0005ebfd0 100644 --- a/action/node_modules/fast-equals/dist/fast-equals.cjs.js +++ b/action/node_modules/fast-equals/dist/fast-equals.cjs.js @@ -69,10 +69,9 @@ function isPromiseLike(value) { /** * Whether the values passed are strictly equal or both NaN. */ -var sameValueZeroEqual = Object.is || - function sameValueZeroEqual(a, b) { - return a === b || (a !== a && b !== b); - }; +function sameValueZeroEqual(a, b) { + return a === b || (a !== a && b !== b); +} var ARGUMENTS_TAG = '[object Arguments]'; var BOOLEAN_TAG = '[object Boolean]'; @@ -153,7 +152,7 @@ function createComparator(_a) { // The exception for value comparison is `Promise`-like contracts. These should be // treated the same as standard `Promise` objects, which means strict equality. return isPromiseLike(a) || isPromiseLike(b) - ? a === b + ? false : areObjectsEqual(a, b, isEqual, meta); } // As the penultimate fallback, check if the values passed are primitive wrappers. This @@ -162,18 +161,18 @@ function createComparator(_a) { if (aTag === BOOLEAN_TAG || aTag === NUMBER_TAG || aTag === STRING_TAG) { return sameValueZeroEqual(a.valueOf(), b.valueOf()); } - // If not matching any tags that require a specific type of comparison, then use strict - // equality. This is for a few reasons: - // - For types that cannot be introspected (`Promise`, `WeakMap`, etc.), this is the only + // If not matching any tags that require a specific type of comparison, then we hard-code false because + // the only thing remaining is strict equality, which has already been compared. This is for a few reasons: + // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only // comparison that can be made. // - For types that can be introspected, but rarely have requirements to be compared // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common - // use-cases. - // - For types that can be introspected, but do not have an objective definition of what - // equality is (`Error`, etc.), the subjective decision was to be conservative. + // use-cases (may be included in a future release, if requested enough). + // - For types that can be introspected but do not have an objective definition of what + // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare. // In all cases, these decisions should be reevaluated based on changes to the language and // common development practices. - return a === b; + return false; } return comparator; } @@ -259,14 +258,13 @@ var areMapsEqualCircular = createIsCircular(areMapsEqual); var OWNER = '_owner'; var hasOwnProperty = Object.prototype.hasOwnProperty; -var getProperties = Object.keys; /** * Whether the objects are equal in value. */ function areObjectsEqual(a, b, isEqual, meta) { - var keysA = getProperties(a); + var keysA = Object.keys(a); var index = keysA.length; - if (getProperties(b).length !== index) { + if (Object.keys(b).length !== index) { return false; } var key; diff --git a/action/node_modules/fast-equals/dist/fast-equals.esm.js b/action/node_modules/fast-equals/dist/fast-equals.esm.js index ccc9f8830..e6d118aae 100644 --- a/action/node_modules/fast-equals/dist/fast-equals.esm.js +++ b/action/node_modules/fast-equals/dist/fast-equals.esm.js @@ -65,10 +65,9 @@ function isPromiseLike(value) { /** * Whether the values passed are strictly equal or both NaN. */ -var sameValueZeroEqual = Object.is || - function sameValueZeroEqual(a, b) { - return a === b || (a !== a && b !== b); - }; +function sameValueZeroEqual(a, b) { + return a === b || (a !== a && b !== b); +} var ARGUMENTS_TAG = '[object Arguments]'; var BOOLEAN_TAG = '[object Boolean]'; @@ -149,7 +148,7 @@ function createComparator(_a) { // The exception for value comparison is `Promise`-like contracts. These should be // treated the same as standard `Promise` objects, which means strict equality. return isPromiseLike(a) || isPromiseLike(b) - ? a === b + ? false : areObjectsEqual(a, b, isEqual, meta); } // As the penultimate fallback, check if the values passed are primitive wrappers. This @@ -158,18 +157,18 @@ function createComparator(_a) { if (aTag === BOOLEAN_TAG || aTag === NUMBER_TAG || aTag === STRING_TAG) { return sameValueZeroEqual(a.valueOf(), b.valueOf()); } - // If not matching any tags that require a specific type of comparison, then use strict - // equality. This is for a few reasons: - // - For types that cannot be introspected (`Promise`, `WeakMap`, etc.), this is the only + // If not matching any tags that require a specific type of comparison, then we hard-code false because + // the only thing remaining is strict equality, which has already been compared. This is for a few reasons: + // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only // comparison that can be made. // - For types that can be introspected, but rarely have requirements to be compared // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common - // use-cases. - // - For types that can be introspected, but do not have an objective definition of what - // equality is (`Error`, etc.), the subjective decision was to be conservative. + // use-cases (may be included in a future release, if requested enough). + // - For types that can be introspected but do not have an objective definition of what + // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare. // In all cases, these decisions should be reevaluated based on changes to the language and // common development practices. - return a === b; + return false; } return comparator; } @@ -255,14 +254,13 @@ var areMapsEqualCircular = createIsCircular(areMapsEqual); var OWNER = '_owner'; var hasOwnProperty = Object.prototype.hasOwnProperty; -var getProperties = Object.keys; /** * Whether the objects are equal in value. */ function areObjectsEqual(a, b, isEqual, meta) { - var keysA = getProperties(a); + var keysA = Object.keys(a); var index = keysA.length; - if (getProperties(b).length !== index) { + if (Object.keys(b).length !== index) { return false; } var key; diff --git a/action/node_modules/fast-equals/dist/fast-equals.js b/action/node_modules/fast-equals/dist/fast-equals.js index b752a131a..c4a7f07f6 100644 --- a/action/node_modules/fast-equals/dist/fast-equals.js +++ b/action/node_modules/fast-equals/dist/fast-equals.js @@ -71,10 +71,9 @@ /** * Whether the values passed are strictly equal or both NaN. */ - var sameValueZeroEqual = Object.is || - function sameValueZeroEqual(a, b) { - return a === b || (a !== a && b !== b); - }; + function sameValueZeroEqual(a, b) { + return a === b || (a !== a && b !== b); + } var ARGUMENTS_TAG = '[object Arguments]'; var BOOLEAN_TAG = '[object Boolean]'; @@ -155,7 +154,7 @@ // The exception for value comparison is `Promise`-like contracts. These should be // treated the same as standard `Promise` objects, which means strict equality. return isPromiseLike(a) || isPromiseLike(b) - ? a === b + ? false : areObjectsEqual(a, b, isEqual, meta); } // As the penultimate fallback, check if the values passed are primitive wrappers. This @@ -164,18 +163,18 @@ if (aTag === BOOLEAN_TAG || aTag === NUMBER_TAG || aTag === STRING_TAG) { return sameValueZeroEqual(a.valueOf(), b.valueOf()); } - // If not matching any tags that require a specific type of comparison, then use strict - // equality. This is for a few reasons: - // - For types that cannot be introspected (`Promise`, `WeakMap`, etc.), this is the only + // If not matching any tags that require a specific type of comparison, then we hard-code false because + // the only thing remaining is strict equality, which has already been compared. This is for a few reasons: + // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only // comparison that can be made. // - For types that can be introspected, but rarely have requirements to be compared // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common - // use-cases. - // - For types that can be introspected, but do not have an objective definition of what - // equality is (`Error`, etc.), the subjective decision was to be conservative. + // use-cases (may be included in a future release, if requested enough). + // - For types that can be introspected but do not have an objective definition of what + // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare. // In all cases, these decisions should be reevaluated based on changes to the language and // common development practices. - return a === b; + return false; } return comparator; } @@ -261,14 +260,13 @@ var OWNER = '_owner'; var hasOwnProperty = Object.prototype.hasOwnProperty; - var getProperties = Object.keys; /** * Whether the objects are equal in value. */ function areObjectsEqual(a, b, isEqual, meta) { - var keysA = getProperties(a); + var keysA = Object.keys(a); var index = keysA.length; - if (getProperties(b).length !== index) { + if (Object.keys(b).length !== index) { return false; } var key; diff --git a/action/node_modules/fast-equals/dist/fast-equals.min.js b/action/node_modules/fast-equals/dist/fast-equals.min.js index 0f4e3cd00..e333d0696 100644 --- a/action/node_modules/fast-equals/dist/fast-equals.min.js +++ b/action/node_modules/fast-equals/dist/fast-equals.min.js @@ -1 +1 @@ -!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["fast-equals"]={})}(this,(function(e){"use strict";function r(e){return function(r,t,n,a,u,o,f){return e(r,t,f)}}function t(e){return function(r,t,n,a){if(!r||!t||"object"!=typeof r||"object"!=typeof t)return e(r,t,n,a);var u=a.get(r),o=a.get(t);if(u&&o)return u===t&&o===r;a.set(r,t),a.set(t,r);var f=e(r,t,n,a);return a.delete(r),a.delete(t),f}}function n(e,r){var t={};for(var n in e)t[n]=e[n];for(var n in r)t[n]=r[n];return t}function a(e){return e.constructor===Object||null==e.constructor}function u(e){return"function"==typeof e.then}var o=Object.is||function(e,r){return e===r||e!=e&&r!=r},f=Object.prototype.toString;function c(e){var r=e.areArraysEqual,t=e.areDatesEqual,n=e.areMapsEqual,c=e.areObjectsEqual,i=e.areRegExpsEqual,l=e.areSetsEqual,s=(0,e.createIsNestedEqual)(E);function E(e,E,p){if(e===E)return!0;if(!e||!E||"object"!=typeof e||"object"!=typeof E)return e!=e&&E!=E;if(a(e)&&a(E))return c(e,E,s,p);var q=Array.isArray(e),v=Array.isArray(E);if(q||v)return q===v&&r(e,E,s,p);var b=f.call(e);return b===f.call(E)&&("[object Date]"===b?t(e,E,s,p):"[object RegExp]"===b?i(e,E,s,p):"[object Map]"===b?n(e,E,s,p):"[object Set]"===b?l(e,E,s,p):"[object Object]"===b||"[object Arguments]"===b?u(e)||u(E)?e===E:c(e,E,s,p):"[object Boolean]"===b||"[object Number]"===b||"[object String]"===b?o(e.valueOf(),E.valueOf()):e===E)}return E}function i(e,r,t,n){var a=e.length;if(r.length!==a)return!1;for(;a-- >0;)if(!t(e[a],r[a],a,a,e,r,n))return!1;return!0}var l=t(i);function s(e,r){return o(e.valueOf(),r.valueOf())}function E(e,r,t,n){var a=e.size===r.size;if(!a)return!1;if(!e.size)return!0;var u={},o=0;return e.forEach((function(f,c){if(a){var i=!1,l=0;r.forEach((function(a,s){i||u[l]||!(i=t(c,s,o,l,e,r,n)&&t(f,a,c,s,e,r,n))||(u[l]=!0),l++})),o++,a=i}})),a}var p=t(E),q=Object.prototype.hasOwnProperty,v=Object.keys;function b(e,r,t,n){var a,u=v(e),o=u.length;if(v(r).length!==o)return!1;for(;o-- >0;){if("_owner"===(a=u[o])){var f=!!e.$$typeof,c=!!r.$$typeof;if((f||c)&&f!==c)return!1}if(!q.call(r,a)||!t(e[a],r[a],a,a,e,r,n))return!1}return!0}var j=t(b);function y(e,r){return e.source===r.source&&e.flags===r.flags}function d(e,r,t,n){var a=e.size===r.size;if(!a)return!1;if(!e.size)return!0;var u={};return e.forEach((function(o,f){if(a){var c=!1,i=0;r.forEach((function(a,l){c||u[i]||!(c=t(o,a,f,l,e,r,n))||(u[i]=!0),i++})),a=c}})),a}var g=t(d),O=Object.freeze({areArraysEqual:i,areDatesEqual:s,areMapsEqual:E,areObjectsEqual:b,areRegExpsEqual:y,areSetsEqual:d,createIsNestedEqual:r}),h=Object.freeze({areArraysEqual:l,areDatesEqual:s,areMapsEqual:p,areObjectsEqual:j,areRegExpsEqual:y,areSetsEqual:g,createIsNestedEqual:r}),z=c(O),A=c(n(O,{createIsNestedEqual:function(){return o}})),M=c(h),m=c(n(h,{createIsNestedEqual:function(){return o}}));e.circularDeepEqual=function(e,r){return M(e,r,new WeakMap)},e.circularShallowEqual=function(e,r){return m(e,r,new WeakMap)},e.createCustomCircularEqual=function(e){var r=c(n(h,e(h)));return function(e,t,n){return void 0===n&&(n=new WeakMap),r(e,t,n)}},e.createCustomEqual=function(e){return c(n(O,e(O)))},e.deepEqual=function(e,r){return z(e,r,void 0)},e.sameValueZeroEqual=o,e.shallowEqual=function(e,r){return A(e,r,void 0)},Object.defineProperty(e,"__esModule",{value:!0})})); +!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self)["fast-equals"]={})}(this,(function(e){"use strict";function r(e){return function(r,t,n,a,u,o,f){return e(r,t,f)}}function t(e){return function(r,t,n,a){if(!r||!t||"object"!=typeof r||"object"!=typeof t)return e(r,t,n,a);var u=a.get(r),o=a.get(t);if(u&&o)return u===t&&o===r;a.set(r,t),a.set(t,r);var f=e(r,t,n,a);return a.delete(r),a.delete(t),f}}function n(e,r){var t={};for(var n in e)t[n]=e[n];for(var n in r)t[n]=r[n];return t}function a(e){return e.constructor===Object||null==e.constructor}function u(e){return"function"==typeof e.then}function o(e,r){return e===r||e!=e&&r!=r}var f=Object.prototype.toString;function c(e){var r=e.areArraysEqual,t=e.areDatesEqual,n=e.areMapsEqual,c=e.areObjectsEqual,i=e.areRegExpsEqual,l=e.areSetsEqual,s=(0,e.createIsNestedEqual)(E);function E(e,E,p){if(e===E)return!0;if(!e||!E||"object"!=typeof e||"object"!=typeof E)return e!=e&&E!=E;if(a(e)&&a(E))return c(e,E,s,p);var q=Array.isArray(e),v=Array.isArray(E);if(q||v)return q===v&&r(e,E,s,p);var b=f.call(e);return b===f.call(E)&&("[object Date]"===b?t(e,E,s,p):"[object RegExp]"===b?i(e,E,s,p):"[object Map]"===b?n(e,E,s,p):"[object Set]"===b?l(e,E,s,p):"[object Object]"===b||"[object Arguments]"===b?!u(e)&&!u(E)&&c(e,E,s,p):("[object Boolean]"===b||"[object Number]"===b||"[object String]"===b)&&o(e.valueOf(),E.valueOf()))}return E}function i(e,r,t,n){var a=e.length;if(r.length!==a)return!1;for(;a-- >0;)if(!t(e[a],r[a],a,a,e,r,n))return!1;return!0}var l=t(i);function s(e,r){return o(e.valueOf(),r.valueOf())}function E(e,r,t,n){var a=e.size===r.size;if(!a)return!1;if(!e.size)return!0;var u={},o=0;return e.forEach((function(f,c){if(a){var i=!1,l=0;r.forEach((function(a,s){i||u[l]||!(i=t(c,s,o,l,e,r,n)&&t(f,a,c,s,e,r,n))||(u[l]=!0),l++})),o++,a=i}})),a}var p=t(E),q=Object.prototype.hasOwnProperty;function v(e,r,t,n){var a,u=Object.keys(e),o=u.length;if(Object.keys(r).length!==o)return!1;for(;o-- >0;){if("_owner"===(a=u[o])){var f=!!e.$$typeof,c=!!r.$$typeof;if((f||c)&&f!==c)return!1}if(!q.call(r,a)||!t(e[a],r[a],a,a,e,r,n))return!1}return!0}var b=t(v);function j(e,r){return e.source===r.source&&e.flags===r.flags}function y(e,r,t,n){var a=e.size===r.size;if(!a)return!1;if(!e.size)return!0;var u={};return e.forEach((function(o,f){if(a){var c=!1,i=0;r.forEach((function(a,l){c||u[i]||!(c=t(o,a,f,l,e,r,n))||(u[i]=!0),i++})),a=c}})),a}var d=t(y),g=Object.freeze({areArraysEqual:i,areDatesEqual:s,areMapsEqual:E,areObjectsEqual:v,areRegExpsEqual:j,areSetsEqual:y,createIsNestedEqual:r}),O=Object.freeze({areArraysEqual:l,areDatesEqual:s,areMapsEqual:p,areObjectsEqual:b,areRegExpsEqual:j,areSetsEqual:d,createIsNestedEqual:r}),h=c(g),z=c(n(g,{createIsNestedEqual:function(){return o}})),A=c(O),M=c(n(O,{createIsNestedEqual:function(){return o}}));e.circularDeepEqual=function(e,r){return A(e,r,new WeakMap)},e.circularShallowEqual=function(e,r){return M(e,r,new WeakMap)},e.createCustomCircularEqual=function(e){var r=c(n(O,e(O)));return function(e,t,n){return void 0===n&&(n=new WeakMap),r(e,t,n)}},e.createCustomEqual=function(e){return c(n(g,e(g)))},e.deepEqual=function(e,r){return h(e,r,void 0)},e.sameValueZeroEqual=o,e.shallowEqual=function(e,r){return z(e,r,void 0)},Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/action/node_modules/fast-equals/dist/fast-equals.mjs b/action/node_modules/fast-equals/dist/fast-equals.mjs index ad4a27fad..440f04fb8 100644 --- a/action/node_modules/fast-equals/dist/fast-equals.mjs +++ b/action/node_modules/fast-equals/dist/fast-equals.mjs @@ -65,10 +65,9 @@ function isPromiseLike(value) { /** * Whether the values passed are strictly equal or both NaN. */ -var sameValueZeroEqual = Object.is || - function sameValueZeroEqual(a, b) { - return a === b || (a !== a && b !== b); - }; +function sameValueZeroEqual(a, b) { + return a === b || (a !== a && b !== b); +} var ARGUMENTS_TAG = '[object Arguments]'; var BOOLEAN_TAG = '[object Boolean]'; @@ -149,7 +148,7 @@ function createComparator(_a) { // The exception for value comparison is `Promise`-like contracts. These should be // treated the same as standard `Promise` objects, which means strict equality. return isPromiseLike(a) || isPromiseLike(b) - ? a === b + ? false : areObjectsEqual(a, b, isEqual, meta); } // As the penultimate fallback, check if the values passed are primitive wrappers. This @@ -158,18 +157,18 @@ function createComparator(_a) { if (aTag === BOOLEAN_TAG || aTag === NUMBER_TAG || aTag === STRING_TAG) { return sameValueZeroEqual(a.valueOf(), b.valueOf()); } - // If not matching any tags that require a specific type of comparison, then use strict - // equality. This is for a few reasons: - // - For types that cannot be introspected (`Promise`, `WeakMap`, etc.), this is the only + // If not matching any tags that require a specific type of comparison, then we hard-code false because + // the only thing remaining is strict equality, which has already been compared. This is for a few reasons: + // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only // comparison that can be made. // - For types that can be introspected, but rarely have requirements to be compared // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common - // use-cases. - // - For types that can be introspected, but do not have an objective definition of what - // equality is (`Error`, etc.), the subjective decision was to be conservative. + // use-cases (may be included in a future release, if requested enough). + // - For types that can be introspected but do not have an objective definition of what + // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare. // In all cases, these decisions should be reevaluated based on changes to the language and // common development practices. - return a === b; + return false; } return comparator; } @@ -255,14 +254,13 @@ var areMapsEqualCircular = createIsCircular(areMapsEqual); var OWNER = '_owner'; var hasOwnProperty = Object.prototype.hasOwnProperty; -var getProperties = Object.keys; /** * Whether the objects are equal in value. */ function areObjectsEqual(a, b, isEqual, meta) { - var keysA = getProperties(a); + var keysA = Object.keys(a); var index = keysA.length; - if (getProperties(b).length !== index) { + if (Object.keys(b).length !== index) { return false; } var key; diff --git a/action/node_modules/fast-equals/package.json b/action/node_modules/fast-equals/package.json index 376bf434b..28592e81c 100644 --- a/action/node_modules/fast-equals/package.json +++ b/action/node_modules/fast-equals/package.json @@ -7,47 +7,47 @@ "description": "A blazing fast equality comparison, either shallow or deep", "devDependencies": { "@rollup/plugin-node-resolve": "^13.1.3", - "@types/jest": "^28.1.1", - "@types/lodash": "^4.14.178", - "@types/node": "^17.0.40", - "@types/ramda": "^0.28.13", - "@types/react": "^18.0.11", - "@typescript-eslint/eslint-plugin": "^5.27.0", - "@typescript-eslint/parser": "^5.27.0", + "@types/jest": "^28.1.8", + "@types/lodash": "^4.14.184", + "@types/node": "^18.7.13", + "@types/ramda": "^0.28.15", + "@types/react": "^18.0.17", + "@typescript-eslint/eslint-plugin": "^5.35.1", + "@typescript-eslint/parser": "^5.35.1", "benchee": "^1.1.0", "cli-table3": "^0.6.1", "decircularize": "^1.0.0", - "deep-eql": "^4.0.0", + "deep-eql": "^4.1.0", "deep-equal": "^2.0.5", - "eslint": "^8.17.0", + "eslint": "^8.22.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.28.0", - "eslint-webpack-plugin": "^3.1.1", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-react": "^7.31.0", + "eslint-webpack-plugin": "^3.2.0", "fast-deep-equal": "^3.1.3", "fs-extra": "^10.0.0", "html-webpack-plugin": "^5.5.0", "in-publish": "^2.0.0", - "jest": "^28.1.0", + "jest": "^28.1.3", "lodash": "^4.17.21", "nano-equal": "^2.0.2", - "prettier": "^2.6.2", - "react": "^18.1.0", - "react-dom": "^18.1.0", + "prettier": "^2.7.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-fast-compare": "^3.2.0", - "release-it": "^15.0.0", - "rollup": "^2.75.5", + "release-it": "^15.4.0", + "rollup": "^2.78.1", "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.32.0", + "rollup-plugin-typescript2": "^0.33.0", "shallow-equal-fuzzy": "^0.0.2", - "ts-jest": "^28.0.4", - "ts-loader": "^9.2.6", - "typescript": "^4.7.3", + "ts-jest": "^28.0.8", + "ts-loader": "^9.3.1", + "typescript": "^4.7.4", "underscore": "^1.13.4", - "webpack": "^5.73.0", - "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.9.1" + "webpack": "^5.74.0", + "webpack-cli": "^4.10.0", + "webpack-dev-server": "^4.10.0" }, "homepage": "https://github.com/planttheidea/fast-equals#readme", "keywords": [ @@ -85,5 +85,5 @@ }, "sideEffects": false, "types": "index.d.ts", - "version": "4.0.2" + "version": "4.0.3" } diff --git a/action/node_modules/fast-equals/src/comparator.ts b/action/node_modules/fast-equals/src/comparator.ts index 236101694..ad9104984 100644 --- a/action/node_modules/fast-equals/src/comparator.ts +++ b/action/node_modules/fast-equals/src/comparator.ts @@ -106,7 +106,7 @@ export function createComparator({ // The exception for value comparison is `Promise`-like contracts. These should be // treated the same as standard `Promise` objects, which means strict equality. return isPromiseLike(a) || isPromiseLike(b) - ? a === b + ? false : areObjectsEqual(a, b, isEqual, meta); } @@ -117,18 +117,18 @@ export function createComparator({ return sameValueZeroEqual(a.valueOf(), b.valueOf()); } - // If not matching any tags that require a specific type of comparison, then use strict - // equality. This is for a few reasons: - // - For types that cannot be introspected (`Promise`, `WeakMap`, etc.), this is the only + // If not matching any tags that require a specific type of comparison, then we hard-code false because + // the only thing remaining is strict equality, which has already been compared. This is for a few reasons: + // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only // comparison that can be made. // - For types that can be introspected, but rarely have requirements to be compared // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common - // use-cases. - // - For types that can be introspected, but do not have an objective definition of what - // equality is (`Error`, etc.), the subjective decision was to be conservative. + // use-cases (may be included in a future release, if requested enough). + // - For types that can be introspected but do not have an objective definition of what + // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare. // In all cases, these decisions should be reevaluated based on changes to the language and // common development practices. - return a === b; + return false; } return comparator as EqualityComparator; diff --git a/yarn.lock b/yarn.lock index 34b58a00a..414236011 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2304,9 +2304,9 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-equals@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.2.tgz#f22ce2b7807bd75f71c5a6d1d9f43a6c7cf466e4" - integrity sha512-sHhA58JSsyEr5XpIipzrbxUQJIW0p4hDc98OEbbB1FgEZfmnFna4ZQxZ0lYuFynG0q2M+H682m26lqk9j/H2gQ== + version "4.0.3" + resolved "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz#72884cc805ec3c6679b99875f6b7654f39f0e8c7" + integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg== fast-glob@^3.2.9: version "3.2.11"