fast-equals 1.6.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/code/cache/1d20cee756560ed06433a2e7dba9165f54487f2a +1 -0
  2. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/code/cache/cb395dc6899b78eb42b4fab9df67376a0a00bf80 +1 -0
  3. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/code/cache/d800d7a0e39da81c91ab9c5059068c29ebc83792 +1 -0
  4. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/semanticDiagnostics/cache/1d20cee756560ed06433a2e7dba9165f54487f2a +1 -0
  5. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/semanticDiagnostics/cache/cb395dc6899b78eb42b4fab9df67376a0a00bf80 +1 -0
  6. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/semanticDiagnostics/cache/d800d7a0e39da81c91ab9c5059068c29ebc83792 +1 -0
  7. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/syntacticDiagnostics/cache/1d20cee756560ed06433a2e7dba9165f54487f2a +1 -0
  8. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/syntacticDiagnostics/cache/cb395dc6899b78eb42b4fab9df67376a0a00bf80 +1 -0
  9. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/syntacticDiagnostics/cache/d800d7a0e39da81c91ab9c5059068c29ebc83792 +1 -0
  10. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/types/cache/c0f16c9111806a91c6ae4b5d0b138e4841adf7c9 +0 -0
  11. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/types/cache/c9f40676a1b140ebc96dde967251686b673a9961 +0 -0
  12. package/.rpt2_cache/rpt2_3c5f4e5db6faf852c13e3cd5e0db7a72d0e60a69/types/cache/e578d3be8d82631bd5cd8272d6aa5a54ba064304 +0 -0
  13. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/code/cache/0ab301188498506f5c998a00679f29b8929634e4 +1 -0
  14. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/code/cache/1d20cee756560ed06433a2e7dba9165f54487f2a +1 -0
  15. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/code/cache/d800d7a0e39da81c91ab9c5059068c29ebc83792 +1 -0
  16. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/semanticDiagnostics/cache/0ab301188498506f5c998a00679f29b8929634e4 +1 -0
  17. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/semanticDiagnostics/cache/1d20cee756560ed06433a2e7dba9165f54487f2a +1 -0
  18. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/semanticDiagnostics/cache/d800d7a0e39da81c91ab9c5059068c29ebc83792 +1 -0
  19. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/syntacticDiagnostics/cache/0ab301188498506f5c998a00679f29b8929634e4 +1 -0
  20. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/syntacticDiagnostics/cache/1d20cee756560ed06433a2e7dba9165f54487f2a +1 -0
  21. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/syntacticDiagnostics/cache/d800d7a0e39da81c91ab9c5059068c29ebc83792 +1 -0
  22. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/types/cache/6982fa2ac1e62f4aebb1debc73977393caa0d5a4 +0 -0
  23. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/types/cache/c0f16c9111806a91c6ae4b5d0b138e4841adf7c9 +0 -0
  24. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/types/cache/c9f40676a1b140ebc96dde967251686b673a9961 +0 -0
  25. package/.rpt2_cache/rpt2_6a9ad0d85cd0ed74f9b918d742c78fdbe81d2201/types/cache/e578d3be8d82631bd5cd8272d6aa5a54ba064304 +0 -0
  26. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/code/cache/82edcf6c99dc3d5802a5a8d3dbfc69f1048b520f +1 -0
  27. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/code/cache/eb02971c7d2972b89cd15754372a7b9a0b328a30 +1 -0
  28. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/code/cache/f6056671db45d89ddf3a27b7cf6d454993cec47b +1 -0
  29. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/semanticDiagnostics/cache/82edcf6c99dc3d5802a5a8d3dbfc69f1048b520f +1 -0
  30. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/semanticDiagnostics/cache/eb02971c7d2972b89cd15754372a7b9a0b328a30 +1 -0
  31. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/semanticDiagnostics/cache/f6056671db45d89ddf3a27b7cf6d454993cec47b +1 -0
  32. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/syntacticDiagnostics/cache/82edcf6c99dc3d5802a5a8d3dbfc69f1048b520f +1 -0
  33. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/syntacticDiagnostics/cache/eb02971c7d2972b89cd15754372a7b9a0b328a30 +1 -0
  34. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/syntacticDiagnostics/cache/f6056671db45d89ddf3a27b7cf6d454993cec47b +1 -0
  35. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/types/cache/c0f16c9111806a91c6ae4b5d0b138e4841adf7c9 +0 -0
  36. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/types/cache/c9f40676a1b140ebc96dde967251686b673a9961 +0 -0
  37. package/.rpt2_cache/rpt2_cbc4c616fc0ab8863b2f9b3be2cc7ae6306d679d/types/cache/e578d3be8d82631bd5cd8272d6aa5a54ba064304 +0 -0
  38. package/BUILD.md +37 -0
  39. package/CHANGELOG.md +23 -0
  40. package/README.md +65 -84
  41. package/dist/fast-equals.cjs.js +415 -446
  42. package/dist/fast-equals.cjs.js.map +1 -1
  43. package/dist/fast-equals.esm.js +415 -446
  44. package/dist/fast-equals.esm.js.map +1 -1
  45. package/dist/fast-equals.js +415 -446
  46. package/dist/fast-equals.js.map +1 -1
  47. package/dist/fast-equals.min.js +1 -1
  48. package/dist/fast-equals.mjs +418 -0
  49. package/dist/fast-equals.mjs.map +1 -0
  50. package/index.d.ts +15 -14
  51. package/package.json +31 -47
  52. package/es/comparator.js +0 -86
  53. package/es/constants.js +0 -14
  54. package/es/index.js +0 -19
  55. package/es/utils.js +0 -333
  56. package/es-to-mjs.js +0 -14
  57. package/lib/comparator.js +0 -94
  58. package/lib/constants.js +0 -22
  59. package/lib/index.js +0 -36
  60. package/lib/utils.js +0 -386
  61. package/mjs/comparator.mjs +0 -86
  62. package/mjs/constants.mjs +0 -14
  63. package/mjs/index.mjs +0 -19
  64. package/mjs/utils.mjs +0 -333
  65. package/rollup.config.js +0 -55
  66. package/yarn-error.log +0 -8175
