typescript-ds-lib 0.4.0 → 0.4.6
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/LICENSE +1 -1
- package/README.md +9 -7
- package/dist/algorithms/binary-search.d.ts +14 -0
- package/dist/algorithms/binary-search.js +36 -0
- package/dist/algorithms/binary-search.js.map +1 -0
- package/dist/algorithms/shuffle.d.ts +1 -0
- package/dist/algorithms/shuffle.js +20 -0
- package/dist/algorithms/shuffle.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/binary-search-tree.js +2 -2
- package/dist/lib/binary-search-tree.js.map +1 -1
- package/dist/lib/deque.js.map +1 -1
- package/dist/lib/graph/base.d.ts +167 -0
- package/dist/lib/graph/base.js +233 -0
- package/dist/lib/graph/base.js.map +1 -0
- package/dist/lib/graph/linked-list-graph.d.ts +18 -0
- package/dist/lib/graph/linked-list-graph.js +71 -0
- package/dist/lib/graph/linked-list-graph.js.map +1 -0
- package/dist/lib/graph/matrix-graph.d.ts +18 -0
- package/dist/lib/graph/matrix-graph.js +102 -0
- package/dist/lib/graph/matrix-graph.js.map +1 -0
- package/dist/lib/hash-table.js.map +1 -1
- package/dist/lib/hash-utils.js +3 -2
- package/dist/lib/hash-utils.js.map +1 -1
- package/dist/lib/heap.js +2 -4
- package/dist/lib/heap.js.map +1 -1
- package/dist/lib/linked-list.js.map +1 -1
- package/dist/lib/map.js.map +1 -1
- package/dist/lib/matrix.js +14 -6
- package/dist/lib/matrix.js.map +1 -1
- package/dist/lib/priority-queue.js.map +1 -1
- package/dist/lib/queue.js.map +1 -1
- package/dist/lib/red-black-tree.js +1 -2
- package/dist/lib/red-black-tree.js.map +1 -1
- package/dist/lib/set.js.map +1 -1
- package/dist/lib/stack.d.ts +1 -1
- package/dist/lib/stack.js.map +1 -1
- package/dist/lib/utils.js +13 -17
- package/dist/lib/utils.js.map +1 -1
- package/package.json +10 -6
- package/dist/lib/graph.d.ts +0 -14
- package/dist/lib/graph.js +0 -3
- package/dist/lib/graph.js.map +0 -1
package/dist/lib/utils.js
CHANGED
|
@@ -11,23 +11,26 @@ class Utils {
|
|
|
11
11
|
if (typeof key1.equals === 'function') {
|
|
12
12
|
return key1.equals(key2);
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (type1 === 'number' && type2 === 'number') {
|
|
19
|
-
return key1 === key2 || (isNaN(key1) && isNaN(key2));
|
|
20
|
-
}
|
|
21
|
-
return key1 === key2;
|
|
14
|
+
// Handle NaN values
|
|
15
|
+
if (typeof key1 === 'number' && typeof key2 === 'number') {
|
|
16
|
+
// NaN is the only value that isn't equal to itself.
|
|
17
|
+
return key1 === key2 || (isNaN(key1) && isNaN(key2));
|
|
22
18
|
}
|
|
23
19
|
// Handle special object types
|
|
24
20
|
if (key1 instanceof Date) {
|
|
25
|
-
return key2 instanceof Date &&
|
|
26
|
-
(key1.getTime() === key2.getTime() || (isNaN(key1.getTime()) && isNaN(key2.getTime())));
|
|
21
|
+
return (key2 instanceof Date &&
|
|
22
|
+
(key1.getTime() === key2.getTime() || (isNaN(key1.getTime()) && isNaN(key2.getTime()))));
|
|
27
23
|
}
|
|
28
24
|
if (key1 instanceof RegExp) {
|
|
29
25
|
return key2 instanceof RegExp && key1.toString() === key2.toString();
|
|
30
26
|
}
|
|
27
|
+
// Handle plain objects
|
|
28
|
+
if (typeof key1 === 'object' && typeof key2 === 'object') {
|
|
29
|
+
const keys1 = Object.keys(key1);
|
|
30
|
+
const keys2 = Object.keys(key2);
|
|
31
|
+
return (keys1.length === keys2.length &&
|
|
32
|
+
keys1.every((k) => k in key2 && Utils.equals(key1[k], key2[k])));
|
|
33
|
+
}
|
|
31
34
|
if (Array.isArray(key1)) {
|
|
32
35
|
if (!Array.isArray(key2) || key1.length !== key2.length)
|
|
33
36
|
return false;
|
|
@@ -37,13 +40,6 @@ class Utils {
|
|
|
37
40
|
}
|
|
38
41
|
return true;
|
|
39
42
|
}
|
|
40
|
-
// Handle plain objects
|
|
41
|
-
if (typeof key1 === 'object' && typeof key2 === 'object') {
|
|
42
|
-
const keys1 = Object.keys(key1);
|
|
43
|
-
const keys2 = Object.keys(key2);
|
|
44
|
-
return keys1.length === keys2.length &&
|
|
45
|
-
keys1.every(k => k in key2 && Utils.equals(key1[k], key2[k]));
|
|
46
|
-
}
|
|
47
43
|
return false;
|
|
48
44
|
}
|
|
49
45
|
}
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAChB,MAAM,CAAC,MAAM,CAAI,IAAO,EAAE,IAAO;QAC/B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,IAAI,KAAK,IAAI,CAAC;QAEvD,iCAAiC;QACjC,IAAI,OAAQ,IAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/C,OAAQ,IAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAChB,MAAM,CAAC,MAAM,CAAI,IAAO,EAAE,IAAO;QAC/B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;YAAE,OAAO,IAAI,KAAK,IAAI,CAAC;QAEvD,iCAAiC;QACjC,IAAI,OAAQ,IAAY,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC/C,OAAQ,IAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAED,oBAAoB;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,oDAAoD;YACpD,OAAO,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,IAAI,KAAK,CAAC,IAAc,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;YACzB,OAAO,CACL,IAAI,YAAY,IAAI;gBACpB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CACxF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;YAC3B,OAAO,IAAI,YAAY,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvE,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,CACL,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;gBAC7B,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,CAAE,IAAY,CAAC,CAAC,CAAC,EAAG,IAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAClF,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;YACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAC;YACpD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA/CD,sBA+CC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "typescript-ds-lib",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.6",
|
|
4
4
|
"description": "A collection of TypeScript data structure implementations",
|
|
5
5
|
"author": "Artiom Baloian <artiom.baloian@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "rm -rf dist && tsc",
|
|
16
|
+
"format": "prettier --write \"lib/**/*.ts\" \"tests/**/*.ts\"",
|
|
16
17
|
"prepare": "npm run build",
|
|
17
18
|
"test": "rm -rf dist && tsc && jest",
|
|
18
19
|
"benchmark": "ts-node benchmarks/run.ts"
|
|
@@ -22,11 +23,11 @@
|
|
|
22
23
|
"url": "https://github.com/baloian/typescript-ds.git"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"ts-node": "^10.9.2",
|
|
26
26
|
"@types/jest": "^29.5.14",
|
|
27
|
-
"@types/node": "^
|
|
28
|
-
"ts-jest": "^29.
|
|
29
|
-
"
|
|
27
|
+
"@types/node": "^25.0.3",
|
|
28
|
+
"ts-jest": "^29.4.1",
|
|
29
|
+
"ts-node": "^10.9.2",
|
|
30
|
+
"typescript": "^5.9.3"
|
|
30
31
|
},
|
|
31
32
|
"keywords": [
|
|
32
33
|
"typescript",
|
|
@@ -43,5 +44,8 @@
|
|
|
43
44
|
"set",
|
|
44
45
|
"map",
|
|
45
46
|
"matrix"
|
|
46
|
-
]
|
|
47
|
+
],
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"prettier": "^3.6.2"
|
|
50
|
+
}
|
|
47
51
|
}
|
package/dist/lib/graph.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface Graph<V, W> {
|
|
2
|
-
addVertex(vertex: V): void;
|
|
3
|
-
removeVertex(vertex: V): void;
|
|
4
|
-
addEdge(from: V, to: V, weight?: W): void;
|
|
5
|
-
removeEdge(from: V, to: V): void;
|
|
6
|
-
getNeighbors(vertex: V): V[];
|
|
7
|
-
getEdgeWeight(from: V, to: V): W;
|
|
8
|
-
getVertices(): V[];
|
|
9
|
-
hasVertex(vertex: V): boolean;
|
|
10
|
-
hasEdge(from: V, to: V): boolean;
|
|
11
|
-
vertexCount(): number;
|
|
12
|
-
edgeCount(): number;
|
|
13
|
-
clear(): void;
|
|
14
|
-
}
|
package/dist/lib/graph.js
DELETED
package/dist/lib/graph.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../lib/graph.ts"],"names":[],"mappings":""}
|