@nxtedition/ranges 1.0.6 → 1.0.8

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/lib/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export type Range = readonly [start: number, end: number];
2
2
  export declare function merge(ranges: Range[]): readonly Range[];
3
3
  export declare function subtract(a: readonly Range[], b: readonly Range[]): readonly Range[];
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAczD,wBAAgB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,KAAK,EAAE,CAsCvD;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,SAAS,KAAK,EAAE,EAAE,CAAC,EAAE,SAAS,KAAK,EAAE,GAAG,SAAS,KAAK,EAAE,CAkCnF"}
package/lib/index.js CHANGED
@@ -1,89 +1,70 @@
1
-
2
-
3
- const EMPTY_ARR = Object.freeze([])
4
-
5
- function isValidRange(range ) {
6
- return (
7
- Array.isArray(range) &&
8
- range.length === 2 &&
9
- Number.isFinite(range[0]) &&
10
- Number.isFinite(range[1]) &&
11
- range[1] > range[0]
12
- )
1
+ const EMPTY_ARR = Object.freeze([]);
2
+ function isValidRange(range) {
3
+ return (Array.isArray(range) &&
4
+ range.length === 2 &&
5
+ Number.isFinite(range[0]) &&
6
+ Number.isFinite(range[1]) &&
7
+ range[1] > range[0]);
13
8
  }
14
-
15
- export function merge(ranges ) {
16
- if (!Array.isArray(ranges) || ranges.length === 0) {
17
- return EMPTY_ARR
18
- }
19
-
20
- if (ranges.length === 1) {
21
- const range = ranges[0]
22
- return isValidRange(range) ? [[range[0], range[1]]] : EMPTY_ARR
23
- }
24
-
25
- ranges = ranges.filter(isValidRange)
26
-
27
- if (ranges.length === 0) {
28
- return EMPTY_ARR
29
- }
30
-
31
- if (ranges.length === 1) {
32
- return [[ranges[0][0], ranges[0][1]]]
33
- }
34
-
35
- ranges.sort((a, b) => a[0] - b[0])
36
-
37
- const stack = []
38
-
39
- stack.push([ranges[0][0], ranges[0][1]])
40
-
41
- for (let n = 1, len = ranges.length; n < len; ++n) {
42
- const range = ranges[n]
43
- const top = stack[stack.length - 1]
44
-
45
- if (top[1] < range[0]) {
46
- stack.push([range[0], range[1]])
47
- } else if (top[1] < range[1]) {
48
- top[1] = range[1]
9
+ export function merge(ranges) {
10
+ if (!Array.isArray(ranges) || ranges.length === 0) {
11
+ return EMPTY_ARR;
49
12
  }
50
- }
51
-
52
- return stack
13
+ if (ranges.length === 1) {
14
+ const range = ranges[0];
15
+ return isValidRange(range) ? [[range[0], range[1]]] : EMPTY_ARR;
16
+ }
17
+ ranges = ranges.filter(isValidRange);
18
+ if (ranges.length === 0) {
19
+ return EMPTY_ARR;
20
+ }
21
+ if (ranges.length === 1) {
22
+ return [[ranges[0][0], ranges[0][1]]];
23
+ }
24
+ ranges.sort((a, b) => a[0] - b[0]);
25
+ const stack = [];
26
+ stack.push([ranges[0][0], ranges[0][1]]);
27
+ for (let n = 1, len = ranges.length; n < len; ++n) {
28
+ const range = ranges[n];
29
+ const top = stack[stack.length - 1];
30
+ if (top[1] < range[0]) {
31
+ stack.push([range[0], range[1]]);
32
+ }
33
+ else if (top[1] < range[1]) {
34
+ top[1] = range[1];
35
+ }
36
+ }
37
+ return stack;
53
38
  }
54
-
55
- export function subtract(a , b ) {
56
- if (!Array.isArray(a) || a.length === 0) {
57
- return EMPTY_ARR
58
- }
59
-
60
- const pending = []
61
- for (let i = a.length - 1; i >= 0; --i) {
62
- const r = a[i]
63
- if (isValidRange(r)) {
64
- pending.push([r[0], r[1]])
39
+ export function subtract(a, b) {
40
+ if (!Array.isArray(a) || a.length === 0) {
41
+ return EMPTY_ARR;
42
+ }
43
+ const pending = [];
44
+ for (let i = a.length - 1; i >= 0; --i) {
45
+ const r = a[i];
46
+ if (isValidRange(r)) {
47
+ pending.push([r[0], r[1]]);
48
+ }
65
49
  }
66
- }
67
-
68
- const validB = Array.isArray(b) ? b.filter(isValidRange) : []
69
-
70
- const c = []
71
-
72
- while (pending.length > 0) {
73
- const ar = pending.pop()
74
- const br = validB.find((br) => ar[0] < br[1] && br[0] < ar[1])
75
- if (!br) {
76
- c.push(ar)
77
- } else {
78
- // Push right half first so left is popped next and processed first.
79
- if (br[1] < ar[1]) {
80
- pending.push([br[1], ar[1]])
81
- }
82
- if (ar[0] < br[0]) {
83
- pending.push([ar[0], br[0]])
84
- }
50
+ const validB = Array.isArray(b) ? b.filter(isValidRange) : [];
51
+ const c = [];
52
+ while (pending.length > 0) {
53
+ const ar = pending.pop();
54
+ const br = validB.find((br) => ar[0] < br[1] && br[0] < ar[1]);
55
+ if (!br) {
56
+ c.push(ar);
57
+ }
58
+ else {
59
+ // Push right half first so left is popped next and processed first.
60
+ if (br[1] < ar[1]) {
61
+ pending.push([br[1], ar[1]]);
62
+ }
63
+ if (ar[0] < br[0]) {
64
+ pending.push([ar[0], br[0]]);
65
+ }
66
+ }
85
67
  }
86
- }
87
-
88
- return c
68
+ return c;
89
69
  }
70
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/ranges",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "access": "public"
15
15
  },
16
16
  "scripts": {
17
- "build": "rimraf lib && tsc && amaroc ./src/index.ts && mv src/index.js lib/",
17
+ "build": "rimraf lib && tsc -p tsconfig.build.json",
18
18
  "prepublishOnly": "yarn build",
19
19
  "typecheck": "tsc --noEmit",
20
20
  "test": "node --test",
@@ -23,10 +23,9 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^25.5.0",
26
- "amaroc": "^1.0.1",
27
26
  "oxlint-tsgolint": "^0.17.0",
28
27
  "rimraf": "^6.1.3",
29
28
  "typescript": "^5.9.3"
30
29
  },
31
- "gitHead": "7e5874931730a283de31418b891b69627ff5acae"
30
+ "gitHead": "7c9c7457c885c644c7a1e70ef894d4727ce240d6"
32
31
  }