@@ -0,0 +1 @@
1
+ {"code":"import { areArraysEqual, areMapsEqual, areObjectsEqual, areRegExpsEqual, areSetsEqual, isPlainObject, isPromiseLike, sameValueZeroEqual, } from './utils';\r\nvar isArray = Array.isArray;\r\nvar HAS_MAP_SUPPORT = typeof Map === 'function';\r\nvar HAS_SET_SUPPORT = typeof Set === 'function';\r\nvar OBJECT_TYPEOF = 'object';\r\nexport function createComparator(createIsEqual) {\r\n var isEqual = \r\n /* eslint-disable no-use-before-define */\r\n typeof createIsEqual === 'function'\r\n ? createIsEqual(comparator)\r\n : comparator;\r\n /* eslint-enable */\r\n function comparator(a, b, meta) {\r\n if (sameValueZeroEqual(a, b)) {\r\n return true;\r\n }\r\n if (a && b && typeof a === OBJECT_TYPEOF && typeof b === OBJECT_TYPEOF) {\r\n if (isPlainObject(a) && isPlainObject(b)) {\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n var arrayA = isArray(a);\r\n var arrayB = isArray(b);\r\n if (arrayA || arrayB) {\r\n return arrayA === arrayB && areArraysEqual(a, b, isEqual, meta);\r\n }\r\n var aDate = a instanceof Date;\r\n var bDate = b instanceof Date;\r\n if (aDate || bDate) {\r\n return aDate === bDate && sameValueZeroEqual(a.getTime(), b.getTime());\r\n }\r\n var aRegExp = a instanceof RegExp;\r\n var bRegExp = b instanceof RegExp;\r\n if (aRegExp || bRegExp) {\r\n return aRegExp === bRegExp && areRegExpsEqual(a, b);\r\n }\r\n if (isPromiseLike(a) || isPromiseLike(b)) {\r\n return a === b;\r\n }\r\n if (HAS_MAP_SUPPORT) {\r\n var aMap = a instanceof Map;\r\n var bMap = b instanceof Map;\r\n if (aMap || bMap) {\r\n return aMap === bMap && areMapsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n if (HAS_SET_SUPPORT) {\r\n var aSet = a instanceof Set;\r\n var bSet = b instanceof Set;\r\n if (aSet || bSet) {\r\n return aSet === bSet && areSetsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n return false;\r\n }\r\n return comparator;\r\n}\r\n//# sourceMappingURL=comparator.js.map","map":"{\"version\":3,\"file\":\"comparator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/comparator.ts\"],\"names\":[],\"mappings\":\"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\"}"}
@@ -0,0 +1 @@
1
+ {"code":"var HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\r\nvar keys = Object.keys;\r\nexport function addToCache(value, cache) {\r\n if (value && typeof value === 'object') {\r\n cache.add(value);\r\n }\r\n}\r\nexport function hasPair(pairs, pairToMatch, isEqual, meta) {\r\n var length = pairs.length;\r\n var pair;\r\n for (var index = 0; index < length; index++) {\r\n pair = pairs[index];\r\n if (isEqual(pair[0], pairToMatch[0], meta) &&\r\n isEqual(pair[1], pairToMatch[1], meta)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nexport function hasValue(values, item, isEqual, meta) {\r\n var length = values.length;\r\n for (var index = 0; index < length; index++) {\r\n if (isEqual(values[index], item, meta)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nexport function sameValueZeroEqual(a, b) {\r\n return a === b || (a !== a && b !== b);\r\n}\r\nexport function isPlainObject(value) {\r\n return value.constructor === Object || value.constructor == null;\r\n}\r\nexport function isPromiseLike(value) {\r\n return !!value && typeof value.then === 'function';\r\n}\r\nexport function isReactElement(value) {\r\n return !!(value && value.$$typeof);\r\n}\r\nexport function getNewCacheFallback() {\r\n return Object.create({\r\n _values: [],\r\n add: function (value) {\r\n this._values.push(value);\r\n },\r\n has: function (value) {\r\n // eslint-disable-next-line no-bitwise\r\n return !!~this._values.indexOf(value);\r\n },\r\n });\r\n}\r\nexport var getNewCache = (function (canUseWeakMap) {\r\n if (canUseWeakMap) {\r\n return function _getNewCache() {\r\n return new WeakSet();\r\n };\r\n }\r\n return getNewCacheFallback;\r\n})(HAS_WEAKSET_SUPPORT);\r\nexport function createCircularIsEqualCreator(isEqual) {\r\n return function createCircularIsEqual(comparator) {\r\n var _comparator = isEqual || comparator;\r\n return function circularIsEqual(a, b, cache) {\r\n if (cache === void 0) { cache = getNewCache(); }\r\n var hasA = cache.has(a);\r\n var hasB = cache.has(b);\r\n if (hasA || hasB) {\r\n return hasA && hasB;\r\n }\r\n addToCache(a, cache);\r\n addToCache(b, cache);\r\n return _comparator(a, b, cache);\r\n };\r\n };\r\n}\r\nexport function toPairs(map) {\r\n var pairs = new Array(map.size);\r\n var index = 0;\r\n map.forEach(function (value, key) {\r\n pairs[index++] = [key, value];\r\n });\r\n return pairs;\r\n}\r\nexport function toValues(set) {\r\n var values = new Array(set.size);\r\n var index = 0;\r\n set.forEach(function (value) {\r\n values[index++] = value;\r\n });\r\n return values;\r\n}\r\nexport function areArraysEqual(a, b, isEqual, meta) {\r\n var length = a.length;\r\n if (b.length !== length) {\r\n return false;\r\n }\r\n for (var index = 0; index < length; index++) {\r\n if (!isEqual(a[index], b[index], meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexport function areMapsEqual(a, b, isEqual, meta) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n var pairsA = toPairs(a);\r\n var pairsB = toPairs(b);\r\n var length = pairsA.length;\r\n for (var index = 0; index < length; index++) {\r\n if (!hasPair(pairsB, pairsA[index], isEqual, meta) ||\r\n !hasPair(pairsA, pairsB[index], isEqual, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nvar OWNER = '_owner';\r\nvar hasOwnProperty = Function.prototype.bind.call(Function.prototype.call, Object.prototype.hasOwnProperty);\r\nexport function areObjectsEqual(a, b, isEqual, meta) {\r\n var keysA = keys(a);\r\n var length = keysA.length;\r\n if (keys(b).length !== length) {\r\n return false;\r\n }\r\n var key;\r\n for (var index = 0; index < length; index++) {\r\n key = keysA[index];\r\n if (!hasOwnProperty(b, key)) {\r\n return false;\r\n }\r\n if (key === OWNER && isReactElement(a)) {\r\n if (!isReactElement(b)) {\r\n return false;\r\n }\r\n // eslint-disable-next-line no-continue\r\n continue;\r\n }\r\n if (!isEqual(a[key], b[key], meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexport function areRegExpsEqual(a, b) {\r\n return (a.source === b.source &&\r\n a.global === b.global &&\r\n a.ignoreCase === b.ignoreCase &&\r\n a.multiline === b.multiline &&\r\n a.unicode === b.unicode &&\r\n a.sticky === b.sticky &&\r\n a.lastIndex === b.lastIndex);\r\n}\r\nexport function areSetsEqual(a, b, isEqual, meta) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n var valuesA = toValues(a);\r\n var valuesB = toValues(b);\r\n var length = valuesA.length;\r\n for (var index = 0; index < length; index++) {\r\n if (!hasValue(valuesB, valuesA[index], isEqual, meta) ||\r\n !hasValue(valuesA, valuesB[index], isEqual, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n//# sourceMappingURL=utils.js.map","map":"{\"version\":3,\"file\":\"utils.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/utils.ts\"],\"names\":[],\"mappings\":\"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\"}"}
@@ -0,0 +1 @@
1
+ {"code":"// comparator\r\nimport { createComparator } from './comparator';\r\n// utils\r\nimport { createCircularIsEqualCreator, sameValueZeroEqual } from './utils';\r\nexport { createComparator as createCustomEqual, sameValueZeroEqual };\r\nexport var deepEqual = createComparator();\r\nexport var shallowEqual = createComparator(function () { return sameValueZeroEqual; });\r\nexport var circularDeepEqual = createComparator(createCircularIsEqualCreator());\r\nexport var circularShallowEqual = createComparator(createCircularIsEqualCreator(sameValueZeroEqual));\r\n//# sourceMappingURL=index.js.map","map":"{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,QAAQ;AACR,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AAErE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;AAC5C,MAAM,CAAC,IAAM,YAAY,GAAG,gBAAgB,CAAC,cAAM,OAAA,kBAAkB,EAAlB,CAAkB,CAAC,CAAC;AAEvE,MAAM,CAAC,IAAM,iBAAiB,GAAG,gBAAgB,CAC/C,4BAA4B,EAAE,CAC/B,CAAC;AACF,MAAM,CAAC,IAAM,oBAAoB,GAAG,gBAAgB,CAClD,4BAA4B,CAAC,kBAAkB,CAAC,CACjD,CAAC\"}"}
@@ -0,0 +1 @@
1
+ {"code":"var HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\r\nvar keys = Object.keys;\r\nexport function addToCache(value, cache) {\r\n if (value && typeof value === 'object') {\r\n cache.add(value);\r\n }\r\n}\r\nexport function hasPair(pairs, pairToMatch, isEqual, meta) {\r\n var length = pairs.length;\r\n var pair;\r\n for (var index = 0; index < length; index++) {\r\n pair = pairs[index];\r\n if (isEqual(pair[0], pairToMatch[0], meta) &&\r\n isEqual(pair[1], pairToMatch[1], meta)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nexport function hasValue(values, item, isEqual, meta) {\r\n var length = values.length;\r\n for (var index = 0; index < length; index++) {\r\n if (isEqual(values[index], item, meta)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nexport function sameValueZeroEqual(a, b) {\r\n return a === b || (a !== a && b !== b);\r\n}\r\nexport function isPlainObject(value) {\r\n return value.constructor === Object || value.constructor == null;\r\n}\r\nexport function isPromiseLike(value) {\r\n return !!value && typeof value.then === 'function';\r\n}\r\nexport function isReactElement(value) {\r\n return !!(value && value.$$typeof);\r\n}\r\nexport function getNewCacheFallback() {\r\n return Object.create({\r\n _values: [],\r\n add: function (value) {\r\n this._values.push(value);\r\n },\r\n has: function (value) {\r\n // eslint-disable-next-line no-bitwise\r\n return !!~this._values.indexOf(value);\r\n },\r\n });\r\n}\r\nexport var getNewCache = (function (canUseWeakMap) {\r\n if (canUseWeakMap) {\r\n return function _getNewCache() {\r\n return new WeakSet();\r\n };\r\n }\r\n return getNewCacheFallback;\r\n})(HAS_WEAKSET_SUPPORT);\r\nexport function createCircularIsEqualCreator(isEqual) {\r\n return function createCircularIsEqual(comparator) {\r\n var _comparator = isEqual || comparator;\r\n return function circularIsEqual(a, b, cache) {\r\n if (cache === void 0) { cache = getNewCache(); }\r\n var hasA = cache.has(a);\r\n var hasB = cache.has(b);\r\n if (hasA || hasB) {\r\n return hasA && hasB;\r\n }\r\n addToCache(a, cache);\r\n addToCache(b, cache);\r\n return _comparator(a, b, cache);\r\n };\r\n };\r\n}\r\nexport function toPairs(map) {\r\n var pairs = new Array(map.size);\r\n var index = 0;\r\n map.forEach(function (value, key) {\r\n pairs[index++] = [key, value];\r\n });\r\n return pairs;\r\n}\r\nexport function toValues(set) {\r\n var values = new Array(set.size);\r\n var index = 0;\r\n set.forEach(function (value) {\r\n values[index++] = value;\r\n });\r\n return values;\r\n}\r\nexport function areArraysEqual(a, b, isEqual, meta) {\r\n var length = a.length;\r\n if (b.length !== length) {\r\n return false;\r\n }\r\n for (var index = 0; index < length; index++) {\r\n if (!isEqual(a[index], b[index], meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexport function areMapsEqual(a, b, isEqual, meta) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n var pairsA = toPairs(a);\r\n var pairsB = toPairs(b);\r\n var length = pairsA.length;\r\n for (var index = 0; index < length; index++) {\r\n if (!hasPair(pairsB, pairsA[index], isEqual, meta) ||\r\n !hasPair(pairsA, pairsB[index], isEqual, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nvar OWNER = '_owner';\r\nvar hasOwnProperty = Function.prototype.bind.call(Function.prototype.call, Object.prototype.hasOwnProperty);\r\nexport function areObjectsEqual(a, b, isEqual, meta) {\r\n var keysA = keys(a);\r\n var length = keysA.length;\r\n if (keys(b).length !== length) {\r\n return false;\r\n }\r\n var key;\r\n for (var index = 0; index < length; index++) {\r\n key = keysA[index];\r\n if (!hasOwnProperty(b, key)) {\r\n return false;\r\n }\r\n if (key === OWNER && isReactElement(a)) {\r\n if (!isReactElement(b)) {\r\n return false;\r\n }\r\n // eslint-disable-next-line no-continue\r\n continue;\r\n }\r\n if (!isEqual(a[key], b[key], meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexport function areRegExpsEqual(a, b) {\r\n return (a.source === b.source &&\r\n a.global === b.global &&\r\n a.ignoreCase === b.ignoreCase &&\r\n a.multiline === b.multiline &&\r\n a.unicode === b.unicode &&\r\n a.sticky === b.sticky &&\r\n a.lastIndex === b.lastIndex);\r\n}\r\nexport function areSetsEqual(a, b, isEqual, meta) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n var valuesA = toValues(a);\r\n var valuesB = toValues(b);\r\n var length = valuesA.length;\r\n for (var index = 0; index < length; index++) {\r\n if (!hasValue(valuesB, valuesA[index], isEqual, meta) ||\r\n !hasValue(valuesA, valuesB[index], isEqual, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n//# sourceMappingURL=utils.js.map","map":"{\"version\":3,\"file\":\"utils.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/utils.ts\"],\"names\":[],\"mappings\":\"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\"}"}
@@ -0,0 +1 @@
1
+ {"code":"import { areArraysEqual, areMapsEqual, areObjectsEqual, areRegExpsEqual, areSetsEqual, isPlainObject, isPromiseLike, sameValueZeroEqual, } from './utils';\r\nvar isArray = Array.isArray;\r\nvar HAS_MAP_SUPPORT = typeof Map === 'function';\r\nvar HAS_SET_SUPPORT = typeof Set === 'function';\r\nvar OBJECT_TYPEOF = 'object';\r\nexport function createComparator(createIsEqual) {\r\n var isEqual = \r\n /* eslint-disable no-use-before-define */\r\n typeof createIsEqual === 'function'\r\n ? createIsEqual(comparator)\r\n : comparator;\r\n /* eslint-enable */\r\n function comparator(a, b, meta) {\r\n if (sameValueZeroEqual(a, b)) {\r\n return true;\r\n }\r\n if (a && b && typeof a === OBJECT_TYPEOF && typeof b === OBJECT_TYPEOF) {\r\n if (isPlainObject(a) && isPlainObject(b)) {\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n var arrayA = isArray(a);\r\n var arrayB = isArray(b);\r\n if (arrayA || arrayB) {\r\n return arrayA === arrayB && areArraysEqual(a, b, isEqual, meta);\r\n }\r\n var aDate = a instanceof Date;\r\n var bDate = b instanceof Date;\r\n if (aDate || bDate) {\r\n return aDate === bDate && sameValueZeroEqual(a.getTime(), b.getTime());\r\n }\r\n var aRegExp = a instanceof RegExp;\r\n var bRegExp = b instanceof RegExp;\r\n if (aRegExp || bRegExp) {\r\n return aRegExp === bRegExp && areRegExpsEqual(a, b);\r\n }\r\n if (isPromiseLike(a) || isPromiseLike(b)) {\r\n return a === b;\r\n }\r\n if (HAS_MAP_SUPPORT) {\r\n var aMap = a instanceof Map;\r\n var bMap = b instanceof Map;\r\n if (aMap || bMap) {\r\n return aMap === bMap && areMapsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n if (HAS_SET_SUPPORT) {\r\n var aSet = a instanceof Set;\r\n var bSet = b instanceof Set;\r\n if (aSet || bSet) {\r\n return aSet === bSet && areSetsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n return false;\r\n }\r\n return comparator;\r\n}\r\n//# sourceMappingURL=comparator.js.map","map":"{\"version\":3,\"file\":\"comparator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/comparator.ts\"],\"names\":[],\"mappings\":\"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\"}"}
@@ -0,0 +1 @@
1
+ {"code":"// comparator\r\nimport { createComparator } from './comparator';\r\n// utils\r\nimport { createCircularIsEqualCreator, sameValueZeroEqual } from './utils';\r\nexport { createComparator as createCustomEqual, sameValueZeroEqual };\r\nexport var deepEqual = createComparator();\r\nexport var shallowEqual = createComparator(function () { return sameValueZeroEqual; });\r\nexport var circularDeepEqual = createComparator(createCircularIsEqualCreator());\r\nexport var circularShallowEqual = createComparator(createCircularIsEqualCreator(sameValueZeroEqual));\r\n//# sourceMappingURL=index.js.map","map":"{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,QAAQ;AACR,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AAErE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;AAC5C,MAAM,CAAC,IAAM,YAAY,GAAG,gBAAgB,CAAC,cAAM,OAAA,kBAAkB,EAAlB,CAAkB,CAAC,CAAC;AAEvE,MAAM,CAAC,IAAM,iBAAiB,GAAG,gBAAgB,CAC/C,4BAA4B,EAAE,CAC/B,CAAC;AACF,MAAM,CAAC,IAAM,oBAAoB,GAAG,gBAAgB,CAClD,4BAA4B,CAAC,kBAAkB,CAAC,CACjD,CAAC\"}"}
@@ -0,0 +1 @@
1
+ {"code":"import { areArraysEqual, areMapsEqual, areObjectsEqual, areRegExpsEqual, areSetsEqual, isPlainObject, isPromiseLike, sameValueZeroEqual, } from './utils';\r\nvar isArray = Array.isArray;\r\nvar HAS_MAP_SUPPORT = typeof Map === 'function';\r\nvar HAS_SET_SUPPORT = typeof Set === 'function';\r\nvar OBJECT_TYPEOF = 'object';\r\nexport function createComparator(createIsEqual) {\r\n var isEqual = \r\n /* eslint-disable no-use-before-define */\r\n typeof createIsEqual === 'function'\r\n ? createIsEqual(comparator)\r\n : comparator;\r\n /* eslint-enable */\r\n /**\r\n * @function comparator\r\n *\r\n * @description\r\n * compare the value of the two objects and return true if they are equivalent in values\r\n *\r\n * @param a the value to test against\r\n * @param b the value to test\r\n * @param [meta] an optional meta object that is passed through to all equality test calls\r\n * @returns are a and b equivalent in value\r\n */\r\n function comparator(a, b, meta) {\r\n if (sameValueZeroEqual(a, b)) {\r\n return true;\r\n }\r\n if (a && b && typeof a === OBJECT_TYPEOF && typeof b === OBJECT_TYPEOF) {\r\n if (isPlainObject(a) && isPlainObject(b)) {\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n var arrayA = isArray(a);\r\n var arrayB = isArray(b);\r\n if (arrayA || arrayB) {\r\n return arrayA === arrayB && areArraysEqual(a, b, isEqual, meta);\r\n }\r\n var aDate = a instanceof Date;\r\n var bDate = b instanceof Date;\r\n if (aDate || bDate) {\r\n return aDate === bDate && sameValueZeroEqual(a.getTime(), b.getTime());\r\n }\r\n var aRegExp = a instanceof RegExp;\r\n var bRegExp = b instanceof RegExp;\r\n if (aRegExp || bRegExp) {\r\n return aRegExp === bRegExp && areRegExpsEqual(a, b);\r\n }\r\n if (isPromiseLike(a) || isPromiseLike(b)) {\r\n return a === b;\r\n }\r\n if (HAS_MAP_SUPPORT) {\r\n var aMap = a instanceof Map;\r\n var bMap = b instanceof Map;\r\n if (aMap || bMap) {\r\n return aMap === bMap && areMapsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n if (HAS_SET_SUPPORT) {\r\n var aSet = a instanceof Set;\r\n var bSet = b instanceof Set;\r\n if (aSet || bSet) {\r\n return aSet === bSet && areSetsEqual(a, b, isEqual, meta);\r\n }\r\n }\r\n return areObjectsEqual(a, b, isEqual, meta);\r\n }\r\n return false;\r\n }\r\n return comparator;\r\n}\r\n//# sourceMappingURL=comparator.js.map","references":["/home/tquetano/git/fast-equals/src/utils.ts"],"map":"{\"version\":3,\"file\":\"comparator.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/comparator.ts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAET,IAAA,uBAAO,CAAW;AAE1B,IAAM,eAAe,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC;AAClD,IAAM,eAAe,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC;AAElD,IAAM,aAAa,GAAG,QAAQ,CAAC;AAI/B,MAAM,UAAU,gBAAgB,CAAC,aAAyC;IACxE,IAAM,OAAO;IACX,yCAAyC;IACzC,OAAO,aAAa,KAAK,UAAU;QACjC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC;QAC3B,CAAC,CAAC,UAAU,CAAC;IACjB,mBAAmB;IAEnB;;;;;;;;;;OAUG;IACH,SAAS,UAAU,CAAC,CAAM,EAAE,CAAM,EAAE,IAAU;QAC5C,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,aAAa,IAAI,OAAO,CAAC,KAAK,aAAa,EAAE;YACtE,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;gBACxC,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC7C;YAED,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,MAAM,IAAI,MAAM,EAAE;gBACpB,OAAO,MAAM,KAAK,MAAM,IAAI,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aACjE;YAED,IAAM,KAAK,GAAG,CAAC,YAAY,IAAI,CAAC;YAChC,IAAM,KAAK,GAAG,CAAC,YAAY,IAAI,CAAC;YAEhC,IAAI,KAAK,IAAI,KAAK,EAAE;gBAClB,OAAO,KAAK,KAAK,KAAK,IAAI,kBAAkB,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;aACxE;YAED,IAAM,OAAO,GAAG,CAAC,YAAY,MAAM,CAAC;YACpC,IAAM,OAAO,GAAG,CAAC,YAAY,MAAM,CAAC;YAEpC,IAAI,OAAO,IAAI,OAAO,EAAE;gBACtB,OAAO,OAAO,KAAK,OAAO,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACrD;YAED,IAAI,aAAa,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;gBACxC,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;YAED,IAAI,eAAe,EAAE;gBACnB,IAAM,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC;gBAC9B,IAAM,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC;gBAE9B,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,OAAO,IAAI,KAAK,IAAI,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC3D;aACF;YAED,IAAI,eAAe,EAAE;gBACnB,IAAM,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC;gBAC9B,IAAM,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC;gBAE9B,IAAI,IAAI,IAAI,IAAI,EAAE;oBAChB,OAAO,IAAI,KAAK,IAAI,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;iBAC3D;aACF;YAED,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC7C;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC\"}"}
@@ -0,0 +1 @@
1
+ {"code":"var HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\r\nvar keys = Object.keys;\r\n/**\r\n * @function addToCache\r\n *\r\n * add object to cache if an object\r\n *\r\n * @param value the value to potentially add to cache\r\n * @param cache the cache to add to\r\n */\r\nexport function addToCache(value, cache) {\r\n if (value && typeof value === 'object') {\r\n cache.add(value);\r\n }\r\n}\r\n/**\r\n * @function hasPair\r\n *\r\n * @description\r\n * does the `pairToMatch` exist in the list of `pairs` provided based on the\r\n * `isEqual` check\r\n *\r\n * @param pairs the pairs to compare against\r\n * @param pairToMatch the pair to match\r\n * @param isEqual the equality comparator used\r\n * @param meta the meta provided\r\n * @returns does the pair exist in the pairs provided\r\n */\r\nexport function hasPair(pairs, pairToMatch, isEqual, meta) {\r\n var length = pairs.length;\r\n var pair;\r\n for (var index = 0; index < length; index++) {\r\n pair = pairs[index];\r\n if (isEqual(pair[0], pairToMatch[0], meta) &&\r\n isEqual(pair[1], pairToMatch[1], meta)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * @function hasValue\r\n *\r\n * @description\r\n * does the `valueToMatch` exist in the list of `values` provided based on the\r\n * `isEqual` check\r\n *\r\n * @param values the values to compare against\r\n * @param valueToMatch the value to match\r\n * @param isEqual the equality comparator used\r\n * @param meta the meta provided\r\n * @returns does the value exist in the values provided\r\n */\r\nexport function hasValue(values, valueToMatch, isEqual, meta) {\r\n var length = values.length;\r\n for (var index = 0; index < length; index++) {\r\n if (isEqual(values[index], valueToMatch, meta)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * @function sameValueZeroEqual\r\n *\r\n * @description\r\n * are the values passed strictly equal or both NaN\r\n *\r\n * @param a the value to compare against\r\n * @param b the value to test\r\n * @returns are the values equal by the SameValueZero principle\r\n */\r\nexport function sameValueZeroEqual(a, b) {\r\n return a === b || (a !== a && b !== b);\r\n}\r\n/**\r\n * @function isPlainObject\r\n *\r\n * @description\r\n * is the value a plain object\r\n *\r\n * @param value the value to test\r\n * @returns is the value a plain object\r\n */\r\nexport function isPlainObject(value) {\r\n return value.constructor === Object || value.constructor == null;\r\n}\r\n/**\r\n * @function isPromiseLike\r\n *\r\n * @description\r\n * is the value promise-like (meaning it is thenable)\r\n *\r\n * @param value the value to test\r\n * @returns is the value promise-like\r\n */\r\nexport function isPromiseLike(value) {\r\n return !!value && typeof value.then === 'function';\r\n}\r\n/**\r\n * @function isReactElement\r\n *\r\n * @description\r\n * is the value passed a react element\r\n *\r\n * @param value the value to test\r\n * @returns is the value a react element\r\n */\r\nexport function isReactElement(value) {\r\n return !!(value && value.$$typeof);\r\n}\r\n/**\r\n * @function getNewCacheFallback\r\n *\r\n * @description\r\n * in cases where WeakSet is not supported, creates a new custom\r\n * object that mimics the necessary API aspects for cache purposes\r\n *\r\n * @returns the new cache object\r\n */\r\nexport function getNewCacheFallback() {\r\n return Object.create({\r\n _values: [],\r\n add: function (value) {\r\n this._values.push(value);\r\n },\r\n has: function (value) {\r\n return this._values.indexOf(value) !== -1;\r\n },\r\n });\r\n}\r\n/**\r\n * @function getNewCache\r\n *\r\n * @description\r\n * get a new cache object to prevent circular references\r\n *\r\n * @returns the new cache object\r\n */\r\nexport var getNewCache = (function (canUseWeakMap) {\r\n if (canUseWeakMap) {\r\n return function _getNewCache() {\r\n return new WeakSet();\r\n };\r\n }\r\n return getNewCacheFallback;\r\n})(HAS_WEAKSET_SUPPORT);\r\n/**\r\n * @function createCircularEqualCreator\r\n *\r\n * @description\r\n * create a custom isEqual handler specific to circular objects\r\n *\r\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\r\n * @returns the method to create the `isEqual` function\r\n */\r\nexport function createCircularEqualCreator(isEqual) {\r\n return function createCircularEqual(comparator) {\r\n var _comparator = isEqual || comparator;\r\n return function circularEqual(a, b, cache) {\r\n if (cache === void 0) { cache = getNewCache(); }\r\n var hasA = cache.has(a);\r\n var hasB = cache.has(b);\r\n if (hasA || hasB) {\r\n return hasA && hasB;\r\n }\r\n addToCache(a, cache);\r\n addToCache(b, cache);\r\n return _comparator(a, b, cache);\r\n };\r\n };\r\n}\r\n/**\r\n * @function toPairs\r\n *\r\n * @description\r\n * convert the map passed into pairs (meaning an array of [key, value] tuples)\r\n *\r\n * @param map the map to convert to [key, value] pairs (entries)\r\n * @returns the [key, value] pairs\r\n */\r\nexport function toPairs(map) {\r\n var pairs = new Array(map.size);\r\n var index = 0;\r\n map.forEach(function (value, key) {\r\n pairs[index++] = [key, value];\r\n });\r\n return pairs;\r\n}\r\n/**\r\n * @function toValues\r\n *\r\n * @description\r\n * convert the set passed into values\r\n *\r\n * @param set the set to convert to values\r\n * @returns the values\r\n */\r\nexport function toValues(set) {\r\n var values = new Array(set.size);\r\n var index = 0;\r\n set.forEach(function (value) {\r\n values[index++] = value;\r\n });\r\n return values;\r\n}\r\n/**\r\n * @function areArraysEqual\r\n *\r\n * @description\r\n * are the arrays equal in value\r\n *\r\n * @param a the array to test\r\n * @param b the array to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta object to pass through\r\n * @returns are the arrays equal\r\n */\r\nexport function areArraysEqual(a, b, isEqual, meta) {\r\n var length = a.length;\r\n if (b.length !== length) {\r\n return false;\r\n }\r\n for (var index = 0; index < length; index++) {\r\n if (!isEqual(a[index], b[index], meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * @function areMapsEqual\r\n *\r\n * @description\r\n * are the maps equal in value\r\n *\r\n * @param a the map to test\r\n * @param b the map to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta map to pass through\r\n * @returns are the maps equal\r\n */\r\nexport function areMapsEqual(a, b, isEqual, meta) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n var pairsA = toPairs(a);\r\n var pairsB = toPairs(b);\r\n var length = pairsA.length;\r\n for (var index = 0; index < length; index++) {\r\n if (!hasPair(pairsB, pairsA[index], isEqual, meta) ||\r\n !hasPair(pairsA, pairsB[index], isEqual, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nvar OWNER = '_owner';\r\nvar hasOwnProperty = Function.prototype.bind.call(Function.prototype.call, Object.prototype.hasOwnProperty);\r\n/**\r\n * @function areObjectsEqual\r\n *\r\n * @description\r\n * are the objects equal in value\r\n *\r\n * @param a the object to test\r\n * @param b the object to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta object to pass through\r\n * @returns are the objects equal\r\n */\r\nexport function areObjectsEqual(a, b, isEqual, meta) {\r\n var keysA = keys(a);\r\n var length = keysA.length;\r\n if (keys(b).length !== length) {\r\n return false;\r\n }\r\n var key;\r\n for (var index = 0; index < length; index++) {\r\n key = keysA[index];\r\n if (!hasOwnProperty(b, key)) {\r\n return false;\r\n }\r\n if (key === OWNER && isReactElement(a)) {\r\n if (!isReactElement(b)) {\r\n return false;\r\n }\r\n }\r\n else if (!isEqual(a[key], b[key], meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * @function areRegExpsEqual\r\n *\r\n * @description\r\n * are the regExps equal in value\r\n *\r\n * @param a the regExp to test\r\n * @param b the regExp to test agains\r\n * @returns are the regExps equal\r\n */\r\nexport function areRegExpsEqual(a, b) {\r\n return (a.source === b.source &&\r\n a.global === b.global &&\r\n a.ignoreCase === b.ignoreCase &&\r\n a.multiline === b.multiline &&\r\n a.unicode === b.unicode &&\r\n a.sticky === b.sticky &&\r\n a.lastIndex === b.lastIndex);\r\n}\r\n/**\r\n * @function areSetsEqual\r\n *\r\n * @description\r\n * are the sets equal in value\r\n *\r\n * @param a the set to test\r\n * @param b the set to test against\r\n * @param isEqual the comparator to determine equality\r\n * @param meta the meta set to pass through\r\n * @returns are the sets equal\r\n */\r\nexport function areSetsEqual(a, b, isEqual, meta) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n var valuesA = toValues(a);\r\n var valuesB = toValues(b);\r\n var length = valuesA.length;\r\n for (var index = 0; index < length; index++) {\r\n if (!hasValue(valuesB, valuesA[index], isEqual, meta) ||\r\n !hasValue(valuesA, valuesB[index], isEqual, meta)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n//# sourceMappingURL=utils.js.map","references":[],"map":"{\"version\":3,\"file\":\"utils.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/utils.ts\"],\"names\":[],\"mappings\":\"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\"}"}
@@ -0,0 +1 @@
1
+ {"code":"// comparator\r\nimport { createComparator } from './comparator';\r\n// utils\r\nimport { createCircularEqualCreator, sameValueZeroEqual } from './utils';\r\nexport { createComparator as createCustomEqual, sameValueZeroEqual };\r\nexport var deepEqual = createComparator();\r\nexport var shallowEqual = createComparator(function () { return sameValueZeroEqual; });\r\nexport var circularDeepEqual = createComparator(createCircularEqualCreator());\r\nexport var circularShallowEqual = createComparator(createCircularEqualCreator(sameValueZeroEqual));\r\n//# sourceMappingURL=index.js.map","references":["/home/tquetano/git/fast-equals/src/comparator.ts","/home/tquetano/git/fast-equals/src/utils.ts"],"map":"{\"version\":3,\"file\":\"index.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/index.ts\"],\"names\":[],\"mappings\":\"AAAA,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,QAAQ;AACR,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEzE,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AAErE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;AAC5C,MAAM,CAAC,IAAM,YAAY,GAAG,gBAAgB,CAAC,cAAM,OAAA,kBAAkB,EAAlB,CAAkB,CAAC,CAAC;AAEvE,MAAM,CAAC,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,0BAA0B,EAAE,CAAC,CAAC;AAChF,MAAM,CAAC,IAAM,oBAAoB,GAAG,gBAAgB,CAClD,0BAA0B,CAAC,kBAAkB,CAAC,CAC/C,CAAC\"}"}
package/BUILD.md ADDED
@@ -0,0 +1,37 @@
1
+ # Reproducing a build
2
+
3
+ ## Clone version
4
+
5
+ ```
6
+ git clone https://github.com/planttheidea/fast-equals.git
7
+ cd fast-equals
8
+ git checkout {version}
9
+ ```
10
+
11
+ Replace `{version}` above with the appropriate package version. If you want to compare a version older than `1.6.2`, you'll need to use a commit hash directly.
12
+
13
+ ## Install
14
+
15
+ ```
16
+ yarn install
17
+ ```
18
+
19
+ We use `yarn` for our package management, so to ensure that exact dependencies you should also use it.
20
+
21
+ ## Build artifacts
22
+
23
+ ```
24
+ yarn run build
25
+ ```
26
+
27
+ **NOTE**: To get an exact checksum match with the versions released on npm, it may be necessary to change line endings. For example, on Linux you might run:
28
+
29
+ ```
30
+ unix2dos dist/fast-equals.min.js
31
+ ```
32
+
33
+ ## Get checksum
34
+
35
+ ```
36
+ sha256sum dist/fast-equals.min.js
37
+ ```
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # fast-equals CHANGELOG
2
2
 
