data-structure-typed 2.4.5 → 2.5.1

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 (240) hide show
  1. package/.vitepress/cache/deps_temp_51f5f1b0/chunk-7OIKW5WK.js +12984 -0
  2. package/.vitepress/cache/deps_temp_51f5f1b0/package.json +3 -0
  3. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vue_devtools-api.js +4505 -0
  4. package/.vitepress/cache/deps_temp_51f5f1b0/vitepress___@vueuse_core.js +9731 -0
  5. package/.vitepress/cache/deps_temp_51f5f1b0/vue.js +347 -0
  6. package/CHANGELOG.md +3 -1
  7. package/README.md +78 -31
  8. package/dist/cjs/binary-tree.cjs +23698 -0
  9. package/dist/cjs/graph.cjs +5236 -0
  10. package/dist/cjs/hash.cjs +1262 -0
  11. package/dist/cjs/heap.cjs +1540 -0
  12. package/dist/cjs/index.cjs +24509 -2899
  13. package/dist/cjs/linked-list.cjs +4370 -0
  14. package/dist/cjs/matrix.cjs +1042 -0
  15. package/dist/cjs/priority-queue.cjs +1314 -0
  16. package/dist/cjs/queue.cjs +4090 -0
  17. package/dist/cjs/stack.cjs +861 -0
  18. package/dist/cjs/trie.cjs +1173 -0
  19. package/dist/cjs-legacy/binary-tree.cjs +23730 -0
  20. package/dist/cjs-legacy/graph.cjs +5234 -0
  21. package/dist/cjs-legacy/hash.cjs +1262 -0
  22. package/dist/cjs-legacy/heap.cjs +1537 -0
  23. package/dist/cjs-legacy/index.cjs +32555 -10936
  24. package/dist/cjs-legacy/linked-list.cjs +4376 -0
  25. package/dist/cjs-legacy/matrix.cjs +1045 -0
  26. package/dist/cjs-legacy/priority-queue.cjs +1312 -0
  27. package/dist/cjs-legacy/queue.cjs +4088 -0
  28. package/dist/cjs-legacy/stack.cjs +861 -0
  29. package/dist/cjs-legacy/trie.cjs +1172 -0
  30. package/dist/esm/binary-tree.mjs +23683 -0
  31. package/dist/esm/graph.mjs +5223 -0
  32. package/dist/esm/hash.mjs +1259 -0
  33. package/dist/esm/heap.mjs +1534 -0
  34. package/dist/esm/index.mjs +24507 -2898
  35. package/dist/esm/linked-list.mjs +4363 -0
  36. package/dist/esm/matrix.mjs +1038 -0
  37. package/dist/esm/priority-queue.mjs +1310 -0
  38. package/dist/esm/queue.mjs +4086 -0
  39. package/dist/esm/stack.mjs +859 -0
  40. package/dist/esm/trie.mjs +1170 -0
  41. package/dist/esm-legacy/binary-tree.mjs +23715 -0
  42. package/dist/esm-legacy/graph.mjs +5221 -0
  43. package/dist/esm-legacy/hash.mjs +1259 -0
  44. package/dist/esm-legacy/heap.mjs +1531 -0
  45. package/dist/esm-legacy/index.mjs +32553 -10935
  46. package/dist/esm-legacy/linked-list.mjs +4369 -0
  47. package/dist/esm-legacy/matrix.mjs +1041 -0
  48. package/dist/esm-legacy/priority-queue.mjs +1308 -0
  49. package/dist/esm-legacy/queue.mjs +4084 -0
  50. package/dist/esm-legacy/stack.mjs +859 -0
  51. package/dist/esm-legacy/trie.mjs +1169 -0
  52. package/dist/types/data-structures/base/index.d.ts +1 -0
  53. package/dist/types/data-structures/base/iterable-element-base.d.ts +1 -1
  54. package/dist/types/data-structures/base/iterable-entry-base.d.ts +8 -8
  55. package/dist/types/data-structures/base/linear-base.d.ts +3 -3
  56. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +368 -51
  57. package/dist/types/data-structures/binary-tree/binary-indexed-tree.d.ts +473 -147
  58. package/dist/types/data-structures/binary-tree/binary-tree.d.ts +931 -80
  59. package/dist/types/data-structures/binary-tree/bst.d.ts +792 -29
  60. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +592 -32
  61. package/dist/types/data-structures/binary-tree/segment-tree.d.ts +320 -135
  62. package/dist/types/data-structures/binary-tree/tree-map.d.ts +3662 -6
  63. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +3487 -201
  64. package/dist/types/data-structures/binary-tree/tree-multi-set.d.ts +2778 -65
  65. package/dist/types/data-structures/binary-tree/tree-set.d.ts +3414 -6
  66. package/dist/types/data-structures/graph/abstract-graph.d.ts +4 -4
  67. package/dist/types/data-structures/graph/directed-graph.d.ts +419 -47
  68. package/dist/types/data-structures/graph/map-graph.d.ts +59 -1
  69. package/dist/types/data-structures/graph/undirected-graph.d.ts +384 -59
  70. package/dist/types/data-structures/hash/hash-map.d.ts +462 -89
  71. package/dist/types/data-structures/heap/heap.d.ts +567 -99
  72. package/dist/types/data-structures/heap/max-heap.d.ts +46 -0
  73. package/dist/types/data-structures/heap/min-heap.d.ts +59 -0
  74. package/dist/types/data-structures/linked-list/doubly-linked-list.d.ts +631 -49
  75. package/dist/types/data-structures/linked-list/singly-linked-list.d.ts +581 -68
  76. package/dist/types/data-structures/linked-list/skip-linked-list.d.ts +775 -12
  77. package/dist/types/data-structures/matrix/matrix.d.ts +491 -0
  78. package/dist/types/data-structures/priority-queue/max-priority-queue.d.ts +57 -0
  79. package/dist/types/data-structures/priority-queue/min-priority-queue.d.ts +60 -0
  80. package/dist/types/data-structures/priority-queue/priority-queue.d.ts +60 -0
  81. package/dist/types/data-structures/queue/deque.d.ts +578 -71
  82. package/dist/types/data-structures/queue/queue.d.ts +451 -42
  83. package/dist/types/data-structures/stack/stack.d.ts +374 -32
  84. package/dist/types/data-structures/trie/trie.d.ts +458 -48
  85. package/dist/types/interfaces/graph.d.ts +1 -1
  86. package/dist/types/types/common.d.ts +2 -2
  87. package/dist/types/types/data-structures/binary-tree/segment-tree.d.ts +1 -1
  88. package/dist/types/types/data-structures/heap/heap.d.ts +1 -0
  89. package/dist/types/types/data-structures/linked-list/skip-linked-list.d.ts +1 -4
  90. package/dist/types/types/data-structures/priority-queue/priority-queue.d.ts +1 -0
  91. package/dist/types/types/utils/validate-type.d.ts +4 -4
  92. package/dist/umd/data-structure-typed.js +32432 -10808
  93. package/dist/umd/data-structure-typed.min.js +10 -4
  94. package/docs-site-docusaurus/README.md +41 -0
  95. package/docs-site-docusaurus/docs/api/README.md +52 -0
  96. package/docs-site-docusaurus/docs/api/classes/AVLTree.md +6130 -0
  97. package/docs-site-docusaurus/docs/api/classes/AVLTreeNode.md +282 -0
  98. package/docs-site-docusaurus/docs/api/classes/AbstractGraph.md +2266 -0
  99. package/docs-site-docusaurus/docs/api/classes/BST.md +5831 -0
  100. package/docs-site-docusaurus/docs/api/classes/BSTNode.md +333 -0
  101. package/docs-site-docusaurus/docs/api/classes/BinaryIndexedTree.md +455 -0
  102. package/docs-site-docusaurus/docs/api/classes/BinaryTree.md +4647 -0
  103. package/docs-site-docusaurus/docs/api/classes/BinaryTreeNode.md +331 -0
  104. package/docs-site-docusaurus/docs/api/classes/Deque.md +2767 -0
  105. package/docs-site-docusaurus/docs/api/classes/DirectedGraph.md +2999 -0
  106. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedList.md +2685 -0
  107. package/docs-site-docusaurus/docs/api/classes/DoublyLinkedListNode.md +221 -0
  108. package/docs-site-docusaurus/docs/api/classes/FibonacciHeap.md +253 -0
  109. package/docs-site-docusaurus/docs/api/classes/FibonacciHeapNode.md +21 -0
  110. package/docs-site-docusaurus/docs/api/classes/HashMap.md +1333 -0
  111. package/docs-site-docusaurus/docs/api/classes/Heap.md +1881 -0
  112. package/docs-site-docusaurus/docs/api/classes/IterableElementBase.md +800 -0
  113. package/docs-site-docusaurus/docs/api/classes/IterableEntryBase.md +644 -0
  114. package/docs-site-docusaurus/docs/api/classes/LinearBase.md +1632 -0
  115. package/docs-site-docusaurus/docs/api/classes/LinearLinkedBase.md +1853 -0
  116. package/docs-site-docusaurus/docs/api/classes/LinkedHashMap.md +1108 -0
  117. package/docs-site-docusaurus/docs/api/classes/LinkedListNode.md +156 -0
  118. package/docs-site-docusaurus/docs/api/classes/LinkedListQueue.md +2824 -0
  119. package/docs-site-docusaurus/docs/api/classes/MapGraph.md +2929 -0
  120. package/docs-site-docusaurus/docs/api/classes/Matrix.md +1026 -0
  121. package/docs-site-docusaurus/docs/api/classes/MaxHeap.md +1866 -0
  122. package/docs-site-docusaurus/docs/api/classes/MaxPriorityQueue.md +1883 -0
  123. package/docs-site-docusaurus/docs/api/classes/MinHeap.md +1879 -0
  124. package/docs-site-docusaurus/docs/api/classes/MinPriorityQueue.md +1882 -0
  125. package/docs-site-docusaurus/docs/api/classes/Navigator.md +109 -0
  126. package/docs-site-docusaurus/docs/api/classes/PriorityQueue.md +1839 -0
  127. package/docs-site-docusaurus/docs/api/classes/Queue.md +2244 -0
  128. package/docs-site-docusaurus/docs/api/classes/RedBlackTree.md +6374 -0
  129. package/docs-site-docusaurus/docs/api/classes/SegmentTree.md +372 -0
  130. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedList.md +2897 -0
  131. package/docs-site-docusaurus/docs/api/classes/SinglyLinkedListNode.md +169 -0
  132. package/docs-site-docusaurus/docs/api/classes/SkipList.md +1229 -0
  133. package/docs-site-docusaurus/docs/api/classes/Stack.md +1573 -0
  134. package/docs-site-docusaurus/docs/api/classes/TreeMap.md +1257 -0
  135. package/docs-site-docusaurus/docs/api/classes/TreeMultiMap.md +1475 -0
  136. package/docs-site-docusaurus/docs/api/classes/TreeSet.md +1117 -0
  137. package/docs-site-docusaurus/docs/api/classes/Trie.md +1708 -0
  138. package/docs-site-docusaurus/docs/api/classes/TrieNode.md +199 -0
  139. package/docs-site-docusaurus/docs/api/classes/UndirectedGraph.md +2979 -0
  140. package/docs-site-docusaurus/docs/guide/_category_.json +6 -0
  141. package/docs-site-docusaurus/docs/guide/architecture.md +613 -0
  142. package/docs-site-docusaurus/docs/guide/concepts.md +420 -0
  143. package/docs-site-docusaurus/docs/guide/guides.md +611 -0
  144. package/docs-site-docusaurus/docs/guide/installation.md +60 -0
  145. package/docs-site-docusaurus/docs/guide/integrations.md +823 -0
  146. package/docs-site-docusaurus/docs/guide/overview.md +638 -0
  147. package/docs-site-docusaurus/docs/guide/performance.md +833 -0
  148. package/docs-site-docusaurus/docs/guide/quick-start.md +73 -0
  149. package/docs-site-docusaurus/docusaurus.config.ts +159 -0
  150. package/docs-site-docusaurus/fix-mdx-generics.mjs +75 -0
  151. package/docs-site-docusaurus/package-lock.json +18667 -0
  152. package/docs-site-docusaurus/package.json +50 -0
  153. package/docs-site-docusaurus/prefix-class-to-methods.mjs +48 -0
  154. package/docs-site-docusaurus/sidebars.ts +23 -0
  155. package/docs-site-docusaurus/sort-protected.mjs +87 -0
  156. package/docs-site-docusaurus/src/css/custom.css +96 -0
  157. package/docs-site-docusaurus/src/pages/index.module.css +13 -0
  158. package/docs-site-docusaurus/src/pages/index.tsx +71 -0
  159. package/docs-site-docusaurus/src/pages/markdown-page.md +7 -0
  160. package/docs-site-docusaurus/src/theme/TOCItems/index.tsx +34 -0
  161. package/docs-site-docusaurus/static/.nojekyll +0 -0
  162. package/docs-site-docusaurus/static/img/docusaurus-social-card.jpg +0 -0
  163. package/docs-site-docusaurus/static/img/docusaurus.png +0 -0
  164. package/docs-site-docusaurus/static/img/favicon.ico +0 -0
  165. package/docs-site-docusaurus/static/img/favicon.png +0 -0
  166. package/docs-site-docusaurus/static/img/logo-180.png +0 -0
  167. package/docs-site-docusaurus/static/img/logo.jpg +0 -0
  168. package/docs-site-docusaurus/static/img/logo.png +0 -0
  169. package/docs-site-docusaurus/static/img/logo.svg +1 -0
  170. package/docs-site-docusaurus/static/img/og-image.png +0 -0
  171. package/docs-site-docusaurus/static/img/undraw_docusaurus_mountain.svg +171 -0
  172. package/docs-site-docusaurus/static/img/undraw_docusaurus_react.svg +170 -0
  173. package/docs-site-docusaurus/static/img/undraw_docusaurus_tree.svg +40 -0
  174. package/docs-site-docusaurus/static/robots.txt +4 -0
  175. package/docs-site-docusaurus/typedoc.json +23 -0
  176. package/package.json +109 -12
  177. package/src/data-structures/base/index.ts +1 -0
  178. package/src/data-structures/base/iterable-element-base.ts +4 -5
  179. package/src/data-structures/base/iterable-entry-base.ts +8 -8
  180. package/src/data-structures/base/linear-base.ts +3 -3
  181. package/src/data-structures/binary-tree/avl-tree.ts +386 -51
  182. package/src/data-structures/binary-tree/binary-indexed-tree.ts +596 -247
  183. package/src/data-structures/binary-tree/binary-tree.ts +956 -81
  184. package/src/data-structures/binary-tree/bst.ts +840 -35
  185. package/src/data-structures/binary-tree/red-black-tree.ts +689 -97
  186. package/src/data-structures/binary-tree/segment-tree.ts +498 -249
  187. package/src/data-structures/binary-tree/tree-map.ts +3784 -7
  188. package/src/data-structures/binary-tree/tree-multi-map.ts +3614 -211
  189. package/src/data-structures/binary-tree/tree-multi-set.ts +2874 -65
  190. package/src/data-structures/binary-tree/tree-set.ts +3531 -10
  191. package/src/data-structures/graph/abstract-graph.ts +4 -4
  192. package/src/data-structures/graph/directed-graph.ts +429 -47
  193. package/src/data-structures/graph/map-graph.ts +59 -1
  194. package/src/data-structures/graph/undirected-graph.ts +393 -59
  195. package/src/data-structures/hash/hash-map.ts +476 -92
  196. package/src/data-structures/heap/heap.ts +581 -99
  197. package/src/data-structures/heap/max-heap.ts +46 -0
  198. package/src/data-structures/heap/min-heap.ts +59 -0
  199. package/src/data-structures/linked-list/doubly-linked-list.ts +646 -47
  200. package/src/data-structures/linked-list/singly-linked-list.ts +596 -68
  201. package/src/data-structures/linked-list/skip-linked-list.ts +1067 -90
  202. package/src/data-structures/matrix/matrix.ts +584 -12
  203. package/src/data-structures/priority-queue/max-priority-queue.ts +57 -0
  204. package/src/data-structures/priority-queue/min-priority-queue.ts +60 -0
  205. package/src/data-structures/priority-queue/priority-queue.ts +60 -0
  206. package/src/data-structures/queue/deque.ts +592 -70
  207. package/src/data-structures/queue/queue.ts +463 -42
  208. package/src/data-structures/stack/stack.ts +384 -32
  209. package/src/data-structures/trie/trie.ts +470 -48
  210. package/src/interfaces/graph.ts +1 -1
  211. package/src/types/common.ts +2 -2
  212. package/src/types/data-structures/binary-tree/segment-tree.ts +1 -1
  213. package/src/types/data-structures/heap/heap.ts +1 -0
  214. package/src/types/data-structures/linked-list/skip-linked-list.ts +2 -1
  215. package/src/types/data-structures/priority-queue/priority-queue.ts +1 -0
  216. package/src/types/utils/validate-type.ts +4 -4
  217. package/vercel.json +6 -0
  218. package/dist/leetcode/avl-tree-counter.mjs +0 -2957
  219. package/dist/leetcode/avl-tree-multi-map.mjs +0 -2889
  220. package/dist/leetcode/avl-tree.mjs +0 -2720
  221. package/dist/leetcode/binary-tree.mjs +0 -1594
  222. package/dist/leetcode/bst.mjs +0 -2398
  223. package/dist/leetcode/deque.mjs +0 -683
  224. package/dist/leetcode/directed-graph.mjs +0 -1733
  225. package/dist/leetcode/doubly-linked-list.mjs +0 -709
  226. package/dist/leetcode/hash-map.mjs +0 -493
  227. package/dist/leetcode/heap.mjs +0 -542
  228. package/dist/leetcode/max-heap.mjs +0 -375
  229. package/dist/leetcode/max-priority-queue.mjs +0 -383
  230. package/dist/leetcode/min-heap.mjs +0 -363
  231. package/dist/leetcode/min-priority-queue.mjs +0 -371
  232. package/dist/leetcode/priority-queue.mjs +0 -363
  233. package/dist/leetcode/queue.mjs +0 -943
  234. package/dist/leetcode/red-black-tree.mjs +0 -2765
  235. package/dist/leetcode/singly-linked-list.mjs +0 -754
  236. package/dist/leetcode/stack.mjs +0 -217
  237. package/dist/leetcode/tree-counter.mjs +0 -3039
  238. package/dist/leetcode/tree-multi-map.mjs +0 -2913
  239. package/dist/leetcode/trie.mjs +0 -413
  240. package/dist/leetcode/undirected-graph.mjs +0 -1650
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-structure-typed",
3
- "version": "2.4.5",
3
+ "version": "2.5.1",
4
4
  "description": "Standard data structure",
