@graphty/algorithms 1.2.0 → 1.4.2

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 (337) hide show
  1. package/README.md +375 -276
  2. package/dist/algorithms.d.ts +42 -2
  3. package/dist/algorithms.js +11402 -2
  4. package/dist/algorithms.js.map +1 -1
  5. package/dist/src/algorithms/centrality/betweenness.d.ts +14 -0
  6. package/dist/src/algorithms/centrality/betweenness.d.ts.map +1 -1
  7. package/dist/src/algorithms/centrality/betweenness.js +144 -169
  8. package/dist/src/algorithms/centrality/betweenness.js.map +1 -1
  9. package/dist/src/algorithms/centrality/closeness.d.ts +35 -1
  10. package/dist/src/algorithms/centrality/closeness.d.ts.map +1 -1
  11. package/dist/src/algorithms/centrality/closeness.js +70 -149
  12. package/dist/src/algorithms/centrality/closeness.js.map +1 -1
  13. package/dist/src/algorithms/centrality/degree.d.ts +7 -0
  14. package/dist/src/algorithms/centrality/degree.d.ts.map +1 -1
  15. package/dist/src/algorithms/centrality/degree.js +12 -9
  16. package/dist/src/algorithms/centrality/degree.js.map +1 -1
  17. package/dist/src/algorithms/centrality/delta-pagerank-simple.d.ts +57 -0
  18. package/dist/src/algorithms/centrality/delta-pagerank-simple.d.ts.map +1 -0
  19. package/dist/src/algorithms/centrality/delta-pagerank-simple.js +304 -0
  20. package/dist/src/algorithms/centrality/delta-pagerank-simple.js.map +1 -0
  21. package/dist/src/algorithms/centrality/delta-pagerank.d.ts +106 -0
  22. package/dist/src/algorithms/centrality/delta-pagerank.d.ts.map +1 -0
  23. package/dist/src/algorithms/centrality/delta-pagerank.js +320 -0
  24. package/dist/src/algorithms/centrality/delta-pagerank.js.map +1 -0
  25. package/dist/src/algorithms/centrality/eigenvector.d.ts +10 -3
  26. package/dist/src/algorithms/centrality/eigenvector.d.ts.map +1 -1
  27. package/dist/src/algorithms/centrality/eigenvector.js +11 -4
  28. package/dist/src/algorithms/centrality/eigenvector.js.map +1 -1
  29. package/dist/src/algorithms/centrality/hits.d.ts +10 -3
  30. package/dist/src/algorithms/centrality/hits.d.ts.map +1 -1
  31. package/dist/src/algorithms/centrality/hits.js +11 -4
  32. package/dist/src/algorithms/centrality/hits.js.map +1 -1
  33. package/dist/src/algorithms/centrality/index.d.ts +3 -1
  34. package/dist/src/algorithms/centrality/index.d.ts.map +1 -1
  35. package/dist/src/algorithms/centrality/index.js +2 -1
  36. package/dist/src/algorithms/centrality/index.js.map +1 -1
  37. package/dist/src/algorithms/centrality/katz.d.ts +10 -3
  38. package/dist/src/algorithms/centrality/katz.d.ts.map +1 -1
  39. package/dist/src/algorithms/centrality/katz.js +13 -8
  40. package/dist/src/algorithms/centrality/katz.js.map +1 -1
  41. package/dist/src/algorithms/centrality/pagerank.d.ts +31 -0
  42. package/dist/src/algorithms/centrality/pagerank.d.ts.map +1 -1
  43. package/dist/src/algorithms/centrality/pagerank.js +61 -1
  44. package/dist/src/algorithms/centrality/pagerank.js.map +1 -1
  45. package/dist/src/algorithms/community/girvan-newman.d.ts +2 -3
  46. package/dist/src/algorithms/community/girvan-newman.d.ts.map +1 -1
  47. package/dist/src/algorithms/community/girvan-newman.js +67 -57
  48. package/dist/src/algorithms/community/girvan-newman.js.map +1 -1
  49. package/dist/src/algorithms/community/index.d.ts +2 -0
  50. package/dist/src/algorithms/community/index.d.ts.map +1 -1
  51. package/dist/src/algorithms/community/index.js.map +1 -1
  52. package/dist/src/algorithms/community/label-propagation.d.ts +11 -4
  53. package/dist/src/algorithms/community/label-propagation.d.ts.map +1 -1
  54. package/dist/src/algorithms/community/label-propagation.js +60 -38
  55. package/dist/src/algorithms/community/label-propagation.js.map +1 -1
  56. package/dist/src/algorithms/community/leiden.d.ts +3 -3
  57. package/dist/src/algorithms/community/leiden.d.ts.map +1 -1
  58. package/dist/src/algorithms/community/leiden.js +70 -44
  59. package/dist/src/algorithms/community/leiden.js.map +1 -1
  60. package/dist/src/algorithms/community/louvain-optimized.d.ts +149 -0
  61. package/dist/src/algorithms/community/louvain-optimized.d.ts.map +1 -0
  62. package/dist/src/algorithms/community/louvain-optimized.js +338 -0
  63. package/dist/src/algorithms/community/louvain-optimized.js.map +1 -0
  64. package/dist/src/algorithms/community/louvain.d.ts +2 -3
  65. package/dist/src/algorithms/community/louvain.d.ts.map +1 -1
  66. package/dist/src/algorithms/community/louvain.js +35 -81
  67. package/dist/src/algorithms/community/louvain.js.map +1 -1
  68. package/dist/src/algorithms/community/modularity-utils.d.ts +55 -0
  69. package/dist/src/algorithms/community/modularity-utils.d.ts.map +1 -0
  70. package/dist/src/algorithms/community/modularity-utils.js +108 -0
  71. package/dist/src/algorithms/community/modularity-utils.js.map +1 -0
  72. package/dist/src/algorithms/components/connected.d.ts +23 -0
  73. package/dist/src/algorithms/components/connected.d.ts.map +1 -1
  74. package/dist/src/algorithms/components/connected.js +29 -3
  75. package/dist/src/algorithms/components/connected.js.map +1 -1
  76. package/dist/src/algorithms/matching/bipartite.d.ts +10 -0
  77. package/dist/src/algorithms/matching/bipartite.d.ts.map +1 -1
  78. package/dist/src/algorithms/matching/bipartite.js +18 -40
  79. package/dist/src/algorithms/matching/bipartite.js.map +1 -1
  80. package/dist/src/algorithms/matching/index.d.ts.map +1 -1
  81. package/dist/src/algorithms/matching/index.js.map +1 -1
  82. package/dist/src/algorithms/matching/isomorphism.d.ts +8 -0
  83. package/dist/src/algorithms/matching/isomorphism.d.ts.map +1 -1
  84. package/dist/src/algorithms/matching/isomorphism.js +36 -2
  85. package/dist/src/algorithms/matching/isomorphism.js.map +1 -1
  86. package/dist/src/algorithms/mst/index.d.ts.map +1 -1
  87. package/dist/src/algorithms/mst/index.js.map +1 -1
  88. package/dist/src/algorithms/mst/kruskal.d.ts +14 -0
  89. package/dist/src/algorithms/mst/kruskal.d.ts.map +1 -1
  90. package/dist/src/algorithms/mst/kruskal.js +17 -3
  91. package/dist/src/algorithms/mst/kruskal.js.map +1 -1
  92. package/dist/src/algorithms/mst/prim.d.ts +9 -0
  93. package/dist/src/algorithms/mst/prim.d.ts.map +1 -1
  94. package/dist/src/algorithms/mst/prim.js +9 -0
  95. package/dist/src/algorithms/mst/prim.js.map +1 -1
  96. package/dist/src/algorithms/shortest-path/bellman-ford.d.ts +10 -0
  97. package/dist/src/algorithms/shortest-path/bellman-ford.d.ts.map +1 -1
  98. package/dist/src/algorithms/shortest-path/bellman-ford.js +11 -12
  99. package/dist/src/algorithms/shortest-path/bellman-ford.js.map +1 -1
  100. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.d.ts +44 -0
  101. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.d.ts.map +1 -0
  102. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.js +195 -0
  103. package/dist/src/algorithms/shortest-path/bidirectional-dijkstra.js.map +1 -0
  104. package/dist/src/algorithms/shortest-path/dijkstra.d.ts +20 -2
  105. package/dist/src/algorithms/shortest-path/dijkstra.d.ts.map +1 -1
  106. package/dist/src/algorithms/shortest-path/dijkstra.js +30 -14
  107. package/dist/src/algorithms/shortest-path/dijkstra.js.map +1 -1
  108. package/dist/src/algorithms/shortest-path/floyd-warshall.d.ts +17 -0
  109. package/dist/src/algorithms/shortest-path/floyd-warshall.d.ts.map +1 -1
  110. package/dist/src/algorithms/shortest-path/floyd-warshall.js +17 -0
  111. package/dist/src/algorithms/shortest-path/floyd-warshall.js.map +1 -1
  112. package/dist/src/algorithms/shortest-path/index.d.ts.map +1 -1
  113. package/dist/src/algorithms/shortest-path/index.js.map +1 -1
  114. package/dist/src/algorithms/traversal/bfs-unified.d.ts +42 -0
  115. package/dist/src/algorithms/traversal/bfs-unified.d.ts.map +1 -0
  116. package/dist/src/algorithms/traversal/bfs-unified.js +370 -0
  117. package/dist/src/algorithms/traversal/bfs-unified.js.map +1 -0
  118. package/dist/src/algorithms/traversal/bfs-variants.d.ts +77 -0
  119. package/dist/src/algorithms/traversal/bfs-variants.d.ts.map +1 -0
  120. package/dist/src/algorithms/traversal/bfs-variants.js +402 -0
  121. package/dist/src/algorithms/traversal/bfs-variants.js.map +1 -0
  122. package/dist/src/algorithms/traversal/bfs.d.ts +4 -18
  123. package/dist/src/algorithms/traversal/bfs.d.ts.map +1 -1
  124. package/dist/src/algorithms/traversal/bfs.js +5 -182
  125. package/dist/src/algorithms/traversal/bfs.js.map +1 -1
  126. package/dist/src/algorithms/traversal/dfs.d.ts +10 -0
  127. package/dist/src/algorithms/traversal/dfs.d.ts.map +1 -1
  128. package/dist/src/algorithms/traversal/dfs.js +48 -0
  129. package/dist/src/algorithms/traversal/dfs.js.map +1 -1
  130. package/dist/src/algorithms/traversal/index.d.ts.map +1 -1
  131. package/dist/src/algorithms/traversal/index.js.map +1 -1
  132. package/dist/src/benchmark-all-algorithms.d.ts +25 -0
  133. package/dist/src/benchmark-all-algorithms.d.ts.map +1 -0
  134. package/dist/src/benchmark-all-algorithms.js +491 -0
  135. package/dist/src/benchmark-all-algorithms.js.map +1 -0
  136. package/dist/src/clustering/hierarchical.d.ts +23 -15
  137. package/dist/src/clustering/hierarchical.d.ts.map +1 -1
  138. package/dist/src/clustering/hierarchical.js +226 -224
  139. package/dist/src/clustering/hierarchical.js.map +1 -1
  140. package/dist/src/clustering/index.d.ts +4 -2
  141. package/dist/src/clustering/index.d.ts.map +1 -1
  142. package/dist/src/clustering/index.js +2 -2
  143. package/dist/src/clustering/index.js.map +1 -1
  144. package/dist/src/clustering/k-core.d.ts +17 -19
  145. package/dist/src/clustering/k-core.d.ts.map +1 -1
  146. package/dist/src/clustering/k-core.js +68 -30
  147. package/dist/src/clustering/k-core.js.map +1 -1
  148. package/dist/src/clustering/mcl.d.ts +6 -0
  149. package/dist/src/clustering/mcl.d.ts.map +1 -1
  150. package/dist/src/clustering/mcl.js +34 -3
  151. package/dist/src/clustering/mcl.js.map +1 -1
  152. package/dist/src/clustering/spectral.d.ts +11 -0
  153. package/dist/src/clustering/spectral.d.ts.map +1 -1
  154. package/dist/src/clustering/spectral.js +99 -47
  155. package/dist/src/clustering/spectral.js.map +1 -1
  156. package/dist/src/core/graph.d.ts +45 -0
  157. package/dist/src/core/graph.d.ts.map +1 -1
  158. package/dist/src/core/graph.js +49 -5
  159. package/dist/src/core/graph.js.map +1 -1
  160. package/dist/src/data-structures/index.d.ts.map +1 -1
  161. package/dist/src/data-structures/index.js.map +1 -1
  162. package/dist/src/data-structures/priority-queue.d.ts +18 -1
  163. package/dist/src/data-structures/priority-queue.d.ts.map +1 -1
  164. package/dist/src/data-structures/priority-queue.js +26 -5
  165. package/dist/src/data-structures/priority-queue.js.map +1 -1
  166. package/dist/src/data-structures/union-find.d.ts +21 -0
  167. package/dist/src/data-structures/union-find.d.ts.map +1 -1
  168. package/dist/src/data-structures/union-find.js +21 -0
  169. package/dist/src/data-structures/union-find.js.map +1 -1
  170. package/dist/src/flow/ford-fulkerson.d.ts +20 -12
  171. package/dist/src/flow/ford-fulkerson.d.ts.map +1 -1
  172. package/dist/src/flow/ford-fulkerson.js +170 -217
  173. package/dist/src/flow/ford-fulkerson.js.map +1 -1
  174. package/dist/src/flow/min-cut.d.ts +6 -8
  175. package/dist/src/flow/min-cut.d.ts.map +1 -1
  176. package/dist/src/flow/min-cut.js +34 -12
  177. package/dist/src/flow/min-cut.js.map +1 -1
  178. package/dist/src/index.d.ts +3 -1
  179. package/dist/src/index.d.ts.map +1 -1
  180. package/dist/src/index.js +6 -1
  181. package/dist/src/index.js.map +1 -1
  182. package/dist/src/link-prediction/adamic-adar.d.ts +26 -0
  183. package/dist/src/link-prediction/adamic-adar.d.ts.map +1 -1
  184. package/dist/src/link-prediction/adamic-adar.js +47 -30
  185. package/dist/src/link-prediction/adamic-adar.js.map +1 -1
  186. package/dist/src/link-prediction/common-neighbors.d.ts +21 -0
  187. package/dist/src/link-prediction/common-neighbors.d.ts.map +1 -1
  188. package/dist/src/link-prediction/common-neighbors.js +31 -14
  189. package/dist/src/link-prediction/common-neighbors.js.map +1 -1
  190. package/dist/src/link-prediction/index.d.ts.map +1 -1
  191. package/dist/src/optimized/bit-packed.d.ts +193 -0
  192. package/dist/src/optimized/bit-packed.d.ts.map +1 -0
  193. package/dist/src/optimized/bit-packed.js +342 -0
  194. package/dist/src/optimized/bit-packed.js.map +1 -0
  195. package/dist/src/optimized/csr-graph.d.ts +149 -0
  196. package/dist/src/optimized/csr-graph.d.ts.map +1 -0
  197. package/dist/src/optimized/csr-graph.js +404 -0
  198. package/dist/src/optimized/csr-graph.js.map +1 -0
  199. package/dist/src/optimized/direction-optimized-bfs.d.ts +95 -0
  200. package/dist/src/optimized/direction-optimized-bfs.d.ts.map +1 -0
  201. package/dist/src/optimized/direction-optimized-bfs.js +242 -0
  202. package/dist/src/optimized/direction-optimized-bfs.js.map +1 -0
  203. package/dist/src/optimized/graph-adapter.d.ts +111 -0
  204. package/dist/src/optimized/graph-adapter.d.ts.map +1 -0
  205. package/dist/src/optimized/graph-adapter.js +194 -0
  206. package/dist/src/optimized/graph-adapter.js.map +1 -0
  207. package/dist/src/optimized/index.d.ts +14 -0
  208. package/dist/src/optimized/index.d.ts.map +1 -0
  209. package/dist/src/optimized/index.js +30 -0
  210. package/dist/src/optimized/index.js.map +1 -0
  211. package/dist/src/pathfinding/astar.d.ts +25 -9
  212. package/dist/src/pathfinding/astar.d.ts.map +1 -1
  213. package/dist/src/pathfinding/astar.js +25 -10
  214. package/dist/src/pathfinding/astar.js.map +1 -1
  215. package/dist/src/pathfinding/utils.d.ts +15 -6
  216. package/dist/src/pathfinding/utils.d.ts.map +1 -1
  217. package/dist/src/pathfinding/utils.js +19 -7
  218. package/dist/src/pathfinding/utils.js.map +1 -1
  219. package/dist/src/research/grsbm.d.ts +0 -1
  220. package/dist/src/research/grsbm.d.ts.map +1 -1
  221. package/dist/src/research/grsbm.js +28 -23
  222. package/dist/src/research/grsbm.js.map +1 -1
  223. package/dist/src/research/index.d.ts.map +1 -1
  224. package/dist/src/research/index.js.map +1 -1
  225. package/dist/src/research/sync.d.ts +0 -1
  226. package/dist/src/research/sync.d.ts.map +1 -1
  227. package/dist/src/research/sync.js +31 -36
  228. package/dist/src/research/sync.js.map +1 -1
  229. package/dist/src/research/terahac.d.ts +2 -1
  230. package/dist/src/research/terahac.d.ts.map +1 -1
  231. package/dist/src/research/terahac.js +39 -7
  232. package/dist/src/research/terahac.js.map +1 -1
  233. package/dist/src/types/index.d.ts +8 -0
  234. package/dist/src/types/index.d.ts.map +1 -1
  235. package/dist/src/utils/algorithm-utilities.d.ts +2 -0
  236. package/dist/src/utils/algorithm-utilities.d.ts.map +1 -0
  237. package/dist/src/utils/algorithm-utilities.js +2 -0
  238. package/dist/src/utils/algorithm-utilities.js.map +1 -0
  239. package/dist/src/utils/graph-converters.d.ts +110 -0
  240. package/dist/src/utils/graph-converters.d.ts.map +1 -0
  241. package/dist/src/utils/graph-converters.js +227 -0
  242. package/dist/src/utils/graph-converters.js.map +1 -0
  243. package/dist/src/utils/graph-utilities.d.ts +62 -0
  244. package/dist/src/utils/graph-utilities.d.ts.map +1 -0
  245. package/dist/src/utils/graph-utilities.js +148 -0
  246. package/dist/src/utils/graph-utilities.js.map +1 -0
  247. package/dist/src/utils/index.d.ts +5 -0
  248. package/dist/src/utils/index.d.ts.map +1 -0
  249. package/dist/src/utils/index.js +5 -0
  250. package/dist/src/utils/index.js.map +1 -0
  251. package/dist/src/utils/math-utilities.d.ts +63 -0
  252. package/dist/src/utils/math-utilities.d.ts.map +1 -0
  253. package/dist/src/utils/math-utilities.js +132 -0
  254. package/dist/src/utils/math-utilities.js.map +1 -0
  255. package/dist/src/utils/matrix-utilities.d.ts +2 -0
  256. package/dist/src/utils/matrix-utilities.d.ts.map +1 -0
  257. package/dist/src/utils/matrix-utilities.js +2 -0
  258. package/dist/src/utils/matrix-utilities.js.map +1 -0
  259. package/dist/src/utils/optimization-helpers.d.ts +42 -0
  260. package/dist/src/utils/optimization-helpers.d.ts.map +1 -0
  261. package/dist/src/utils/optimization-helpers.js +59 -0
  262. package/dist/src/utils/optimization-helpers.js.map +1 -0
  263. package/dist/src/utils/priorityQueue.d.ts +24 -0
  264. package/dist/src/utils/priorityQueue.d.ts.map +1 -1
  265. package/dist/src/utils/priorityQueue.js +34 -4
  266. package/dist/src/utils/priorityQueue.js.map +1 -1
  267. package/package.json +58 -39
  268. package/src/algorithms/centrality/betweenness.ts +185 -200
  269. package/src/algorithms/centrality/closeness.ts +93 -194
  270. package/src/algorithms/centrality/degree.ts +18 -22
  271. package/src/algorithms/centrality/delta-pagerank-simple.ts +374 -0
  272. package/src/algorithms/centrality/delta-pagerank.ts +458 -0
  273. package/src/algorithms/centrality/eigenvector.ts +14 -15
  274. package/src/algorithms/centrality/hits.ts +17 -17
  275. package/src/algorithms/centrality/index.ts +20 -13
  276. package/src/algorithms/centrality/katz.ts +17 -25
  277. package/src/algorithms/centrality/pagerank.ts +91 -16
  278. package/src/algorithms/community/girvan-newman.ts +90 -86
  279. package/src/algorithms/community/index.ts +6 -5
  280. package/src/algorithms/community/label-propagation.ts +69 -48
  281. package/src/algorithms/community/leiden.ts +88 -65
  282. package/src/algorithms/community/louvain-optimized.ts +474 -0
  283. package/src/algorithms/community/louvain.ts +52 -122
  284. package/src/algorithms/community/modularity-utils.ts +134 -0
  285. package/src/algorithms/components/connected.ts +40 -17
  286. package/src/algorithms/matching/bipartite.ts +24 -53
  287. package/src/algorithms/matching/index.ts +4 -4
  288. package/src/algorithms/matching/isomorphism.ts +53 -23
  289. package/src/algorithms/mst/index.ts +3 -4
  290. package/src/algorithms/mst/kruskal.ts +21 -6
  291. package/src/algorithms/mst/prim.ts +13 -4
  292. package/src/algorithms/shortest-path/bellman-ford.ts +16 -28
  293. package/src/algorithms/shortest-path/bidirectional-dijkstra.ts +248 -0
  294. package/src/algorithms/shortest-path/dijkstra.ts +38 -30
  295. package/src/algorithms/shortest-path/floyd-warshall.ts +21 -4
  296. package/src/algorithms/shortest-path/index.ts +5 -5
  297. package/src/algorithms/traversal/bfs-unified.ts +437 -0
  298. package/src/algorithms/traversal/bfs-variants.ts +520 -0
  299. package/src/algorithms/traversal/bfs.ts +5 -229
  300. package/src/algorithms/traversal/dfs.ts +61 -42
  301. package/src/algorithms/traversal/index.ts +3 -3
  302. package/src/benchmark-all-algorithms.ts +580 -0
  303. package/src/clustering/hierarchical.ts +268 -272
  304. package/src/clustering/index.ts +8 -6
  305. package/src/clustering/k-core.ts +93 -61
  306. package/src/clustering/mcl.ts +53 -23
  307. package/src/clustering/spectral.ts +130 -72
  308. package/src/core/graph.ts +58 -18
  309. package/src/data-structures/index.ts +2 -2
  310. package/src/data-structures/priority-queue.ts +36 -11
  311. package/src/data-structures/union-find.ts +22 -1
  312. package/src/flow/ford-fulkerson.ts +221 -262
  313. package/src/flow/min-cut.ts +59 -51
  314. package/src/index.ts +9 -2
  315. package/src/link-prediction/adamic-adar.ts +75 -74
  316. package/src/link-prediction/common-neighbors.ts +49 -49
  317. package/src/link-prediction/index.ts +1 -1
  318. package/src/optimized/bit-packed.ts +390 -0
  319. package/src/optimized/csr-graph.ts +518 -0
  320. package/src/optimized/direction-optimized-bfs.ts +310 -0
  321. package/src/optimized/graph-adapter.ts +248 -0
  322. package/src/optimized/index.ts +34 -0
  323. package/src/pathfinding/astar.ts +40 -25
  324. package/src/pathfinding/utils.ts +20 -13
  325. package/src/research/grsbm.ts +36 -39
  326. package/src/research/index.ts +4 -4
  327. package/src/research/sync.ts +41 -54
  328. package/src/research/terahac.ts +63 -21
  329. package/src/types/index.ts +8 -0
  330. package/src/utils/algorithm-utilities.ts +2 -0
  331. package/src/utils/graph-converters.ts +269 -0
  332. package/src/utils/graph-utilities.ts +173 -0
  333. package/src/utils/index.ts +4 -0
  334. package/src/utils/math-utilities.ts +149 -0
  335. package/src/utils/matrix-utilities.ts +2 -0
  336. package/src/utils/optimization-helpers.ts +87 -0
  337. package/src/utils/priorityQueue.ts +40 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-utilities.js","sourceRoot":"","sources":["../../../src/utils/math-utilities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=matrix-utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-utilities.d.ts","sourceRoot":"","sources":["../../../src/utils/matrix-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=matrix-utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-utilities.js","sourceRoot":"","sources":["../../../src/utils/matrix-utilities.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import type { Graph } from "../core/graph.js";
