@thi.ng/equiv 1.0.45 → 2.0.3

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.
package/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [1.0.45](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.44...@thi.ng/equiv@1.0.45) (2021-08-08)
6
+ ## [2.0.3](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@2.0.2...@thi.ng/equiv@2.0.3) (2021-10-15)
7
7
 
8
8
  **Note:** Version bump only for package @thi.ng/equiv
9
9
 
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- ## [1.0.44](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.43...@thi.ng/equiv@1.0.44) (2021-08-08)
14
+ ## [2.0.2](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@2.0.1...@thi.ng/equiv@2.0.2) (2021-10-15)
15
15
 
16
16
  **Note:** Version bump only for package @thi.ng/equiv
17
17
 
@@ -19,7 +19,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
19
19
 
20
20
 
21
21
 
22
- ## [1.0.43](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.42...@thi.ng/equiv@1.0.43) (2021-07-01)
22
+ ## [2.0.1](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@2.0.0...@thi.ng/equiv@2.0.1) (2021-10-13)
23
23
 
24
24
  **Note:** Version bump only for package @thi.ng/equiv
25
25
 
@@ -27,33 +27,49 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
27
27
 
28
28
 
29
29
 
30
- ## [1.0.42](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.41...@thi.ng/equiv@1.0.42) (2021-06-08)
30
+ # [2.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@1.0.45...@thi.ng/equiv@2.0.0) (2021-10-12)
31
31
 
32
- **Note:** Version bump only for package @thi.ng/equiv
33
32
 