5
5
  "browser": "dist/umd/data-structure-typed.min.js",
6
6
  "umd:main": "dist/umd/data-structure-typed.min.js",
@@ -30,7 +30,98 @@
30
30
  "types": "./dist/types/index.d.ts",
31
31
  "import": "./dist/esm-legacy/index.mjs",
32
32
  "require": "./dist/cjs-legacy/index.cjs"
33
- }
33
+ },
34
+ "./binary-tree": {
35
+ "types": "./dist/types/data-structures/binary-tree/index.d.ts",
36
+ "node": {
37
+ "import": "./dist/esm/binary-tree.mjs",
38
+ "require": "./dist/cjs/binary-tree.cjs"
39
+ },
40
+ "import": "./dist/esm-legacy/binary-tree.mjs",
41
+ "require": "./dist/cjs-legacy/binary-tree.cjs"
42
+ },
43
+ "./graph": {
44
+ "types": "./dist/types/data-structures/graph/index.d.ts",
45
+ "node": {
46
+ "import": "./dist/esm/graph.mjs",
47
+ "require": "./dist/cjs/graph.cjs"
48
+ },
49
+ "import": "./dist/esm-legacy/graph.mjs",
50
+ "require": "./dist/cjs-legacy/graph.cjs"
51
+ },
52
+ "./hash": {
53
+ "types": "./dist/types/data-structures/hash/index.d.ts",
54
+ "node": {
55
+ "import": "./dist/esm/hash.mjs",
56
+ "require": "./dist/cjs/hash.cjs"
57
+ },
58
+ "import": "./dist/esm-legacy/hash.mjs",
59
+ "require": "./dist/cjs-legacy/hash.cjs"
60
+ },
61
+ "./heap": {
62
+ "types": "./dist/types/data-structures/heap/index.d.ts",
63
+ "node": {
64
+ "import": "./dist/esm/heap.mjs",
65
+ "require": "./dist/cjs/heap.cjs"
66
+ },
67
+ "import": "./dist/esm-legacy/heap.mjs",
68
+ "require": "./dist/cjs-legacy/heap.cjs"
69
+ },
70
+ "./linked-list": {
71
+ "types": "./dist/types/data-structures/linked-list/index.d.ts",
72
+ "node": {
73
+ "import": "./dist/esm/linked-list.mjs",
74
+ "require": "./dist/cjs/linked-list.cjs"
75
+ },
76
+ "import": "./dist/esm-legacy/linked-list.mjs",
77
+ "require": "./dist/cjs-legacy/linked-list.cjs"
78
+ },
79
+ "./matrix": {
80
+ "types": "./dist/types/data-structures/matrix/index.d.ts",
81
+ "node": {
82
+ "import": "./dist/esm/matrix.mjs",
83
+ "require": "./dist/cjs/matrix.cjs"
84
+ },
85
+ "import": "./dist/esm-legacy/matrix.mjs",
86
+ "require": "./dist/cjs-legacy/matrix.cjs"
87
+ },
88
+ "./priority-queue": {
89
+ "types": "./dist/types/data-structures/priority-queue/index.d.ts",
90
+ "node": {
91
+ "import": "./dist/esm/priority-queue.mjs",
92
+ "require": "./dist/cjs/priority-queue.cjs"
93
+ },
94
+ "import": "./dist/esm-legacy/priority-queue.mjs",
95
+ "require": "./dist/cjs-legacy/priority-queue.cjs"
96
+ },
97
+ "./queue": {
98
+ "types": "./dist/types/data-structures/queue/index.d.ts",
99
+ "node": {
100
+ "import": "./dist/esm/queue.mjs",
101
+ "require": "./dist/cjs/queue.cjs"
102
+ },
103
+ "import": "./dist/esm-legacy/queue.mjs",
104
+ "require": "./dist/cjs-legacy/queue.cjs"
105
+ },
106
+ "./stack": {
107
+ "types": "./dist/types/data-structures/stack/index.d.ts",
108
+ "node": {
109
+ "import": "./dist/esm/stack.mjs",
110
+ "require": "./dist/cjs/stack.cjs"
111
+ },
112
+ "import": "./dist/esm-legacy/stack.mjs",
113
+ "require": "./dist/cjs-legacy/stack.cjs"
114
+ },
115
+ "./trie": {
116
+ "types": "./dist/types/data-structures/trie/index.d.ts",
117
+ "node": {
118
+ "import": "./dist/esm/trie.mjs",
119
+ "require": "./dist/cjs/trie.cjs"
120
+ },
121
+ "import": "./dist/esm-legacy/trie.mjs",
122
+ "require": "./dist/cjs-legacy/trie.cjs"
123
+ },
124
+ "./package.json": "./package.json"
34
125
  },