2
+ /**
3
+ * Common interface for algorithm options with optimization support
4
+ */
5
+ export interface OptimizableOptions {
6
+ /**
7
+ * Whether to use optimized implementations
8
+ * - true: Force use of optimizations
9
+ * - false: Disable optimizations
10
+ * - "auto": Automatically decide based on graph size (default)
11
+ */
12
+ optimized?: boolean | "auto";
13
+ }
14
+ /**
15
+ * Determine if optimizations should be used for a given graph
16
+ * @param graph - The graph to check for optimization eligibility
17
+ * @param options - Options containing the optimization preference
18
+ * @returns True if optimizations should be used for this graph
19
+ */
20
+ export declare function shouldOptimize(graph: Graph, options?: OptimizableOptions): boolean;
21
+ /**
22
+ * Merge optimization options with algorithm-specific options
23
+ * @param graph - The graph to determine optimization settings for
24
+ * @param options - Algorithm options that may include optimization settings
25
+ * @returns The options with resolved optimization boolean flag
26
+ */
27
+ export declare function mergeOptimizationOptions<T extends Record<string, unknown>>(graph: Graph, options: T & OptimizableOptions): T & {
28
+ optimized?: boolean;
29
+ };
30
+ /**
31
+ * Create an optimized version of an algorithm
32
+ * @param algorithm - The algorithm function to wrap with optimization support
33
+ * @param optionsTransformer - Optional function to transform options before passing to the algorithm
34
+ * @returns A wrapped version of the algorithm that applies optimization transformations
35
+ * @example
36
+ * const optimizedBetweenness = createOptimizedAlgorithm(
37
+ * betweennessCentrality,
38
+ * (graph, options) => ({...options, optimized: true})
39
+ * );
40
+ */
41
+ export declare function createOptimizedAlgorithm<TArgs extends [Graph, ...unknown[]], TResult>(algorithm: (...args: TArgs) => TResult, optionsTransformer?: (graph: Graph, options: unknown) => unknown): (...args: TArgs) => TResult;
42
+ //# sourceMappingURL=optimization-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization-helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/optimization-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC;AAaD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAStF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtE,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,CAAC,GAAG,kBAAkB,GAChC,CAAC,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAO7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,SAAS,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,OAAO,EACjF,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,EACtC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,GACjE,CAAC,GAAG,IAAI,EAAE,KAAK,KAAK,OAAO,CAW7B"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Check if a graph should use optimizations based on its size
3
+ * @param nodeCount - The number of nodes in the graph
4
+ * @param edgeCount - The number of edges in the graph
5
+ * @returns True if the graph is large enough to benefit from optimizations
6
+ */
7
+ function shouldUseOptimizations(nodeCount, edgeCount) {
8
+ // Use optimizations for graphs with more than 10k nodes or 100k edges
9
+ return nodeCount > 10000 || edgeCount > 100000;
10
+ }
11
+ /**
12
+ * Determine if optimizations should be used for a given graph
13
+ * @param graph - The graph to check for optimization eligibility
14
+ * @param options - Options containing the optimization preference
15
+ * @returns True if optimizations should be used for this graph
16
+ */
17
+ export function shouldOptimize(graph, options = {}) {
18
+ const { optimized = "auto" } = options;
19
+ if (optimized === "auto") {
20
+ // Check graph size
21
+ return shouldUseOptimizations(graph.nodeCount, graph.totalEdgeCount);
22
+ }
23
+ return optimized;
24
+ }
25
+ /**
26
+ * Merge optimization options with algorithm-specific options
27
+ * @param graph - The graph to determine optimization settings for
28
+ * @param options - Algorithm options that may include optimization settings
29
+ * @returns The options with resolved optimization boolean flag
30
+ */
31
+ export function mergeOptimizationOptions(graph, options) {
32
+ const { optimized: userOptimized, ...rest } = options;
33
+ return {
34
+ ...rest,
35
+ optimized: shouldOptimize(graph, userOptimized !== undefined ? { optimized: userOptimized } : {}),
36
+ };
37
+ }
38
+ /**
39
+ * Create an optimized version of an algorithm
40
+ * @param algorithm - The algorithm function to wrap with optimization support
41
+ * @param optionsTransformer - Optional function to transform options before passing to the algorithm
42
+ * @returns A wrapped version of the algorithm that applies optimization transformations
43
+ * @example
44
+ * const optimizedBetweenness = createOptimizedAlgorithm(
45
+ * betweennessCentrality,
46
+ * (graph, options) => ({...options, optimized: true})
47
+ * );
48
+ */
49
+ export function createOptimizedAlgorithm(algorithm, optionsTransformer) {
50
+ return (...args) => {
51
+ const [graph, options, ...rest] = args;
52
+ if (optionsTransformer && options !== undefined) {
53
+ const transformedOptions = optionsTransformer(graph, options);
54
+ return algorithm(...[graph, transformedOptions, ...rest]);
55
+ }
56
+ return algorithm(...args);
57
+ };
58
+ }
59
+ //# sourceMappingURL=optimization-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimization-helpers.js","sourceRoot":"","sources":["../../../src/utils/optimization-helpers.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,SAAiB,EAAE,SAAiB;IAChE,sEAAsE;IACtE,OAAO,SAAS,GAAG,KAAK,IAAI,SAAS,GAAG,MAAM,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,UAA8B,EAAE;IACzE,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACvB,mBAAmB;QACnB,OAAO,sBAAsB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACpC,KAAY,EACZ,OAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEtD,OAAO;QACH,GAAG,IAAI;QACP,SAAS,EAAE,cAAc,CAAC,KAAK,EAAE,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC;AACrC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,wBAAwB,CACpC,SAAsC,EACtC,kBAAgE;IAEhE,OAAO,CAAC,GAAG,IAAW,EAAW,EAAE;QAC/B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAEvC,IAAI,kBAAkB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,SAAS,CAAC,GAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAsB,CAAC,CAAC;QACpF,CAAC;QAED,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;AACN,CAAC"}
@@ -4,6 +4,10 @@
4
4
  export declare class MinPriorityQueue<T> {
5
5
  private heap;
6
6
  private compare;
7
+ /**
8
+ * Creates a new MinPriorityQueue instance.
9
+ * @param compareFunction - Custom comparison function. Returns negative if a has higher priority than b.
10
+ */
7
11
  constructor(compareFunction?: (a: T, b: T) => number);
8
12
  private defaultCompare;
9
13
  private parent;
@@ -12,10 +16,30 @@ export declare class MinPriorityQueue<T> {
12
16
  private swap;
13
17
  private heapifyUp;
14
18
  private heapifyDown;
19
+ /**
20
+ * Insert a value into the priority queue.
21
+ * @param value - The value to insert
22
+ */
15
23
  insert(value: T): void;
24
+ /**
25
+ * Remove and return the minimum value from the priority queue.
26
+ * @returns The minimum value, or undefined if the queue is empty
27
+ */
16
28
  extractMin(): T | undefined;
29
+ /**
30
+ * View the minimum value without removing it.
31
+ * @returns The minimum value, or undefined if the queue is empty
32
+ */
17
33
  peek(): T | undefined;
34
+ /**
35
+ * Check if the priority queue is empty.
36
+ * @returns True if the queue has no items, false otherwise
37
+ */
18
38
  isEmpty(): boolean;
39
+ /**
40
+ * Get the number of items in the priority queue.
41
+ * @returns The number of items currently in the queue
42
+ */
19
43
  size(): number;
20
44
  }
21
45
  //# sourceMappingURL=priorityQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"priorityQueue.d.ts","sourceRoot":"","sources":["../../../src/utils/priorityQueue.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,OAAO,CAAyB;gBAE5B,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM;IAIpD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,WAAW;IA2BnB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKtB,UAAU,IAAI,CAAC,GAAG,SAAS;IAmB3B,IAAI,IAAI,CAAC,GAAG,SAAS;IAIrB,OAAO,IAAI,OAAO;IAIlB,IAAI,IAAI,MAAM;CAGjB"}
1
+ {"version":3,"file":"priorityQueue.d.ts","sourceRoot":"","sources":["../../../src/utils/priorityQueue.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,gBAAgB,CAAC,CAAC;IAC3B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,OAAO,CAAyB;IAExC;;;OAGG;gBACS,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM;IAIpD,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,WAAW;IAqCnB;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAKtB;;;OAGG;IACH,UAAU,IAAI,CAAC,GAAG,SAAS;IAmB3B;;;OAGG;IACH,IAAI,IAAI,CAAC,GAAG,SAAS;IAIrB;;;OAGG;IACH,OAAO,IAAI,OAAO;IAIlB;;;OAGG;IACH,IAAI,IAAI,MAAM;CAGjB"}
@@ -2,6 +2,10 @@
2
2
  * Min Priority Queue implementation for graph algorithms
3
3
  */
4
4
  export class MinPriorityQueue {
5
+ /**
6
+ * Creates a new MinPriorityQueue instance.
7
+ * @param compareFunction - Custom comparison function. Returns negative if a has higher priority than b.
8
+ */
5
9
  constructor(compareFunction) {
6
10
  this.heap = [];
7
11
  this.compare = compareFunction ?? ((a, b) => this.defaultCompare(a, b));
@@ -18,10 +22,10 @@ export class MinPriorityQueue {
18
22
  return Math.floor((i - 1) / 2);
19
23
  }
20
24
  leftChild(i) {
21
- return (2 * i) + 1;
25
+ return 2 * i + 1;
22
26
  }
23
27
  rightChild(i) {
24
- return (2 * i) + 2;
28
+ return 2 * i + 2;
25
29
  }
26
30
  swap(i, j) {
27
31
  const temp = this.heap[i];
@@ -52,12 +56,18 @@ export class MinPriorityQueue {
52
56
  const right = this.rightChild(index);
53
57
  const leftItem = this.heap[left];
54
58
  const minItem = this.heap[minIndex];
55
- if (left < this.heap.length && leftItem !== undefined && minItem !== undefined && this.compare(leftItem, minItem) < 0) {
59
+ if (left < this.heap.length &&
60
+ leftItem !== undefined &&
61
+ minItem !== undefined &&
62
+ this.compare(leftItem, minItem) < 0) {
56
63
  minIndex = left;
57
64
  }
58
65
  const rightItem = this.heap[right];
59
66
  const newMinItem = this.heap[minIndex];
60
- if (right < this.heap.length && rightItem !== undefined && newMinItem !== undefined && this.compare(rightItem, newMinItem) < 0) {
67
+ if (right < this.heap.length &&
68
+ rightItem !== undefined &&
69
+ newMinItem !== undefined &&
70
+ this.compare(rightItem, newMinItem) < 0) {
61
71
  minIndex = right;
62
72
  }
63
73
  if (minIndex !== index) {
@@ -69,10 +79,18 @@ export class MinPriorityQueue {
69
79
  }
70
80
  }
71
81
  }
82
+ /**
83
+ * Insert a value into the priority queue.
84
+ * @param value - The value to insert
85
+ */
72
86
  insert(value) {
73
87
  this.heap.push(value);
74
88
  this.heapifyUp(this.heap.length - 1);
75
89
  }
90
+ /**
91
+ * Remove and return the minimum value from the priority queue.
92
+ * @returns The minimum value, or undefined if the queue is empty
93
+ */
76
94
  extractMin() {
77
95
  if (this.heap.length === 0) {
78
96
  return undefined;
@@ -88,12 +106,24 @@ export class MinPriorityQueue {
88
106
  }
89
107
  return min;
90
108
  }
109
+ /**
110
+ * View the minimum value without removing it.
111
+ * @returns The minimum value, or undefined if the queue is empty
112
+ */
91
113
  peek() {
92
114
  return this.heap[0];
93
115
  }
116
+ /**
117
+ * Check if the priority queue is empty.
118
+ * @returns True if the queue has no items, false otherwise
119
+ */
94
120
  isEmpty() {
95
121
  return this.heap.length === 0;
96
122
  }
123
+ /**
124
+ * Get the number of items in the priority queue.
125
+ * @returns The number of items currently in the queue
126
+ */
97
127
  size() {
98
128
  return this.heap.length;
99
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"priorityQueue.js","sourceRoot":"","sources":["../../../src/utils/priorityQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"priorityQueue.js","sourceRoot":"","sources":["../../../src/utils/priorityQueue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@graphty/algorithms",
3
- "version": "1.2.0",
3
+ "version": "1.4.2",
4
4
  "description": "Graph algorithms library for browser environments implemented in TypeScript",
5
5
  "author": "Adam Powers <apowers@ato.ms>",
6
6
  "main": "dist/algorithms.js",
@@ -21,36 +21,10 @@
21
21
  "directories": {
22
22
  "example": "examples"
23
23
  },
24
- "scripts": {
25
- "test": "vitest",
26
- "test:ui": "vitest --ui",
27
- "test:run": "vitest run --project=default",
28
- "test:coverage": "vitest run --coverage",
29
- "test:browser": "vitest --project=browser",
30
- "test:all": "vitest run --project=default --project=browser",
31
- "lint": "eslint && tsc --noEmit",
32
- "lint:fix": "eslint --fix",
33
- "lint:pkg": "knip",
34
- "lint:all": "npm run lint && npm run lint:pkg",
35
- "typecheck": "tsc --noEmit",
36
- "prepare": "husky",
37
- "build": "tsc",
38
- "build:bundle": "node scripts/build-bundle.js",
39
- "build:all": "npm run build && npm run build:bundle",
40
- "build:gh-pages": "npm run build:bundle && node scripts/build-gh-pages.js",
41
- "build:watch": "tsc --watch",
42
- "dev": "tsc --watch",
43
- "examples": "node examples/run-all-examples.js",
44
- "examples:run": "node examples/run-all-examples.js",
45
- "examples:html": "npm run build:bundle && vite",
46
- "serve": "npm run build:bundle && vite",
47
- "commit": "cz",
48
- "ready:commit": "npm run build && npm run lint && npm run test:all",
49
- "watch": "tsc --watch"
50
- },
51
24
  "repository": {
52
25
  "type": "git",
53
- "url": "git+https://github.com/graphty-org/algorithms.git"
26
+ "url": "git+https://github.com/graphty-org/graphty-monorepo.git",
27
+ "directory": "algorithms"
54
28
  },
55
29
  "keywords": [
56
30
  "graph",
@@ -70,9 +44,9 @@
70
44
  "provenance": true
71
45
  },
72
46
  "bugs": {
73
- "url": "https://github.com/graphty-org/algorithms/issues"
47
+ "url": "https://github.com/graphty-org/graphty-monorepo/issues"
74
48
  },
75
- "homepage": "https://github.com/graphty-org/algorithms#readme",
49
+ "homepage": "https://github.com/graphty-org/graphty-monorepo/tree/master/algorithms#readme",
76
50
  "engines": {
77
51
  "node": ">=18.19.0"
78
52
  },
@@ -82,30 +56,75 @@
82
56
  }
83
57
  },
84
58
  "devDependencies": {
85
- "@commitlint/cli": "^19.8.1",
86
- "@commitlint/config-conventional": "^19.8.1",
87
59
  "@eslint/js": "^9.29.0",
88
60
  "@semantic-release/changelog": "^6.0.3",
89
61
  "@semantic-release/git": "^10.0.1",
90
- "@stylistic/eslint-plugin": "^4.4.1",
91
- "@types/node": "^20.19.2",
62
+ "@types/benchmark": "^2.1.5",
63
+ "@types/node": "^20.19.9",
92
64
  "@vitest/browser": "^3.2.4",
93
65
  "@vitest/coverage-v8": "^3.2.4",
94
66
  "@vitest/ui": "^3.2.4",
95
- "cz-conventional-changelog": "^3.3.0",
67
+ "benchmark": "^2.1.4",
96
68
  "eslint": "^9.29.0",
97
69
  "eslint-plugin-simple-import-sort": "^12.1.1",
70
+ "gh-pages": "^6.3.0",
98
71
  "globals": "^15.12.0",
99
72
  "happy-dom": "^18.0.1",
100
- "husky": "^9.1.7",
101
73
  "knip": "^5.61.3",
102
74
  "playwright": "^1.53.0",
103
- "semantic-release": "^24.2.7",
75
+ "semantic-release": "^25.0.2",
104
76
  "ts-node": "^10.9.2",
105
77
  "tsx": "^4.20.3",
106
78
  "typescript": "^5.8.3",
107
79
  "typescript-eslint": "^8.34.1",
108
80
  "vite": "^7.0.5",
109
81
  "vitest": "^3.2.4"
82
+ },
83
+ "dependencies": {
84
+ "pupt": "^1.3.2",
85
+ "typedfastbitset": "^0.6.1"
86
+ },
87
+ "scripts": {
88
+ "test": "vitest",
89
+ "test:ui": "vitest --ui",
90
+ "test:run": "vitest run --project=default",
91
+ "test:coverage": "vitest run --coverage",
92
+ "coverage": "npm run coverage:shards && npm run coverage:merge",
93
+ "coverage:merge": "./scripts/coverage-merge.sh",
94
+ "coverage:shards": "npm run coverage:shards:clean && npm run coverage:shards:run",
95
+ "coverage:shards:clean": "rm -rf .coverage-parts",
96
+ "coverage:shards:run": "npm run coverage:shard:default && npm run coverage:shard:browser",
97
+ "coverage:shard:default": "COVERAGE_DIR=.coverage-parts/default vitest run --project=default --coverage",
98
+ "coverage:shard:browser": "COVERAGE_DIR=.coverage-parts/browser vitest run --project=browser --coverage",
99
+ "coverage:fast": "vitest run --project=default --coverage",
100
+ "coverage:preview": "npx serve coverage -p 9051",
101
+ "test:browser": "vitest --project=browser",
102
+ "test:all": "vitest run --project=default --project=browser",
103
+ "test:performance": "tsx test/helpers/run-performance-regression.ts",
104
+ "test:performance:update": "tsx test/helpers/run-performance-regression.ts --update-baselines",
105
+ "benchmark": "tsx src/benchmark-all-algorithms.ts",
106
+ "benchmark:quick": "tsx src/benchmark-all-algorithms.ts --quick",
107
+ "benchmark:report": "tsx scripts/generate-performance-report.ts",
108
+ "benchmark:validation": "tsx src/optimized/benchmark-validation.ts",
109
+ "benchmark:comprehensive": "tsx src/optimized/benchmark-comprehensive.ts",
110
+ "memory:profile": "tsx test/helpers/memory-profiler.ts",
111
+ "lint": "eslint && tsc --noEmit",
112
+ "lint:fix": "eslint --fix",
113
+ "lint:pkg": "knip",
114
+ "lint:all": "npm run lint && npm run lint:pkg",
115
+ "typecheck": "tsc --noEmit",
116
+ "build": "tsc",
117
+ "build:bundle": "node scripts/build-bundle.js",
118
+ "build:all": "npm run build && npm run build:bundle",
119
+ "build:gh-pages": "npm run build:bundle && node scripts/build-gh-pages.js",
120
+ "build:watch": "tsc --watch",
121
+ "dev": "tsc --watch",
122
+ "examples": "node examples/run-all-examples.js",
123
+ "examples:run": "node examples/run-all-examples.js",
124
+ "examples:html": "npm run build:bundle && vite",
125
+ "serve": "npm run build:bundle && vite",
126
+ "commit": "cz",
127
+ "ready:commit": "npm run build && npm run lint && npm run test:all",
128
+ "watch": "tsc --watch"
110
129
  }
111
- }
130
+ }