3
+ ## 2.0.0
4
+
5
+ #### Breaking changes
6
+
7
+ - There are longer `fast-equals/es`, `fast-equals/lib`, `fast-equals/mjs` locations
8
+ - Instead, there are 3 builds in `dist` for different consumption types:
9
+ - `fast-equals.js` (UMD / `browser`)
10
+ - `fast-equals.esm.js` (ESM / `module`)
11
+ - `fast-equals.cjs.js` (CommonJS / `main`)
12
+ - There is no default export anymore, only the previously-existing named exports
13
+ - To get all into a namespace, use `import * as fe from 'fast-equals`
14
+
15
+ #### Updates
16
+
17
+ - Rewritten completely in TypeScript
18
+ - Improve speed of `Map` / `Set` comparisons
19
+ - Improve speed of React element comparisons
20
+
21
+ #### Fixes
22
+
23
+ - Consider pure objects (`Object.create(null)`) to be plain objects
24
+ - Fix typings for `createCustomEqual`
25
+
3
26
  ## 1.6.3
4
27
 
5
28
  - Check the size of the iterable before converting to arrays
package/README.md CHANGED
@@ -20,7 +20,7 @@ Starting with version `1.5.0`, circular objects are supported for both deep and
20
20
  ## Table of contents
21
21
 