35
126
  "sideEffects": false,
36
127
  "engines": {
@@ -44,8 +135,9 @@
44
135
  "build:types": "rm -rf dist/types && tsc -p tsconfig.types.json",
45
136
  "build:ecut": "npm run build:node && npm run build:types && npm run build:umd",
46
137
  "build:leetcode": "tsup --config tsup.leetcode.config.js",
47
- "build:docs": "npm run gen:examples && npm run generate:schema && typedoc --out docs/api ./src",
48
- "build:docs-class": "npm run gen:examples && typedoc --out docs/api ./src/data-structures",
138
+ "build:typedoc-plugin": "tsc scripts/typedoc-plugin-example-rewrite.ts --outDir scripts --esModuleInterop --module commonjs --target es2020 --moduleResolution node --skipLibCheck",
139
+ "build:docs": "npm run gen:examples && npm run generate:schema && npm run build:typedoc-plugin && typedoc --plugin ./scripts/typedoc-plugin-example-rewrite.js --out docs/api ./src",
140
+ "build:docs-class": "npm run gen:examples && npm run build:typedoc-plugin && typedoc --plugin ./scripts/typedoc-plugin-example-rewrite.js --out docs/api ./src/data-structures",
49
141
  "gen:examples": "ts-node scripts/test-to-example.ts",
50
142
  "test:in-band": "jest --runInBand",
51
143
  "test": "npm run test:in-band",
@@ -75,7 +167,11 @@
75
167
  "publish:subs": "npm run copy:to-subs && sh scripts/publish_all_subs.sh",
76
168
  "publish:docs": "sh scripts/publish_docs.sh",
77
169
  "publish:all": "npm run ci && npm publish && npm run publish:docs && npm run check:exist-latest && npm run publish:subs",
78
- "generate:schema": "ts-node scripts/generate-schema.ts"
170
+ "generate:schema": "ts-node scripts/generate-schema.ts",
171
+ "docs:api": "npm run gen:examples && npm run build:typedoc-plugin && cd docs-site-docusaurus && npx typedoc --options typedoc.json && node sort-protected.mjs",
172
+ "docs:dev": "cd docs-site-docusaurus && npm run start",
173
+ "docs:build": "cd docs-site-docusaurus && rm -rf docs/api && npx typedoc --options typedoc.json && node sort-protected.mjs && npm run build",
174
+ "docs:preview": "cd docs-site-docusaurus && npm run serve"
79
175
  },