33
+ ### Build System
34
+
35
+ * major update of ALL pkgs (export maps, ESM only) ([0d1d6ea](https://github.com/thi-ng/umbrella/commit/0d1d6ea9fab2a645d6c5f2bf2591459b939c09b6))
34
36
 
35
37
 
38
+ ### BREAKING CHANGES
36
39
 
40
+ * discontinue CommonJS & UMD versions
37
41
 
38
- # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@0.1.15...@thi.ng/equiv@1.0.0) (2019-01-21)
42
+ - only ESM modules will be published from now on
43
+ - CJS obsolete due to ESM support in recent versions of node:
44
+ - i.e. launch NodeJS via:
45
+ - `node --experimental-specifier-resolution=node --experimental-repl-await`
46
+ - in the node REPL use `await import(...)` instead of `require()`
47
+ - UMD obsolete due to widespread browser support for ESM
39
48
 
40
- ### Build System
49
+ Also:
50
+ - normalize/restructure/reorg all package.json files
51
+ - cleanup all build scripts, remove obsolete
52
+ - switch from mocha to @thi.ng/testament for all tests
41
53
 
42
- * update package build scripts & outputs, imports in ~50 packages ([b54b703](https://github.com/thi-ng/umbrella/commit/b54b703))
43
54
 
44
- ### BREAKING CHANGES
45
55
 
46
- * enabled multi-outputs (ES6 modules, CJS, UMD)
47
56
 
48
- - build scripts now first build ES6 modules in package root, then call
49
- `scripts/bundle-module` to build minified CJS & UMD bundles in `/lib`
50
- - all imports MUST be updated to only refer to package level
51
- (not individual files anymore). tree shaking in user land will get rid of
52
- all unused imported symbols.
53
57
 
54
- <a name="0.1.0"></a>
55
- # 0.1.0 (2018-05-10)
56
58
 
57
- ### Features
59
+ # [1.0.0](https://github.com/thi-ng/umbrella/compare/@thi.ng/equiv@0.1.15...@thi.ng/equiv@1.0.0) (2019-01-21)
60
+
61
+ ### Build System
62
+
63
+ - update package build scripts & outputs, imports in ~50 packages ([b54b703](https://github.com/thi-ng/umbrella/commit/b54b703))
64
+
65
+ ### BREAKING CHANGES
66
+
67
+ - enabled multi-outputs (ES6 modules, CJS, UMD)
68
+ - build scripts now first build ES6 modules in package root, then call `scripts/bundle-module` to build minified CJS & UMD bundles in `/lib`
69
+ - all imports MUST be updated to only refer to package level (not individual files anymore). tree shaking in user land will get rid of all unused imported symbols.
70
+
71
+ # 0.1.0 (2018-05-10)
72
+
73
+ ### Features
58
74
 
59
- * **equiv:** add new package [@thi](https://github.com/thi).ng/equiv ([6d12ae0](https://github.com/thi-ng/umbrella/commit/6d12ae0))
75
+ - **equiv:** add new package [@thi](https://github.com/thi).ng/equiv ([6d12ae0](https://github.com/thi-ng/umbrella/commit/6d12ae0))
package/README.md CHANGED
@@ -46,15 +46,24 @@ Supports:
46
46
  yarn add @thi.ng/equiv
47
47
  ```
48
48
 
49
+ ES module import:
50
+
49
51
  ```html
50
- // ES module
51
- <script type="module" src="https://unpkg.com/@thi.ng/equiv?module" crossorigin></script>
52
+ <script type="module" src="https://cdn.skypack.dev/@thi.ng/equiv"></script>
53
+ ```
54
+
55
+ [Skypack documentation](https://docs.skypack.dev/)
56
+
57
+ For Node.js REPL:
58
+
59
+ ```text
60
+ # with flag only for < v16
61
+ node --experimental-repl-await
52
62
 
53
- // UMD
54
- <script src="https://unpkg.com/@thi.ng/equiv/lib/index.umd.js" crossorigin></script>
63
+ > const equiv = await import("@thi.ng/equiv");
55
64
  ```
56
65
 
57
- Package sizes (gzipped, pre-treeshake): ESM: 487 bytes / CJS: 543 bytes / UMD: 614 bytes
66
+ Package sizes (gzipped, pre-treeshake): ESM: 487 bytes
58
67
 
59
68
  ## Dependencies
60
69
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@thi.ng/equiv",
3
- "version": "1.0.45",
3
+ "version": "2.0.3",
4
4
  "description": "Extensible deep value equivalence checking for any data types",
5
+ "type": "module",
5
6
  "module": "./index.js",
6
- "main": "./lib/index.js",
7
- "umd:main": "./lib/index.umd.js",
8
7
  "typings": "./index.d.ts",
8
+ "sideEffects": false,
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/thi-ng/umbrella.git"
@@ -24,24 +24,18 @@
24
24
  "author": "Karsten Schmidt <k+npm@thi.ng>",
25
25
  "license": "Apache-2.0",
26
26
  "scripts": {
27
- "build": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module",
28
- "build:release": "yarn clean && yarn build:es6 && node ../../scripts/bundle-module all",
29
- "build:es6": "tsc --declaration",
30
- "build:test": "rimraf build && tsc -p test/tsconfig.json",
31
- "build:check": "tsc --isolatedModules --noEmit",
32
- "test": "mocha test",
33
- "cover": "nyc mocha test && nyc report --reporter=lcov",
34
- "clean": "rimraf *.js *.d.ts *.map .nyc_output build coverage doc lib",
35
- "doc:readme": "ts-node -P ../../tools/tsconfig.json ../../tools/src/readme.ts",
36
- "doc": "typedoc --excludePrivate --out doc --theme ../../tools/doc/typedoc-theme src/index.ts",
27
+ "build": "yarn clean && tsc --declaration",
28
+ "clean": "rimraf *.js *.d.ts *.map doc",
29
+ "doc": "typedoc --excludePrivate --excludeInternal --out doc src/index.ts",
37
30
  "doc:ae": "mkdir -p .ae/doc .ae/temp && node_modules/.bin/api-extractor run --local --verbose",
38
- "pub": "yarn build:release && yarn publish --access public"
31
+ "doc:readme": "yarn doc:stats && ../../scripts/node-esm ../../tools/src/readme.ts",
32
+ "doc:stats": "../../scripts/node-esm ../../tools/src/module-stats.ts",
33
+ "pub": "yarn build && yarn publish --access public",
34
+ "test": "testament test"
35
+ },
36
+ "devDependencies": {
37
+ "@thi.ng/testament": "^0.1.3"
39
38
  },
40
- "files": [
41
- "*.js",
42
- "*.d.ts",
43
- "lib"
44
- ],
45
39
  "keywords": [
46
40
  "array",
47
41
  "deep",
@@ -57,6 +51,17 @@
57
51
  "process": false,
58
52
  "setTimeout": false
59
53
  },
60
- "sideEffects": false,
61
- "gitHead": "538019e9d8ca6c5fee4754af93ad454c0674dc72"
54
+ "engines": {
55
+ "node": ">=12.7"
56
+ },
57
+ "files": [
58
+ "*.js",
59
+ "*.d.ts"
60
+ ],
61
+ "exports": {
62
+ ".": {
63
+ "import": "./index.js"
64
+ }
65
+ },
66
+ "gitHead": "1fb38cac74d6c009d96855c28784a267a81badf1"
62
67
  }
package/lib/index.js DELETED
@@ -1,82 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const OBJP = Object.getPrototypeOf({});
6
- const FN = "function";
7
- const STR = "string";
8
- const equiv = (a, b) => {
9
- let proto;
10
- if (a === b) {
11
- return true;
12
- }
13
- if (a != null) {
14
- if (typeof a.equiv === FN) {
15
- return a.equiv(b);
16
- }
17
- }
18
- else {
19
- return a == b;
20
- }
21
- if (b != null) {
22
- if (typeof b.equiv === FN) {
23
- return b.equiv(a);
24
- }
25
- }
26
- else {
27
- return a == b;
28
- }
29
- if (typeof a === STR || typeof b === STR) {
30
- return false;
31
- }
32
- if (((proto = Object.getPrototypeOf(a)), proto == null || proto === OBJP) &&
33
- ((proto = Object.getPrototypeOf(b)), proto == null || proto === OBJP)) {
34
- return equivObject(a, b);
35
- }
36
- if (typeof a !== FN &&
37
- a.length !== undefined &&
38
- typeof b !== FN &&
39
- b.length !== undefined) {
40
- return equivArrayLike(a, b);
41
- }
42
- if (a instanceof Set && b instanceof Set) {
43
- return equivSet(a, b);
44
- }
45
- if (a instanceof Map && b instanceof Map) {
46
- return equivMap(a, b);
47
- }
48
- if (a instanceof Date && b instanceof Date) {
49
- return a.getTime() === b.getTime();
50
- }
51
- if (a instanceof RegExp && b instanceof RegExp) {
52
- return a.toString() === b.toString();
53
- }
54
- return a !== a && b !== b;
55
- };
56
- const equivArrayLike = (a, b, _equiv = equiv) => {
57
- let l = a.length;
58
- if (l === b.length) {
59
- while (--l >= 0 && _equiv(a[l], b[l]))
60
- ;
61
- }
62
- return l < 0;
63
- };
64
- const equivSet = (a, b, _equiv = equiv) => a.size === b.size && _equiv([...a.keys()].sort(), [...b.keys()].sort());
65
- const equivMap = (a, b, _equiv = equiv) => a.size === b.size && _equiv([...a].sort(), [...b].sort());
66
- const equivObject = (a, b, _equiv = equiv) => {
67
- if (Object.keys(a).length !== Object.keys(b).length) {
68
- return false;
69
- }
70
- for (let k in a) {
71
- if (!b.hasOwnProperty(k) || !_equiv(a[k], b[k])) {
72
- return false;
73
- }
74
- }
75
- return true;
76
- };
77
-
78
- exports.equiv = equiv;
79
- exports.equivArrayLike = equivArrayLike;
80
- exports.equivMap = equivMap;
81
- exports.equivObject = equivObject;
82
- exports.equivSet = equivSet;
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../index.js"],"sourcesContent":null,"names":[],"mappings":";;;;AAAA,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,EAAE,GAAG,UAAU,CAAC;AACtB,MAAM,GAAG,GAAG,QAAQ,CAAC;AACT,MAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,IAAI,IAAI,KAAK,CAAC;AACd,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AACnB,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;AACnC,YAAY,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;AACnB,QAAQ,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;AACnC,YAAY,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,SAAS;AACT,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,GAAG,EAAE;AAC9C,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,IAAI,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI;AAC5E,SAAS,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,EAAE;AAC/E,QAAQ,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;AACvB,QAAQ,CAAC,CAAC,MAAM,KAAK,SAAS;AAC9B,QAAQ,OAAO,CAAC,KAAK,EAAE;AACvB,QAAQ,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE;AAChC,QAAQ,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9C,QAAQ,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,EAAE;AAC9C,QAAQ,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE;AAChD,QAAQ,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3C,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,MAAM,IAAI,CAAC,YAAY,MAAM,EAAE;AACpD,QAAQ,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC7C,KAAK;AAEL,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,EAAE;AACU,MAAC,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,KAAK;AACxD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;AACrB,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;AACxB,QAAQ,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAY,CAAC;AACb,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AACjB,EAAE;AACU,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;AAC9G,MAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE;AAChG,MAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,KAAK;AACrD,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AACzD,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE;AACrB,QAAQ,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;AACzD,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB;;;;;;;;"}
package/lib/index.umd.js DELETED
@@ -1 +0,0 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).thi=e.thi||{},e.thi.ng=e.thi.ng||{},e.thi.ng.equiv={}))}(this,(function(e){"use strict";const t=Object.getPrototypeOf({}),n="function",i="string",o=(e,o)=>{let l;return e===o||(null==e?e==o:typeof e.equiv===n?e.equiv(o):null==o?e==o:typeof o.equiv===n?o.equiv(e):typeof e!==i&&typeof o!==i&&(l=Object.getPrototypeOf(e),null!=l&&l!==t||(l=Object.getPrototypeOf(o),null!=l&&l!==t)?typeof e!==n&&void 0!==e.length&&typeof o!==n&&void 0!==o.length?f(e,o):e instanceof Set&&o instanceof Set?s(e,o):e instanceof Map&&o instanceof Map?r(e,o):e instanceof Date&&o instanceof Date?e.getTime()===o.getTime():e instanceof RegExp&&o instanceof RegExp?e.toString()===o.toString():e!=e&&o!=o:u(e,o)))},f=(e,t,n=o)=>{let i=e.length;if(i===t.length)for(;--i>=0&&n(e[i],t[i]););return i<0},s=(e,t,n=o)=>e.size===t.size&&n([...e.keys()].sort(),[...t.keys()].sort()),r=(e,t,n=o)=>e.size===t.size&&n([...e].sort(),[...t].sort()),u=(e,t,n=o)=>{if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let i in e)if(!t.hasOwnProperty(i)||!n(e[i],t[i]))return!1;return!0};e.equiv=o,e.equivArrayLike=f,e.equivMap=r,e.equivObject=u,e.equivSet=s,Object.defineProperty(e,"__esModule",{value:!0})}));
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.umd.js","sources":["../index.js"],"sourcesContent":null,"names":[],"mappings":"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"}