22
22
  - [Usage](#usage)
23
- - [Importing](#importing)
23
+ - [Specific builds](#specific-builds)
24
24
  - [Available methods](#available-methods)
25
25
  - [deepEqual](#deepequal)
26
26
  - [shallowEqual](#shallowequal)
@@ -33,55 +33,46 @@ Starting with version `1.5.0`, circular objects are supported for both deep and
33
33
 
34
34
  ## Usage
35
35
 
36
- You can either import the full object:
36
+ You can either import the individual functions desired:
37
37
 
38
38
  ```javascript
39
- import fe from "fast-equals";
39
+ import { deepEqual } from 'fast-equals';
40
40
 
41
- console.log(fe.deep({ foo: "bar" }, { foo: "bar" })); // true
41
+ console.log(deepEqual({ foo: 'bar' }, { foo: 'bar' })); // true
42
42
  ```
43
43
 
44
- Or the individual imports desired:
44
+ Or if you want to import all functions under a namespace:
45
45
 
46
46
  ```javascript
47
- import { deepEqual } from "fast-equals";
47
+ import * as fe from 'fast-equals';
48
48
 
49
- console.log(deepEqual({ foo: "bar" }, { foo: "bar" })); // true
49
+ console.log(fe.deep({ foo: 'bar' }, { foo: 'bar' })); // true
50
50
  ```
51
51
 
52
- ## Importing
52
+ #### Specific builds
53
53
 
54
- ESM in browsers:
54
+ There are three builds, an ESM build for modern build systems / runtimes, a CommonJS build for traditional NodeJS environments, and a UMD build for legacy implementations. The ideal one will likely be chosen for you automatically, however if you want to use a specific build you can always import it directly:
55
55
 
56
- ```javascript
57
- import fe from "fast-equals";
58
- ```
56
+ - ESM => `fast-equals/dist/fast-equals.esm.js`
57
+ - For older `nodejs` versions that do not allow ESM with file extensions other than `.mjs` => `fast-equals/dist/fast-equals.mjs`
58
+ - CommonJS => `fast-equals/dist/fast-equals.cjs.js`
59
+ - UMD => `fast-equals/dist/fast-equals.js`
59
60
 
60
- ESM in NodeJS:
61
+ There is also a pre-minified version of the UMD build available:
61
62
 
62
- ```javascript
63
- import fe from "fast-equals/mjs";
64
- ```
65
-
66
- CommonJS:
67
-
68
- ```javascript
69
- const fe = require("fast-equals").default;
70
- ```
63
+ - Minified UMD => `fast-equals/dist/fast-equals.min.js`
71
64
 
72
65
  ## Available methods
73
66
 
74
67
  #### deepEqual
75
68
 
76
- _Aliased on the default export as `fe.deep`_
77
-
78
69
  Performs a deep equality comparison on the two objects passed and returns a boolean representing the value equivalency of the objects.
79
70
 
80
71
  ```javascript
81
- import { deepEqual } from "fast-equals";
72
+ import { deepEqual } from 'fast-equals';
82
73
 
83
- const objectA = { foo: { bar: "baz" } };
84
- const objectB = { foo: { bar: "baz" } };
74
+ const objectA = { foo: { bar: 'baz' } };
75
+ const objectB = { foo: { bar: 'baz' } };
85
76
 
86
77
  console.log(objectA === objectB); // false
87
78
  console.log(deepEqual(objectA, objectB)); // true
@@ -89,18 +80,16 @@ console.log(deepEqual(objectA, objectB)); // true
89
80
 
90
81
  #### shallowEqual
91
82
 
92
- _Aliased on the default export as `fe.shallow`_
93
-
94
83
  Performs a shallow equality comparison on the two objects passed and returns a boolean representing the value equivalency of the objects.
95
84
 
96
85
  ```javascript
97
- import { shallowEqual } from "fast-equals";
86
+ import { shallowEqual } from 'fast-equals';
98
87
 
99
- const nestedObject = { bar: "baz" };
88
+ const nestedObject = { bar: 'baz' };
100
89
 
101
90
  const objectA = { foo: nestedObject };
102
91
  const objectB = { foo: nestedObject };
103
- const objectC = { foo: { bar: "baz" } };
92
+ const objectC = { foo: { bar: 'baz' } };
104
93
 
105
94
  console.log(objectA === objectB); // false
106
95
  console.log(shallowEqual(objectA, objectB)); // true
@@ -109,18 +98,16 @@ console.log(shallowEqual(objectA, objectC)); // false
109
98
 
110
99
  #### sameValueZeroEqual
111
100
 
112
- _Aliased on the default export as `fe.sameValueZero`_
113
-
114
101
  Performs a [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) comparison on the two objects passed and returns a boolean representing the value equivalency of the objects. In simple terms, this means either strictly equal or both `NaN`.
115
102
 
116
103
  ```javascript
117
- import { sameValueZeroEqual } from "fast-equals";
104
+ import { sameValueZeroEqual } from 'fast-equals';
118
105
 
119
- const mainObject = { foo: NaN, bar: "baz" };
106
+ const mainObject = { foo: NaN, bar: 'baz' };
120
107
 
121
- const objectA = "baz";
108
+ const objectA = 'baz';
122
109
  const objectB = NaN;
123
- const objectC = { foo: NaN, bar: "baz" };
110
+ const objectC = { foo: NaN, bar: 'baz' };
124
111
 
125
112
  console.log(sameValueZeroEqual(mainObject.bar, objectA)); // true
126
113
  console.log(sameValueZeroEqual(mainObject.foo, objectB)); // true
@@ -129,8 +116,6 @@ console.log(sameValueZeroEqual(mainObject, objectC)); // false
129
116
 
130
117
  #### circularDeepEqual
131
118
 
132
- _Aliased on the default export as `fe.circularDeep`_
133
-
134
119
  Performs the same comparison as `deepEqual` but supports circular objects. It is slower than `deepEqual`, so only use if you know circular objects are present.
135
120
 
136
121
  ```javascript
@@ -138,50 +123,53 @@ function Circular(value) {
138
123
  this.me = {
139
124
  deeply: {
140
125
  nested: {
141
- reference: this
142
- }
126
+ reference: this,
127
+ },
143
128
  },
144
- value
129
+ value,
145
130
  };
146
131
  }
147
132
 
148
- console.log(circularDeepEqual(new Circular("foo"), new Circular("foo"))); // true
149
- console.log(circularDeepEqual(new Circular("foo"), new Circular("bar"))); // false
133
+ console.log(circularDeepEqual(new Circular('foo'), new Circular('foo'))); // true
134
+ console.log(circularDeepEqual(new Circular('foo'), new Circular('bar'))); // false
150
135
  ```
151
136
 
152
137
  #### circularShallowEqual
153
138
 
154
- _Aliased on the default export as `fe.circularShallow`_
155
-
156
139
  Performs the same comparison as `shallowequal` but supports circular objects. It is slower than `shallowEqual`, so only use if you know circular objects are present.
157
140
 
158
141
  ```javascript
159
- const array = ["foo"];
142
+ const array = ['foo'];
160
143
 
161
144
  array.push(array);
162
145
 
163
- console.log(circularShallowEqual(array, ["foo", array])); // true
146
+ console.log(circularShallowEqual(array, ['foo', array])); // true
164
147
  console.log(circularShallowEqual(array, [array])); // false
165
148
  ```
166
149
 
167
150
  #### createCustomEqual
168
151
 
169
- _Aliased on the default export as `fe.createCustom`_
170
-
171
152
  Creates a custom equality comparator that will be used on nested values in the object. Unlike `deepEqual` and `shallowEqual`, this is a partial-application function that will receive the internal comparator and should return a function that compares two objects.
172
153
 
173
154
  The signature is as follows:
174
155
 
175
- ```javascript
176
- createCustomEqual(deepEqual: function) => (objectA: any, objectB: any, meta: any) => boolean;
156
+ ```typescript
157
+ type EqualityComparator = (a: any, b: any, meta?: any) => boolean;
158
+ type EqualityComparatorCreator = (
159
+ deepEqual: EqualityComparator,
160
+ ) => EqualityComparator;
161
+
162
+ function createCustomEqual(
163
+ createIsEqual?: EqualityComparatorCreator,
164
+ ): EqualityComparator;
177
165
  ```
178
166
 
179
- The `meta` parameter is whatever you want it to be. It will be passed through to all equality checks, and is meant specifically for use with custom equality methods. For example, with the `circularDeepEqual` and `circularShallowEqual` methods, it is used to pass through a cache of processed objects.
167
+ The `meta` parameter in `EqualityComparator` is whatever you want it to be. It will be passed through to all equality checks, and is meant specifically for use with custom equality methods. For example, with the `circularDeepEqual` and `circularShallowEqual` methods, it is used to pass through a cache of processed objects.
180
168
 
181
169
  An example for a custom equality comparison that also checks against values in the meta object:
182
170
 
183
171
  ```javascript
184
- import { createCustomEqual } from "fast-equals";
172
+ import { createCustomEqual } from 'fast-equals';
185
173
 
186
174
  const isDeepEqualOrFooMatchesMeta = createCustomEqual(deepEqual => {
187
175
  return (objectA, objectB, meta) => {
@@ -193,16 +181,16 @@ const isDeepEqualOrFooMatchesMeta = createCustomEqual(deepEqual => {
193
181
  };
194
182
  });
195
183
 
196
- const objectA = { foo: "bar" };
197
- const objectB = { foo: "baz" };
198
- const meta = "bar";
184
+ const objectA = { foo: 'bar' };
185
+ const objectB = { foo: 'baz' };
186
+ const meta = 'bar';
199
187
 
200
188
  console.log(isDeepEqualOrFooMatchesMeta(objectA, objectB)); // true
201
189
  ```
202
190
 
203
191
  ## Benchmarks
204
192
 
205
- All benchmarks were performed on an i7 8-core Arch Linux laptop with 16GB of memory using NodeJS version `10.15.0`, and are based on averages of running comparisons based deep equality on the following object types:
193
+ All benchmarks were performed on an i7 8-core Arch Linux laptop with 16GB of memory using NodeJS version `10.15.3`, and are based on averages of running comparisons based deep equality on the following object types:
206
194
 
207
195
  - Primitives (`String`, `Number`, `null`, `undefined`)
208
196
  - `Function`
@@ -215,30 +203,30 @@ All benchmarks were performed on an i7 8-core Arch Linux laptop with 16GB of mem
215
203
 
216
204
  | | Operations / second |
217
205
  | -------------------------- | ------------------- |
218
- | **fast-equals** | **148,083** |
219
- | nano-equal | 114,146 |
220
- | shallow-equal-fuzzy | 99,097 |
221
- | fast-deep-equal | 98,452 |
222
- | react-fast-compare | 96,650 |
223
- | **fast-equals (circular)** | **80,575** |
224
- | underscore.isEqual | 62,572 |
225
- | deep-equal | 47,260 |
226
- | lodash.isEqual | 24,315 |
227
- | deep-eql | 23,962 |
228
- | assert.deepStrictEqual | 1,370 |
206
+ | **fast-equals** | **142,730** |
207
+ | nano-equal | 115,530 |
208
+ | shallow-equal-fuzzy | 102,633 |
209
+ | fast-deep-equal | 102,335 |
210
+ | react-fast-compare | 100,036 |
211
+ | **fast-equals (circular)** | **79,589** |
212
+ | underscore.isEqual | 63,390 |
213
+ | deep-equal | 48,783 |
214
+ | lodash.isEqual | 24,456 |
215
+ | deep-eql | 24,196 |
216
+ | assert.deepStrictEqual | 1,382 |
229
217
 
230
218
  Caveats that impact the benchmark (and accuracy of comparison):
231
219
 
232
- - `nano-equal` does not strictly compare object property structure, array length, or object type, nor `SameValueZero` equality for dates
233
- - `shallow-equal-fuzzy` does not strictly compare object type or regexp values, nor `SameValueZero` equality for dates
220
+ - `assert.deepStrictEqual` does not support `NaN` or `SameValueZero` equality for dates
221
+ - `deep-eql` does not support `SameValueZero` equality for zero equality (positive and negative zero are not equal)
222
+ - `deep-equal` does not support `NaN` and does not strictly compare object type, or date / regexp values, nor uses `SameValueZero` equality for dates
234
223
  - `fast-deep-equal` does not support `NaN` or `SameValueZero` equality for dates
224
+ - `nano-equal` does not strictly compare object property structure, array length, or object type, nor `SameValueZero` equality for dates
235
225
  - `react-fast-compare` does not support `NaN` or `SameValueZero` equality for dates, and does not compare `function` equality
226
+ - `shallow-equal-fuzzy` does not strictly compare object type or regexp values, nor `SameValueZero` equality for dates
236
227
  - `underscore.isEqual` does not support `SameValueZero` equality for primitives or dates
237
- - `deep-equal` does not support `NaN` and does not strictly compare object type, or date / regexp values, nor uses `SameValueZero` equality for dates
238
- - `deep-eql` does not support `SameValueZero` equality for zero equality (positive and negative zero are not equal)
239
- - `assert.deepStrictEqual` does not support `NaN` or `SameValueZero` equality for dates
240
228
 
241
- All of these have the potential of inflating the respective library's numbers in comparison to `fast-equals`, but it was the closest apples-to-apples comparison I could create of a reasonable sample size. `Map`s, `Promise`s, and `Set`s were excluded from the benchmark entirely because no library other than `lodash` supported their comparison. The same logic applies to `react` elements (which can be circular objects), but simple elements are non-circular objects so I kept the `react` comparison very basic to allow it to be included.
229
+ All of these have the potential of inflating the respective library's numbers in comparison to `fast-equals`, but it was the closest apples-to-apples comparison I could create of a reasonable sample size. `Map`s, `Promise`s, and `Set`s were excluded from the benchmark entirely because no library other than `deep-eql` fully supported their comparison. The same logic applies to `react` elements (which can be circular objects), but simple elements are non-circular objects so I kept the `react` comparison very basic to allow it to be included.
242
230
 
243
231
  ## Development
244
232
 
@@ -246,12 +234,7 @@ Standard practice, clone the repo and `npm i` to get the dependencies. The follo
246
234
 
247
235
  - benchmark => run benchmark tests against other equality libraries
248
236
  - build => build `main`, `module`, and `browser` distributables with `rollup`
249
- - clean => run `clean:dist`, `clean:es`, `clean:mjs`, and `clean:lib` scripts
250
- - clean:dist => run `rimraf` on the `dist` folder
251
- - clean:es => run `rimraf` on the `es` folder
252
- - clean:lib => run `rimraf` on the `lib` folder
253
- - clean:mjs => run `rimraf` on the `mjs` folder
254
- - copy:mjs => copy all files from `es` folder to `mjs` folder (for node ESM consumption)
237
+ - clean => run `rimraf` on the `dist` folder
255
238
  - dev => start webpack playground App
256
239
  - dist => run `build`
257
240
  - lint => run ESLint on all files in `src` folder (also runs on `dev` script)
@@ -261,5 +244,3 @@ Standard practice, clone the repo and `npm i` to get the dependencies. The follo
261
244
  - test => run AVA with NODE_ENV=test on all files in `test` folder
262
245
  - test:coverage => run same script as `test` with code coverage calculation via `nyc`
263
246
  - test:watch => run same script as `test` but keep persistent watcher
264
- - transpile:es => run Babel on all files, in `src` folder (transpiled to `es` folder without transpilation of ES2015 export syntax)
265
- - transpile:lib => run Babel on all files in `src` folder (transpiled to `lib` folder)