Package: node-fast-deep-equal
Version: 1.0.0-1
Severity: normal
Tags: patch
Dear Maintainer,
Before upstream was taken over by NSA/Microsoft, there was a newer version
of node-fast-deep-equal available upstream. The following patch patches
node-fast-deep-equal to that newer version (2.0.1). This newer
functionality is depended on by other projects(such as similarly
modified/updated versions of node-ajv, which in turn is a possible
prerequisite of solving #743404). It seems to pass both lintian and its
own tests.
(It is unfortunately not a quilt patch, since it's not a matter of patching
from an upstream version, since imho you're effectively upstream, now).
Changes include bug fixes, performance updates, updated dependencies, and
updated tests. See commit log for details:
https://notabug.org/themusicgod1/fast-deep-equal/commits/master )
(I've taken liberty to bump the compat while I was at this.)
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 4.18.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8),
LANGUAGE=en_CA:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages node-fast-deep-equal depends on:
ii nodejs 8.11.2~dfsg-1
node-fast-deep-equal recommends no packages.
node-fast-deep-equal suggests no packages.
-- no debconf information
Only in node-fast-deep-equal-1.0.0/benchmark: .eslintrc.yml
diff -r node-fast-deep-equal-1.0.0/benchmark/index.js node-fast-deep-equal-2.0.1/benchmark/index.js
20c20,21
< }
---
> },
> 'ramda.equals': require('ramda').equals
diff -r node-fast-deep-equal-1.0.0/debian/changelog node-fast-deep-equal-2.0.1/debian/changelog
0a1,6
> node-fast-deep-equal (2.0.1-1) UNRELEASED; urgency=medium
>
> * New version
>
> -- Jeff Cliff <[email protected]> Sun, 07 Oct 2018 17:18:00 +0500
>
diff -r node-fast-deep-equal-1.0.0/debian/compat node-fast-deep-equal-2.0.1/debian/compat
1c1
< 9
---
> 10
diff -r node-fast-deep-equal-1.0.0/debian/control node-fast-deep-equal-2.0.1/debian/control
9c9
< , nodejs
---
> , nodejs (>= 0.10)
Only in node-fast-deep-equal-2.0.1/debian: .debhelper
Only in node-fast-deep-equal-2.0.1/debian: debhelper-build-stamp
Only in node-fast-deep-equal-2.0.1/debian: files
Only in node-fast-deep-equal-2.0.1/debian: node-fast-deep-equal
Only in node-fast-deep-equal-2.0.1/debian: node-fast-deep-equal.substvars
Only in node-fast-deep-equal-1.0.0/: .eslintrc.yml
Only in node-fast-deep-equal-2.0.1/: .git
diff -r node-fast-deep-equal-1.0.0/.gitignore node-fast-deep-equal-2.0.1/.gitignore
56a57,60
> # Lock files
> package-lock.json
> yarn.lock
>
Only in node-fast-deep-equal-2.0.1/: index.d.ts
diff -r node-fast-deep-equal-1.0.0/index.js node-fast-deep-equal-2.0.1/index.js
2a3,6
> var isArray = Array.isArray;
> var keyList = Object.keys;
> var hasProp = Object.prototype.hasOwnProperty;
>
6,15c10,23
< var arrA = Array.isArray(a)
< , arrB = Array.isArray(b)
< , i;
<
< if (arrA && arrB) {
< if (a.length != b.length) return false;
< for (i = 0; i < a.length; i++)
< if (!equal(a[i], b[i])) return false;
< return true;
< }
---
> if (a && b && typeof a == 'object' && typeof b == 'object') {
> var arrA = isArray(a)
> , arrB = isArray(b)
> , i
> , length
> , key;
>
> if (arrA && arrB) {
> length = a.length;
> if (length != b.length) return false;
> for (i = length; i-- !== 0;)
> if (!equal(a[i], b[i])) return false;
> return true;
> }
17,21c25
< if (arrA != arrB) return false;
<
< if (a && b && typeof a === 'object' && typeof b === 'object') {
< var keys = Object.keys(a);
< if (keys.length !== Object.keys(b).length) return false;
---
> if (arrA != arrB) return false;
25d28
< if (dateA && dateB) return a.getTime() == b.getTime();
26a30
> if (dateA && dateB) return a.getTime() == b.getTime();
30d33
< if (regexpA && regexpB) return a.toString() == b.toString();
31a35,41
> if (regexpA && regexpB) return a.toString() == b.toString();
>
> var keys = keyList(a);
> length = keys.length;
>
> if (length !== keyList(b).length)
> return false;
33,34c43,44
< for (i = 0; i < keys.length; i++)
< if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
---
> for (i = length; i-- !== 0;)
> if (!hasProp.call(b, keys[i])) return false;
36,37c46,49
< for (i = 0; i < keys.length; i++)
< if(!equal(a[keys[i]], b[keys[i]])) return false;
---
> for (i = length; i-- !== 0;) {
> key = keys[i];
> if (!equal(a[key], b[key])) return false;
> }
42c54
< return false;
---
> return a!==a && b!==b;
diff -r node-fast-deep-equal-1.0.0/package.json node-fast-deep-equal-2.0.1/package.json
3c3
< "version": "1.0.0",
---
> "version": "2.0.1",
10c10,11
< "test": "npm run eslint && npm run test-cov"
---
> "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts",
> "test": "npm run eslint && npm run test-ts && npm run test-cov"
30,31c31,32
< "deep-eql": "^2.0.2",
< "deep-equal": "^1.0.1",
---
> "deep-eql": "latest",
> "deep-equal": "latest",
33c34
< "lodash": "^4.17.4",
---
> "lodash": "latest",
35c36
< "nano-equal": "^1.0.1",
---
> "nano-equal": "latest",
38,39c39,42
< "shallow-equal-fuzzy": "0.0.2",
< "underscore": "^1.8.3"
---
> "ramda": "latest",
> "shallow-equal-fuzzy": "latest",
> "typescript": "^2.6.1",
> "underscore": "latest"
50c53,58
< }
---
> },
> "files": [
> "index.js",
> "index.d.ts"
> ],
> "types": "index.d.ts"
Only in node-fast-deep-equal-1.0.0/: .pc
diff -r node-fast-deep-equal-1.0.0/README.md node-fast-deep-equal-2.0.1/README.md
32a33,34
> Node.js v9.11.1:
>
34,41c36,44
< fast-deep-equal x 82,915 ops/sec ±0.63% (89 runs sampled)
< nano-equal x 50,506 ops/sec ±2.23% (86 runs sampled)
< shallow-equal-fuzzy x 14,873 ops/sec ±3.19% (83 runs sampled)
< underscore.isEqual x 16,055 ops/sec ±2.29% (85 runs sampled)
< lodash.isEqual x 10,740 ops/sec ±1.04% (89 runs sampled)
< deep-equal x 12,276 ops/sec ±2.44% (84 runs sampled)
< deep-eql x 10,565 ops/sec ±0.89% (90 runs sampled)
< assert.deepStrictEqual x 965 ops/sec ±2.99% (81 runs sampled)
---
> fast-deep-equal x 226,960 ops/sec ±1.55% (86 runs sampled)
> nano-equal x 218,210 ops/sec ±0.79% (89 runs sampled)
> shallow-equal-fuzzy x 206,762 ops/sec ±0.84% (88 runs sampled)
> underscore.isEqual x 128,668 ops/sec ±0.75% (91 runs sampled)
> lodash.isEqual x 44,895 ops/sec ±0.67% (85 runs sampled)
> deep-equal x 51,616 ops/sec ±0.96% (90 runs sampled)
> deep-eql x 28,218 ops/sec ±0.42% (85 runs sampled)
> assert.deepStrictEqual x 1,777 ops/sec ±1.05% (86 runs sampled)
> ramda.equals x 13,466 ops/sec ±0.82% (86 runs sampled)
Only in node-fast-deep-equal-1.0.0/spec: .eslintrc.yml
diff -r node-fast-deep-equal-1.0.0/spec/tests.js node-fast-deep-equal-2.0.1/spec/tests.js
83a84,107
> },
> {
> description: 'NaN and NaN are equal',
> value1: NaN,
> value2: NaN,
> equal: true
> },
> {
> description: '0 and -0 are equal',
> value1: 0,
> value2: -0,
> equal: true
> },
> {
> description: 'Infinity and Infinity are equal',
> value1: Infinity,
> value2: Infinity,
> equal: true
> },
> {
> description: 'Infinity and -Infinity are not equal',
> value1: Infinity,
> value2: -Infinity,
> equal: false
167a192,215
> },
> {
> description: 'nulls are equal',
> value1: null,
> value2: null,
> equal: true
> },
> {
> description: 'null and undefined are not equal',
> value1: null,
> value2: undefined,
> equal: false
> },
> {
> description: 'null and empty object are not equal',
> value1: null,
> value2: {},
> equal: false
> },
> {
> description: 'undefined and empty object are not equal',
> value1: undefined,
> value2: {},
> equal: false
283a332,348
> description: 'functions',
> tests: [
> {
> description: 'same function is equal',
> value1: func1,
> value2: func1,
> equal: true
> },
> {
> description: 'different functions are not equal',
> value1: func1,
> value2: func2,
> equal: false
> }
> ]
> },
> {
320a386,388
>
> function func1() {}
> function func2() {}
diff -r node-fast-deep-equal-1.0.0/.travis.yml node-fast-deep-equal-2.0.1/.travis.yml
5d4
< - "7"
6a6,7
> - "9"
> - "10"
--
Pkg-javascript-devel mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-javascript-devel