@pierre/diffs 1.3.0-beta.5 → 1.3.0-beta.7

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 (643) hide show
  1. package/README.md +9 -9
  2. package/dist/components/CodeView.d.ts +13 -11
  3. package/dist/components/CodeView.d.ts.map +1 -1
  4. package/dist/components/CodeView.js +53 -14
  5. package/dist/components/CodeView.js.map +1 -1
  6. package/dist/components/File.d.ts +4 -5
  7. package/dist/components/File.d.ts.map +1 -1
  8. package/dist/components/File.js +37 -19
  9. package/dist/components/File.js.map +1 -1
  10. package/dist/components/FileDiff.d.ts +49 -36
  11. package/dist/components/FileDiff.d.ts.map +1 -1
  12. package/dist/components/FileDiff.js +173 -75
  13. package/dist/components/FileDiff.js.map +1 -1
  14. package/dist/components/FileStream.d.ts +0 -1
  15. package/dist/components/FileStream.d.ts.map +1 -1
  16. package/dist/components/FileStream.js +4 -4
  17. package/dist/components/FileStream.js.map +1 -1
  18. package/dist/components/UnresolvedFile.d.ts +3 -3
  19. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  20. package/dist/components/UnresolvedFile.js +7 -5
  21. package/dist/components/UnresolvedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFile.d.ts +0 -1
  23. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFile.js +22 -25
  25. package/dist/components/VirtualizedFile.js.map +1 -1
  26. package/dist/components/VirtualizedFileDiff.d.ts +12 -7
  27. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  28. package/dist/components/VirtualizedFileDiff.js +192 -64
  29. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  30. package/dist/components/Virtualizer.d.ts +1 -1
  31. package/dist/components/Virtualizer.d.ts.map +1 -1
  32. package/dist/components/Virtualizer.js +23 -24
  33. package/dist/components/Virtualizer.js.map +1 -1
  34. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  35. package/dist/components/web-components.d.ts.map +1 -1
  36. package/dist/components/web-components.js +2 -3
  37. package/dist/components/web-components.js.map +1 -1
  38. package/dist/constants.d.ts +3 -2
  39. package/dist/constants.d.ts.map +1 -1
  40. package/dist/constants.js +3 -2
  41. package/dist/constants.js.map +1 -1
  42. package/dist/editor/command.d.ts +2 -1
  43. package/dist/editor/command.d.ts.map +1 -1
  44. package/dist/editor/command.js +7 -3
  45. package/dist/editor/command.js.map +1 -1
  46. package/dist/editor/editStack.d.ts +7 -1
  47. package/dist/editor/editStack.d.ts.map +1 -1
  48. package/dist/editor/editStack.js +3 -3
  49. package/dist/editor/editStack.js.map +1 -1
  50. package/dist/editor/editor.d.ts +28 -4
  51. package/dist/editor/editor.d.ts.map +1 -1
  52. package/dist/editor/editor.js +669 -313
  53. package/dist/editor/editor.js.map +1 -1
  54. package/dist/editor/editor2.js +3 -3
  55. package/dist/editor/editor2.js.map +1 -1
  56. package/dist/editor/index.js +1 -2
  57. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  58. package/dist/editor/lineAnnotations.js +2 -3
  59. package/dist/editor/lineAnnotations.js.map +1 -1
  60. package/dist/editor/marker.d.ts +2 -1
  61. package/dist/editor/marker.d.ts.map +1 -1
  62. package/dist/editor/marker.js +28 -11
  63. package/dist/editor/marker.js.map +1 -1
  64. package/dist/editor/pieceTable.d.ts +4 -2
  65. package/dist/editor/pieceTable.d.ts.map +1 -1
  66. package/dist/editor/pieceTable.js +138 -128
  67. package/dist/editor/pieceTable.js.map +1 -1
  68. package/dist/editor/platform.d.ts +8 -1
  69. package/dist/editor/platform.d.ts.map +1 -1
  70. package/dist/editor/platform.js +16 -5
  71. package/dist/editor/platform.js.map +1 -1
  72. package/dist/editor/searchPanel.d.ts +1 -0
  73. package/dist/editor/searchPanel.d.ts.map +1 -1
  74. package/dist/editor/searchPanel.js +75 -62
  75. package/dist/editor/searchPanel.js.map +1 -1
  76. package/dist/editor/selection.d.ts +42 -5
  77. package/dist/editor/selection.d.ts.map +1 -1
  78. package/dist/editor/selection.js +504 -114
  79. package/dist/editor/selection.js.map +1 -1
  80. package/dist/editor/selectionAction.d.ts +4 -5
  81. package/dist/editor/selectionAction.d.ts.map +1 -1
  82. package/dist/editor/selectionAction.js +14 -64
  83. package/dist/editor/selectionAction.js.map +1 -1
  84. package/dist/editor/sprite.d.ts +2 -2
  85. package/dist/editor/sprite.d.ts.map +1 -1
  86. package/dist/editor/sprite.js +7 -14
  87. package/dist/editor/sprite.js.map +1 -1
  88. package/dist/editor/textDocument.d.ts +5 -4
  89. package/dist/editor/textDocument.d.ts.map +1 -1
  90. package/dist/editor/textDocument.js +26 -15
  91. package/dist/editor/textDocument.js.map +1 -1
  92. package/dist/editor/textMeasure.d.ts +36 -3
  93. package/dist/editor/textMeasure.d.ts.map +1 -1
  94. package/dist/editor/textMeasure.js +104 -17
  95. package/dist/editor/textMeasure.js.map +1 -1
  96. package/dist/editor/tokenzier.d.ts +3 -0
  97. package/dist/editor/tokenzier.d.ts.map +1 -1
  98. package/dist/editor/tokenzier.js +27 -16
  99. package/dist/editor/tokenzier.js.map +1 -1
  100. package/dist/editor/utils.d.ts +4 -1
  101. package/dist/editor/utils.d.ts.map +1 -1
  102. package/dist/editor/utils.js +19 -3
  103. package/dist/editor/utils.js.map +1 -1
  104. package/dist/highlighter/languages/areLanguagesAttached.d.ts.map +1 -1
  105. package/dist/highlighter/languages/areLanguagesAttached.js +1 -2
  106. package/dist/highlighter/languages/areLanguagesAttached.js.map +1 -1
  107. package/dist/highlighter/languages/attachResolvedLanguages.d.ts +0 -2
  108. package/dist/highlighter/languages/attachResolvedLanguages.d.ts.map +1 -1
  109. package/dist/highlighter/languages/attachResolvedLanguages.js +1 -2
  110. package/dist/highlighter/languages/attachResolvedLanguages.js.map +1 -1
  111. package/dist/highlighter/languages/cleanUpResolvedLanguages.d.ts.map +1 -1
  112. package/dist/highlighter/languages/cleanUpResolvedLanguages.js +1 -2
  113. package/dist/highlighter/languages/cleanUpResolvedLanguages.js.map +1 -1
  114. package/dist/highlighter/languages/constants.d.ts +0 -1
  115. package/dist/highlighter/languages/constants.d.ts.map +1 -1
  116. package/dist/highlighter/languages/constants.js +1 -1
  117. package/dist/highlighter/languages/constants.js.map +1 -1
  118. package/dist/highlighter/languages/getResolvedLanguages.d.ts +0 -2
  119. package/dist/highlighter/languages/getResolvedLanguages.d.ts.map +1 -1
  120. package/dist/highlighter/languages/getResolvedLanguages.js +1 -2
  121. package/dist/highlighter/languages/getResolvedLanguages.js.map +1 -1
  122. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts +0 -2
  123. package/dist/highlighter/languages/getResolvedOrResolveLanguage.d.ts.map +1 -1
  124. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js +1 -2
  125. package/dist/highlighter/languages/getResolvedOrResolveLanguage.js.map +1 -1
  126. package/dist/highlighter/languages/hasResolvedLanguages.d.ts.map +1 -1
  127. package/dist/highlighter/languages/hasResolvedLanguages.js +1 -2
  128. package/dist/highlighter/languages/hasResolvedLanguages.js.map +1 -1
  129. package/dist/highlighter/languages/registerCustomLanguage.d.ts +0 -1
  130. package/dist/highlighter/languages/registerCustomLanguage.d.ts.map +1 -1
  131. package/dist/highlighter/languages/registerCustomLanguage.js +1 -2
  132. package/dist/highlighter/languages/registerCustomLanguage.js.map +1 -1
  133. package/dist/highlighter/languages/resolveLanguage.d.ts +0 -2
  134. package/dist/highlighter/languages/resolveLanguage.d.ts.map +1 -1
  135. package/dist/highlighter/languages/resolveLanguage.js +4 -5
  136. package/dist/highlighter/languages/resolveLanguage.js.map +1 -1
  137. package/dist/highlighter/languages/resolveLanguages.d.ts +0 -2
  138. package/dist/highlighter/languages/resolveLanguages.d.ts.map +1 -1
  139. package/dist/highlighter/languages/resolveLanguages.js +1 -2
  140. package/dist/highlighter/languages/resolveLanguages.js.map +1 -1
  141. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  142. package/dist/highlighter/shared_highlighter.js +3 -4
  143. package/dist/highlighter/shared_highlighter.js.map +1 -1
  144. package/dist/highlighter/themes/areThemesAttached.d.ts.map +1 -1
  145. package/dist/highlighter/themes/areThemesAttached.js +1 -2
  146. package/dist/highlighter/themes/areThemesAttached.js.map +1 -1
  147. package/dist/highlighter/themes/attachResolvedThemes.d.ts.map +1 -1
  148. package/dist/highlighter/themes/attachResolvedThemes.js +1 -2
  149. package/dist/highlighter/themes/attachResolvedThemes.js.map +1 -1
  150. package/dist/highlighter/themes/cleanUpResolvedThemes.d.ts.map +1 -1
  151. package/dist/highlighter/themes/cleanUpResolvedThemes.js +1 -2
  152. package/dist/highlighter/themes/cleanUpResolvedThemes.js.map +1 -1
  153. package/dist/highlighter/themes/constants.d.ts.map +1 -1
  154. package/dist/highlighter/themes/constants.js +1 -1
  155. package/dist/highlighter/themes/constants.js.map +1 -1
  156. package/dist/highlighter/themes/getResolvedOrResolveTheme.d.ts.map +1 -1
  157. package/dist/highlighter/themes/getResolvedOrResolveTheme.js +1 -2
  158. package/dist/highlighter/themes/getResolvedOrResolveTheme.js.map +1 -1
  159. package/dist/highlighter/themes/getResolvedThemes.d.ts.map +1 -1
  160. package/dist/highlighter/themes/getResolvedThemes.js +1 -2
  161. package/dist/highlighter/themes/getResolvedThemes.js.map +1 -1
  162. package/dist/highlighter/themes/hasResolvedThemes.d.ts.map +1 -1
  163. package/dist/highlighter/themes/hasResolvedThemes.js +1 -2
  164. package/dist/highlighter/themes/hasResolvedThemes.js.map +1 -1
  165. package/dist/highlighter/themes/registerCustomCSSVariableTheme.d.ts.map +1 -1
  166. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js +1 -2
  167. package/dist/highlighter/themes/registerCustomCSSVariableTheme.js.map +1 -1
  168. package/dist/highlighter/themes/registerCustomTheme.d.ts.map +1 -1
  169. package/dist/highlighter/themes/registerCustomTheme.js +1 -2
  170. package/dist/highlighter/themes/registerCustomTheme.js.map +1 -1
  171. package/dist/highlighter/themes/resolveTheme.d.ts.map +1 -1
  172. package/dist/highlighter/themes/resolveTheme.js +1 -2
  173. package/dist/highlighter/themes/resolveTheme.js.map +1 -1
  174. package/dist/highlighter/themes/resolveThemes.d.ts.map +1 -1
  175. package/dist/highlighter/themes/resolveThemes.js +1 -2
  176. package/dist/highlighter/themes/resolveThemes.js.map +1 -1
  177. package/dist/highlighter/themes/themeResolution.d.ts.map +1 -1
  178. package/dist/highlighter/themes/themeResolution.js +1 -2
  179. package/dist/highlighter/themes/themeResolution.js.map +1 -1
  180. package/dist/highlighter/themes/themeResolver.d.ts +2 -2
  181. package/dist/highlighter/themes/themeResolver.d.ts.map +1 -1
  182. package/dist/highlighter/themes/themeResolver.js +1 -2
  183. package/dist/highlighter/themes/themeResolver.js.map +1 -1
  184. package/dist/index.d.ts +12 -10
  185. package/dist/index.js +4 -3
  186. package/dist/managers/InteractionManager.d.ts +7 -0
  187. package/dist/managers/InteractionManager.d.ts.map +1 -1
  188. package/dist/managers/InteractionManager.js +25 -4
  189. package/dist/managers/InteractionManager.js.map +1 -1
  190. package/dist/managers/ResizeManager.d.ts.map +1 -1
  191. package/dist/managers/ResizeManager.js +1 -1
  192. package/dist/managers/ResizeManager.js.map +1 -1
  193. package/dist/managers/ScrollSyncManager.d.ts.map +1 -1
  194. package/dist/managers/ScrollSyncManager.js +1 -1
  195. package/dist/managers/ScrollSyncManager.js.map +1 -1
  196. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  197. package/dist/managers/UniversalRenderingManager.js +2 -2
  198. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  199. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts +228 -0
  200. package/dist/node_modules/.pnpm/@types_hast@3.0.4/node_modules/@types/hast/index.d.ts.map +1 -0
  201. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts +84 -0
  202. package/dist/node_modules/.pnpm/@types_unist@3.0.3/node_modules/@types/unist/index.d.ts.map +1 -0
  203. package/dist/react/CodeView.d.ts +1 -1
  204. package/dist/react/CodeView.d.ts.map +1 -1
  205. package/dist/react/CodeView.js +17 -16
  206. package/dist/react/CodeView.js.map +1 -1
  207. package/dist/react/EditorContext.d.ts +0 -1
  208. package/dist/react/EditorContext.d.ts.map +1 -1
  209. package/dist/react/EditorContext.js +2 -5
  210. package/dist/react/EditorContext.js.map +1 -1
  211. package/dist/react/File.d.ts +1 -0
  212. package/dist/react/File.d.ts.map +1 -1
  213. package/dist/react/File.js +4 -6
  214. package/dist/react/File.js.map +1 -1
  215. package/dist/react/FileDiff.d.ts +1 -0
  216. package/dist/react/FileDiff.d.ts.map +1 -1
  217. package/dist/react/FileDiff.js +4 -6
  218. package/dist/react/FileDiff.js.map +1 -1
  219. package/dist/react/MultiFileDiff.d.ts +4 -4
  220. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  221. package/dist/react/MultiFileDiff.js +4 -6
  222. package/dist/react/MultiFileDiff.js.map +1 -1
  223. package/dist/react/PatchDiff.d.ts +1 -0
  224. package/dist/react/PatchDiff.d.ts.map +1 -1
  225. package/dist/react/PatchDiff.js +4 -6
  226. package/dist/react/PatchDiff.js.map +1 -1
  227. package/dist/react/UnresolvedFile.d.ts +2 -1
  228. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  229. package/dist/react/UnresolvedFile.js +4 -6
  230. package/dist/react/UnresolvedFile.js.map +1 -1
  231. package/dist/react/Virtualizer.d.ts.map +1 -1
  232. package/dist/react/Virtualizer.js +2 -5
  233. package/dist/react/Virtualizer.js.map +1 -1
  234. package/dist/react/WorkerPoolContext.d.ts +0 -1
  235. package/dist/react/WorkerPoolContext.d.ts.map +1 -1
  236. package/dist/react/WorkerPoolContext.js +2 -5
  237. package/dist/react/WorkerPoolContext.js.map +1 -1
  238. package/dist/react/constants.d.ts.map +1 -1
  239. package/dist/react/constants.js +1 -1
  240. package/dist/react/constants.js.map +1 -1
  241. package/dist/react/index.d.ts +2 -2
  242. package/dist/react/index.js +1 -2
  243. package/dist/react/jsx.d.ts +0 -2
  244. package/dist/react/jsx.d.ts.map +1 -1
  245. package/dist/react/types.d.ts +2 -0
  246. package/dist/react/types.d.ts.map +1 -1
  247. package/dist/react/utils/renderDiffChildren.d.ts +2 -0
  248. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  249. package/dist/react/utils/renderDiffChildren.js +18 -11
  250. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  251. package/dist/react/utils/renderFileChildren.d.ts +2 -0
  252. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  253. package/dist/react/utils/renderFileChildren.js +18 -11
  254. package/dist/react/utils/renderFileChildren.js.map +1 -1
  255. package/dist/react/utils/templateRender.d.ts.map +1 -1
  256. package/dist/react/utils/templateRender.js +1 -2
  257. package/dist/react/utils/templateRender.js.map +1 -1
  258. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  259. package/dist/react/utils/useFileDiffInstance.js +15 -18
  260. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  261. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  262. package/dist/react/utils/useFileInstance.js +1 -2
  263. package/dist/react/utils/useFileInstance.js.map +1 -1
  264. package/dist/react/utils/useStableCallback.d.ts.map +1 -1
  265. package/dist/react/utils/useStableCallback.js +1 -2
  266. package/dist/react/utils/useStableCallback.js.map +1 -1
  267. package/dist/react/utils/useUnresolvedFileInstance.d.ts.map +1 -1
  268. package/dist/react/utils/useUnresolvedFileInstance.js +10 -11
  269. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  270. package/dist/renderers/DiffHunksRenderer.d.ts +2 -3
  271. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  272. package/dist/renderers/DiffHunksRenderer.js +52 -33
  273. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  274. package/dist/renderers/FileRenderer.d.ts +1 -3
  275. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  276. package/dist/renderers/FileRenderer.js +14 -11
  277. package/dist/renderers/FileRenderer.js.map +1 -1
  278. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +1 -2
  279. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  280. package/dist/renderers/UnresolvedFileHunksRenderer.js +1 -2
  281. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  282. package/dist/shiki-stream/index.js +1 -2
  283. package/dist/shiki-stream/stream.d.ts +0 -1
  284. package/dist/shiki-stream/stream.d.ts.map +1 -1
  285. package/dist/shiki-stream/stream.js +1 -2
  286. package/dist/shiki-stream/stream.js.map +1 -1
  287. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  288. package/dist/shiki-stream/tokenizer.js +1 -1
  289. package/dist/shiki-stream/tokenizer.js.map +1 -1
  290. package/dist/shiki-stream/types.d.ts +0 -1
  291. package/dist/shiki-stream/types.d.ts.map +1 -1
  292. package/dist/sprite.d.ts.map +1 -1
  293. package/dist/sprite.js +1 -1
  294. package/dist/ssr/FileDiffReact.d.ts.map +1 -1
  295. package/dist/ssr/FileDiffReact.js +5 -8
  296. package/dist/ssr/FileDiffReact.js.map +1 -1
  297. package/dist/ssr/index.d.ts +2 -2
  298. package/dist/ssr/index.js +1 -2
  299. package/dist/ssr/preloadDiffs.d.ts +12 -11
  300. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  301. package/dist/ssr/preloadDiffs.js +15 -8
  302. package/dist/ssr/preloadDiffs.js.map +1 -1
  303. package/dist/ssr/preloadFile.d.ts.map +1 -1
  304. package/dist/ssr/preloadFile.js +1 -2
  305. package/dist/ssr/preloadFile.js.map +1 -1
  306. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  307. package/dist/ssr/preloadPatchFile.js +2 -3
  308. package/dist/ssr/preloadPatchFile.js.map +1 -1
  309. package/dist/ssr/renderHTML.d.ts +1 -1
  310. package/dist/ssr/renderHTML.d.ts.map +1 -1
  311. package/dist/ssr/renderHTML.js +1 -2
  312. package/dist/ssr/renderHTML.js.map +1 -1
  313. package/dist/string-import.d.ts +4 -0
  314. package/dist/string-import.d.ts.map +1 -1
  315. package/dist/style.js +3 -3
  316. package/dist/style.js.map +1 -1
  317. package/dist/types.d.ts +67 -7
  318. package/dist/types.d.ts.map +1 -1
  319. package/dist/utils/areDiffLineAnnotationsEqual.d.ts.map +1 -1
  320. package/dist/utils/areDiffLineAnnotationsEqual.js +1 -1
  321. package/dist/utils/areDiffLineAnnotationsEqual.js.map +1 -1
  322. package/dist/utils/areDiffRenderOptionsEqual.d.ts.map +1 -1
  323. package/dist/utils/areDiffRenderOptionsEqual.js +1 -2
  324. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  325. package/dist/utils/areDiffTargetsEqual.d.ts.map +1 -1
  326. package/dist/utils/areDiffTargetsEqual.js +1 -1
  327. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  328. package/dist/utils/areFileRenderOptionsEqual.d.ts.map +1 -1
  329. package/dist/utils/areFileRenderOptionsEqual.js +1 -2
  330. package/dist/utils/areFileRenderOptionsEqual.js.map +1 -1
  331. package/dist/utils/areFilesEqual.d.ts.map +1 -1
  332. package/dist/utils/areFilesEqual.js +1 -1
  333. package/dist/utils/areFilesEqual.js.map +1 -1
  334. package/dist/utils/areHunkDataEqual.d.ts.map +1 -1
  335. package/dist/utils/areHunkDataEqual.js +2 -2
  336. package/dist/utils/areHunkDataEqual.js.map +1 -1
  337. package/dist/utils/areLineAnnotationsEqual.d.ts.map +1 -1
  338. package/dist/utils/areLineAnnotationsEqual.js +1 -1
  339. package/dist/utils/areLineAnnotationsEqual.js.map +1 -1
  340. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  341. package/dist/utils/areManagedSnapshotsEqual.js +1 -1
  342. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  343. package/dist/utils/areMergeConflictActionsEqual.d.ts.map +1 -1
  344. package/dist/utils/areMergeConflictActionsEqual.js +1 -1
  345. package/dist/utils/areMergeConflictActionsEqual.js.map +1 -1
  346. package/dist/utils/areObjectsEqual.d.ts.map +1 -1
  347. package/dist/utils/areObjectsEqual.js +1 -1
  348. package/dist/utils/areObjectsEqual.js.map +1 -1
  349. package/dist/utils/areOptionsEqual.d.ts +0 -2
  350. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  351. package/dist/utils/areOptionsEqual.js +1 -2
  352. package/dist/utils/areOptionsEqual.js.map +1 -1
  353. package/dist/utils/arePrePropertiesEqual.d.ts.map +1 -1
  354. package/dist/utils/arePrePropertiesEqual.js +1 -1
  355. package/dist/utils/arePrePropertiesEqual.js.map +1 -1
  356. package/dist/utils/areRenderRangesEqual.d.ts.map +1 -1
  357. package/dist/utils/areRenderRangesEqual.js +1 -1
  358. package/dist/utils/areRenderRangesEqual.js.map +1 -1
  359. package/dist/utils/areSelectionPointsEqual.d.ts.map +1 -1
  360. package/dist/utils/areSelectionPointsEqual.js +1 -1
  361. package/dist/utils/areSelectionPointsEqual.js.map +1 -1
  362. package/dist/utils/areSelectionsEqual.d.ts.map +1 -1
  363. package/dist/utils/areSelectionsEqual.js +1 -1
  364. package/dist/utils/areSelectionsEqual.js.map +1 -1
  365. package/dist/utils/areThemesEqual.d.ts.map +1 -1
  366. package/dist/utils/areThemesEqual.js +1 -1
  367. package/dist/utils/areThemesEqual.js.map +1 -1
  368. package/dist/utils/areVirtualWindowSpecsEqual.d.ts.map +1 -1
  369. package/dist/utils/areVirtualWindowSpecsEqual.js +1 -1
  370. package/dist/utils/areVirtualWindowSpecsEqual.js.map +1 -1
  371. package/dist/utils/areWorkerStatsEqual.d.ts +0 -2
  372. package/dist/utils/areWorkerStatsEqual.d.ts.map +1 -1
  373. package/dist/utils/areWorkerStatsEqual.js +1 -1
  374. package/dist/utils/areWorkerStatsEqual.js.map +1 -1
  375. package/dist/utils/awaitWithTimeout.d.ts +5 -0
  376. package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
  377. package/dist/utils/awaitWithTimeout.js +15 -0
  378. package/dist/utils/awaitWithTimeout.js.map +1 -0
  379. package/dist/utils/cleanLastNewline.d.ts.map +1 -1
  380. package/dist/utils/cleanLastNewline.js +1 -1
  381. package/dist/utils/cleanLastNewline.js.map +1 -1
  382. package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
  383. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
  384. package/dist/utils/cloneFileDiffMetadata.js +16 -0
  385. package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
  386. package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
  387. package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
  388. package/dist/utils/computeEstimatedDiffHeights.js +9 -3
  389. package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
  390. package/dist/utils/computeFileOffsets.d.ts +9 -1
  391. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  392. package/dist/utils/computeFileOffsets.js +20 -2
  393. package/dist/utils/computeFileOffsets.js.map +1 -1
  394. package/dist/utils/computeVirtualFileMetrics.d.ts.map +1 -1
  395. package/dist/utils/computeVirtualFileMetrics.js +1 -2
  396. package/dist/utils/computeVirtualFileMetrics.js.map +1 -1
  397. package/dist/utils/createAnnotationElement.d.ts +1 -1
  398. package/dist/utils/createAnnotationElement.d.ts.map +1 -1
  399. package/dist/utils/createAnnotationElement.js +1 -2
  400. package/dist/utils/createAnnotationElement.js.map +1 -1
  401. package/dist/utils/createAnnotationWrapperNode.d.ts.map +1 -1
  402. package/dist/utils/createAnnotationWrapperNode.js +1 -1
  403. package/dist/utils/createAnnotationWrapperNode.js.map +1 -1
  404. package/dist/utils/createContentColumn.d.ts +1 -1
  405. package/dist/utils/createContentColumn.d.ts.map +1 -1
  406. package/dist/utils/createContentColumn.js +1 -2
  407. package/dist/utils/createContentColumn.js.map +1 -1
  408. package/dist/utils/createEmptyRowBuffer.d.ts +1 -1
  409. package/dist/utils/createEmptyRowBuffer.d.ts.map +1 -1
  410. package/dist/utils/createEmptyRowBuffer.js +1 -2
  411. package/dist/utils/createEmptyRowBuffer.js.map +1 -1
  412. package/dist/utils/createFileHeaderElement.d.ts +1 -1
  413. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  414. package/dist/utils/createFileHeaderElement.js +6 -3
  415. package/dist/utils/createFileHeaderElement.js.map +1 -1
  416. package/dist/utils/createGutterUtilityContentNode.d.ts.map +1 -1
  417. package/dist/utils/createGutterUtilityContentNode.js +1 -1
  418. package/dist/utils/createGutterUtilityContentNode.js.map +1 -1
  419. package/dist/utils/createGutterUtilityElement.d.ts +1 -1
  420. package/dist/utils/createGutterUtilityElement.d.ts.map +1 -1
  421. package/dist/utils/createGutterUtilityElement.js +1 -2
  422. package/dist/utils/createGutterUtilityElement.js.map +1 -1
  423. package/dist/utils/createNoNewlineElement.d.ts +1 -1
  424. package/dist/utils/createNoNewlineElement.d.ts.map +1 -1
  425. package/dist/utils/createNoNewlineElement.js +1 -2
  426. package/dist/utils/createNoNewlineElement.js.map +1 -1
  427. package/dist/utils/createPreElement.d.ts +1 -1
  428. package/dist/utils/createPreElement.d.ts.map +1 -1
  429. package/dist/utils/createPreElement.js +1 -3
  430. package/dist/utils/createPreElement.js.map +1 -1
  431. package/dist/utils/createRowNodes.d.ts.map +1 -1
  432. package/dist/utils/createRowNodes.js +1 -1
  433. package/dist/utils/createRowNodes.js.map +1 -1
  434. package/dist/utils/createSeparator.d.ts +1 -1
  435. package/dist/utils/createSeparator.d.ts.map +1 -1
  436. package/dist/utils/createSeparator.js +1 -2
  437. package/dist/utils/createSeparator.js.map +1 -1
  438. package/dist/utils/createSpanNodeFromToken.d.ts.map +1 -1
  439. package/dist/utils/createSpanNodeFromToken.js +1 -2
  440. package/dist/utils/createSpanNodeFromToken.js.map +1 -1
  441. package/dist/utils/createStyleElement.d.ts +1 -1
  442. package/dist/utils/createStyleElement.d.ts.map +1 -1
  443. package/dist/utils/createStyleElement.js +1 -2
  444. package/dist/utils/createStyleElement.js.map +1 -1
  445. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  446. package/dist/utils/createTransformerWithState.js +1 -2
  447. package/dist/utils/createTransformerWithState.js.map +1 -1
  448. package/dist/utils/createUnsafeCSSStyleNode.d.ts.map +1 -1
  449. package/dist/utils/createUnsafeCSSStyleNode.js +1 -2
  450. package/dist/utils/createUnsafeCSSStyleNode.js.map +1 -1
  451. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  452. package/dist/utils/createWindowFromScrollPosition.js +5 -5
  453. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  454. package/dist/utils/cssWrappers.d.ts.map +1 -1
  455. package/dist/utils/cssWrappers.js +2 -3
  456. package/dist/utils/cssWrappers.js.map +1 -1
  457. package/dist/utils/detachString.d.ts.map +1 -1
  458. package/dist/utils/detachString.js +1 -1
  459. package/dist/utils/detachString.js.map +1 -1
  460. package/dist/utils/diffAcceptRejectHunk.d.ts.map +1 -1
  461. package/dist/utils/diffAcceptRejectHunk.js +1 -2
  462. package/dist/utils/diffAcceptRejectHunk.js.map +1 -1
  463. package/dist/utils/formatCSSVariablePrefix.d.ts.map +1 -1
  464. package/dist/utils/formatCSSVariablePrefix.js +1 -1
  465. package/dist/utils/formatCSSVariablePrefix.js.map +1 -1
  466. package/dist/utils/getDiffFileInput.d.ts +14 -0
  467. package/dist/utils/getDiffFileInput.d.ts.map +1 -0
  468. package/dist/utils/getDiffFileInput.js +24 -0
  469. package/dist/utils/getDiffFileInput.js.map +1 -0
  470. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  471. package/dist/utils/getDiffHunksRendererOptions.js +2 -1
  472. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  473. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  474. package/dist/utils/getFileRendererOptions.js +1 -1
  475. package/dist/utils/getFileRendererOptions.js.map +1 -1
  476. package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
  477. package/dist/utils/getFiletypeFromFileName.js +3 -1
  478. package/dist/utils/getFiletypeFromFileName.js.map +1 -1
  479. package/dist/utils/getHighlighterOptions.d.ts.map +1 -1
  480. package/dist/utils/getHighlighterOptions.js +1 -2
  481. package/dist/utils/getHighlighterOptions.js.map +1 -1
  482. package/dist/utils/getHighlighterThemeStyles.d.ts.map +1 -1
  483. package/dist/utils/getHighlighterThemeStyles.js +1 -2
  484. package/dist/utils/getHighlighterThemeStyles.js.map +1 -1
  485. package/dist/utils/getHunkSeparatorSlotName.d.ts.map +1 -1
  486. package/dist/utils/getHunkSeparatorSlotName.js +1 -1
  487. package/dist/utils/getHunkSeparatorSlotName.js.map +1 -1
  488. package/dist/utils/getIconForType.d.ts.map +1 -1
  489. package/dist/utils/getIconForType.js +1 -1
  490. package/dist/utils/getIconForType.js.map +1 -1
  491. package/dist/utils/getLineAnnotationName.d.ts.map +1 -1
  492. package/dist/utils/getLineAnnotationName.js +1 -1
  493. package/dist/utils/getLineAnnotationName.js.map +1 -1
  494. package/dist/utils/getLineEndingType.d.ts.map +1 -1
  495. package/dist/utils/getLineEndingType.js +1 -1
  496. package/dist/utils/getLineEndingType.js.map +1 -1
  497. package/dist/utils/getLineNodes.d.ts +1 -1
  498. package/dist/utils/getLineNodes.d.ts.map +1 -1
  499. package/dist/utils/getLineNodes.js +1 -1
  500. package/dist/utils/getLineNodes.js.map +1 -1
  501. package/dist/utils/getMergeConflictActionSlotName.d.ts.map +1 -1
  502. package/dist/utils/getMergeConflictActionSlotName.js +1 -1
  503. package/dist/utils/getMergeConflictActionSlotName.js.map +1 -1
  504. package/dist/utils/getMergeConflictLineTypes.d.ts.map +1 -1
  505. package/dist/utils/getMergeConflictLineTypes.js +1 -2
  506. package/dist/utils/getMergeConflictLineTypes.js.map +1 -1
  507. package/dist/utils/getOrCreateCodeNode.d.ts.map +1 -1
  508. package/dist/utils/getOrCreateCodeNode.js +1 -1
  509. package/dist/utils/getOrCreateCodeNode.js.map +1 -1
  510. package/dist/utils/getSingularPatch.d.ts.map +1 -1
  511. package/dist/utils/getSingularPatch.js +1 -2
  512. package/dist/utils/getSingularPatch.js.map +1 -1
  513. package/dist/utils/getThemes.d.ts.map +1 -1
  514. package/dist/utils/getThemes.js +1 -2
  515. package/dist/utils/getThemes.js.map +1 -1
  516. package/dist/utils/getTotalLineCountFromHunks.d.ts.map +1 -1
  517. package/dist/utils/getTotalLineCountFromHunks.js +1 -1
  518. package/dist/utils/getTotalLineCountFromHunks.js.map +1 -1
  519. package/dist/utils/hast_utils.d.ts +1 -1
  520. package/dist/utils/hast_utils.d.ts.map +1 -1
  521. package/dist/utils/hast_utils.js +1 -1
  522. package/dist/utils/hast_utils.js.map +1 -1
  523. package/dist/utils/hostTheme.d.ts.map +1 -1
  524. package/dist/utils/hostTheme.js +1 -2
  525. package/dist/utils/hostTheme.js.map +1 -1
  526. package/dist/utils/hydratePartialDiff.d.ts +10 -0
  527. package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
  528. package/dist/utils/hydratePartialDiff.js +140 -0
  529. package/dist/utils/hydratePartialDiff.js.map +1 -0
  530. package/dist/utils/includesFileAnnotations.d.ts.map +1 -1
  531. package/dist/utils/includesFileAnnotations.js +5 -5
  532. package/dist/utils/includesFileAnnotations.js.map +1 -1
  533. package/dist/utils/isDefaultRenderRange.d.ts.map +1 -1
  534. package/dist/utils/isDefaultRenderRange.js +1 -1
  535. package/dist/utils/isDefaultRenderRange.js.map +1 -1
  536. package/dist/utils/isDiffPlainText.d.ts.map +1 -1
  537. package/dist/utils/isDiffPlainText.js +1 -2
  538. package/dist/utils/isDiffPlainText.js.map +1 -1
  539. package/dist/utils/isFilePlainText.d.ts.map +1 -1
  540. package/dist/utils/isFilePlainText.js +1 -2
  541. package/dist/utils/isFilePlainText.js.map +1 -1
  542. package/dist/utils/isStyleNode.d.ts.map +1 -1
  543. package/dist/utils/isStyleNode.js +1 -1
  544. package/dist/utils/isStyleNode.js.map +1 -1
  545. package/dist/utils/isWorkerContext.d.ts.map +1 -1
  546. package/dist/utils/isWorkerContext.js +1 -1
  547. package/dist/utils/isWorkerContext.js.map +1 -1
  548. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  549. package/dist/utils/iterateOverDiff.js +47 -48
  550. package/dist/utils/iterateOverDiff.js.map +1 -1
  551. package/dist/utils/normalizeDiffResolution.d.ts.map +1 -1
  552. package/dist/utils/normalizeDiffResolution.js +1 -1
  553. package/dist/utils/normalizeDiffResolution.js.map +1 -1
  554. package/dist/utils/parseDiffDecorations.d.ts.map +1 -1
  555. package/dist/utils/parseDiffDecorations.js +1 -2
  556. package/dist/utils/parseDiffDecorations.js.map +1 -1
  557. package/dist/utils/parseDiffFromFile.d.ts +1 -2
  558. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  559. package/dist/utils/parseDiffFromFile.js +27 -7
  560. package/dist/utils/parseDiffFromFile.js.map +1 -1
  561. package/dist/utils/parseLineType.d.ts.map +1 -1
  562. package/dist/utils/parseLineType.js +1 -1
  563. package/dist/utils/parseLineType.js.map +1 -1
  564. package/dist/utils/parseMergeConflictDiffFromFile.d.ts.map +1 -1
  565. package/dist/utils/parseMergeConflictDiffFromFile.js +5 -5
  566. package/dist/utils/parseMergeConflictDiffFromFile.js.map +1 -1
  567. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  568. package/dist/utils/parsePatchFiles.js +6 -7
  569. package/dist/utils/parsePatchFiles.js.map +1 -1
  570. package/dist/utils/prefersReducedMotion.d.ts.map +1 -1
  571. package/dist/utils/prefersReducedMotion.js +1 -1
  572. package/dist/utils/prefersReducedMotion.js.map +1 -1
  573. package/dist/utils/prerenderHTMLIfNecessary.d.ts.map +1 -1
  574. package/dist/utils/prerenderHTMLIfNecessary.js +1 -1
  575. package/dist/utils/prerenderHTMLIfNecessary.js.map +1 -1
  576. package/dist/utils/processLine.d.ts +1 -1
  577. package/dist/utils/processLine.d.ts.map +1 -1
  578. package/dist/utils/processLine.js +1 -2
  579. package/dist/utils/processLine.js.map +1 -1
  580. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  581. package/dist/utils/renderDiffWithHighlighter.js +4 -5
  582. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  583. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  584. package/dist/utils/renderFileWithHighlighter.js +1 -2
  585. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  586. package/dist/utils/resolveConflict.d.ts.map +1 -1
  587. package/dist/utils/resolveConflict.js +1 -2
  588. package/dist/utils/resolveConflict.js.map +1 -1
  589. package/dist/utils/resolveRegion.d.ts.map +1 -1
  590. package/dist/utils/resolveRegion.js +1 -1
  591. package/dist/utils/resolveRegion.js.map +1 -1
  592. package/dist/utils/roundToDevicePixel.d.ts.map +1 -1
  593. package/dist/utils/roundToDevicePixel.js +1 -1
  594. package/dist/utils/roundToDevicePixel.js.map +1 -1
  595. package/dist/utils/scrollbarGutter.d.ts.map +1 -1
  596. package/dist/utils/scrollbarGutter.js +1 -2
  597. package/dist/utils/scrollbarGutter.js.map +1 -1
  598. package/dist/utils/setLanguageOverride.d.ts.map +1 -1
  599. package/dist/utils/setLanguageOverride.js +1 -1
  600. package/dist/utils/setLanguageOverride.js.map +1 -1
  601. package/dist/utils/setWrapperNodeProps.d.ts.map +1 -1
  602. package/dist/utils/setWrapperNodeProps.js +1 -2
  603. package/dist/utils/setWrapperNodeProps.js.map +1 -1
  604. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -1
  605. package/dist/utils/shouldUseTokenTransformer.js +1 -1
  606. package/dist/utils/shouldUseTokenTransformer.js.map +1 -1
  607. package/dist/utils/splitFileContents.d.ts.map +1 -1
  608. package/dist/utils/splitFileContents.js +1 -2
  609. package/dist/utils/splitFileContents.js.map +1 -1
  610. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  611. package/dist/utils/trimPatchContext.js +1 -2
  612. package/dist/utils/trimPatchContext.js.map +1 -1
  613. package/dist/utils/updateDiffHunks.d.ts +6 -1
  614. package/dist/utils/updateDiffHunks.d.ts.map +1 -1
  615. package/dist/utils/updateDiffHunks.js +44 -3
  616. package/dist/utils/updateDiffHunks.js.map +1 -1
  617. package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
  618. package/dist/utils/virtualDiffLayout.js +1 -2
  619. package/dist/utils/virtualDiffLayout.js.map +1 -1
  620. package/dist/utils/wrapTokenFragments.d.ts +1 -1
  621. package/dist/utils/wrapTokenFragments.d.ts.map +1 -1
  622. package/dist/utils/wrapTokenFragments.js +1 -2
  623. package/dist/utils/wrapTokenFragments.js.map +1 -1
  624. package/dist/worker/WorkerPoolManager.d.ts +7 -2
  625. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  626. package/dist/worker/WorkerPoolManager.js +83 -20
  627. package/dist/worker/WorkerPoolManager.js.map +1 -1
  628. package/dist/worker/getOrCreateWorkerPoolSingleton.d.ts.map +1 -1
  629. package/dist/worker/getOrCreateWorkerPoolSingleton.js +1 -2
  630. package/dist/worker/getOrCreateWorkerPoolSingleton.js.map +1 -1
  631. package/dist/worker/index.d.ts +2 -2
  632. package/dist/worker/index.js +1 -2
  633. package/dist/worker/types.d.ts +7 -1
  634. package/dist/worker/types.d.ts.map +1 -1
  635. package/dist/worker/wasm-B9ZqxnKj.js +8 -0
  636. package/dist/worker/wasm-B9ZqxnKj.js.map +1 -0
  637. package/dist/worker/worker-portable.js +2784 -6406
  638. package/dist/worker/worker-portable.js.map +1 -1
  639. package/dist/worker/worker.js +94 -126
  640. package/dist/worker/worker.js.map +1 -1
  641. package/package.json +13 -14
  642. package/dist/worker/wasm-qE0LgnY3.js +0 -10
  643. package/dist/worker/wasm-qE0LgnY3.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"areMergeConflictActionsEqual.d.ts","names":["MergeConflictDiffAction","areMergeConflictActionsEqual"],"sources":["../../src/utils/areMergeConflictActionsEqual.d.ts"],"sourcesContent":["import type { MergeConflictDiffAction } from './parseMergeConflictDiffFromFile';\nexport declare function areMergeConflictActionsEqual(a: MergeConflictDiffAction, b: MergeConflictDiffAction): boolean;\n//# sourceMappingURL=areMergeConflictActionsEqual.d.ts.map"],"mappings":";;;iBACwBC,4BAAAA,IAAgCD,4BAA4BA"}
