@zengrid/core 1.0.2 → 1.0.4

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 (276) hide show
  1. package/dist/index.cjs.js +43 -55
  2. package/dist/index.esm.js +2 -14
  3. package/dist/package.json +2 -2
  4. package/dist/src/a11y/aria-manager.d.ts.map +1 -1
  5. package/dist/src/a11y/focus-manager.d.ts.map +1 -1
  6. package/dist/src/a11y/index.d.ts.map +1 -1
  7. package/dist/src/data/data-accessor/array-accessor.d.ts.map +1 -1
  8. package/dist/src/data/data-accessor/column-store-accessor.d.ts.map +1 -1
  9. package/dist/src/data/data-accessor/data-accessor.interface.d.ts.map +1 -1
  10. package/dist/src/data/data-accessor/index.d.ts.map +1 -1
  11. package/dist/src/data/data-accessor/sparse-matrix-accessor.d.ts.map +1 -1
  12. package/dist/src/data/data-manager.d.ts.map +1 -1
  13. package/dist/src/data/data-source.interface.d.ts.map +1 -1
  14. package/dist/src/data/grid-data-model.d.ts +2 -2
  15. package/dist/src/data/grid-data-model.d.ts.map +1 -1
  16. package/dist/src/data/index-map/index-map.d.ts.map +1 -1
  17. package/dist/src/data/index-map/index-map.interface.d.ts.map +1 -1
  18. package/dist/src/data/index-map/index.d.ts.map +1 -1
  19. package/dist/src/data/index.d.ts.map +1 -1
  20. package/dist/src/editing/cell-editor.interface.d.ts.map +1 -1
  21. package/dist/src/editing/date-editor.d.ts.map +1 -1
  22. package/dist/src/editing/editor-manager.d.ts.map +1 -1
  23. package/dist/src/editing/index.d.ts.map +1 -1
  24. package/dist/src/editing/number-editor.d.ts.map +1 -1
  25. package/dist/src/editing/select-editor.d.ts.map +1 -1
  26. package/dist/src/editing/text-editor.d.ts.map +1 -1
  27. package/dist/src/events/event-emitter.d.ts.map +1 -1
  28. package/dist/src/events/grid-events.d.ts.map +1 -1
  29. package/dist/src/events/index.d.ts.map +1 -1
  30. package/dist/src/features/autofill/autofill-manager.d.ts +1 -1
  31. package/dist/src/features/autofill/autofill-manager.d.ts.map +1 -1
  32. package/dist/src/features/autofill/index.d.ts.map +1 -1
  33. package/dist/src/features/column-resize/auto-fit-calculator.d.ts.map +1 -1
  34. package/dist/src/features/column-resize/column-resize-manager.d.ts.map +1 -1
  35. package/dist/src/features/column-resize/column-resize-manager.interface.d.ts.map +1 -1
  36. package/dist/src/features/column-resize/index.d.ts.map +1 -1
  37. package/dist/src/features/column-resize/resize-constraint-manager.d.ts.map +1 -1
  38. package/dist/src/features/column-resize/resize-handle-renderer.d.ts.map +1 -1
  39. package/dist/src/features/column-resize/resize-preview.d.ts.map +1 -1
  40. package/dist/src/features/column-resize/resize-state-manager.d.ts.map +1 -1
  41. package/dist/src/features/column-resize/resize-strategies.d.ts.map +1 -1
  42. package/dist/src/features/column-resize/resize-test-helper.d.ts.map +1 -1
  43. package/dist/src/features/column-resize/resize-zone-detector.d.ts.map +1 -1
  44. package/dist/src/features/copy-paste/clipboard-manager.d.ts.map +1 -1
  45. package/dist/src/features/copy-paste/index.d.ts.map +1 -1
  46. package/dist/src/features/filtering/adapters/adapter.interface.d.ts.map +1 -1
  47. package/dist/src/features/filtering/adapters/graphql-adapter.d.ts.map +1 -1
  48. package/dist/src/features/filtering/adapters/index.d.ts.map +1 -1
  49. package/dist/src/features/filtering/adapters/rest-adapter.d.ts.map +1 -1
  50. package/dist/src/features/filtering/adapters/sql-adapter.d.ts.map +1 -1
  51. package/dist/src/features/filtering/adapters/types.d.ts.map +1 -1
  52. package/dist/src/features/filtering/column-filter.d.ts.map +1 -1
  53. package/dist/src/features/filtering/filter-autocomplete.d.ts.map +1 -1
  54. package/dist/src/features/filtering/filter-cache.d.ts.map +1 -1
  55. package/dist/src/features/filtering/filter-compiler.d.ts.map +1 -1
  56. package/dist/src/features/filtering/filter-export-manager.d.ts.map +1 -1
  57. package/dist/src/features/filtering/filter-index-manager.d.ts +1 -1
  58. package/dist/src/features/filtering/filter-index-manager.d.ts.map +1 -1
  59. package/dist/src/features/filtering/filter-manager.d.ts +1 -1
  60. package/dist/src/features/filtering/filter-manager.d.ts.map +1 -1
  61. package/dist/src/features/filtering/filter-optimizer.d.ts.map +1 -1
  62. package/dist/src/features/filtering/filter-query-parser.d.ts.map +1 -1
  63. package/dist/src/features/filtering/index.d.ts.map +1 -1
  64. package/dist/src/features/filtering/range-filter-optimizer.d.ts.map +1 -1
  65. package/dist/src/features/filtering/substring-filter.d.ts.map +1 -1
  66. package/dist/src/features/filtering/types.d.ts.map +1 -1
  67. package/dist/src/features/formulas/formula-calculator.d.ts.map +1 -1
  68. package/dist/src/features/formulas/index.d.ts.map +1 -1
  69. package/dist/src/features/hit-testing/index.d.ts.map +1 -1
  70. package/dist/src/features/hit-testing/spatial-hit-tester.d.ts +1 -1
  71. package/dist/src/features/hit-testing/spatial-hit-tester.d.ts.map +1 -1
  72. package/dist/src/features/loading/index.d.ts.map +1 -1
  73. package/dist/src/features/loading/loading-indicator.d.ts.map +1 -1
  74. package/dist/src/features/pagination/index.d.ts.map +1 -1
  75. package/dist/src/features/pagination/paginator.d.ts.map +1 -1
  76. package/dist/src/features/selection/index.d.ts.map +1 -1
  77. package/dist/src/features/selection/selection-manager.d.ts.map +1 -1
  78. package/dist/src/features/sorting/index.d.ts.map +1 -1
  79. package/dist/src/features/sorting/row-sorter.interface.d.ts.map +1 -1
  80. package/dist/src/features/sorting/single-column-sorter.d.ts.map +1 -1
  81. package/dist/src/features/sorting/sort-manager.d.ts.map +1 -1
  82. package/dist/src/features/undo-redo/index.d.ts.map +1 -1
  83. package/dist/src/features/undo-redo/undo-redo-manager.d.ts.map +1 -1
  84. package/dist/src/grid.d.ts.map +1 -1
  85. package/dist/src/i18n/index.d.ts.map +1 -1
  86. package/dist/src/i18n/locale-manager.d.ts.map +1 -1
  87. package/dist/src/i18n/rtl-support.d.ts.map +1 -1
  88. package/dist/src/index.d.ts +4 -4
  89. package/dist/src/index.d.ts.map +1 -1
  90. package/dist/src/keyboard/index.d.ts.map +1 -1
  91. package/dist/src/keyboard/keyboard-navigator.d.ts.map +1 -1
  92. package/dist/src/rendering/cache/index.d.ts.map +1 -1
  93. package/dist/src/rendering/cache/renderer-cache.d.ts.map +1 -1
  94. package/dist/src/rendering/cache/renderer-cache.interface.d.ts.map +1 -1
  95. package/dist/src/rendering/cell-pool/cell-pool.d.ts.map +1 -1
  96. package/dist/src/rendering/cell-pool/cell-pool.interface.d.ts.map +1 -1
  97. package/dist/src/rendering/cell-pool/index.d.ts.map +1 -1
  98. package/dist/src/rendering/cell-positioner/cell-positioner.d.ts.map +1 -1
  99. package/dist/src/rendering/cell-positioner/cell-positioner.interface.d.ts.map +1 -1
  100. package/dist/src/rendering/cell-positioner/index.d.ts.map +1 -1
  101. package/dist/src/rendering/height-provider/height-provider.interface.d.ts.map +1 -1
  102. package/dist/src/rendering/height-provider/index.d.ts.map +1 -1
  103. package/dist/src/rendering/height-provider/uniform-height-provider.d.ts.map +1 -1
  104. package/dist/src/rendering/height-provider/variable-height-provider.d.ts.map +1 -1
  105. package/dist/src/rendering/renderers/advanced-cell-renderer.d.ts.map +1 -1
  106. package/dist/src/rendering/renderers/image-renderer.d.ts.map +1 -1
  107. package/dist/src/rendering/renderers/index.d.ts.map +1 -1
  108. package/dist/src/rendering/renderers/number-renderer.d.ts.map +1 -1
  109. package/dist/src/rendering/renderers/renderer-registry.d.ts.map +1 -1
  110. package/dist/src/rendering/renderers/renderer.interface.d.ts.map +1 -1
  111. package/dist/src/rendering/renderers/text-renderer.d.ts.map +1 -1
  112. package/dist/src/rendering/spatial-hit-tester.d.ts +1 -1
  113. package/dist/src/rendering/spatial-hit-tester.d.ts.map +1 -1
  114. package/dist/src/rendering/virtual-scroller/index.d.ts.map +1 -1
  115. package/dist/src/rendering/virtual-scroller/virtual-scroller.d.ts.map +1 -1
  116. package/dist/src/rendering/virtual-scroller/virtual-scroller.interface.d.ts.map +1 -1
  117. package/dist/src/rendering/width-provider/index.d.ts.map +1 -1
  118. package/dist/src/rendering/width-provider/uniform-width-provider.d.ts.map +1 -1
  119. package/dist/src/rendering/width-provider/variable-width-provider.d.ts.map +1 -1
  120. package/dist/src/rendering/width-provider/width-provider.interface.d.ts.map +1 -1
  121. package/dist/src/selection/hit-tester.d.ts.map +1 -1
  122. package/dist/src/selection/hit-tester.interface.d.ts.map +1 -1
  123. package/dist/src/selection/index.d.ts.map +1 -1
  124. package/dist/src/selection/range-utils.d.ts.map +1 -1
  125. package/dist/src/selection/range-utils.interface.d.ts.map +1 -1
  126. package/dist/src/shared/algorithms/filter/bloom-filter.d.ts +120 -0
  127. package/dist/src/shared/algorithms/filter/bloom-filter.d.ts.map +1 -0
  128. package/dist/src/shared/algorithms/filter/index.d.ts +7 -0
  129. package/dist/src/shared/algorithms/filter/index.d.ts.map +1 -0
  130. package/dist/src/shared/algorithms/graph/bfs.d.ts +71 -0
  131. package/dist/src/shared/algorithms/graph/bfs.d.ts.map +1 -0
  132. package/dist/src/shared/algorithms/graph/dfs.d.ts +62 -0
  133. package/dist/src/shared/algorithms/graph/dfs.d.ts.map +1 -0
  134. package/dist/src/shared/algorithms/graph/graph.interface.d.ts +63 -0
  135. package/dist/src/shared/algorithms/graph/graph.interface.d.ts.map +1 -0
  136. package/dist/src/shared/algorithms/graph/index.d.ts +9 -0
  137. package/dist/src/shared/algorithms/graph/index.d.ts.map +1 -0
  138. package/dist/src/shared/algorithms/index.d.ts +11 -0
  139. package/dist/src/shared/algorithms/index.d.ts.map +1 -0
  140. package/dist/src/shared/algorithms/pattern/index.d.ts +8 -0
  141. package/dist/src/shared/algorithms/pattern/index.d.ts.map +1 -0
  142. package/dist/src/shared/algorithms/pattern/sequence-detector.d.ts +62 -0
  143. package/dist/src/shared/algorithms/pattern/sequence-detector.d.ts.map +1 -0
  144. package/dist/src/shared/algorithms/search/binary-search.d.ts +86 -0
  145. package/dist/src/shared/algorithms/search/binary-search.d.ts.map +1 -0
  146. package/dist/src/shared/algorithms/search/index.d.ts +6 -0
  147. package/dist/src/shared/algorithms/search/index.d.ts.map +1 -0
  148. package/dist/src/shared/algorithms/sorting/comparators.d.ts +126 -0
  149. package/dist/src/shared/algorithms/sorting/comparators.d.ts.map +1 -0
  150. package/dist/src/shared/algorithms/sorting/index.d.ts +9 -0
  151. package/dist/src/shared/algorithms/sorting/index.d.ts.map +1 -0
  152. package/dist/src/shared/algorithms/sorting/sorting.interface.d.ts +38 -0
  153. package/dist/src/shared/algorithms/sorting/sorting.interface.d.ts.map +1 -0
  154. package/dist/src/shared/algorithms/sorting/timsort.d.ts +55 -0
  155. package/dist/src/shared/algorithms/sorting/timsort.d.ts.map +1 -0
  156. package/dist/src/shared/data-structures/column-store/column-store.d.ts +52 -0
  157. package/dist/src/shared/data-structures/column-store/column-store.d.ts.map +1 -0
  158. package/dist/src/shared/data-structures/column-store/column-store.interface.d.ts +155 -0
  159. package/dist/src/shared/data-structures/column-store/column-store.interface.d.ts.map +1 -0
  160. package/dist/src/shared/data-structures/column-store/index.d.ts +6 -0
  161. package/dist/src/shared/data-structures/column-store/index.d.ts.map +1 -0
  162. package/dist/src/shared/data-structures/command-stack/command-stack.d.ts +61 -0
  163. package/dist/src/shared/data-structures/command-stack/command-stack.d.ts.map +1 -0
  164. package/dist/src/shared/data-structures/command-stack/command-stack.interface.d.ts +80 -0
  165. package/dist/src/shared/data-structures/command-stack/command-stack.interface.d.ts.map +1 -0
  166. package/dist/src/shared/data-structures/command-stack/index.d.ts +3 -0
  167. package/dist/src/shared/data-structures/command-stack/index.d.ts.map +1 -0
  168. package/dist/src/shared/data-structures/dependency-graph/dependency-graph.d.ts +147 -0
  169. package/dist/src/shared/data-structures/dependency-graph/dependency-graph.d.ts.map +1 -0
  170. package/dist/src/shared/data-structures/dependency-graph/dependency-graph.interface.d.ts +161 -0
  171. package/dist/src/shared/data-structures/dependency-graph/dependency-graph.interface.d.ts.map +1 -0
  172. package/dist/src/shared/data-structures/dependency-graph/index.d.ts +8 -0
  173. package/dist/src/shared/data-structures/dependency-graph/index.d.ts.map +1 -0
  174. package/dist/src/shared/data-structures/disjoint-set/disjoint-set.d.ts +84 -0
  175. package/dist/src/shared/data-structures/disjoint-set/disjoint-set.d.ts.map +1 -0
  176. package/dist/src/shared/data-structures/disjoint-set/disjoint-set.interface.d.ts +185 -0
  177. package/dist/src/shared/data-structures/disjoint-set/disjoint-set.interface.d.ts.map +1 -0
  178. package/dist/src/shared/data-structures/disjoint-set/index.d.ts +7 -0
  179. package/dist/src/shared/data-structures/disjoint-set/index.d.ts.map +1 -0
  180. package/dist/src/shared/data-structures/index-map/index-map.d.ts +150 -0
  181. package/dist/src/shared/data-structures/index-map/index-map.d.ts.map +1 -0
  182. package/dist/src/shared/data-structures/index-map/index-map.interface.d.ts +186 -0
  183. package/dist/src/shared/data-structures/index-map/index-map.interface.d.ts.map +1 -0
  184. package/dist/src/shared/data-structures/index-map/index.d.ts +6 -0
  185. package/dist/src/shared/data-structures/index-map/index.d.ts.map +1 -0
  186. package/dist/src/shared/data-structures/index.d.ts +36 -0
  187. package/dist/src/shared/data-structures/index.d.ts.map +1 -0
  188. package/dist/src/shared/data-structures/interval-tree/index.d.ts +7 -0
  189. package/dist/src/shared/data-structures/interval-tree/index.d.ts.map +1 -0
  190. package/dist/src/shared/data-structures/interval-tree/interval-tree.d.ts +141 -0
  191. package/dist/src/shared/data-structures/interval-tree/interval-tree.d.ts.map +1 -0
  192. package/dist/src/shared/data-structures/interval-tree/interval-tree.interface.d.ts +212 -0
  193. package/dist/src/shared/data-structures/interval-tree/interval-tree.interface.d.ts.map +1 -0
  194. package/dist/src/shared/data-structures/lru-cache/index.d.ts +3 -0
  195. package/dist/src/shared/data-structures/lru-cache/index.d.ts.map +1 -0
  196. package/dist/src/shared/data-structures/lru-cache/lru-cache.d.ts +134 -0
  197. package/dist/src/shared/data-structures/lru-cache/lru-cache.d.ts.map +1 -0
  198. package/dist/src/shared/data-structures/lru-cache/lru-cache.interface.d.ts +173 -0
  199. package/dist/src/shared/data-structures/lru-cache/lru-cache.interface.d.ts.map +1 -0
  200. package/dist/src/shared/data-structures/prefix-sum-array/index.d.ts +6 -0
  201. package/dist/src/shared/data-structures/prefix-sum-array/index.d.ts.map +1 -0
  202. package/dist/src/shared/data-structures/prefix-sum-array/prefix-sum-array.d.ts +63 -0
  203. package/dist/src/shared/data-structures/prefix-sum-array/prefix-sum-array.d.ts.map +1 -0
  204. package/dist/src/shared/data-structures/prefix-sum-array/prefix-sum-array.interface.d.ts +80 -0
  205. package/dist/src/shared/data-structures/prefix-sum-array/prefix-sum-array.interface.d.ts.map +1 -0
  206. package/dist/src/shared/data-structures/rtree/index.d.ts +8 -0
  207. package/dist/src/shared/data-structures/rtree/index.d.ts.map +1 -0
  208. package/dist/src/shared/data-structures/rtree/rtree.d.ts +81 -0
  209. package/dist/src/shared/data-structures/rtree/rtree.d.ts.map +1 -0
  210. package/dist/src/shared/data-structures/rtree/rtree.interface.d.ts +143 -0
  211. package/dist/src/shared/data-structures/rtree/rtree.interface.d.ts.map +1 -0
  212. package/dist/src/shared/data-structures/segment-tree/index.d.ts +4 -0
  213. package/dist/src/shared/data-structures/segment-tree/index.d.ts.map +1 -0
  214. package/dist/src/shared/data-structures/segment-tree/segment-tree.d.ts +134 -0
  215. package/dist/src/shared/data-structures/segment-tree/segment-tree.d.ts.map +1 -0
  216. package/dist/src/shared/data-structures/segment-tree/segment-tree.interface.d.ts +202 -0
  217. package/dist/src/shared/data-structures/segment-tree/segment-tree.interface.d.ts.map +1 -0
  218. package/dist/src/shared/data-structures/skip-list/index.d.ts +4 -0
  219. package/dist/src/shared/data-structures/skip-list/index.d.ts.map +1 -0
  220. package/dist/src/shared/data-structures/skip-list/skip-list.d.ts +137 -0
  221. package/dist/src/shared/data-structures/skip-list/skip-list.d.ts.map +1 -0
  222. package/dist/src/shared/data-structures/skip-list/skip-list.interface.d.ts +223 -0
  223. package/dist/src/shared/data-structures/skip-list/skip-list.interface.d.ts.map +1 -0
  224. package/dist/src/shared/data-structures/sparse-matrix/index.d.ts +6 -0
  225. package/dist/src/shared/data-structures/sparse-matrix/index.d.ts.map +1 -0
  226. package/dist/src/shared/data-structures/sparse-matrix/sparse-matrix.d.ts +44 -0
  227. package/dist/src/shared/data-structures/sparse-matrix/sparse-matrix.d.ts.map +1 -0
  228. package/dist/src/shared/data-structures/sparse-matrix/sparse-matrix.interface.d.ts +105 -0
  229. package/dist/src/shared/data-structures/sparse-matrix/sparse-matrix.interface.d.ts.map +1 -0
  230. package/dist/src/shared/data-structures/suffix-array/index.d.ts +3 -0
  231. package/dist/src/shared/data-structures/suffix-array/index.d.ts.map +1 -0
  232. package/dist/src/shared/data-structures/suffix-array/suffix-array.d.ts +102 -0
  233. package/dist/src/shared/data-structures/suffix-array/suffix-array.d.ts.map +1 -0
  234. package/dist/src/shared/data-structures/suffix-array/suffix-array.interface.d.ts +117 -0
  235. package/dist/src/shared/data-structures/suffix-array/suffix-array.interface.d.ts.map +1 -0
  236. package/dist/src/shared/data-structures/trie/index.d.ts +8 -0
  237. package/dist/src/shared/data-structures/trie/index.d.ts.map +1 -0
  238. package/dist/src/shared/data-structures/trie/trie.d.ts +205 -0
  239. package/dist/src/shared/data-structures/trie/trie.d.ts.map +1 -0
  240. package/dist/src/shared/data-structures/trie/trie.interface.d.ts +117 -0
  241. package/dist/src/shared/data-structures/trie/trie.interface.d.ts.map +1 -0
  242. package/dist/src/shared/index.d.ts +47 -0
  243. package/dist/src/shared/index.d.ts.map +1 -0
  244. package/dist/src/shared/patterns/coordinator.d.ts +90 -0
  245. package/dist/src/shared/patterns/coordinator.d.ts.map +1 -0
  246. package/dist/src/shared/patterns/event-emitter.d.ts +106 -0
  247. package/dist/src/shared/patterns/event-emitter.d.ts.map +1 -0
  248. package/dist/src/shared/patterns/factory.d.ts +120 -0
  249. package/dist/src/shared/patterns/factory.d.ts.map +1 -0
  250. package/dist/src/shared/patterns/index.d.ts +21 -0
  251. package/dist/src/shared/patterns/index.d.ts.map +1 -0
  252. package/dist/src/shared/patterns/mediator.d.ts +116 -0
  253. package/dist/src/shared/patterns/mediator.d.ts.map +1 -0
  254. package/dist/src/shared/patterns/object-pool.d.ts +178 -0
  255. package/dist/src/shared/patterns/object-pool.d.ts.map +1 -0
  256. package/dist/src/shared/patterns/observer.d.ts +89 -0
  257. package/dist/src/shared/patterns/observer.d.ts.map +1 -0
  258. package/dist/src/shared/patterns/operation-mode.d.ts +75 -0
  259. package/dist/src/shared/patterns/operation-mode.d.ts.map +1 -0
  260. package/dist/src/shared/patterns/state-machine.d.ts +122 -0
  261. package/dist/src/shared/patterns/state-machine.d.ts.map +1 -0
  262. package/dist/src/shared/types/common.d.ts +56 -0
  263. package/dist/src/shared/types/common.d.ts.map +1 -0
  264. package/dist/src/shared/types/index.d.ts +5 -0
  265. package/dist/src/shared/types/index.d.ts.map +1 -0
  266. package/dist/src/shared/utils/index.d.ts +7 -0
  267. package/dist/src/shared/utils/index.d.ts.map +1 -0
  268. package/dist/src/shared/utils/timing.d.ts +104 -0
  269. package/dist/src/shared/utils/timing.d.ts.map +1 -0
  270. package/dist/src/shared/utils/timing.interface.d.ts +96 -0
  271. package/dist/src/shared/utils/timing.interface.d.ts.map +1 -0
  272. package/dist/src/touch/index.d.ts.map +1 -1
  273. package/dist/src/touch/touch-handler.d.ts.map +1 -1
  274. package/dist/src/types/index.d.ts.map +1 -1
  275. package/dist/src/types.d.ts.map +1 -1
  276. package/package.json +2 -2
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Data Structures for ZenGrid
3
+ */
4
+ export { SparseMatrix } from './sparse-matrix';
5
+ export type { ReadonlySparseMatrix, ISparseMatrix, SparseMatrixOptions, } from './sparse-matrix';
6
+ export { PrefixSumArray } from './prefix-sum-array';
7
+ export type { IPrefixSumArray, PrefixSumArrayOptions, } from './prefix-sum-array';
8
+ export { ColumnStore } from './column-store';
9
+ export type { IColumnStore, ColumnStoreOptions, ColumnDefinition, ColumnType, AggregateOperation, AggregationResult, } from './column-store';
10
+ export { IndexMap } from './index-map';
11
+ export type { IIndexMap, IndexMapEntry, IndexMapOptions, } from './index-map';
12
+ export { IntervalTree } from './interval-tree';
13
+ export type { IIntervalTree, Interval, IntervalData, IntervalTreeOptions, } from './interval-tree';
14
+ export { IntervalUtils } from './interval-tree';
15
+ export { Trie } from './trie';
16
+ export type { ITrie, ITrieNode, TrieOptions, TrieSearchResult, } from './trie';
17
+ export { RTree } from './rtree';
18
+ export type { IRTree, Rectangle, RTreeData, RTreeOptions, RTreeSearchResult, RTreeStats, } from './rtree';
19
+ export { DependencyGraph } from './dependency-graph';
20
+ export type { IDependencyGraph, NodeId, Dependency, DependencyGraphOptions, TopologicalSortResult, GraphStats, } from './dependency-graph';
21
+ export { SuffixArray } from './suffix-array';
22
+ export type { ISuffixArray, SuffixArrayOptions, SuffixSearchResult, SuffixArrayStats, } from './suffix-array';
23
+ export { LRUCache } from './lru-cache';
24
+ export type { ILRUCache, LRUCacheOptions, CacheEntry, CacheStats, } from './lru-cache';
25
+ export { CommandStack } from './command-stack';
26
+ export type { ICommandStack, ICommand, ICommandStackOptions, } from './command-stack';
27
+ export { SegmentTree } from './segment-tree';
28
+ export type { ISegmentTree, SegmentTreeOptions, AggregateFunction, AggregationType, } from './segment-tree';
29
+ export { Aggregations, SegmentTreeUtils } from './segment-tree';
30
+ export { SkipList } from './skip-list';
31
+ export type { ISkipList, SkipListNode, SkipListOptions, RangeResult, SkipListStats, } from './skip-list';
32
+ export { defaultComparator, SkipListUtils } from './skip-list';
33
+ export { DisjointSet } from './disjoint-set';
34
+ export type { IDisjointSet, DisjointSetOptions, DisjointSetStats, } from './disjoint-set';
35
+ export { DisjointSetUtils } from './disjoint-set';
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/data-structures/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EACV,KAAK,EACL,SAAS,EACT,WAAW,EACX,gBAAgB,GACjB,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,YAAY,EACV,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EACV,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,sBAAsB,EACtB,qBAAqB,EACrB,UAAU,GACX,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Interval Tree - Augmented BST for interval queries
3
+ */
4
+ export { IntervalTree } from './interval-tree';
5
+ export type { IIntervalTree, Interval, IntervalData, IntervalTreeOptions, } from './interval-tree.interface';
6
+ export { IntervalUtils } from './interval-tree.interface';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/data-structures/interval-tree/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Interval Tree implementation
3
+ * Augmented BST for efficient interval queries
4
+ */
5
+ import type { IIntervalTree, Interval, IntervalData, IntervalTreeOptions } from './interval-tree.interface';
6
+ /**
7
+ * Interval Tree - Augmented BST for interval queries
8
+ *
9
+ * Implementation:
10
+ * - Each node stores an interval and the max endpoint in its subtree
11
+ * - Balanced using AVL tree rotations for guaranteed O(log n) operations
12
+ * - Intervals are ordered by start time
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const tree = new IntervalTree<string>();
17
+ * tree.insert({ start: 10, end: 20 }, 'A');
18
+ * tree.insert({ start: 15, end: 25 }, 'B');
19
+ * tree.insert({ start: 30, end: 40 }, 'C');
20
+ *
21
+ * tree.search({ start: 18, end: 22 }); // Returns A and B
22
+ * tree.searchPoint(35); // Returns C
23
+ * ```
24
+ */
25
+ export declare class IntervalTree<T> implements IIntervalTree<T> {
26
+ private root;
27
+ private count;
28
+ private nextId;
29
+ private readonly balanced;
30
+ private readonly allowDuplicates;
31
+ private readonly comparator;
32
+ constructor(options?: IntervalTreeOptions);
33
+ /**
34
+ * Insert an interval
35
+ */
36
+ insert(interval: Interval, data: T): IntervalData<T>;
37
+ private insertNode;
38
+ /**
39
+ * Delete an interval
40
+ */
41
+ delete(intervalData: IntervalData<T>): boolean;
42
+ private deleteNode;
43
+ /**
44
+ * Delete by ID
45
+ */
46
+ deleteById(id: string | number): boolean;
47
+ private findById;
48
+ /**
49
+ * Find all overlapping intervals
50
+ */
51
+ search(interval: Interval): IntervalData<T>[];
52
+ private searchOverlap;
53
+ /**
54
+ * Find all intervals containing a point
55
+ */
56
+ searchPoint(point: number): IntervalData<T>[];
57
+ /**
58
+ * Find all intervals contained within the given interval
59
+ */
60
+ searchContained(interval: Interval): IntervalData<T>[];
61
+ private searchContainedHelper;
62
+ /**
63
+ * Find all intervals containing the given interval
64
+ */
65
+ searchContaining(interval: Interval): IntervalData<T>[];
66
+ private searchContainingHelper;
67
+ /**
68
+ * Find minimum interval (by start time)
69
+ */
70
+ findMin(): IntervalData<T> | undefined;
71
+ private findMinNode;
72
+ /**
73
+ * Find maximum interval (by max endpoint in tree)
74
+ */
75
+ findMax(): IntervalData<T> | undefined;
76
+ private findMaxHelper;
77
+ /**
78
+ * Check if any interval overlaps
79
+ */
80
+ hasOverlap(interval: Interval): boolean;
81
+ private hasOverlapHelper;
82
+ /**
83
+ * Get all intervals in sorted order
84
+ */
85
+ inorder(): IntervalData<T>[];
86
+ private inorderHelper;
87
+ /**
88
+ * Iterate over all intervals
89
+ */
90
+ forEach(callback: (interval: IntervalData<T>) => void): void;
91
+ private forEachHelper;
92
+ /**
93
+ * Filter intervals
94
+ */
95
+ filter(predicate: (interval: IntervalData<T>) => boolean): IIntervalTree<T>;
96
+ /**
97
+ * Map intervals
98
+ */
99
+ map<U>(mapper: (data: T, interval: Interval) => U): IIntervalTree<U>;
100
+ /**
101
+ * Clear the tree
102
+ */
103
+ clear(): void;
104
+ /**
105
+ * Get tree size
106
+ */
107
+ get size(): number;
108
+ /**
109
+ * Check if empty
110
+ */
111
+ get isEmpty(): boolean;
112
+ /**
113
+ * Get tree height
114
+ */
115
+ get height(): number;
116
+ private getHeight;
117
+ /**
118
+ * AVL balancing methods
119
+ */
120
+ private balance;
121
+ private getBalanceFactor;
122
+ private rotateLeft;
123
+ private rotateRight;
124
+ /**
125
+ * Create IntervalTree from array of intervals
126
+ */
127
+ static from<T>(intervals: Array<{
128
+ interval: Interval;
129
+ data: T;
130
+ }>, options?: IntervalTreeOptions): IntervalTree<T>;
131
+ /**
132
+ * Debug: Get tree structure as string
133
+ */
134
+ toString(): string;
135
+ /**
136
+ * Debug: Validate tree structure
137
+ */
138
+ validate(): boolean;
139
+ private validateNode;
140
+ }
141
+ //# sourceMappingURL=interval-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval-tree.d.ts","sourceRoot":"","sources":["../../../../../src/shared/data-structures/interval-tree/interval-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Interval Tree interfaces for ZenGrid
3
+ * Efficiently finds all intervals that overlap with a given interval or point
4
+ */
5
+ /**
6
+ * Represents an interval with a start and end
7
+ */
8
+ export interface Interval {
9
+ /** Start of the interval (inclusive) */
10
+ start: number;
11
+ /** End of the interval (inclusive) */
12
+ end: number;
13
+ }
14
+ /**
15
+ * An interval with associated data
16
+ */
17
+ export interface IntervalData<T> extends Interval {
18
+ /** User data associated with this interval */
19
+ data: T;
20
+ /** Optional unique identifier */
21
+ id?: string | number;
22
+ }
23
+ /**
24
+ * Interval Tree interface
25
+ *
26
+ * An augmented binary search tree for efficient interval queries.
27
+ * Each node stores an interval and the maximum endpoint in its subtree.
28
+ *
29
+ * Use cases:
30
+ * - Finding all overlapping time ranges
31
+ * - Range queries in calendars/schedules
32
+ * - Collision detection (e.g., overlapping cells in a grid)
33
+ * - Finding visible rows/columns in virtual scrolling
34
+ * - Query optimization (index range scans)
35
+ *
36
+ * Performance:
37
+ * - Insert: O(log n) average, O(n) worst case (use Red-Black tree for guaranteed O(log n))
38
+ * - Delete: O(log n) average
39
+ * - Search overlapping: O(log n + k) where k = number of results
40
+ * - Point query: O(log n + k)
41
+ * - Space: O(n)
42
+ */
43
+ export interface IIntervalTree<T> {
44
+ /**
45
+ * Insert an interval with associated data
46
+ * @param interval - The interval to insert
47
+ * @param data - Data to associate with the interval
48
+ * @returns The inserted interval with data
49
+ * @complexity O(log n) average
50
+ */
51
+ insert(interval: Interval, data: T): IntervalData<T>;
52
+ /**
53
+ * Delete an interval by reference
54
+ * @param intervalData - The interval to delete
55
+ * @returns true if found and deleted
56
+ * @complexity O(log n)
57
+ */
58
+ delete(intervalData: IntervalData<T>): boolean;
59
+ /**
60
+ * Delete an interval by ID
61
+ * @param id - The ID of the interval to delete
62
+ * @returns true if found and deleted
63
+ * @complexity O(n) - requires linear search
64
+ */
65
+ deleteById(id: string | number): boolean;
66
+ /**
67
+ * Find all intervals that overlap with the given interval
68
+ * @param interval - The query interval
69
+ * @returns Array of overlapping intervals
70
+ * @complexity O(log n + k) where k = number of results
71
+ */
72
+ search(interval: Interval): IntervalData<T>[];
73
+ /**
74
+ * Find all intervals that contain the given point
75
+ * @param point - The point to query
76
+ * @returns Array of intervals containing the point
77
+ * @complexity O(log n + k) where k = number of results
78
+ */
79
+ searchPoint(point: number): IntervalData<T>[];
80
+ /**
81
+ * Find all intervals that are completely contained within the given interval
82
+ * @param interval - The containing interval
83
+ * @returns Array of contained intervals
84
+ * @complexity O(n) worst case
85
+ */
86
+ searchContained(interval: Interval): IntervalData<T>[];
87
+ /**
88
+ * Find all intervals that completely contain the given interval
89
+ * @param interval - The interval to be contained
90
+ * @returns Array of containing intervals
91
+ * @complexity O(n) worst case
92
+ */
93
+ searchContaining(interval: Interval): IntervalData<T>[];
94
+ /**
95
+ * Find the interval with the earliest start time
96
+ * @returns The interval or undefined if tree is empty
97
+ * @complexity O(log n)
98
+ */
99
+ findMin(): IntervalData<T> | undefined;
100
+ /**
101
+ * Find the interval with the latest end time
102
+ * @returns The interval or undefined if tree is empty
103
+ * @complexity O(log n)
104
+ */
105
+ findMax(): IntervalData<T> | undefined;
106
+ /**
107
+ * Check if any interval overlaps with the given interval
108
+ * @param interval - The query interval
109
+ * @complexity O(log n)
110
+ */
111
+ hasOverlap(interval: Interval): boolean;
112
+ /**
113
+ * Get all intervals in sorted order (by start time)
114
+ * @returns Array of all intervals sorted by start
115
+ * @complexity O(n)
116
+ */
117
+ inorder(): IntervalData<T>[];
118
+ /**
119
+ * Iterate over all intervals in sorted order
120
+ * @param callback - Function to call for each interval
121
+ * @complexity O(n)
122
+ */
123
+ forEach(callback: (interval: IntervalData<T>) => void): void;
124
+ /**
125
+ * Filter intervals by a predicate
126
+ * @param predicate - Test function
127
+ * @returns New interval tree with intervals that pass the test
128
+ * @complexity O(n)
129
+ */
130
+ filter(predicate: (interval: IntervalData<T>) => boolean): IIntervalTree<T>;
131
+ /**
132
+ * Map intervals to a new interval tree
133
+ * @param mapper - Transform function for the data
134
+ * @returns New interval tree with transformed data
135
+ * @complexity O(n)
136
+ */
137
+ map<U>(mapper: (data: T, interval: Interval) => U): IIntervalTree<U>;
138
+ /**
139
+ * Clear all intervals
140
+ * @complexity O(1)
141
+ */
142
+ clear(): void;
143
+ /**
144
+ * Number of intervals in the tree
145
+ */
146
+ readonly size: number;
147
+ /**
148
+ * Whether the tree is empty
149
+ */
150
+ readonly isEmpty: boolean;
151
+ /**
152
+ * Height of the tree (for debugging/analysis)
153
+ */
154
+ readonly height: number;
155
+ }
156
+ /**
157
+ * Options for creating an IntervalTree
158
+ */
159
+ export interface IntervalTreeOptions {
160
+ /**
161
+ * Whether to use a balanced tree (Red-Black tree)
162
+ * Guarantees O(log n) operations but slightly slower constants
163
+ * @default false (uses simple BST)
164
+ */
165
+ balanced?: boolean;
166
+ /**
167
+ * Whether to allow duplicate intervals
168
+ * @default true
169
+ */
170
+ allowDuplicates?: boolean;
171
+ /**
172
+ * Custom comparator for intervals
173
+ * Defaults to comparing by start time, then end time
174
+ */
175
+ comparator?: (a: Interval, b: Interval) => number;
176
+ }
177
+ /**
178
+ * Helper functions for interval operations
179
+ */
180
+ export declare const IntervalUtils: {
181
+ /**
182
+ * Check if two intervals overlap
183
+ */
184
+ overlaps(a: Interval, b: Interval): boolean;
185
+ /**
186
+ * Check if interval contains a point
187
+ */
188
+ contains(interval: Interval, point: number): boolean;
189
+ /**
190
+ * Check if interval A contains interval B
191
+ */
192
+ containsInterval(a: Interval, b: Interval): boolean;
193
+ /**
194
+ * Get the intersection of two intervals
195
+ * Returns undefined if they don't overlap
196
+ */
197
+ intersection(a: Interval, b: Interval): Interval | undefined;
198
+ /**
199
+ * Get the union of two overlapping intervals
200
+ * Returns undefined if they don't overlap
201
+ */
202
+ union(a: Interval, b: Interval): Interval | undefined;
203
+ /**
204
+ * Merge overlapping intervals
205
+ */
206
+ mergeOverlapping(intervals: Interval[]): Interval[];
207
+ /**
208
+ * Default comparator: compare by start, then by end
209
+ */
210
+ defaultComparator(a: Interval, b: Interval): number;
211
+ };
212
+ //# sourceMappingURL=interval-tree.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interval-tree.interface.d.ts","sourceRoot":"","sources":["../../../../../src/shared/data-structures/interval-tree/interval-tree.interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { LRUCache } from './lru-cache';
2
+ export type { ILRUCache, LRUCacheOptions, CacheEntry, CacheStats, } from './lru-cache.interface';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/shared/data-structures/lru-cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,GACX,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,134 @@
1
+ import type { ILRUCache, LRUCacheOptions, CacheEntry, CacheStats } from './lru-cache.interface';
2
+ /**
3
+ * LRU Cache - Least Recently Used Cache
4
+ *
5
+ * A cache with automatic eviction of least recently used entries.
6
+ * Uses doubly-linked list + hash map for O(1) operations.
7
+ *
8
+ * **Time Complexity:**
9
+ * - get: O(1)
10
+ * - set: O(1)
11
+ * - delete: O(1)
12
+ * - has: O(1)
13
+ * - clear: O(n)
14
+ *
15
+ * **Space Complexity:** O(n) where n = number of entries
16
+ *
17
+ * **Use Cases in Grid:**
18
+ * - Cache rendered cells: Avoid re-rendering visible cells
19
+ * - Cache formula results: =SUM(A1:A1000) computed once
20
+ * - Cache formatted values: "$1,234.56" cached instead of re-formatting
21
+ * - Cache API responses: Reduce server requests
22
+ *
23
+ * @example Cell Rendering Cache
24
+ * ```typescript
25
+ * const cellCache = new LRUCache<string, HTMLElement>({ capacity: 500 });
26
+ *
27
+ * function renderCell(row: number, col: number): HTMLElement {
28
+ * const key = `${row},${col}`;
29
+ * let element = cellCache.get(key);
30
+ *
31
+ * if (!element) {
32
+ * element = createCellElement(row, col); // Expensive operation
33
+ * cellCache.set(key, element);
34
+ * }
35
+ *
36
+ * return element;
37
+ * }
38
+ * ```
39
+ *
40
+ * @example Formula Cache
41
+ * ```typescript
42
+ * const formulaCache = new LRUCache<string, number>({
43
+ * capacity: 1000,
44
+ * ttl: 5000, // 5 seconds
45
+ * });
46
+ *
47
+ * function evaluateFormula(formula: string): number {
48
+ * return formulaCache.get(formula) ?? computeFormula(formula);
49
+ * }
50
+ * ```
51
+ */
52
+ export declare class LRUCache<K, V> implements ILRUCache<K, V> {
53
+ private capacity;
54
+ private ttl;
55
+ private cache;
56
+ private head;
57
+ private tail;
58
+ private onEvict?;
59
+ private trackStats;
60
+ private hits;
61
+ private misses;
62
+ private evictions;
63
+ private sets;
64
+ constructor(options?: LRUCacheOptions);
65
+ /**
66
+ * Get a value from the cache
67
+ */
68
+ get(key: K): V | undefined;
69
+ /**
70
+ * Set a value in the cache
71
+ */
72
+ set(key: K, value: V): void;
73
+ /**
74
+ * Check if a key exists
75
+ */
76
+ has(key: K): boolean;
77
+ /**
78
+ * Delete a specific entry
79
+ */
80
+ delete(key: K): boolean;
81
+ /**
82
+ * Clear all entries
83
+ */
84
+ clear(): void;
85
+ /**
86
+ * Get current size
87
+ */
88
+ size(): number;
89
+ /**
90
+ * Get statistics
91
+ */
92
+ getStats(): CacheStats;
93
+ /**
94
+ * Get all keys (oldest to newest)
95
+ */
96
+ keys(): K[];
97
+ /**
98
+ * Get all values (oldest to newest)
99
+ */
100
+ values(): V[];
101
+ /**
102
+ * Get all entries with metadata
103
+ */
104
+ entries(): Array<[K, CacheEntry<V>]>;
105
+ /**
106
+ * Peek without updating LRU order
107
+ */
108
+ peek(key: K): V | undefined;
109
+ /**
110
+ * Resize cache capacity
111
+ */
112
+ resize(newCapacity: number): void;
113
+ /**
114
+ * Check if a node is expired
115
+ */
116
+ private isExpired;
117
+ /**
118
+ * Move node to head (most recently used)
119
+ */
120
+ private moveToHead;
121
+ /**
122
+ * Add node to head
123
+ */
124
+ private addToHead;
125
+ /**
126
+ * Remove node from list
127
+ */
128
+ private removeNode;
129
+ /**
130
+ * Evict least recently used entry
131
+ */
132
+ private evictLRU;
133
+ }
134
+ //# sourceMappingURL=lru-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-cache.d.ts","sourceRoot":"","sources":["../../../../../src/shared/data-structures/lru-cache/lru-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACX,MAAM,uBAAuB,CAAC;AAiB/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAwB;IACrC,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,IAAI,CAA8B;IAC1C,OAAO,CAAC,OAAO,CAAC,CAA6B;IAC7C,OAAO,CAAC,UAAU,CAAU;IAG5B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,IAAI,CAAa;gBAEb,OAAO,GAAE,eAAoB;IAYzC;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IA0B1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAyB3B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAYpB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAUvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,QAAQ,IAAI,UAAU;IAsBtB;;OAEG;IACH,IAAI,IAAI,CAAC,EAAE;IAYX;;OAEG;IACH,MAAM,IAAI,CAAC,EAAE;IAYb;;OAEG;IACH,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAoBpC;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAa3B;;OAEG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAejC;;OAEG;IACH,OAAO,CAAC,SAAS;IAKjB;;OAEG;IACH,OAAO,CAAC,UAAU;IAOlB;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;IACH,OAAO,CAAC,QAAQ;CAcjB"}