80
176
  "repository": {
81
177
  "type": "git",
@@ -101,11 +197,11 @@
101
197
  "@typescript-eslint/eslint-plugin": "^8.12.1",
102
198
  "@typescript-eslint/parser": "^8.12.1",
103
199
  "auto-changelog": "^2.5.0",
104
- "avl-tree-typed": "^1.54.3",
200
+ "avl-tree-typed": "^2.5.0",
105
201
  "benchmark": "^2.1.4",
106
- "binary-tree-typed": "^1.54.3",
107
- "bst-typed": "^1.54.3",
108
- "data-structure-typed": "^2.4.4",
202
+ "binary-tree-typed": "^2.5.0",
203
+ "bst-typed": "^2.5.0",
204
+ "data-structure-typed": "^2.5.0",
109
205
  "dependency-cruiser": "^16.5.0",
110
206
  "doctoc": "^2.2.1",
111
207
  "eslint": "^9.13.0",
@@ -114,7 +210,7 @@
114
210
  "eslint-import-resolver-typescript": "^3.6.3",
115
211
  "eslint-plugin-import": "^2.31.0",
116
212
  "fast-glob": "^3.3.2",
117
- "heap-typed": "^1.54.3",
213
+ "heap-typed": "^2.5.0",
118
214
  "istanbul-badges-readme": "^1.9.0",
119
215
  "jest": "^29.7.0",
120
216
  "js-sdsl": "^4.4.2",
@@ -124,8 +220,9 @@
124
220
  "ts-morph": "^27.0.2",
125
221
  "ts-node": "^10.9.2",
126
222
  "tsup": "^8.5.1",
127
- "typedoc": "^0.26.10",
128
- "typescript": "^5.6.3"
223
+ "typedoc": "^0.28.18",
224
+ "typedoc-plugin-markdown": "^4.11.0",
225
+ "typescript": "~5.9"
129
226
  },