1
+ {"version":3,"file":"areMergeConflictActionsEqual.d.ts","names":[],"sources":["../../src/utils/areMergeConflictActionsEqual.ts"],"mappings":";;;iBAGgB,4BAAA,CACd,CAAA,EAAG,uBAAA,EACH,CAAA,EAAG,uBAAuB"}
@@ -5,7 +5,7 @@ function areMergeConflictActionsEqual(a, b) {
5
5
  function areConflictsEqual(a, b) {
6
6
  return a.conflictIndex === b.conflictIndex && a.startLineIndex === b.startLineIndex && a.startLineNumber === b.startLineNumber && a.separatorLineIndex === b.separatorLineIndex && a.separatorLineNumber === b.separatorLineNumber && a.endLineIndex === b.endLineIndex && a.endLineNumber === b.endLineNumber && a.baseMarkerLineIndex === b.baseMarkerLineIndex && a.baseMarkerLineNumber === b.baseMarkerLineNumber;
7
7
  }
8
-
9
8
  //#endregion
10
9
  export { areMergeConflictActionsEqual };
10
+
11
11
  //# sourceMappingURL=areMergeConflictActionsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areMergeConflictActionsEqual.js","names":[],"sources":["../../src/utils/areMergeConflictActionsEqual.ts"],"sourcesContent":["import type { MergeConflictRegion } from '../types';\nimport type { MergeConflictDiffAction } from './parseMergeConflictDiffFromFile';\n\nexport function areMergeConflictActionsEqual(\n a: MergeConflictDiffAction,\n b: MergeConflictDiffAction\n): boolean {\n return (\n a.hunkIndex === b.hunkIndex &&\n a.startContentIndex === b.startContentIndex &&\n a.endContentIndex === b.endContentIndex &&\n a.currentContentIndex === b.currentContentIndex &&\n a.baseContentIndex === b.baseContentIndex &&\n a.incomingContentIndex === b.incomingContentIndex &&\n a.endMarkerContentIndex === b.endMarkerContentIndex &&\n a.conflictIndex === b.conflictIndex &&\n areConflictsEqual(a.conflict, b.conflict)\n );\n}\n\nfunction areConflictsEqual(a: MergeConflictRegion, b: MergeConflictRegion) {\n return (\n a.conflictIndex === b.conflictIndex &&\n a.startLineIndex === b.startLineIndex &&\n a.startLineNumber === b.startLineNumber &&\n a.separatorLineIndex === b.separatorLineIndex &&\n a.separatorLineNumber === b.separatorLineNumber &&\n a.endLineIndex === b.endLineIndex &&\n a.endLineNumber === b.endLineNumber &&\n a.baseMarkerLineIndex === b.baseMarkerLineIndex &&\n a.baseMarkerLineNumber === b.baseMarkerLineNumber\n );\n}\n"],"mappings":";AAGA,SAAgB,6BACd,GACA,GACS;AACT,QACE,EAAE,cAAc,EAAE,aAClB,EAAE,sBAAsB,EAAE,qBAC1B,EAAE,oBAAoB,EAAE,mBACxB,EAAE,wBAAwB,EAAE,uBAC5B,EAAE,qBAAqB,EAAE,oBACzB,EAAE,yBAAyB,EAAE,wBAC7B,EAAE,0BAA0B,EAAE,yBAC9B,EAAE,kBAAkB,EAAE,iBACtB,kBAAkB,EAAE,UAAU,EAAE,SAAS;;AAI7C,SAAS,kBAAkB,GAAwB,GAAwB;AACzE,QACE,EAAE,kBAAkB,EAAE,iBACtB,EAAE,mBAAmB,EAAE,kBACvB,EAAE,oBAAoB,EAAE,mBACxB,EAAE,uBAAuB,EAAE,sBAC3B,EAAE,wBAAwB,EAAE,uBAC5B,EAAE,iBAAiB,EAAE,gBACrB,EAAE,kBAAkB,EAAE,iBACtB,EAAE,wBAAwB,EAAE,uBAC5B,EAAE,yBAAyB,EAAE"}
1
+ {"version":3,"file":"areMergeConflictActionsEqual.js","names":[],"sources":["../../src/utils/areMergeConflictActionsEqual.ts"],"sourcesContent":["import type { MergeConflictRegion } from '../types';\nimport type { MergeConflictDiffAction } from './parseMergeConflictDiffFromFile';\n\nexport function areMergeConflictActionsEqual(\n a: MergeConflictDiffAction,\n b: MergeConflictDiffAction\n): boolean {\n return (\n a.hunkIndex === b.hunkIndex &&\n a.startContentIndex === b.startContentIndex &&\n a.endContentIndex === b.endContentIndex &&\n a.currentContentIndex === b.currentContentIndex &&\n a.baseContentIndex === b.baseContentIndex &&\n a.incomingContentIndex === b.incomingContentIndex &&\n a.endMarkerContentIndex === b.endMarkerContentIndex &&\n a.conflictIndex === b.conflictIndex &&\n areConflictsEqual(a.conflict, b.conflict)\n );\n}\n\nfunction areConflictsEqual(a: MergeConflictRegion, b: MergeConflictRegion) {\n return (\n a.conflictIndex === b.conflictIndex &&\n a.startLineIndex === b.startLineIndex &&\n a.startLineNumber === b.startLineNumber &&\n a.separatorLineIndex === b.separatorLineIndex &&\n a.separatorLineNumber === b.separatorLineNumber &&\n a.endLineIndex === b.endLineIndex &&\n a.endLineNumber === b.endLineNumber &&\n a.baseMarkerLineIndex === b.baseMarkerLineIndex &&\n a.baseMarkerLineNumber === b.baseMarkerLineNumber\n );\n}\n"],"mappings":";AAGA,SAAgB,6BACd,GACA,GACS;CACT,OACE,EAAE,cAAc,EAAE,aAClB,EAAE,sBAAsB,EAAE,qBAC1B,EAAE,oBAAoB,EAAE,mBACxB,EAAE,wBAAwB,EAAE,uBAC5B,EAAE,qBAAqB,EAAE,oBACzB,EAAE,yBAAyB,EAAE,wBAC7B,EAAE,0BAA0B,EAAE,yBAC9B,EAAE,kBAAkB,EAAE,iBACtB,kBAAkB,EAAE,UAAU,EAAE,QAAQ;AAE5C;AAEA,SAAS,kBAAkB,GAAwB,GAAwB;CACzE,OACE,EAAE,kBAAkB,EAAE,iBACtB,EAAE,mBAAmB,EAAE,kBACvB,EAAE,oBAAoB,EAAE,mBACxB,EAAE,uBAAuB,EAAE,sBAC3B,EAAE,wBAAwB,EAAE,uBAC5B,EAAE,iBAAiB,EAAE,gBACrB,EAAE,kBAAkB,EAAE,iBACtB,EAAE,wBAAwB,EAAE,uBAC5B,EAAE,yBAAyB,EAAE;AAEjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"areObjectsEqual.d.ts","names":["areObjectsEqual","T"],"sources":["../../src/utils/areObjectsEqual.d.ts"],"sourcesContent":["export declare function areObjectsEqual<T extends object>(objA: T | undefined, objB: T | undefined, omitKeys?: (keyof T)[]): boolean;\n//# sourceMappingURL=areObjectsEqual.d.ts.map"],"mappings":";iBAAwBA,wCAAwCC,qBAAqBA,iCAAiCA"}
1
+ {"version":3,"file":"areObjectsEqual.d.ts","names":[],"sources":["../../src/utils/areObjectsEqual.ts"],"mappings":";iBAAgB,eAAA,mBACd,IAAA,EAAM,CAAA,cACN,IAAA,EAAM,CAAA,cACN,QAAA,UAAkB,CAAA"}
@@ -12,7 +12,7 @@ function areObjectsEqual(objA, objB, omitKeys) {
12
12
  for (const key of Array.from(keysBSet)) if (!omitSet.has(key)) return false;
13
13
  return true;
14
14
  }
15
-
16
15
  //#endregion
17
16
  export { areObjectsEqual };
17
+
18
18
  //# sourceMappingURL=areObjectsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areObjectsEqual.js","names":[],"sources":["../../src/utils/areObjectsEqual.ts"],"sourcesContent":["export function areObjectsEqual<T extends object>(\n objA: T | undefined,\n objB: T | undefined,\n omitKeys?: (keyof T)[]\n): boolean {\n // Lets get out of here early if they are the same or either is undefined\n if (objA === objB || objA == null || objB == null) {\n return objA === objB;\n }\n\n // Convert array to Set for O(1) lookup\n const omitSet = new Set(omitKeys);\n const keysA = Object.keys(objA) as (keyof T)[];\n const keysBSet = new Set(Object.keys(objB) as (keyof T)[]);\n\n // Compare keys from objA\n for (const key of keysA) {\n keysBSet.delete(key);\n if (omitSet.has(key)) {\n continue;\n }\n\n if (!(key in objB) || objA[key] !== objB[key]) {\n return false;\n }\n }\n\n // If we got any remaining keys that aren't omitted in objB,\n // then we gotta return false\n for (const key of Array.from(keysBSet)) {\n if (!omitSet.has(key)) {\n return false;\n }\n }\n\n return true;\n}\n"],"mappings":";AAAA,SAAgB,gBACd,MACA,MACA,UACS;AAET,KAAI,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,KAC3C,QAAO,SAAS;CAIlB,MAAM,UAAU,IAAI,IAAI,SAAS;CACjC,MAAM,QAAQ,OAAO,KAAK,KAAK;CAC/B,MAAM,WAAW,IAAI,IAAI,OAAO,KAAK,KAAK,CAAgB;AAG1D,MAAK,MAAM,OAAO,OAAO;AACvB,WAAS,OAAO,IAAI;AACpB,MAAI,QAAQ,IAAI,IAAI,CAClB;AAGF,MAAI,EAAE,OAAO,SAAS,KAAK,SAAS,KAAK,KACvC,QAAO;;AAMX,MAAK,MAAM,OAAO,MAAM,KAAK,SAAS,CACpC,KAAI,CAAC,QAAQ,IAAI,IAAI,CACnB,QAAO;AAIX,QAAO"}
1
+ {"version":3,"file":"areObjectsEqual.js","names":[],"sources":["../../src/utils/areObjectsEqual.ts"],"sourcesContent":["export function areObjectsEqual<T extends object>(\n objA: T | undefined,\n objB: T | undefined,\n omitKeys?: (keyof T)[]\n): boolean {\n // Lets get out of here early if they are the same or either is undefined\n if (objA === objB || objA == null || objB == null) {\n return objA === objB;\n }\n\n // Convert array to Set for O(1) lookup\n const omitSet = new Set(omitKeys);\n const keysA = Object.keys(objA) as (keyof T)[];\n const keysBSet = new Set(Object.keys(objB) as (keyof T)[]);\n\n // Compare keys from objA\n for (const key of keysA) {\n keysBSet.delete(key);\n if (omitSet.has(key)) {\n continue;\n }\n\n if (!(key in objB) || objA[key] !== objB[key]) {\n return false;\n }\n }\n\n // If we got any remaining keys that aren't omitted in objB,\n // then we gotta return false\n for (const key of Array.from(keysBSet)) {\n if (!omitSet.has(key)) {\n return false;\n }\n }\n\n return true;\n}\n"],"mappings":";AAAA,SAAgB,gBACd,MACA,MACA,UACS;CAET,IAAI,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,MAC3C,OAAO,SAAS;CAIlB,MAAM,UAAU,IAAI,IAAI,QAAQ;CAChC,MAAM,QAAQ,OAAO,KAAK,IAAI;CAC9B,MAAM,WAAW,IAAI,IAAI,OAAO,KAAK,IAAI,CAAgB;CAGzD,KAAK,MAAM,OAAO,OAAO;EACvB,SAAS,OAAO,GAAG;EACnB,IAAI,QAAQ,IAAI,GAAG,GACjB;EAGF,IAAI,EAAE,OAAO,SAAS,KAAK,SAAS,KAAK,MACvC,OAAO;CAEX;CAIA,KAAK,MAAM,OAAO,MAAM,KAAK,QAAQ,GACnC,IAAI,CAAC,QAAQ,IAAI,GAAG,GAClB,OAAO;CAIX,OAAO;AACT"}
@@ -1,8 +1,6 @@
1
1
  import { FileOptions } from "../components/File.js";
2
- import "../react/index.js";
3
2
  import { FileDiffOptions } from "../components/FileDiff.js";
4
3
  import { CodeViewOptions } from "../components/CodeView.js";
5
-
6
4
  //#region src/utils/areOptionsEqual.d.ts
7
5
  type AnyOptions<L> = CodeViewOptions<L> | FileOptions<L> | FileDiffOptions<L> | undefined;
8
6
  declare function areOptionsEqual<LAnnotation>(optionsA: AnyOptions<LAnnotation>, optionsB: AnyOptions<LAnnotation>): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"areOptionsEqual.d.ts","names":["CodeViewOptions","FileDiffOptions","FileOptions","AnyOptions","L","areOptionsEqual","LAnnotation"],"sources":["../../src/utils/areOptionsEqual.d.ts"],"sourcesContent":["import type { CodeViewOptions } from '../components/CodeView';\nimport type { FileDiffOptions } from '../components/FileDiff';\nimport type { FileOptions } from '../react';\ntype AnyOptions<L> = CodeViewOptions<L> | FileOptions<L> | FileDiffOptions<L> | undefined;\nexport declare function areOptionsEqual<LAnnotation>(optionsA: AnyOptions<LAnnotation>, optionsB: AnyOptions<LAnnotation>): boolean;\nexport {};\n//# sourceMappingURL=areOptionsEqual.d.ts.map"],"mappings":";;;;;;KAGKG,gBAAgBH,gBAAgBI,KAAKF,YAAYE,KAAKH,gBAAgBG;iBACnDC,uCAAuCF,WAAWG,wBAAwBH,WAAWG"}
1
+ {"version":3,"file":"areOptionsEqual.d.ts","names":[],"sources":["../../src/utils/areOptionsEqual.ts"],"mappings":";;;;KASK,UAAA,MACD,eAAA,CAAgB,CAAA,IAChB,WAAA,CAAY,CAAA,IACZ,eAAA,CAAgB,CAAA;AAAA,iBAGJ,eAAA,cACd,QAAA,EAAU,UAAA,CAAW,WAAA,GACrB,QAAA,EAAU,UAAA,CAAW,WAAA"}
@@ -1,7 +1,6 @@
1
1
  import { DEFAULT_THEMES } from "../constants.js";
2
2
  import { areObjectsEqual } from "./areObjectsEqual.js";
3
3
  import { areThemesEqual } from "./areThemesEqual.js";
4
-
5
4
  //#region src/utils/areOptionsEqual.ts
6
5
  function areOptionsEqual(optionsA, optionsB) {
7
6
  const themeA = optionsA?.theme ?? DEFAULT_THEMES;
@@ -13,7 +12,7 @@ function areOptionsEqual(optionsA, optionsB) {
13
12
  function getParseDiffOptions(options) {
14
13
  if (options != null && "parseDiffOptions" in options) return options.parseDiffOptions;
15
14
  }
16
-
17
15
  //#endregion
18
16
  export { areOptionsEqual };
17
+
19
18
  //# sourceMappingURL=areOptionsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areOptionsEqual.js","names":[],"sources":["../../src/utils/areOptionsEqual.ts"],"sourcesContent":["import type { CreatePatchOptionsNonabortable } from 'diff';\n\nimport type { CodeViewOptions } from '../components/CodeView';\nimport type { FileDiffOptions } from '../components/FileDiff';\nimport { DEFAULT_THEMES } from '../constants';\nimport type { FileOptions } from '../react';\nimport { areObjectsEqual } from './areObjectsEqual';\nimport { areThemesEqual } from './areThemesEqual';\n\ntype AnyOptions<L> =\n | CodeViewOptions<L>\n | FileOptions<L>\n | FileDiffOptions<L>\n | undefined;\n\nexport function areOptionsEqual<LAnnotation>(\n optionsA: AnyOptions<LAnnotation>,\n optionsB: AnyOptions<LAnnotation>\n): boolean {\n const themeA = optionsA?.theme ?? DEFAULT_THEMES;\n const themeB = optionsB?.theme ?? DEFAULT_THEMES;\n const diffOptsA = getParseDiffOptions(optionsA);\n const diffOptsB = getParseDiffOptions(optionsB);\n return (\n areThemesEqual(themeA, themeB) &&\n areObjectsEqual(optionsA, optionsB, [\n 'theme',\n 'parseDiffOptions' as keyof typeof optionsA,\n ]) &&\n areObjectsEqual(diffOptsA, diffOptsB)\n );\n}\n\nfunction getParseDiffOptions<L>(\n options: AnyOptions<L>\n): CreatePatchOptionsNonabortable | undefined {\n if (options != null && 'parseDiffOptions' in options) {\n return options.parseDiffOptions;\n }\n return undefined;\n}\n"],"mappings":";;;;;AAeA,SAAgB,gBACd,UACA,UACS;CACT,MAAM,SAAS,UAAU,SAAS;CAClC,MAAM,SAAS,UAAU,SAAS;CAClC,MAAM,YAAY,oBAAoB,SAAS;CAC/C,MAAM,YAAY,oBAAoB,SAAS;AAC/C,QACE,eAAe,QAAQ,OAAO,IAC9B,gBAAgB,UAAU,UAAU,CAClC,SACA,mBACD,CAAC,IACF,gBAAgB,WAAW,UAAU;;AAIzC,SAAS,oBACP,SAC4C;AAC5C,KAAI,WAAW,QAAQ,sBAAsB,QAC3C,QAAO,QAAQ"}
1
+ {"version":3,"file":"areOptionsEqual.js","names":[],"sources":["../../src/utils/areOptionsEqual.ts"],"sourcesContent":["import type { CreatePatchOptionsNonabortable } from 'diff';\n\nimport type { CodeViewOptions } from '../components/CodeView';\nimport type { FileDiffOptions } from '../components/FileDiff';\nimport { DEFAULT_THEMES } from '../constants';\nimport type { FileOptions } from '../react';\nimport { areObjectsEqual } from './areObjectsEqual';\nimport { areThemesEqual } from './areThemesEqual';\n\ntype AnyOptions<L> =\n | CodeViewOptions<L>\n | FileOptions<L>\n | FileDiffOptions<L>\n | undefined;\n\nexport function areOptionsEqual<LAnnotation>(\n optionsA: AnyOptions<LAnnotation>,\n optionsB: AnyOptions<LAnnotation>\n): boolean {\n const themeA = optionsA?.theme ?? DEFAULT_THEMES;\n const themeB = optionsB?.theme ?? DEFAULT_THEMES;\n const diffOptsA = getParseDiffOptions(optionsA);\n const diffOptsB = getParseDiffOptions(optionsB);\n return (\n areThemesEqual(themeA, themeB) &&\n areObjectsEqual(optionsA, optionsB, [\n 'theme',\n 'parseDiffOptions' as keyof typeof optionsA,\n ]) &&\n areObjectsEqual(diffOptsA, diffOptsB)\n );\n}\n\nfunction getParseDiffOptions<L>(\n options: AnyOptions<L>\n): CreatePatchOptionsNonabortable | undefined {\n if (options != null && 'parseDiffOptions' in options) {\n return options.parseDiffOptions;\n }\n return undefined;\n}\n"],"mappings":";;;;AAeA,SAAgB,gBACd,UACA,UACS;CACT,MAAM,SAAS,UAAU,SAAS;CAClC,MAAM,SAAS,UAAU,SAAS;CAClC,MAAM,YAAY,oBAAoB,QAAQ;CAC9C,MAAM,YAAY,oBAAoB,QAAQ;CAC9C,OACE,eAAe,QAAQ,MAAM,KAC7B,gBAAgB,UAAU,UAAU,CAClC,SACA,kBACF,CAAC,KACD,gBAAgB,WAAW,SAAS;AAExC;AAEA,SAAS,oBACP,SAC4C;CAC5C,IAAI,WAAW,QAAQ,sBAAsB,SAC3C,OAAO,QAAQ;AAGnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"arePrePropertiesEqual.d.ts","names":["PrePropertiesConfig","arePrePropertiesEqual"],"sources":["../../src/utils/arePrePropertiesEqual.d.ts"],"sourcesContent":["import type { PrePropertiesConfig } from '../types';\nexport declare function arePrePropertiesEqual(propsA: PrePropertiesConfig | undefined, propsB: PrePropertiesConfig | undefined): boolean;\n//# sourceMappingURL=arePrePropertiesEqual.d.ts.map"],"mappings":";;;iBACwBC,qBAAAA,SAA8BD,yCAAyCA"}
1
+ {"version":3,"file":"arePrePropertiesEqual.d.ts","names":[],"sources":["../../src/utils/arePrePropertiesEqual.ts"],"mappings":";;;iBAEgB,qBAAA,CACd,MAAA,EAAQ,mBAAA,cACR,MAAA,EAAQ,mBAAmB"}
@@ -12,7 +12,7 @@ function areCustomPropertiesEqual(customPropertiesA = EMPTY_CUSTOM_PROPERTIES, c
12
12
  for (const key of keysA) if (customPropertiesA[key] !== customPropertiesB[key]) return false;
13
13
  return true;
14
14
  }
15
-
16
15
  //#endregion
17
16
  export { arePrePropertiesEqual };
17
+
18
18
  //# sourceMappingURL=arePrePropertiesEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arePrePropertiesEqual.js","names":["EMPTY_CUSTOM_PROPERTIES: CustomPreProperties"],"sources":["../../src/utils/arePrePropertiesEqual.ts"],"sourcesContent":["import type { CustomPreProperties, PrePropertiesConfig } from '../types';\n\nexport function arePrePropertiesEqual(\n propsA: PrePropertiesConfig | undefined,\n propsB: PrePropertiesConfig | undefined\n): boolean {\n if (propsA == null || propsB == null) {\n return propsA === propsB;\n }\n return (\n areCustomPropertiesEqual(\n propsA.customProperties,\n propsB.customProperties\n ) &&\n propsA.type === propsB.type &&\n propsA.diffIndicators === propsB.diffIndicators &&\n propsA.disableBackground === propsB.disableBackground &&\n propsA.disableLineNumbers === propsB.disableLineNumbers &&\n propsA.overflow === propsB.overflow &&\n propsA.split === propsB.split &&\n propsA.totalLines === propsB.totalLines\n );\n}\n\nconst EMPTY_CUSTOM_PROPERTIES: CustomPreProperties = {};\n\nfunction areCustomPropertiesEqual(\n customPropertiesA: CustomPreProperties = EMPTY_CUSTOM_PROPERTIES,\n customPropertiesB: CustomPreProperties = EMPTY_CUSTOM_PROPERTIES\n): boolean {\n if (customPropertiesA === customPropertiesB) {\n return true;\n }\n const keysA = Object.keys(customPropertiesA);\n const keysB = Object.keys(customPropertiesB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (const key of keysA) {\n if (customPropertiesA[key] !== customPropertiesB[key]) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":";AAEA,SAAgB,sBACd,QACA,QACS;AACT,KAAI,UAAU,QAAQ,UAAU,KAC9B,QAAO,WAAW;AAEpB,QACE,yBACE,OAAO,kBACP,OAAO,iBACR,IACD,OAAO,SAAS,OAAO,QACvB,OAAO,mBAAmB,OAAO,kBACjC,OAAO,sBAAsB,OAAO,qBACpC,OAAO,uBAAuB,OAAO,sBACrC,OAAO,aAAa,OAAO,YAC3B,OAAO,UAAU,OAAO,SACxB,OAAO,eAAe,OAAO;;AAIjC,MAAMA,0BAA+C,EAAE;AAEvD,SAAS,yBACP,oBAAyC,yBACzC,oBAAyC,yBAChC;AACT,KAAI,sBAAsB,kBACxB,QAAO;CAET,MAAM,QAAQ,OAAO,KAAK,kBAAkB;CAC5C,MAAM,QAAQ,OAAO,KAAK,kBAAkB;AAC5C,KAAI,MAAM,WAAW,MAAM,OACzB,QAAO;AAET,MAAK,MAAM,OAAO,MAChB,KAAI,kBAAkB,SAAS,kBAAkB,KAC/C,QAAO;AAGX,QAAO"}
1
+ {"version":3,"file":"arePrePropertiesEqual.js","names":[],"sources":["../../src/utils/arePrePropertiesEqual.ts"],"sourcesContent":["import type { CustomPreProperties, PrePropertiesConfig } from '../types';\n\nexport function arePrePropertiesEqual(\n propsA: PrePropertiesConfig | undefined,\n propsB: PrePropertiesConfig | undefined\n): boolean {\n if (propsA == null || propsB == null) {\n return propsA === propsB;\n }\n return (\n areCustomPropertiesEqual(\n propsA.customProperties,\n propsB.customProperties\n ) &&\n propsA.type === propsB.type &&\n propsA.diffIndicators === propsB.diffIndicators &&\n propsA.disableBackground === propsB.disableBackground &&\n propsA.disableLineNumbers === propsB.disableLineNumbers &&\n propsA.overflow === propsB.overflow &&\n propsA.split === propsB.split &&\n propsA.totalLines === propsB.totalLines\n );\n}\n\nconst EMPTY_CUSTOM_PROPERTIES: CustomPreProperties = {};\n\nfunction areCustomPropertiesEqual(\n customPropertiesA: CustomPreProperties = EMPTY_CUSTOM_PROPERTIES,\n customPropertiesB: CustomPreProperties = EMPTY_CUSTOM_PROPERTIES\n): boolean {\n if (customPropertiesA === customPropertiesB) {\n return true;\n }\n const keysA = Object.keys(customPropertiesA);\n const keysB = Object.keys(customPropertiesB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n for (const key of keysA) {\n if (customPropertiesA[key] !== customPropertiesB[key]) {\n return false;\n }\n }\n return true;\n}\n"],"mappings":";AAEA,SAAgB,sBACd,QACA,QACS;CACT,IAAI,UAAU,QAAQ,UAAU,MAC9B,OAAO,WAAW;CAEpB,OACE,yBACE,OAAO,kBACP,OAAO,gBACT,KACA,OAAO,SAAS,OAAO,QACvB,OAAO,mBAAmB,OAAO,kBACjC,OAAO,sBAAsB,OAAO,qBACpC,OAAO,uBAAuB,OAAO,sBACrC,OAAO,aAAa,OAAO,YAC3B,OAAO,UAAU,OAAO,SACxB,OAAO,eAAe,OAAO;AAEjC;AAEA,MAAM,0BAA+C,CAAC;AAEtD,SAAS,yBACP,oBAAyC,yBACzC,oBAAyC,yBAChC;CACT,IAAI,sBAAsB,mBACxB,OAAO;CAET,MAAM,QAAQ,OAAO,KAAK,iBAAiB;CAC3C,MAAM,QAAQ,OAAO,KAAK,iBAAiB;CAC3C,IAAI,MAAM,WAAW,MAAM,QACzB,OAAO;CAET,KAAK,MAAM,OAAO,OAChB,IAAI,kBAAkB,SAAS,kBAAkB,MAC/C,OAAO;CAGX,OAAO;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"areRenderRangesEqual.d.ts","names":["RenderRange","areRenderRangesEqual"],"sources":["../../src/utils/areRenderRangesEqual.d.ts"],"sourcesContent":["import type { RenderRange } from '../types';\nexport declare function areRenderRangesEqual(renderRangeA: RenderRange | undefined, renderRangeB: RenderRange | undefined): boolean;\n//# sourceMappingURL=areRenderRangesEqual.d.ts.map"],"mappings":";;;iBACwBC,oBAAAA,eAAmCD,uCAAuCA"}
1
+ {"version":3,"file":"areRenderRangesEqual.d.ts","names":[],"sources":["../../src/utils/areRenderRangesEqual.ts"],"mappings":";;;iBAEgB,oBAAA,CACd,YAAA,EAAc,WAAA,cACd,YAAA,EAAc,WAAW"}
@@ -3,7 +3,7 @@ function areRenderRangesEqual(renderRangeA, renderRangeB) {
3
3
  if (renderRangeA == null || renderRangeB == null) return renderRangeA === renderRangeB;
4
4
  return renderRangeA.startingLine === renderRangeB.startingLine && renderRangeA.totalLines === renderRangeB.totalLines && renderRangeA.bufferBefore === renderRangeB.bufferBefore && renderRangeA.bufferAfter === renderRangeB.bufferAfter;
5
5
  }
6
-
7
6
  //#endregion
8
7
  export { areRenderRangesEqual };
8
+
9
9
  //# sourceMappingURL=areRenderRangesEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areRenderRangesEqual.js","names":[],"sources":["../../src/utils/areRenderRangesEqual.ts"],"sourcesContent":["import type { RenderRange } from '../types';\n\nexport function areRenderRangesEqual(\n renderRangeA: RenderRange | undefined,\n renderRangeB: RenderRange | undefined\n): boolean {\n if (renderRangeA == null || renderRangeB == null) {\n return renderRangeA === renderRangeB;\n }\n return (\n renderRangeA.startingLine === renderRangeB.startingLine &&\n renderRangeA.totalLines === renderRangeB.totalLines &&\n renderRangeA.bufferBefore === renderRangeB.bufferBefore &&\n renderRangeA.bufferAfter === renderRangeB.bufferAfter\n );\n}\n"],"mappings":";AAEA,SAAgB,qBACd,cACA,cACS;AACT,KAAI,gBAAgB,QAAQ,gBAAgB,KAC1C,QAAO,iBAAiB;AAE1B,QACE,aAAa,iBAAiB,aAAa,gBAC3C,aAAa,eAAe,aAAa,cACzC,aAAa,iBAAiB,aAAa,gBAC3C,aAAa,gBAAgB,aAAa"}
1
+ {"version":3,"file":"areRenderRangesEqual.js","names":[],"sources":["../../src/utils/areRenderRangesEqual.ts"],"sourcesContent":["import type { RenderRange } from '../types';\n\nexport function areRenderRangesEqual(\n renderRangeA: RenderRange | undefined,\n renderRangeB: RenderRange | undefined\n): boolean {\n if (renderRangeA == null || renderRangeB == null) {\n return renderRangeA === renderRangeB;\n }\n return (\n renderRangeA.startingLine === renderRangeB.startingLine &&\n renderRangeA.totalLines === renderRangeB.totalLines &&\n renderRangeA.bufferBefore === renderRangeB.bufferBefore &&\n renderRangeA.bufferAfter === renderRangeB.bufferAfter\n );\n}\n"],"mappings":";AAEA,SAAgB,qBACd,cACA,cACS;CACT,IAAI,gBAAgB,QAAQ,gBAAgB,MAC1C,OAAO,iBAAiB;CAE1B,OACE,aAAa,iBAAiB,aAAa,gBAC3C,aAAa,eAAe,aAAa,cACzC,aAAa,iBAAiB,aAAa,gBAC3C,aAAa,gBAAgB,aAAa;AAE9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"areSelectionPointsEqual.d.ts","names":["SelectionPoint","areSelectionPointsEqual"],"sources":["../../src/utils/areSelectionPointsEqual.d.ts"],"sourcesContent":["import type { SelectionPoint } from '../types';\nexport declare function areSelectionPointsEqual(a: SelectionPoint, b: SelectionPoint): boolean;\n//# sourceMappingURL=areSelectionPointsEqual.d.ts.map"],"mappings":";;;iBACwBC,uBAAAA,IAA2BD,mBAAmBA"}
1
+ {"version":3,"file":"areSelectionPointsEqual.d.ts","names":[],"sources":["../../src/utils/areSelectionPointsEqual.ts"],"mappings":";;;iBAEgB,uBAAA,CACd,CAAA,EAAG,cAAA,EACH,CAAA,EAAG,cAAc"}
@@ -2,7 +2,7 @@
2
2
  function areSelectionPointsEqual(a, b) {
3
3
  return a.lineNumber === b.lineNumber && a.side === b.side;
4
4
  }
5
-
6
5
  //#endregion
7
6
  export { areSelectionPointsEqual };
7
+
8
8
  //# sourceMappingURL=areSelectionPointsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areSelectionPointsEqual.js","names":[],"sources":["../../src/utils/areSelectionPointsEqual.ts"],"sourcesContent":["import type { SelectionPoint } from '../types';\n\nexport function areSelectionPointsEqual(\n a: SelectionPoint,\n b: SelectionPoint\n): boolean {\n return a.lineNumber === b.lineNumber && a.side === b.side;\n}\n"],"mappings":";AAEA,SAAgB,wBACd,GACA,GACS;AACT,QAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE"}
1
+ {"version":3,"file":"areSelectionPointsEqual.js","names":[],"sources":["../../src/utils/areSelectionPointsEqual.ts"],"sourcesContent":["import type { SelectionPoint } from '../types';\n\nexport function areSelectionPointsEqual(\n a: SelectionPoint,\n b: SelectionPoint\n): boolean {\n return a.lineNumber === b.lineNumber && a.side === b.side;\n}\n"],"mappings":";AAEA,SAAgB,wBACd,GACA,GACS;CACT,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE;AACvD"}
@@ -1 +1 @@
1
- {"version":3,"file":"areSelectionsEqual.d.ts","names":["SelectedLineRange","areSelectionsEqual"],"sources":["../../src/utils/areSelectionsEqual.d.ts"],"sourcesContent":["import type { SelectedLineRange } from '../types';\nexport declare function areSelectionsEqual(selectionA: SelectedLineRange | undefined, selectionB: SelectedLineRange | undefined): boolean;\n//# sourceMappingURL=areSelectionsEqual.d.ts.map"],"mappings":";;;iBACwBC,kBAAAA,aAA+BD,2CAA2CA"}
1
+ {"version":3,"file":"areSelectionsEqual.d.ts","names":[],"sources":["../../src/utils/areSelectionsEqual.ts"],"mappings":";;;iBAEgB,kBAAA,CACd,UAAA,EAAY,iBAAA,cACZ,UAAA,EAAY,iBAAiB"}
@@ -2,7 +2,7 @@
2
2
  function areSelectionsEqual(selectionA, selectionB) {
3
3
  return selectionA?.start === selectionB?.start && selectionA?.end === selectionB?.end && selectionA?.side === selectionB?.side && selectionA?.endSide === selectionB?.endSide;
4
4
  }
5
-
6
5
  //#endregion
7
6
  export { areSelectionsEqual };
7
+
8
8
  //# sourceMappingURL=areSelectionsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areSelectionsEqual.js","names":[],"sources":["../../src/utils/areSelectionsEqual.ts"],"sourcesContent":["import type { SelectedLineRange } from '../types';\n\nexport function areSelectionsEqual(\n selectionA: SelectedLineRange | undefined,\n selectionB: SelectedLineRange | undefined\n): boolean {\n return (\n selectionA?.start === selectionB?.start &&\n selectionA?.end === selectionB?.end &&\n selectionA?.side === selectionB?.side &&\n selectionA?.endSide === selectionB?.endSide\n );\n}\n"],"mappings":";AAEA,SAAgB,mBACd,YACA,YACS;AACT,QACE,YAAY,UAAU,YAAY,SAClC,YAAY,QAAQ,YAAY,OAChC,YAAY,SAAS,YAAY,QACjC,YAAY,YAAY,YAAY"}
1
+ {"version":3,"file":"areSelectionsEqual.js","names":[],"sources":["../../src/utils/areSelectionsEqual.ts"],"sourcesContent":["import type { SelectedLineRange } from '../types';\n\nexport function areSelectionsEqual(\n selectionA: SelectedLineRange | undefined,\n selectionB: SelectedLineRange | undefined\n): boolean {\n return (\n selectionA?.start === selectionB?.start &&\n selectionA?.end === selectionB?.end &&\n selectionA?.side === selectionB?.side &&\n selectionA?.endSide === selectionB?.endSide\n );\n}\n"],"mappings":";AAEA,SAAgB,mBACd,YACA,YACS;CACT,OACE,YAAY,UAAU,YAAY,SAClC,YAAY,QAAQ,YAAY,OAChC,YAAY,SAAS,YAAY,QACjC,YAAY,YAAY,YAAY;AAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"areThemesEqual.d.ts","names":["DiffsThemeNames","ThemesType","areThemesEqual"],"sources":["../../src/utils/areThemesEqual.d.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemesType } from '../types';\nexport declare function areThemesEqual(themeA: DiffsThemeNames | ThemesType | undefined, themeB: DiffsThemeNames | ThemesType | undefined): boolean;\n//# sourceMappingURL=areThemesEqual.d.ts.map"],"mappings":";;;iBACwBE,cAAAA,SAAuBF,kBAAkBC,gCAAgCD,kBAAkBC"}
1
+ {"version":3,"file":"areThemesEqual.d.ts","names":[],"sources":["../../src/utils/areThemesEqual.ts"],"mappings":";;;iBAEgB,cAAA,CACd,MAAA,EAAQ,eAAA,GAAkB,UAAA,cAC1B,MAAA,EAAQ,eAAA,GAAkB,UAAA"}
@@ -3,7 +3,7 @@ function areThemesEqual(themeA, themeB) {
3
3
  if (themeA == null || themeB == null || typeof themeA === "string" || typeof themeB === "string") return themeA === themeB;
4
4
  return themeA.dark === themeB.dark && themeA.light === themeB.light;
5
5
  }
6
-
7
6
  //#endregion
8
7
  export { areThemesEqual };
8
+
9
9
  //# sourceMappingURL=areThemesEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areThemesEqual.js","names":[],"sources":["../../src/utils/areThemesEqual.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemesType } from '../types';\n\nexport function areThemesEqual(\n themeA: DiffsThemeNames | ThemesType | undefined,\n themeB: DiffsThemeNames | ThemesType | undefined\n): boolean {\n if (\n themeA == null ||\n themeB == null ||\n typeof themeA === 'string' ||\n typeof themeB === 'string'\n ) {\n return themeA === themeB;\n }\n return themeA.dark === themeB.dark && themeA.light === themeB.light;\n}\n"],"mappings":";AAEA,SAAgB,eACd,QACA,QACS;AACT,KACE,UAAU,QACV,UAAU,QACV,OAAO,WAAW,YAClB,OAAO,WAAW,SAElB,QAAO,WAAW;AAEpB,QAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,UAAU,OAAO"}
1
+ {"version":3,"file":"areThemesEqual.js","names":[],"sources":["../../src/utils/areThemesEqual.ts"],"sourcesContent":["import type { DiffsThemeNames, ThemesType } from '../types';\n\nexport function areThemesEqual(\n themeA: DiffsThemeNames | ThemesType | undefined,\n themeB: DiffsThemeNames | ThemesType | undefined\n): boolean {\n if (\n themeA == null ||\n themeB == null ||\n typeof themeA === 'string' ||\n typeof themeB === 'string'\n ) {\n return themeA === themeB;\n }\n return themeA.dark === themeB.dark && themeA.light === themeB.light;\n}\n"],"mappings":";AAEA,SAAgB,eACd,QACA,QACS;CACT,IACE,UAAU,QACV,UAAU,QACV,OAAO,WAAW,YAClB,OAAO,WAAW,UAElB,OAAO,WAAW;CAEpB,OAAO,OAAO,SAAS,OAAO,QAAQ,OAAO,UAAU,OAAO;AAChE"}
@@ -1 +1 @@
1
- {"version":3,"file":"areVirtualWindowSpecsEqual.d.ts","names":["VirtualWindowSpecs","areVirtualWindowSpecsEqual"],"sources":["../../src/utils/areVirtualWindowSpecsEqual.d.ts"],"sourcesContent":["import type { VirtualWindowSpecs } from '../types';\nexport declare function areVirtualWindowSpecsEqual(windowSpecsA: VirtualWindowSpecs | undefined, windowSpecsB: VirtualWindowSpecs | undefined): boolean;\n//# sourceMappingURL=areVirtualWindowSpecsEqual.d.ts.map"],"mappings":";;;iBACwBC,0BAAAA,eAAyCD,8CAA8CA"}
1
+ {"version":3,"file":"areVirtualWindowSpecsEqual.d.ts","names":[],"sources":["../../src/utils/areVirtualWindowSpecsEqual.ts"],"mappings":";;;iBAEgB,0BAAA,CACd,YAAA,EAAc,kBAAA,cACd,YAAA,EAAc,kBAAkB"}
@@ -3,7 +3,7 @@ function areVirtualWindowSpecsEqual(windowSpecsA, windowSpecsB) {
3
3
  if (windowSpecsA == null || windowSpecsB == null) return windowSpecsA === windowSpecsB;
4
4
  return windowSpecsA.top === windowSpecsB.top && windowSpecsA.bottom === windowSpecsB.bottom;
5
5
  }
6
-
7
6
  //#endregion
8
7
  export { areVirtualWindowSpecsEqual };
8
+
9
9
  //# sourceMappingURL=areVirtualWindowSpecsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areVirtualWindowSpecsEqual.js","names":[],"sources":["../../src/utils/areVirtualWindowSpecsEqual.ts"],"sourcesContent":["import type { VirtualWindowSpecs } from '../types';\n\nexport function areVirtualWindowSpecsEqual(\n windowSpecsA: VirtualWindowSpecs | undefined,\n windowSpecsB: VirtualWindowSpecs | undefined\n): boolean {\n if (windowSpecsA == null || windowSpecsB == null) {\n return windowSpecsA === windowSpecsB;\n }\n return (\n windowSpecsA.top === windowSpecsB.top &&\n windowSpecsA.bottom === windowSpecsB.bottom\n );\n}\n"],"mappings":";AAEA,SAAgB,2BACd,cACA,cACS;AACT,KAAI,gBAAgB,QAAQ,gBAAgB,KAC1C,QAAO,iBAAiB;AAE1B,QACE,aAAa,QAAQ,aAAa,OAClC,aAAa,WAAW,aAAa"}
1
+ {"version":3,"file":"areVirtualWindowSpecsEqual.js","names":[],"sources":["../../src/utils/areVirtualWindowSpecsEqual.ts"],"sourcesContent":["import type { VirtualWindowSpecs } from '../types';\n\nexport function areVirtualWindowSpecsEqual(\n windowSpecsA: VirtualWindowSpecs | undefined,\n windowSpecsB: VirtualWindowSpecs | undefined\n): boolean {\n if (windowSpecsA == null || windowSpecsB == null) {\n return windowSpecsA === windowSpecsB;\n }\n return (\n windowSpecsA.top === windowSpecsB.top &&\n windowSpecsA.bottom === windowSpecsB.bottom\n );\n}\n"],"mappings":";AAEA,SAAgB,2BACd,cACA,cACS;CACT,IAAI,gBAAgB,QAAQ,gBAAgB,MAC1C,OAAO,iBAAiB;CAE1B,OACE,aAAa,QAAQ,aAAa,OAClC,aAAa,WAAW,aAAa;AAEzC"}
@@ -1,6 +1,4 @@
1
1
  import { WorkerStats } from "../worker/types.js";
2
- import "../worker/index.js";
3
-
4
2
  //#region src/utils/areWorkerStatsEqual.d.ts
5
3
  declare function areWorkerStatsEqual(statsA: WorkerStats | undefined, statsB: WorkerStats | undefined): boolean;
6
4
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"areWorkerStatsEqual.d.ts","names":["WorkerStats","areWorkerStatsEqual"],"sources":["../../src/utils/areWorkerStatsEqual.d.ts"],"sourcesContent":["import type { WorkerStats } from '../worker';\nexport declare function areWorkerStatsEqual(statsA: WorkerStats | undefined, statsB: WorkerStats | undefined): boolean;\n//# sourceMappingURL=areWorkerStatsEqual.d.ts.map"],"mappings":";;;;iBACwBC,mBAAAA,SAA4BD,iCAAiCA"}
1
+ {"version":3,"file":"areWorkerStatsEqual.d.ts","names":[],"sources":["../../src/utils/areWorkerStatsEqual.ts"],"mappings":";;iBAEgB,mBAAA,CACd,MAAA,EAAQ,WAAA,cACR,MAAA,EAAQ,WAAW"}
@@ -3,7 +3,7 @@ function areWorkerStatsEqual(statsA, statsB) {
3
3
  if (statsA == null || statsB == null) return statsA === statsB;
4
4
  return statsA.busyWorkers === statsB.busyWorkers && statsA.diffCacheSize === statsB.diffCacheSize && statsA.fileCacheSize === statsB.fileCacheSize && statsA.managerState === statsB.managerState && statsA.activeTasks === statsB.activeTasks && statsA.queuedTasks === statsB.queuedTasks && statsA.themeSubscribers === statsB.themeSubscribers && statsA.totalWorkers === statsB.totalWorkers && statsA.workersFailed === statsB.workersFailed;
5
5
  }
6
-
7
6
  //#endregion
8
7
  export { areWorkerStatsEqual };
8
+
9
9
  //# sourceMappingURL=areWorkerStatsEqual.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"areWorkerStatsEqual.js","names":[],"sources":["../../src/utils/areWorkerStatsEqual.ts"],"sourcesContent":["import type { WorkerStats } from '../worker';\n\nexport function areWorkerStatsEqual(\n statsA: WorkerStats | undefined,\n statsB: WorkerStats | undefined\n): boolean {\n if (statsA == null || statsB == null) {\n return statsA === statsB;\n }\n return (\n statsA.busyWorkers === statsB.busyWorkers &&\n statsA.diffCacheSize === statsB.diffCacheSize &&\n statsA.fileCacheSize === statsB.fileCacheSize &&\n statsA.managerState === statsB.managerState &&\n statsA.activeTasks === statsB.activeTasks &&\n statsA.queuedTasks === statsB.queuedTasks &&\n statsA.themeSubscribers === statsB.themeSubscribers &&\n statsA.totalWorkers === statsB.totalWorkers &&\n statsA.workersFailed === statsB.workersFailed\n );\n}\n"],"mappings":";AAEA,SAAgB,oBACd,QACA,QACS;AACT,KAAI,UAAU,QAAQ,UAAU,KAC9B,QAAO,WAAW;AAEpB,QACE,OAAO,gBAAgB,OAAO,eAC9B,OAAO,kBAAkB,OAAO,iBAChC,OAAO,kBAAkB,OAAO,iBAChC,OAAO,iBAAiB,OAAO,gBAC/B,OAAO,gBAAgB,OAAO,eAC9B,OAAO,gBAAgB,OAAO,eAC9B,OAAO,qBAAqB,OAAO,oBACnC,OAAO,iBAAiB,OAAO,gBAC/B,OAAO,kBAAkB,OAAO"}
1
+ {"version":3,"file":"areWorkerStatsEqual.js","names":[],"sources":["../../src/utils/areWorkerStatsEqual.ts"],"sourcesContent":["import type { WorkerStats } from '../worker';\n\nexport function areWorkerStatsEqual(\n statsA: WorkerStats | undefined,\n statsB: WorkerStats | undefined\n): boolean {\n if (statsA == null || statsB == null) {\n return statsA === statsB;\n }\n return (\n statsA.busyWorkers === statsB.busyWorkers &&\n statsA.diffCacheSize === statsB.diffCacheSize &&\n statsA.fileCacheSize === statsB.fileCacheSize &&\n statsA.managerState === statsB.managerState &&\n statsA.activeTasks === statsB.activeTasks &&\n statsA.queuedTasks === statsB.queuedTasks &&\n statsA.themeSubscribers === statsB.themeSubscribers &&\n statsA.totalWorkers === statsB.totalWorkers &&\n statsA.workersFailed === statsB.workersFailed\n );\n}\n"],"mappings":";AAEA,SAAgB,oBACd,QACA,QACS;CACT,IAAI,UAAU,QAAQ,UAAU,MAC9B,OAAO,WAAW;CAEpB,OACE,OAAO,gBAAgB,OAAO,eAC9B,OAAO,kBAAkB,OAAO,iBAChC,OAAO,kBAAkB,OAAO,iBAChC,OAAO,iBAAiB,OAAO,gBAC/B,OAAO,gBAAgB,OAAO,eAC9B,OAAO,gBAAgB,OAAO,eAC9B,OAAO,qBAAqB,OAAO,oBACnC,OAAO,iBAAiB,OAAO,gBAC/B,OAAO,kBAAkB,OAAO;AAEpC"}
@@ -0,0 +1,5 @@
1
+ //#region src/utils/awaitWithTimeout.d.ts
2
+ declare function awaitWithTimeout(callback: () => Promise<unknown>, timeout?: number): Promise<void>;
3
+ //#endregion
4
+ export { awaitWithTimeout };
5
+ //# sourceMappingURL=awaitWithTimeout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awaitWithTimeout.d.ts","names":[],"sources":["../../src/utils/awaitWithTimeout.ts"],"mappings":";iBAAsB,gBAAA,CACpB,QAAA,QAAgB,OAAA,WAChB,OAAA,YACC,OAAO"}
@@ -0,0 +1,15 @@
1
+ //#region src/utils/awaitWithTimeout.ts
2
+ async function awaitWithTimeout(callback, timeout = 300) {
3
+ let timeoutId;
4
+ try {
5
+ await Promise.race([callback(), new Promise((resolve) => {
6
+ timeoutId = setTimeout(resolve, timeout);
7
+ })]);
8
+ } finally {
9
+ if (timeoutId != null) clearTimeout(timeoutId);
10
+ }
11
+ }
12
+ //#endregion
13
+ export { awaitWithTimeout };
14
+
15
+ //# sourceMappingURL=awaitWithTimeout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awaitWithTimeout.js","names":[],"sources":["../../src/utils/awaitWithTimeout.ts"],"sourcesContent":["export async function awaitWithTimeout(\n callback: () => Promise<unknown>,\n timeout: number = 300\n): Promise<void> {\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n try {\n await Promise.race([\n callback(),\n new Promise<void>((resolve) => {\n timeoutId = setTimeout(resolve, timeout);\n }),\n ]);\n } finally {\n if (timeoutId != null) {\n clearTimeout(timeoutId);\n }\n }\n}\n"],"mappings":";AAAA,eAAsB,iBACpB,UACA,UAAkB,KACH;CACf,IAAI;CACJ,IAAI;EACF,MAAM,QAAQ,KAAK,CACjB,SAAS,GACT,IAAI,SAAe,YAAY;GAC7B,YAAY,WAAW,SAAS,OAAO;EACzC,CAAC,CACH,CAAC;CACH,UAAU;EACR,IAAI,aAAa,MACf,aAAa,SAAS;CAE1B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cleanLastNewline.d.ts","names":["cleanLastNewline"],"sources":["../../src/utils/cleanLastNewline.d.ts"],"sourcesContent":["export declare function cleanLastNewline(contents: string): string;\n//# sourceMappingURL=cleanLastNewline.d.ts.map"],"mappings":";iBAAwBA,gBAAAA"}
1
+ {"version":3,"file":"cleanLastNewline.d.ts","names":[],"sources":["../../src/utils/cleanLastNewline.ts"],"mappings":";iBAAgB,gBAAA,CAAiB,QAAgB"}
@@ -7,7 +7,7 @@ function cleanLastNewline(contents) {
7
7
  }
8
8
  return contents.slice(0, end);
9
9
  }
10
-
11
10
  //#endregion
12
11
  export { cleanLastNewline };
12
+
13
13
  //# sourceMappingURL=cleanLastNewline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cleanLastNewline.js","names":[],"sources":["../../src/utils/cleanLastNewline.ts"],"sourcesContent":["export function cleanLastNewline(contents: string): string {\n let end = contents.length;\n if (contents.charCodeAt(end - 1) === /* \\n */ 10) {\n end--;\n if (contents.charCodeAt(end - 1) === /* \\r */ 13) {\n end--;\n }\n }\n return contents.slice(0, end);\n}\n"],"mappings":";AAAA,SAAgB,iBAAiB,UAA0B;CACzD,IAAI,MAAM,SAAS;AACnB,KAAI,SAAS,WAAW,MAAM,EAAE,KAAc,IAAI;AAChD;AACA,MAAI,SAAS,WAAW,MAAM,EAAE,KAAc,GAC5C;;AAGJ,QAAO,SAAS,MAAM,GAAG,IAAI"}
1
+ {"version":3,"file":"cleanLastNewline.js","names":[],"sources":["../../src/utils/cleanLastNewline.ts"],"sourcesContent":["export function cleanLastNewline(contents: string): string {\n let end = contents.length;\n if (contents.charCodeAt(end - 1) === /* \\n */ 10) {\n end--;\n if (contents.charCodeAt(end - 1) === /* \\r */ 13) {\n end--;\n }\n }\n return contents.slice(0, end);\n}\n"],"mappings":";AAAA,SAAgB,iBAAiB,UAA0B;CACzD,IAAI,MAAM,SAAS;CACnB,IAAI,SAAS,WAAW,MAAM,CAAC,MAAe,IAAI;EAChD;EACA,IAAI,SAAS,WAAW,MAAM,CAAC,MAAe,IAC5C;CAEJ;CACA,OAAO,SAAS,MAAM,GAAG,GAAG;AAC9B"}
@@ -0,0 +1,7 @@
1
+ import { FileDiffMetadata } from "../types.js";
2
+
3
+ //#region src/utils/cloneFileDiffMetadata.d.ts
4
+ declare function cloneFileDiffMetadata(fileDiff: FileDiffMetadata): FileDiffMetadata;
5
+ //#endregion
6
+ export { cloneFileDiffMetadata };
7
+ //# sourceMappingURL=cloneFileDiffMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneFileDiffMetadata.d.ts","names":[],"sources":["../../src/utils/cloneFileDiffMetadata.ts"],"mappings":";;;iBAEgB,qBAAA,CACd,QAAA,EAAU,gBAAA,GACT,gBAAgB"}
@@ -0,0 +1,16 @@
1
+ //#region src/utils/cloneFileDiffMetadata.ts
2
+ function cloneFileDiffMetadata(fileDiff) {
3
+ return {
4
+ ...fileDiff,
5
+ hunks: fileDiff.hunks.map((hunk) => ({
6
+ ...hunk,
7
+ hunkContent: hunk.hunkContent.map((content) => ({ ...content }))
8
+ })),
9
+ deletionLines: [...fileDiff.deletionLines],
10
+ additionLines: [...fileDiff.additionLines]
11
+ };
12
+ }
13
+ //#endregion
14
+ export { cloneFileDiffMetadata };
15
+
16
+ //# sourceMappingURL=cloneFileDiffMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloneFileDiffMetadata.js","names":[],"sources":["../../src/utils/cloneFileDiffMetadata.ts"],"sourcesContent":["import type { FileDiffMetadata } from '../types';\n\nexport function cloneFileDiffMetadata(\n fileDiff: FileDiffMetadata\n): FileDiffMetadata {\n return {\n ...fileDiff,\n hunks: fileDiff.hunks.map((hunk) => ({\n ...hunk,\n hunkContent: hunk.hunkContent.map((content) => ({ ...content })),\n })),\n deletionLines: [...fileDiff.deletionLines],\n additionLines: [...fileDiff.additionLines],\n };\n}\n"],"mappings":";AAEA,SAAgB,sBACd,UACkB;CAClB,OAAO;EACL,GAAG;EACH,OAAO,SAAS,MAAM,KAAK,UAAU;GACnC,GAAG;GACH,aAAa,KAAK,YAAY,KAAK,aAAa,EAAE,GAAG,QAAQ,EAAE;EACjE,EAAE;EACF,eAAe,CAAC,GAAG,SAAS,aAAa;EACzC,eAAe,CAAC,GAAG,SAAS,aAAa;CAC3C;AACF"}
@@ -9,6 +9,7 @@ interface ComputeEstimatedDiffHeightsOptions {
9
9
  expandUnchanged: boolean;
10
10
  expandedHunks: Map<number, HunkExpansionRegion> | true | undefined;
11
11
  collapsedContextThreshold: number;
12
+ canHydratePartialDiff: boolean;
12
13
  }
13
14
  interface EstimatedDiffHeights {
14
15
  splitHeight: number;
@@ -21,7 +22,8 @@ declare function computeEstimatedDiffHeights({
21
22
  hunkSeparators,
22
23
  expandUnchanged,
23
24
  expandedHunks: configuredExpandedHunks,
24
- collapsedContextThreshold
25
+ collapsedContextThreshold,
26
+ canHydratePartialDiff
25
27
  }: ComputeEstimatedDiffHeightsOptions): EstimatedDiffHeights;
26
28
  //#endregion
27
29
  export { ComputeEstimatedDiffHeightsOptions, EstimatedDiffHeights, computeEstimatedDiffHeights };
@@ -1 +1 @@
1
- {"version":3,"file":"computeEstimatedDiffHeights.d.ts","names":["FileDiffMetadata","HunkExpansionRegion","HunkSeparators","VirtualFileMetrics","ComputeEstimatedDiffHeightsOptions","Map","EstimatedDiffHeights","computeEstimatedDiffHeights","fileDiff","metrics","disableFileHeader","hunkSeparators","expandUnchanged","configuredExpandedHunks","collapsedContextThreshold"],"sources":["../../src/utils/computeEstimatedDiffHeights.d.ts"],"sourcesContent":["import type { FileDiffMetadata, HunkExpansionRegion, HunkSeparators, VirtualFileMetrics } from '../types';\nexport interface ComputeEstimatedDiffHeightsOptions {\n fileDiff: FileDiffMetadata;\n metrics: VirtualFileMetrics;\n disableFileHeader: boolean;\n hunkSeparators: HunkSeparators;\n expandUnchanged: boolean;\n expandedHunks: Map<number, HunkExpansionRegion> | true | undefined;\n collapsedContextThreshold: number;\n}\nexport interface EstimatedDiffHeights {\n splitHeight: number;\n unifiedHeight: number;\n}\nexport declare function computeEstimatedDiffHeights({ fileDiff, metrics, disableFileHeader, hunkSeparators, expandUnchanged, expandedHunks: configuredExpandedHunks, collapsedContextThreshold }: ComputeEstimatedDiffHeightsOptions): EstimatedDiffHeights;\n//# sourceMappingURL=computeEstimatedDiffHeights.d.ts.map"],"mappings":";;;UACiBI,kCAAAA;YACHJ;EADGI,OAAAA,EAEJD,kBAFIC;EACHJ,iBAAAA,EAAAA,OAAAA;EACDG,cAAAA,EAEOD,cAFPC;EAEOD,eAAAA,EAAAA,OAAAA;EAEWD,aAAAA,EAAZI,GAAYJ,CAAAA,MAAAA,EAAAA,mBAAAA,CAAAA,GAAAA,IAAAA,GAAAA,SAAAA;EAAZI,yBAAAA,EAAAA,MAAAA;;AAGFC,UAAAA,oBAAAA,CAAoB;EAIbC,WAAAA,EAAAA,MAAAA;EAA8BC,aAAAA,EAAAA,MAAAA;;AAAmBE,iBAAjDH,2BAAAA,CAAiDG;EAAAA,QAAAA;EAAAA,OAAAA;EAAAA,iBAAAA;EAAAA,cAAAA;EAAAA,eAAAA;EAAAA,aAAAA,EAAmEG,uBAAnEH;EAAAA;AAAAA,CAAAA,EAAyHN,kCAAzHM,CAAAA,EAA8JJ,oBAA9JI"}
1
+ {"version":3,"file":"computeEstimatedDiffHeights.d.ts","names":[],"sources":["../../src/utils/computeEstimatedDiffHeights.ts"],"mappings":";;;UAmBiB,kCAAA;EACf,QAAA,EAAU,gBAAA;EACV,OAAA,EAAS,kBAAA;EACT,iBAAA;EACA,cAAA,EAAgB,cAAA;EAChB,eAAA;EACA,aAAA,EAAe,GAAA,SAAY,mBAAA;EAC3B,yBAAA;EACA,qBAAA;AAAA;AAAA,UAGe,oBAAA;EACf,WAAA;EACA,aAAa;AAAA;AAAA,iBAKC,2BAAA;EACd,QAAA;EACA,OAAA;EACA,iBAAA;EACA,cAAA;EACA,eAAA;EACA,aAAA,EAAe,uBAAA;EACf,yBAAA;EACA;AAAA,GACC,kCAAA,GAAqC,oBAAA"}
@@ -1,8 +1,7 @@
1
1
  import { getVirtualFileHeaderRegion, getVirtualFilePaddingBottom } from "./computeVirtualFileMetrics.js";
2
2
  import { getExpandedRegion, getLeadingHunkSeparatorLayout, getTrailingExpandedRegion, getTrailingHunkSeparatorLayout } from "./virtualDiffLayout.js";
3
-
4
3
  //#region src/utils/computeEstimatedDiffHeights.ts
5
- function computeEstimatedDiffHeights({ fileDiff, metrics, disableFileHeader, hunkSeparators, expandUnchanged, expandedHunks: configuredExpandedHunks, collapsedContextThreshold }) {
4
+ function computeEstimatedDiffHeights({ fileDiff, metrics, disableFileHeader, hunkSeparators, expandUnchanged, expandedHunks: configuredExpandedHunks, collapsedContextThreshold, canHydratePartialDiff }) {
6
5
  let splitHeight = getVirtualFileHeaderRegion(metrics, disableFileHeader);
7
6
  let unifiedHeight = splitHeight;
8
7
  const expandedHunks = expandUnchanged ? true : configuredExpandedHunks;
@@ -54,6 +53,13 @@ function computeEstimatedDiffHeights({ fileDiff, metrics, disableFileHeader, hun
54
53
  splitHeight += separatorHeight;
55
54
  unifiedHeight += separatorHeight;
56
55
  }
56
+ } else if (hunkIndex === finalHunkIndex && fileDiff.isPartial && canHydratePartialDiff) {
57
+ const separatorHeight = getTrailingHunkSeparatorLayout({
58
+ type: hunkSeparators,
59
+ metrics
60
+ })?.totalHeight ?? 0;
61
+ splitHeight += separatorHeight;
62
+ unifiedHeight += separatorHeight;
57
63
  }
58
64
  }
59
65
  if (fileDiff.hunks.length > 0) {
@@ -94,7 +100,7 @@ function getChangeNoNewlineMetadataLineCounts(hunk, content) {
94
100
  unified
95
101
  };
96
102
  }
97
-
98
103
  //#endregion
99
104
  export { computeEstimatedDiffHeights };
105
+
100
106
  //# sourceMappingURL=computeEstimatedDiffHeights.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"computeEstimatedDiffHeights.js","names":[],"sources":["../../src/utils/computeEstimatedDiffHeights.ts"],"sourcesContent":["import type {\n ChangeContent,\n FileDiffMetadata,\n Hunk,\n HunkExpansionRegion,\n HunkSeparators,\n VirtualFileMetrics,\n} from '../types';\nimport {\n getVirtualFileHeaderRegion,\n getVirtualFilePaddingBottom,\n} from './computeVirtualFileMetrics';\nimport {\n getExpandedRegion,\n getLeadingHunkSeparatorLayout,\n getTrailingExpandedRegion,\n getTrailingHunkSeparatorLayout,\n} from './virtualDiffLayout';\n\nexport interface ComputeEstimatedDiffHeightsOptions {\n fileDiff: FileDiffMetadata;\n metrics: VirtualFileMetrics;\n disableFileHeader: boolean;\n hunkSeparators: HunkSeparators;\n expandUnchanged: boolean;\n expandedHunks: Map<number, HunkExpansionRegion> | true | undefined;\n collapsedContextThreshold: number;\n}\n\nexport interface EstimatedDiffHeights {\n splitHeight: number;\n unifiedHeight: number;\n}\n\n// Computes both split and unified baseline heights from hunk-level metadata so\n// callers can avoid replaying the detailed rendered-line iterator.\nexport function computeEstimatedDiffHeights({\n fileDiff,\n metrics,\n disableFileHeader,\n hunkSeparators,\n expandUnchanged,\n expandedHunks: configuredExpandedHunks,\n collapsedContextThreshold,\n}: ComputeEstimatedDiffHeightsOptions): EstimatedDiffHeights {\n let splitHeight = getVirtualFileHeaderRegion(metrics, disableFileHeader);\n let unifiedHeight = splitHeight;\n const expandedHunks = expandUnchanged ? true : configuredExpandedHunks;\n const finalHunkIndex = fileDiff.hunks.length - 1;\n\n for (let hunkIndex = 0; hunkIndex < fileDiff.hunks.length; hunkIndex++) {\n const hunk = fileDiff.hunks[hunkIndex];\n if (hunk == null) {\n throw new Error('computeEstimatedDiffHeights: invalid hunk index');\n }\n\n const leadingRegion = getExpandedRegion({\n isPartial: fileDiff.isPartial,\n rangeSize: hunk.collapsedBefore,\n expandedHunks,\n hunkIndex,\n collapsedContextThreshold,\n });\n const leadingExpandedHeight =\n (leadingRegion.fromStart + leadingRegion.fromEnd) * metrics.lineHeight;\n splitHeight += leadingExpandedHeight;\n unifiedHeight += leadingExpandedHeight;\n\n if (leadingRegion.collapsedLines > 0) {\n const separatorHeight =\n getLeadingHunkSeparatorLayout({\n type: hunkSeparators,\n metrics,\n hunkIndex,\n hunkSpecs: hunk.hunkSpecs,\n })?.totalHeight ?? 0;\n splitHeight += separatorHeight;\n unifiedHeight += separatorHeight;\n }\n\n splitHeight += hunk.splitLineCount * metrics.lineHeight;\n unifiedHeight += hunk.unifiedLineCount * metrics.lineHeight;\n\n const metadataLineCounts = getNoNewlineMetadataLineCounts(hunk);\n splitHeight += metadataLineCounts.split * metrics.lineHeight;\n unifiedHeight += metadataLineCounts.unified * metrics.lineHeight;\n\n const trailingRegion =\n hunkIndex === finalHunkIndex\n ? getTrailingExpandedRegion({\n fileDiff,\n hunkIndex,\n expandedHunks,\n collapsedContextThreshold,\n errorPrefix: 'computeEstimatedDiffHeights',\n })\n : undefined;\n if (trailingRegion != null) {\n const trailingExpandedHeight =\n (trailingRegion.fromStart + trailingRegion.fromEnd) *\n metrics.lineHeight;\n splitHeight += trailingExpandedHeight;\n unifiedHeight += trailingExpandedHeight;\n\n if (trailingRegion.collapsedLines > 0) {\n const separatorHeight =\n getTrailingHunkSeparatorLayout({\n type: hunkSeparators,\n metrics,\n })?.totalHeight ?? 0;\n splitHeight += separatorHeight;\n unifiedHeight += separatorHeight;\n }\n }\n }\n\n if (fileDiff.hunks.length > 0) {\n const paddingBottom = getVirtualFilePaddingBottom(metrics);\n splitHeight += paddingBottom;\n unifiedHeight += paddingBottom;\n }\n\n return { splitHeight, unifiedHeight };\n}\n\nfunction getNoNewlineMetadataLineCounts(hunk: Hunk): {\n split: number;\n unified: number;\n} {\n if (!hunk.noEOFCRAdditions && !hunk.noEOFCRDeletions) {\n return { split: 0, unified: 0 };\n }\n\n const lastContent = hunk.hunkContent.at(-1);\n if (lastContent == null) {\n return { split: 0, unified: 0 };\n }\n\n if (lastContent.type === 'context') {\n const metadataRows = lastContent.lines > 0 ? 1 : 0;\n return { split: metadataRows, unified: metadataRows };\n }\n\n return getChangeNoNewlineMetadataLineCounts(hunk, lastContent);\n}\nfunction getChangeNoNewlineMetadataLineCounts(\n hunk: Hunk,\n content: ChangeContent\n): { split: number; unified: number } {\n const unified =\n (content.deletions > 0 && hunk.noEOFCRDeletions ? 1 : 0) +\n (content.additions > 0 && hunk.noEOFCRAdditions ? 1 : 0);\n const splitDeletionHasMetadata =\n content.deletions > 0 && hunk.noEOFCRDeletions;\n const splitAdditionHasMetadata =\n content.additions > 0 && hunk.noEOFCRAdditions;\n const split = splitDeletionHasMetadata || splitAdditionHasMetadata ? 1 : 0;\n\n return { split, unified };\n}\n"],"mappings":";;;;AAoCA,SAAgB,4BAA4B,EAC1C,UACA,SACA,mBACA,gBACA,iBACA,eAAe,yBACf,6BAC2D;CAC3D,IAAI,cAAc,2BAA2B,SAAS,kBAAkB;CACxE,IAAI,gBAAgB;CACpB,MAAM,gBAAgB,kBAAkB,OAAO;CAC/C,MAAM,iBAAiB,SAAS,MAAM,SAAS;AAE/C,MAAK,IAAI,YAAY,GAAG,YAAY,SAAS,MAAM,QAAQ,aAAa;EACtE,MAAM,OAAO,SAAS,MAAM;AAC5B,MAAI,QAAQ,KACV,OAAM,IAAI,MAAM,kDAAkD;EAGpE,MAAM,gBAAgB,kBAAkB;GACtC,WAAW,SAAS;GACpB,WAAW,KAAK;GAChB;GACA;GACA;GACD,CAAC;EACF,MAAM,yBACH,cAAc,YAAY,cAAc,WAAW,QAAQ;AAC9D,iBAAe;AACf,mBAAiB;AAEjB,MAAI,cAAc,iBAAiB,GAAG;GACpC,MAAM,kBACJ,8BAA8B;IAC5B,MAAM;IACN;IACA;IACA,WAAW,KAAK;IACjB,CAAC,EAAE,eAAe;AACrB,kBAAe;AACf,oBAAiB;;AAGnB,iBAAe,KAAK,iBAAiB,QAAQ;AAC7C,mBAAiB,KAAK,mBAAmB,QAAQ;EAEjD,MAAM,qBAAqB,+BAA+B,KAAK;AAC/D,iBAAe,mBAAmB,QAAQ,QAAQ;AAClD,mBAAiB,mBAAmB,UAAU,QAAQ;EAEtD,MAAM,iBACJ,cAAc,iBACV,0BAA0B;GACxB;GACA;GACA;GACA;GACA,aAAa;GACd,CAAC,GACF;AACN,MAAI,kBAAkB,MAAM;GAC1B,MAAM,0BACH,eAAe,YAAY,eAAe,WAC3C,QAAQ;AACV,kBAAe;AACf,oBAAiB;AAEjB,OAAI,eAAe,iBAAiB,GAAG;IACrC,MAAM,kBACJ,+BAA+B;KAC7B,MAAM;KACN;KACD,CAAC,EAAE,eAAe;AACrB,mBAAe;AACf,qBAAiB;;;;AAKvB,KAAI,SAAS,MAAM,SAAS,GAAG;EAC7B,MAAM,gBAAgB,4BAA4B,QAAQ;AAC1D,iBAAe;AACf,mBAAiB;;AAGnB,QAAO;EAAE;EAAa;EAAe;;AAGvC,SAAS,+BAA+B,MAGtC;AACA,KAAI,CAAC,KAAK,oBAAoB,CAAC,KAAK,iBAClC,QAAO;EAAE,OAAO;EAAG,SAAS;EAAG;CAGjC,MAAM,cAAc,KAAK,YAAY,GAAG,GAAG;AAC3C,KAAI,eAAe,KACjB,QAAO;EAAE,OAAO;EAAG,SAAS;EAAG;AAGjC,KAAI,YAAY,SAAS,WAAW;EAClC,MAAM,eAAe,YAAY,QAAQ,IAAI,IAAI;AACjD,SAAO;GAAE,OAAO;GAAc,SAAS;GAAc;;AAGvD,QAAO,qCAAqC,MAAM,YAAY;;AAEhE,SAAS,qCACP,MACA,SACoC;CACpC,MAAM,WACH,QAAQ,YAAY,KAAK,KAAK,mBAAmB,IAAI,MACrD,QAAQ,YAAY,KAAK,KAAK,mBAAmB,IAAI;CACxD,MAAM,2BACJ,QAAQ,YAAY,KAAK,KAAK;CAChC,MAAM,2BACJ,QAAQ,YAAY,KAAK,KAAK;AAGhC,QAAO;EAAE,OAFK,4BAA4B,2BAA2B,IAAI;EAEzD;EAAS"}
1
+ {"version":3,"file":"computeEstimatedDiffHeights.js","names":[],"sources":["../../src/utils/computeEstimatedDiffHeights.ts"],"sourcesContent":["import type {\n ChangeContent,\n FileDiffMetadata,\n Hunk,\n HunkExpansionRegion,\n HunkSeparators,\n VirtualFileMetrics,\n} from '../types';\nimport {\n getVirtualFileHeaderRegion,\n getVirtualFilePaddingBottom,\n} from './computeVirtualFileMetrics';\nimport {\n getExpandedRegion,\n getLeadingHunkSeparatorLayout,\n getTrailingExpandedRegion,\n getTrailingHunkSeparatorLayout,\n} from './virtualDiffLayout';\n\nexport interface ComputeEstimatedDiffHeightsOptions {\n fileDiff: FileDiffMetadata;\n metrics: VirtualFileMetrics;\n disableFileHeader: boolean;\n hunkSeparators: HunkSeparators;\n expandUnchanged: boolean;\n expandedHunks: Map<number, HunkExpansionRegion> | true | undefined;\n collapsedContextThreshold: number;\n canHydratePartialDiff: boolean;\n}\n\nexport interface EstimatedDiffHeights {\n splitHeight: number;\n unifiedHeight: number;\n}\n\n// Computes both split and unified baseline heights from hunk-level metadata so\n// callers can avoid replaying the detailed rendered-line iterator.\nexport function computeEstimatedDiffHeights({\n fileDiff,\n metrics,\n disableFileHeader,\n hunkSeparators,\n expandUnchanged,\n expandedHunks: configuredExpandedHunks,\n collapsedContextThreshold,\n canHydratePartialDiff,\n}: ComputeEstimatedDiffHeightsOptions): EstimatedDiffHeights {\n let splitHeight = getVirtualFileHeaderRegion(metrics, disableFileHeader);\n let unifiedHeight = splitHeight;\n const expandedHunks = expandUnchanged ? true : configuredExpandedHunks;\n const finalHunkIndex = fileDiff.hunks.length - 1;\n\n for (let hunkIndex = 0; hunkIndex < fileDiff.hunks.length; hunkIndex++) {\n const hunk = fileDiff.hunks[hunkIndex];\n if (hunk == null) {\n throw new Error('computeEstimatedDiffHeights: invalid hunk index');\n }\n\n const leadingRegion = getExpandedRegion({\n isPartial: fileDiff.isPartial,\n rangeSize: hunk.collapsedBefore,\n expandedHunks,\n hunkIndex,\n collapsedContextThreshold,\n });\n const leadingExpandedHeight =\n (leadingRegion.fromStart + leadingRegion.fromEnd) * metrics.lineHeight;\n splitHeight += leadingExpandedHeight;\n unifiedHeight += leadingExpandedHeight;\n\n if (leadingRegion.collapsedLines > 0) {\n const separatorHeight =\n getLeadingHunkSeparatorLayout({\n type: hunkSeparators,\n metrics,\n hunkIndex,\n hunkSpecs: hunk.hunkSpecs,\n })?.totalHeight ?? 0;\n splitHeight += separatorHeight;\n unifiedHeight += separatorHeight;\n }\n\n splitHeight += hunk.splitLineCount * metrics.lineHeight;\n unifiedHeight += hunk.unifiedLineCount * metrics.lineHeight;\n\n const metadataLineCounts = getNoNewlineMetadataLineCounts(hunk);\n splitHeight += metadataLineCounts.split * metrics.lineHeight;\n unifiedHeight += metadataLineCounts.unified * metrics.lineHeight;\n\n const trailingRegion =\n hunkIndex === finalHunkIndex\n ? getTrailingExpandedRegion({\n fileDiff,\n hunkIndex,\n expandedHunks,\n collapsedContextThreshold,\n errorPrefix: 'computeEstimatedDiffHeights',\n })\n : undefined;\n if (trailingRegion != null) {\n const trailingExpandedHeight =\n (trailingRegion.fromStart + trailingRegion.fromEnd) *\n metrics.lineHeight;\n splitHeight += trailingExpandedHeight;\n unifiedHeight += trailingExpandedHeight;\n\n if (trailingRegion.collapsedLines > 0) {\n const separatorHeight =\n getTrailingHunkSeparatorLayout({\n type: hunkSeparators,\n metrics,\n })?.totalHeight ?? 0;\n splitHeight += separatorHeight;\n unifiedHeight += separatorHeight;\n }\n } else if (\n hunkIndex === finalHunkIndex &&\n fileDiff.isPartial &&\n canHydratePartialDiff\n ) {\n const separatorHeight =\n getTrailingHunkSeparatorLayout({\n type: hunkSeparators,\n metrics,\n })?.totalHeight ?? 0;\n splitHeight += separatorHeight;\n unifiedHeight += separatorHeight;\n }\n }\n\n if (fileDiff.hunks.length > 0) {\n const paddingBottom = getVirtualFilePaddingBottom(metrics);\n splitHeight += paddingBottom;\n unifiedHeight += paddingBottom;\n }\n\n return { splitHeight, unifiedHeight };\n}\n\nfunction getNoNewlineMetadataLineCounts(hunk: Hunk): {\n split: number;\n unified: number;\n} {\n if (!hunk.noEOFCRAdditions && !hunk.noEOFCRDeletions) {\n return { split: 0, unified: 0 };\n }\n\n const lastContent = hunk.hunkContent.at(-1);\n if (lastContent == null) {\n return { split: 0, unified: 0 };\n }\n\n if (lastContent.type === 'context') {\n const metadataRows = lastContent.lines > 0 ? 1 : 0;\n return { split: metadataRows, unified: metadataRows };\n }\n\n return getChangeNoNewlineMetadataLineCounts(hunk, lastContent);\n}\nfunction getChangeNoNewlineMetadataLineCounts(\n hunk: Hunk,\n content: ChangeContent\n): { split: number; unified: number } {\n const unified =\n (content.deletions > 0 && hunk.noEOFCRDeletions ? 1 : 0) +\n (content.additions > 0 && hunk.noEOFCRAdditions ? 1 : 0);\n const splitDeletionHasMetadata =\n content.deletions > 0 && hunk.noEOFCRDeletions;\n const splitAdditionHasMetadata =\n content.additions > 0 && hunk.noEOFCRAdditions;\n const split = splitDeletionHasMetadata || splitAdditionHasMetadata ? 1 : 0;\n\n return { split, unified };\n}\n"],"mappings":";;;AAqCA,SAAgB,4BAA4B,EAC1C,UACA,SACA,mBACA,gBACA,iBACA,eAAe,yBACf,2BACA,yBAC2D;CAC3D,IAAI,cAAc,2BAA2B,SAAS,iBAAiB;CACvE,IAAI,gBAAgB;CACpB,MAAM,gBAAgB,kBAAkB,OAAO;CAC/C,MAAM,iBAAiB,SAAS,MAAM,SAAS;CAE/C,KAAK,IAAI,YAAY,GAAG,YAAY,SAAS,MAAM,QAAQ,aAAa;EACtE,MAAM,OAAO,SAAS,MAAM;EAC5B,IAAI,QAAQ,MACV,MAAM,IAAI,MAAM,iDAAiD;EAGnE,MAAM,gBAAgB,kBAAkB;GACtC,WAAW,SAAS;GACpB,WAAW,KAAK;GAChB;GACA;GACA;EACF,CAAC;EACD,MAAM,yBACH,cAAc,YAAY,cAAc,WAAW,QAAQ;EAC9D,eAAe;EACf,iBAAiB;EAEjB,IAAI,cAAc,iBAAiB,GAAG;GACpC,MAAM,kBACJ,8BAA8B;IAC5B,MAAM;IACN;IACA;IACA,WAAW,KAAK;GAClB,CAAC,CAAC,EAAE,eAAe;GACrB,eAAe;GACf,iBAAiB;EACnB;EAEA,eAAe,KAAK,iBAAiB,QAAQ;EAC7C,iBAAiB,KAAK,mBAAmB,QAAQ;EAEjD,MAAM,qBAAqB,+BAA+B,IAAI;EAC9D,eAAe,mBAAmB,QAAQ,QAAQ;EAClD,iBAAiB,mBAAmB,UAAU,QAAQ;EAEtD,MAAM,iBACJ,cAAc,iBACV,0BAA0B;GACxB;GACA;GACA;GACA;GACA,aAAa;EACf,CAAC,IACD,KAAA;EACN,IAAI,kBAAkB,MAAM;GAC1B,MAAM,0BACH,eAAe,YAAY,eAAe,WAC3C,QAAQ;GACV,eAAe;GACf,iBAAiB;GAEjB,IAAI,eAAe,iBAAiB,GAAG;IACrC,MAAM,kBACJ,+BAA+B;KAC7B,MAAM;KACN;IACF,CAAC,CAAC,EAAE,eAAe;IACrB,eAAe;IACf,iBAAiB;GACnB;EACF,OAAO,IACL,cAAc,kBACd,SAAS,aACT,uBACA;GACA,MAAM,kBACJ,+BAA+B;IAC7B,MAAM;IACN;GACF,CAAC,CAAC,EAAE,eAAe;GACrB,eAAe;GACf,iBAAiB;EACnB;CACF;CAEA,IAAI,SAAS,MAAM,SAAS,GAAG;EAC7B,MAAM,gBAAgB,4BAA4B,OAAO;EACzD,eAAe;EACf,iBAAiB;CACnB;CAEA,OAAO;EAAE;EAAa;CAAc;AACtC;AAEA,SAAS,+BAA+B,MAGtC;CACA,IAAI,CAAC,KAAK,oBAAoB,CAAC,KAAK,kBAClC,OAAO;EAAE,OAAO;EAAG,SAAS;CAAE;CAGhC,MAAM,cAAc,KAAK,YAAY,GAAG,EAAE;CAC1C,IAAI,eAAe,MACjB,OAAO;EAAE,OAAO;EAAG,SAAS;CAAE;CAGhC,IAAI,YAAY,SAAS,WAAW;EAClC,MAAM,eAAe,YAAY,QAAQ,IAAI,IAAI;EACjD,OAAO;GAAE,OAAO;GAAc,SAAS;EAAa;CACtD;CAEA,OAAO,qCAAqC,MAAM,WAAW;AAC/D;AACA,SAAS,qCACP,MACA,SACoC;CACpC,MAAM,WACH,QAAQ,YAAY,KAAK,KAAK,mBAAmB,IAAI,MACrD,QAAQ,YAAY,KAAK,KAAK,mBAAmB,IAAI;CACxD,MAAM,2BACJ,QAAQ,YAAY,KAAK,KAAK;CAChC,MAAM,2BACJ,QAAQ,YAAY,KAAK,KAAK;CAGhC,OAAO;EAAE,OAFK,4BAA4B,2BAA2B,IAAI;EAEzD;CAAQ;AAC1B"}
@@ -3,11 +3,19 @@
3
3
  * Computes line start offsets for a string.
4
4
  */
5
5
  declare function computeLineOffsets(contents: string): number[];
6
+ /**
7
+ * Counts line breaks in a string, treating `\n`, `\r`, and `\r\n` the same way
8
+ * {@link computeLineOffsets} does (a `\r\n` pair is one break). Mirrors that
9
+ * scan but counts in a single pass instead of building and discarding an
10
+ * offsets array, so sizing the changed-line range for large edits stays cheap.
11
+ * A unit test asserts it stays in lockstep with `computeLineOffsets`.
12
+ */
13
+ declare function countLineBreaks(contents: string): number;
6
14
  /**
7
15
  * Splits file contents into lines aligned with {@link computeLineOffsets}.
8
16
  * Unlike splitFileContents, a trailing newline produces a final empty line.
9
17
  */
10
18
  declare function linesFromFileContents(contents: string): string[];
11
19
  //#endregion
12
- export { computeLineOffsets, linesFromFileContents };
20
+ export { computeLineOffsets, countLineBreaks, linesFromFileContents };
13
21
  //# sourceMappingURL=computeFileOffsets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"computeFileOffsets.d.ts","names":["computeLineOffsets","linesFromFileContents"],"sources":["../../src/utils/computeFileOffsets.d.ts"],"sourcesContent":["/**\n * Computes line start offsets for a string.\n */\nexport declare function computeLineOffsets(contents: string): number[];\n/**\n * Splits file contents into lines aligned with {@link computeLineOffsets}.\n * Unlike splitFileContents, a trailing newline produces a final empty line.\n */\nexport declare function linesFromFileContents(contents: string): string[];\n//# sourceMappingURL=computeFileOffsets.d.ts.map"],"mappings":";;AAGA;AAKA;iBALwBA,kBAAAA;;;;;iBAKAC,qBAAAA"}
1
+ {"version":3,"file":"computeFileOffsets.d.ts","names":[],"sources":["../../src/utils/computeFileOffsets.ts"],"mappings":";;AAMA;;iBAAgB,kBAAA,CAAmB,QAAgB;;AAAA;AAyBnD;;;;AAAgD;iBAAhC,eAAA,CAAgB,QAAgB;;;;AAuBM;iBAAtC,qBAAA,CAAsB,QAAgB"}
@@ -16,6 +16,24 @@ function computeLineOffsets(contents) {
16
16
  return offsets;
17
17
  }
18
18
  /**
19
+ * Counts line breaks in a string, treating `\n`, `\r`, and `\r\n` the same way
20
+ * {@link computeLineOffsets} does (a `\r\n` pair is one break). Mirrors that
21
+ * scan but counts in a single pass instead of building and discarding an
22
+ * offsets array, so sizing the changed-line range for large edits stays cheap.
23
+ * A unit test asserts it stays in lockstep with `computeLineOffsets`.
24
+ */
25
+ function countLineBreaks(contents) {
26
+ let count = 0;
27
+ for (let i = 0; i < contents.length; i++) {
28
+ const char = contents.charCodeAt(i);
29
+ if (char === LINE_FEED || char === CARRIAGE_RETURN) {
30
+ if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
31
+ count++;
32
+ }
33
+ }
34
+ return count;
35
+ }
36
+ /**
19
37
  * Splits file contents into lines aligned with {@link computeLineOffsets}.
20
38
  * Unlike splitFileContents, a trailing newline produces a final empty line.
21
39
  */
@@ -27,7 +45,7 @@ function linesFromFileContents(contents) {
27
45
  return contents.slice(start, end);
28
46
  });
29
47
  }
30
-
31
48
  //#endregion
32
- export { computeLineOffsets, linesFromFileContents };
49
+ export { computeLineOffsets, countLineBreaks, linesFromFileContents };
50
+
33
51
  //# sourceMappingURL=computeFileOffsets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"computeFileOffsets.js","names":["offsets: number[]"],"sources":["../../src/utils/computeFileOffsets.ts"],"sourcesContent":["const LINE_FEED = 10; // \\n\nconst CARRIAGE_RETURN = 13; // \\r\n\n/**\n * Computes line start offsets for a string.\n */\nexport function computeLineOffsets(contents: string): number[] {\n const offsets: number[] = [0];\n for (let i = 0; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n offsets.push(i + 1);\n }\n }\n return offsets;\n}\n\n/**\n * Splits file contents into lines aligned with {@link computeLineOffsets}.\n * Unlike splitFileContents, a trailing newline produces a final empty line.\n */\nexport function linesFromFileContents(contents: string): string[] {\n const offsets = computeLineOffsets(contents);\n const lines = Array.from({ length: offsets.length }, (_, i) => {\n const start = offsets[i];\n const end = offsets[i + 1] ?? contents.length;\n return contents.slice(start, end);\n });\n return lines;\n}\n"],"mappings":";AAAA,MAAM,YAAY;AAClB,MAAM,kBAAkB;;;;AAKxB,SAAgB,mBAAmB,UAA4B;CAC7D,MAAMA,UAAoB,CAAC,EAAE;AAC7B,MAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS,WAAW,EAAE;AACnC,MAAI,SAAS,aAAa,SAAS,iBAAiB;AAClD,OACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,EAAE,KAAK,UAE/B;AAEF,WAAQ,KAAK,IAAI,EAAE;;;AAGvB,QAAO;;;;;;AAOT,SAAgB,sBAAsB,UAA4B;CAChE,MAAM,UAAU,mBAAmB,SAAS;AAM5C,QALc,MAAM,KAAK,EAAE,QAAQ,QAAQ,QAAQ,GAAG,GAAG,MAAM;EAC7D,MAAM,QAAQ,QAAQ;EACtB,MAAM,MAAM,QAAQ,IAAI,MAAM,SAAS;AACvC,SAAO,SAAS,MAAM,OAAO,IAAI;GACjC"}
1
+ {"version":3,"file":"computeFileOffsets.js","names":[],"sources":["../../src/utils/computeFileOffsets.ts"],"sourcesContent":["const LINE_FEED = 10; // \\n\nconst CARRIAGE_RETURN = 13; // \\r\n\n/**\n * Computes line start offsets for a string.\n */\nexport function computeLineOffsets(contents: string): number[] {\n const offsets: number[] = [0];\n for (let i = 0; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n offsets.push(i + 1);\n }\n }\n return offsets;\n}\n\n/**\n * Counts line breaks in a string, treating `\\n`, `\\r`, and `\\r\\n` the same way\n * {@link computeLineOffsets} does (a `\\r\\n` pair is one break). Mirrors that\n * scan but counts in a single pass instead of building and discarding an\n * offsets array, so sizing the changed-line range for large edits stays cheap.\n * A unit test asserts it stays in lockstep with `computeLineOffsets`.\n */\nexport function countLineBreaks(contents: string): number {\n let count = 0;\n for (let i = 0; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n // Skip the `\\n` of a `\\r\\n` pair so it counts as one break, not two.\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n count++;\n }\n }\n return count;\n}\n\n/**\n * Splits file contents into lines aligned with {@link computeLineOffsets}.\n * Unlike splitFileContents, a trailing newline produces a final empty line.\n */\nexport function linesFromFileContents(contents: string): string[] {\n const offsets = computeLineOffsets(contents);\n const lines = Array.from({ length: offsets.length }, (_, i) => {\n const start = offsets[i];\n const end = offsets[i + 1] ?? contents.length;\n return contents.slice(start, end);\n });\n return lines;\n}\n"],"mappings":";AAAA,MAAM,YAAY;AAClB,MAAM,kBAAkB;;;;AAKxB,SAAgB,mBAAmB,UAA4B;CAC7D,MAAM,UAAoB,CAAC,CAAC;CAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS,WAAW,CAAC;EAClC,IAAI,SAAS,aAAa,SAAS,iBAAiB;GAClD,IACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,CAAC,MAAM,WAE/B;GAEF,QAAQ,KAAK,IAAI,CAAC;EACpB;CACF;CACA,OAAO;AACT;;;;;;;;AASA,SAAgB,gBAAgB,UAA0B;CACxD,IAAI,QAAQ;CACZ,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS,WAAW,CAAC;EAClC,IAAI,SAAS,aAAa,SAAS,iBAAiB;GAElD,IACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,CAAC,MAAM,WAE/B;GAEF;EACF;CACF;CACA,OAAO;AACT;;;;;AAMA,SAAgB,sBAAsB,UAA4B;CAChE,MAAM,UAAU,mBAAmB,QAAQ;CAM3C,OALc,MAAM,KAAK,EAAE,QAAQ,QAAQ,OAAO,IAAI,GAAG,MAAM;EAC7D,MAAM,QAAQ,QAAQ;EACtB,MAAM,MAAM,QAAQ,IAAI,MAAM,SAAS;EACvC,OAAO,SAAS,MAAM,OAAO,GAAG;CAClC,CACW;AACb"}
@@ -1 +1 @@
1
- {"version":3,"file":"computeVirtualFileMetrics.d.ts","names":["HunkSeparators","VirtualFileMetrics","computeVirtualFileMetrics","Partial","getVirtualFileHeaderRegion","getVirtualFilePaddingTop","getVirtualFilePaddingBottom","getDefaultHunkSeparatorHeight"],"sources":["../../src/utils/computeVirtualFileMetrics.d.ts"],"sourcesContent":["import type { HunkSeparators, VirtualFileMetrics } from '../types';\nexport declare function computeVirtualFileMetrics(metrics?: Partial<VirtualFileMetrics>): VirtualFileMetrics;\nexport declare function getVirtualFileHeaderRegion(metrics: VirtualFileMetrics, disableFileHeader: boolean): number;\nexport declare function getVirtualFilePaddingTop(metrics: VirtualFileMetrics, disableFileHeader: boolean): number;\nexport declare function getVirtualFilePaddingBottom(metrics: VirtualFileMetrics): number;\nexport declare function getDefaultHunkSeparatorHeight(type: HunkSeparators): number;\n//# sourceMappingURL=computeVirtualFileMetrics.d.ts.map"],"mappings":";;;iBACwBE,yBAAAA,WAAoCC,QAAQF,sBAAsBA;iBAClEG,0BAAAA,UAAoCH;AADpCC,iBAEAG,wBAAAA,CAFyB,OAAA,EAESJ,kBAFT,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,MAAA;AAAmBA,iBAG5CK,2BAAAA,CAH4CL,OAAAA,EAGPA,kBAHOA,CAAAA,EAAAA,MAAAA;AAARE,iBAIpCI,6BAAAA,CAJoCJ,IAAAA,EAIAH,cAJAG,CAAAA,EAAAA,MAAAA"}
1
+ {"version":3,"file":"computeVirtualFileMetrics.d.ts","names":[],"sources":["../../src/utils/computeVirtualFileMetrics.ts"],"mappings":";;;iBAGgB,yBAAA,CACd,OAAA,GAAU,OAAA,CAAQ,kBAAA,IACjB,kBAAA;AAAA,iBAOa,0BAAA,CACd,OAAA,EAAS,kBAAkB,EAC3B,iBAAA;AAAA,iBAMc,wBAAA,CACd,OAAA,EAAS,kBAAkB,EAC3B,iBAAA;AAAA,iBAKc,2BAAA,CACd,OAA2B,EAAlB,kBAAkB;AAAA,iBAKb,6BAAA,CAA8B,IAAoB,EAAd,cAAc"}
@@ -1,5 +1,4 @@
1
1
  import { DEFAULT_VIRTUAL_FILE_METRICS } from "../constants.js";
2
-
3
2
  //#region src/utils/computeVirtualFileMetrics.ts
4
3
  function computeVirtualFileMetrics(metrics) {
5
4
  return {
@@ -26,7 +25,7 @@ function getDefaultHunkSeparatorHeight(type) {
26
25
  case "custom": return 32;
27
26
  }
28
27
  }
29
-
30
28
  //#endregion
31
29
  export { computeVirtualFileMetrics, getDefaultHunkSeparatorHeight, getVirtualFileHeaderRegion, getVirtualFilePaddingBottom, getVirtualFilePaddingTop };
30
+
32
31
  //# sourceMappingURL=computeVirtualFileMetrics.js.map