130
227
  "keywords": [
131
228
  "data structures typescript",
@@ -1,2 +1,3 @@
1
1
  export * from './iterable-entry-base';
2
2
  export * from './iterable-element-base';
3
+ export * from './linear-base';
@@ -1,5 +1,4 @@
1
1
  import type { ElementCallback, IterableElementBaseOptions, ReduceElementCallback } from '../../types';
2
- import { ERR } from '../../common';
3
2
 
4
3
  /**
5
4
  * Base class that makes a data structure iterable and provides common
@@ -26,7 +25,7 @@ export abstract class IterableElementBase<E, R> implements Iterable<E> {
26
25
  if (options) {
27
26
  const { toElementFn } = options;
28
27
  if (typeof toElementFn === 'function') this._toElementFn = toElementFn;
29
- else if (toElementFn) throw new TypeError(ERR.notAFunction('toElementFn'));
28
+ else if (toElementFn) throw new TypeError('toElementFn must be a function type');
30
29
  }
31
30
  }
32
31
 
@@ -36,7 +35,7 @@ export abstract class IterableElementBase<E, R> implements Iterable<E> {
36
35
  * @remarks
37
36
  * Time O(1), Space O(1).
38
37
  */
39
- protected readonly _toElementFn?: (rawElement: R) => E;
38
+ protected _toElementFn?: (rawElement: R) => E;
40
39
 
41
40
  /**
42
41
  * Exposes the current `toElementFn`, if configured.
@@ -225,12 +224,12 @@ export abstract class IterableElementBase<E, R> implements Iterable<E> {
225
224
  acc = initialValue as U;
226
225
  } else {
227
226
  const first = iter.next();
228
- if (first.done) throw new TypeError(ERR.reduceEmpty());
227
+ if (first.done) throw new TypeError('Reduce of empty structure with no initial value');
229
228
  acc = first.value as unknown as U;
230
229
  index = 1;
231
230
  }
232
231
 
233
- for (const value of iter) {
232
+ for (const value of iter as unknown as Iterable<E>) {
234
233
  acc = callbackfn(acc, value, index++, this);
235
234
  }
236
235
  return acc;
@@ -19,7 +19,7 @@ export abstract class IterableEntryBase<K = any, V = any> {
19
19
  * @returns Iterator of `[K, V]`.
20
20
  * @remarks Time O(n) to iterate, Space O(1)
21
21
  */
22
- *[Symbol.iterator](...args: any[]): IterableIterator<[K, V]> {
22
+ *[Symbol.iterator](...args: unknown[]): IterableIterator<[K, V]> {
23
23
  yield* this._getIterator(...args);
24
24
  }
25
25
 
@@ -63,7 +63,7 @@ export abstract class IterableEntryBase<K = any, V = any> {
63
63
  * @returns `true` if all pass; otherwise `false`.
64
64
  * @remarks Time O(n), Space O(1)
65
65
  */
66
- every(predicate: EntryCallback<K, V, boolean>, thisArg?: any): boolean {
66
+ every(predicate: EntryCallback<K, V, boolean>, thisArg?: unknown): boolean {
67
67
  let index = 0;
68
68
  for (const item of this) {
69
69
  if (!predicate.call(thisArg, item[1], item[0], index++, this)) {
@@ -80,7 +80,7 @@ export abstract class IterableEntryBase<K = any, V = any> {
80
80
  * @returns `true` if any passes; otherwise `false`.
81
81
  * @remarks Time O(n), Space O(1)
82
82
  */
83
- some(predicate: EntryCallback<K, V, boolean>, thisArg?: any): boolean {
83
+ some(predicate: EntryCallback<K, V, boolean>, thisArg?: unknown): boolean {
84
84
  let index = 0;
85
85
  for (const item of this) {
86
86
  if (predicate.call(thisArg, item[1], item[0], index++, this)) {
@@ -96,7 +96,7 @@ export abstract class IterableEntryBase<K = any, V = any> {
96
96
  * @param thisArg - Optional `this` for callback.
97
97
  * @remarks Time O(n), Space O(1)
98
98
  */
99
- forEach(callbackfn: EntryCallback<K, V, void>, thisArg?: any): void {
99
+ forEach(callbackfn: EntryCallback<K, V, void>, thisArg?: unknown): void {
100
100
  let index = 0;
101
101
  for (const item of this) {
102
102
  const [key, value] = item;
@@ -111,7 +111,7 @@ export abstract class IterableEntryBase<K = any, V = any> {
111
111
  * @returns Matching `[key, value]` or `undefined`.
112
112
  * @remarks Time O(n), Space O(1)
113
113
  */
114
- find(callbackfn: EntryCallback<K, V, boolean>, thisArg?: any): [K, V] | undefined {
114
+ find(callbackfn: EntryCallback<K, V, boolean>, thisArg?: unknown): [K, V] | undefined {
115
115
  let index = 0;
116
116
  for (const item of this) {
117
117
  const [key, value] = item;
@@ -228,19 +228,19 @@ export abstract class IterableEntryBase<K = any, V = any> {
228
228
  * Map entries using an implementation-specific strategy.
229
229
  * @remarks Time O(n), Space O(n)
230
230
  */
231
- abstract map(...args: any[]): any;
231
+ abstract map(...args: unknown[]): unknown;
232
232
 
233
233
  /**
234
234
  * Filter entries and return the same-species structure.
235
235
  * @returns A new instance of the same concrete class (`this` type).
236
236
  * @remarks Time O(n), Space O(n)
237
237
  */
238
- abstract filter(...args: any[]): this;
238
+ abstract filter(...args: unknown[]): this;
239
239
 
240
240
  /**
241
241
  * Underlying iterator for the default iteration protocol.
242
242
  * @returns Iterator of `[K, V]`.
243
243
  * @remarks Time O(n), Space O(1)
244
244
  */
245
- protected abstract _getIterator(...args: any[]): IterableIterator<[K, V]>;
245
+ protected abstract _getIterator(...args: unknown[]): IterableIterator<[K, V]>;
246
246
  }
@@ -148,7 +148,7 @@ export abstract class LinearBase<
148
148
  * @returns Index or `-1`.
149
149
  * @remarks Time O(n), Space O(1)
150
150
  */
151
- findIndex(predicate: ElementCallback<E, R, boolean>, thisArg?: any): number {
151
+ findIndex(predicate: ElementCallback<E, R, boolean>, thisArg?: unknown): number {
152
152
  for (let i = 0; i < this.length; i++) {
153
153
  const item = this.at(i);
154
154
  if (item !== undefined && predicate.call(thisArg, item, i, this)) return i;
@@ -389,7 +389,7 @@ export abstract class LinearBase<
389
389
  * @returns Iterator of elements from tail to head.
390
390
  * @remarks Time O(n), Space O(1)
391
391
  */
392
- protected abstract _getReverseIterator(...args: any[]): IterableIterator<E>;
392
+ protected abstract _getReverseIterator(...args: unknown[]): IterableIterator<E>;
393
393
  }
394
394
 
395
395
  /**
@@ -621,7 +621,7 @@ export abstract class LinearLinkedBase<
621
621
  * @returns Iterator over nodes.
622
622
  * @remarks Time O(n), Space O(1)
623
623
  */
624
- protected abstract _getNodeIterator(...args: any[]): IterableIterator<NODE>;
624
+ protected abstract _getNodeIterator(...args: unknown[]): IterableIterator<NODE>;
625
625
 
626
626
  /**
627
627
  * Get previous node of a given node.